From 2843d26aeffae7f9cad1cd139805ef08b189e33c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E7=AB=8B=E5=B8=AE?= <3294713004@qq.com> Date: Sat, 22 Feb 2025 16:08:25 +0800 Subject: [PATCH] =?UTF-8?q?Update(boards):=20xpython=E6=9D=BF=E5=8D=A1?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=20`build:prod`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- boards/default/micropython_educore/index.xml | 2 +- .../micropython_educore/main.bundle.js | 4 +- boards/default/micropython_esp32/index.xml | 2 +- .../default/micropython_esp32/main.bundle.js | 4 +- .../build/Mixgo_Mini-v1.23.0.bin | Bin 1433808 -> 1433808 bytes .../build/Mixgo_Mini_lib-v1.23.0.bin | Bin 1719984 -> 1720048 bytes .../build/Mixgo_Mini_lib_ble-v1.23.0.bin | Bin 1907184 -> 1907248 bytes .../micropython_esp32c2/build/lib/map.json | 82 + .../micropython_esp32c2/build/lib/mini_bot.py | 5 + boards/default/micropython_esp32c2/index.xml | 6906 +-- .../micropython_esp32c2/main.bundle.js | 47347 +--------------- .../micropython_esp32c2/main.bundle.js.map | 1 - .../styles/main.2265d699.css.map | 1 - .../{main.2265d699.css => main.c30a59f3.css} | 5 - boards/default/micropython_esp32c3/index.xml | 2 +- .../micropython_esp32c3/main.bundle.js | 4 +- boards/default/micropython_esp32s2/index.xml | 2 +- .../micropython_esp32s2/main.bundle.js | 4 +- boards/default/micropython_esp32s3/index.xml | 2 +- .../micropython_esp32s3/main.bundle.js | 4 +- .../micropython_k210_mixgoai/main.bundle.js | 4 +- .../main.bundle.js | 4 +- .../main.bundle.js | 4 +- .../default/micropython_robot/main.bundle.js | 4 +- .../micropython/blocks/display_extern.js | 44 +- .../micropython/blocks/sensor_extern.js | 402 +- .../micropython/blocks/sensor_onboard.js | 328 +- .../micropython/generators/actuator_extern.js | 40 +- .../micropython/generators/sensor_extern.js | 82 +- .../micropython/generators/sensor_onboard.js | 139 +- 30 files changed, 631 insertions(+), 54797 deletions(-) create mode 100644 boards/default/micropython_esp32c2/build/lib/map.json delete mode 100644 boards/default/micropython_esp32c2/main.bundle.js.map delete mode 100644 boards/default/micropython_esp32c2/styles/main.2265d699.css.map rename boards/default/micropython_esp32c2/styles/{main.2265d699.css => main.c30a59f3.css} (99%) diff --git a/boards/default/micropython_educore/index.xml b/boards/default/micropython_educore/index.xml index 6fb28f31..2df970be 100644 --- a/boards/default/micropython_educore/index.xml +++ b/boards/default/micropython_educore/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxcontentmylistmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydicts11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixlyxsensoraccaccbutton0rfidinfo1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,018029speaker2000speaker20001000speakerrgb0000rgbbleblebleMixlyMixly0MixlyMixly500MixlyMixly50010.50car100carcarcar1001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipassword0mixio.mixly.cn1883client_idusernamepasswordtopicreceievd_messagetopicmsgreceievd_messageEQtopicmessage1wifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京10000ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyxsensor000humiture00button0ultrasonic00cameracamerai2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight0pin0servo900parrot0i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comwifinamewifipassword0responsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxcontentmylistmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}mydicts11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixlyxsensoraccaccbutton0rfidinfo1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,0speaker2000speaker20001000speakerrgb0000rgbbleblebleMixlyMixly0MixlyMixly500MixlyMixly50010.50car100carcarcar1001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipassword0mixio.mixly.cn1883client_idusernamepasswordtopicreceievd_messagetopicmsgreceievd_messageEQtopicmessage1wifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京10000ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyxsensor000humiture00button0ultrasonic00cameracamerai2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight0pin0servo900parrot0i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comwifinamewifipassword0responsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_educore/main.bundle.js b/boards/default/micropython_educore/main.bundle.js index 31e6831f..1caca983 100644 --- a/boards/default/micropython_educore/main.bundle.js +++ b/boards/default/micropython_educore/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Ft,controls_typeLists:()=>Pt,lists_zip:()=>Yt,lists_zip_container:()=>vt,lists_zip_item:()=>Xt,unpack_iterable_object:()=>yt,variables_change:()=>Dt,variables_get:()=>At,variables_global:()=>ft,variables_set:()=>Nt});var i={};t.r(i),t.d(i,{base_setup:()=>Vt,controls_delay:()=>Bt,controls_end_program:()=>Gt,controls_except:()=>$t,controls_finally:()=>te,controls_flow_statements:()=>Kt,controls_for:()=>Jt,controls_forEach:()=>kt,controls_for_range:()=>qt,controls_if:()=>Ut,controls_if_else:()=>jt,controls_if_elseif:()=>zt,controls_if_if:()=>Qt,controls_lambda:()=>ie,controls_main:()=>bt,controls_pass:()=>ne,controls_range:()=>wt,controls_repeat_ext:()=>ee,controls_thread:()=>se,controls_try:()=>Zt,controls_try_finally:()=>Wt,controls_whileUntil:()=>Ht,datetime_fromtimestamp:()=>re,do_while:()=>_e,garbage_collection:()=>oe,gene_unique_identifier:()=>le,get_mem_alloc:()=>pe,get_mem_free:()=>ae,get_unique_identifier:()=>ue});var n={};t.r(n),t.d(n,{base_map:()=>Ye,generate_cartesian_product:()=>Xe,math_arithmetic:()=>he,math_bit:()=>Ee,math_constant:()=>Te,math_constant_mp:()=>Me,math_constrain:()=>Le,math_dec:()=>Re,math_indexer_number:()=>Ne,math_map:()=>Ae,math_max_min:()=>ge,math_number:()=>Ie,math_number_base_conversion:()=>Ce,math_random:()=>Se,math_random_seed:()=>De,math_round:()=>fe,math_selfcalcu:()=>me,math_to_int:()=>ce,math_trig:()=>Oe,text_to_number:()=>Fe,text_to_number_skulpt:()=>Pe,turn_to_int:()=>ve});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ge,char_to_ascii:()=>Ue,number_to_text:()=>we,os_system:()=>Ii,text:()=>xe,text_capital:()=>je,text_center:()=>Ze,text_char:()=>Ve,text_char_at:()=>We,text_char_at2:()=>He,text_char_at3:()=>ui,text_compareTo:()=>ai,text_compare_to:()=>ze,text_create_with_container:()=>_i,text_create_with_item:()=>oi,text_encode:()=>li,text_equals_starts_ends:()=>Qe,text_eval:()=>di,text_find:()=>$e,text_format:()=>si,text_format_noreturn:()=>ri,text_join:()=>Be,text_join_seq:()=>ti,text_length:()=>ke,text_random_char:()=>Ke,text_replace:()=>ei,text_split:()=>ii,text_strip:()=>ni,text_substring:()=>qe,text_substring2:()=>Je,text_substring3:()=>pi,text_textarea:()=>be});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Qi,content_in_lists:()=>ji,enumerate:()=>zi,list_many_input:()=>xi,list_tolist:()=>Gi,list_tolist2:()=>qi,list_trig:()=>vi,lists_2d_get_col_row_data:()=>Ei,lists_2d_get_data_with_col_row:()=>mi,lists_append_extend:()=>Si,lists_change_to:()=>yi,lists_change_to_general:()=>Vi,lists_clear:()=>fi,lists_create_with:()=>Oi,lists_create_with2:()=>Ui,lists_create_with_container:()=>ci,lists_create_with_item:()=>gi,lists_create_with_noreturn:()=>bi,lists_create_with_text:()=>Ri,lists_create_with_text2:()=>wi,lists_del_general:()=>Bi,lists_find:()=>Yi,lists_getIndex3:()=>ki,lists_getSublist3:()=>Hi,lists_get_index:()=>Mi,lists_get_random_item:()=>Li,lists_get_random_sublist:()=>Ai,lists_get_sublist:()=>hi,lists_insert_value:()=>Ni,lists_insert_value2:()=>Ki,lists_pop:()=>Pi,lists_remove_at:()=>Fi,lists_remove_at2:()=>Ji,lists_reverse:()=>Di,lists_setIndex3:()=>Wi,lists_set_index:()=>Ci,lists_sort:()=>Xi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>Tn,dicts_add_or_change:()=>on,dicts_clear:()=>un,dicts_create_with:()=>$i,dicts_create_with_container:()=>tn,dicts_create_with_item:()=>en,dicts_create_with_noreturn:()=>mn,dicts_deldict:()=>In,dicts_delete:()=>pn,dicts_get:()=>sn,dicts_get_default:()=>_n,dicts_items:()=>rn,dicts_keys:()=>nn,dicts_length:()=>dn,dicts_pop:()=>Mn,dicts_setdefault:()=>hn,dicts_to_json:()=>On,dicts_to_json2:()=>gn,dicts_to_to:()=>cn,dicts_todict:()=>En,dicts_update:()=>an,dicts_values:()=>ln,json_to_dicts:()=>Rn});var p={};t.r(p),t.d(p,{logic_boolean:()=>Dn,logic_compare:()=>Sn,logic_compare_continous:()=>Ln,logic_is:()=>Yn,logic_is_in:()=>Pn,logic_negate:()=>Nn,logic_null:()=>fn,logic_operation:()=>An,logic_tobool:()=>vn,logic_true_or_false:()=>Fn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>is,sdcard_use_spi_init:()=>es,storage_can_write_ornot:()=>wn,storage_change_dir:()=>$n,storage_close_file:()=>Hn,storage_delete_file:()=>Kn,storage_file_seek:()=>Qn,storage_file_tell:()=>qn,storage_file_write:()=>Vn,storage_fileopen:()=>yn,storage_fileopen_new:()=>xn,storage_fileopen_new_encoding:()=>bn,storage_get_a_line:()=>Un,storage_get_contents:()=>Gn,storage_get_contents_without_para:()=>Bn,storage_get_current_dir:()=>zn,storage_get_file_size:()=>Jn,storage_get_filename:()=>kn,storage_is_file:()=>ts,storage_list_all_files:()=>Wn,storage_make_dir:()=>jn,storage_open_file_with_os:()=>Xn,storage_rename:()=>Zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>us,procedures_callreturn:()=>rs,procedures_defnoreturn:()=>_s,procedures_defreturn:()=>os,procedures_ifreturn:()=>ls,procedures_mutatorarg:()=>as,procedures_mutatorcontainer:()=>ps,procedures_return:()=>ds});var r={};t.r(r),t.d(r,{tuple_change_to:()=>Ss,tuple_create_with:()=>Ts,tuple_create_with_container:()=>Ms,tuple_create_with_item:()=>hs,tuple_create_with_noreturn:()=>Ds,tuple_create_with_text2:()=>ms,tuple_create_with_text_return:()=>Es,tuple_del:()=>cs,tuple_find:()=>Ls,tuple_getIndex:()=>Os,tuple_getSublist:()=>Ns,tuple_get_random_item:()=>Fs,tuple_get_sublist:()=>fs,tuple_join:()=>gs,tuple_length:()=>Rs,tuple_max:()=>Cs,tuple_totuple:()=>Ps,tuple_trig:()=>As});var l={};t.r(l),t.d(l,{set_add_discard:()=>Us,set_clear:()=>Vs,set_create_with:()=>vs,set_create_with_container:()=>Xs,set_create_with_item:()=>ys,set_create_with_text_return:()=>Hs,set_length:()=>xs,set_operate:()=>Bs,set_operate_update:()=>Gs,set_pop:()=>bs,set_sub:()=>ws,set_toset:()=>Ws,set_update:()=>ks});var d={};t.r(d),t.d(d,{html_content:()=>zs,html_content_more:()=>js,html_document:()=>Js,html_form:()=>$s,html_head_body:()=>Qs,html_style:()=>Zs,html_style_color:()=>e_,html_style_content:()=>t_,html_text:()=>i_,html_title:()=>qs});var I={};t.r(I),t.d(I,{attribute_access:()=>h_,function_call:()=>I_,function_call_container:()=>T_,function_call_item:()=>M_,raw_block:()=>__,raw_empty:()=>p_,raw_expression:()=>o_,raw_table:()=>s_,text_comment:()=>a_,text_print_multiple:()=>r_,text_print_multiple_container:()=>l_,text_print_multiple_item:()=>d_,type_check:()=>u_});var T={};t.r(T),t.d(T,{controls_type:()=>c_,controls_typeLists:()=>g_,lists_zip:()=>C_,unpack_iterable_object:()=>S_,variables_change:()=>O_,variables_get:()=>m_,variables_global:()=>R_,variables_set:()=>E_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>X_,base_setup:()=>A_,controls_delay:()=>v_,controls_flow_statements:()=>Y_,controls_for:()=>f_,controls_forEach:()=>B_,controls_for_range:()=>F_,controls_if:()=>N_,controls_interrupts:()=>b_,controls_lambda:()=>U_,controls_main:()=>L_,controls_millis:()=>y_,controls_nointerrupts:()=>V_,controls_pass:()=>k_,controls_range:()=>G_,controls_repeat:()=>j_,controls_repeat_ext:()=>K_,controls_thread:()=>H_,controls_try_finally:()=>D_,controls_whileUntil:()=>P_,datetime_fromtimestamp:()=>Z_,do_while:()=>W_,garbage_collection:()=>J_,gene_unique_identifier:()=>$_,get_mem_alloc:()=>q_,get_mem_free:()=>Q_,get_unique_identifier:()=>z_,reset:()=>x_,time_sleep:()=>w_});var h={};t.r(h),t.d(h,{base_map:()=>co,generate_cartesian_product:()=>Co,math_arithmetic:()=>so,math_bit:()=>no,math_constant:()=>eo,math_constant_mp:()=>io,math_constrain:()=>To,math_dec:()=>ao,math_indexer_number:()=>mo,math_map:()=>Io,math_max_min:()=>ro,math_number:()=>to,math_number_base_conversion:()=>Mo,math_random:()=>lo,math_random_seed:()=>ho,math_round:()=>Eo,math_selfcalcu:()=>_o,math_single:()=>oo,math_to_int:()=>uo,math_trig:()=>po,text_to_number:()=>Oo,text_to_number_skulpt:()=>Ro,turn_to_int:()=>go});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Do,char_to_ascii:()=>fo,number_to_text:()=>Fo,os_system:()=>$o,text:()=>So,text_capital:()=>Bo,text_center:()=>Go,text_char:()=>Ao,text_char_at:()=>vo,text_char_at2:()=>Yo,text_char_at3:()=>zo,text_compareTo:()=>Qo,text_compare_to:()=>xo,text_encode:()=>jo,text_equals_starts_ends:()=>yo,text_eval:()=>Zo,text_find:()=>Uo,text_format:()=>Ko,text_format_noreturn:()=>Jo,text_join:()=>No,text_join_seq:()=>wo,text_length:()=>Po,text_random_char:()=>Xo,text_replace:()=>ko,text_split:()=>Ho,text_strip:()=>Wo,text_substring:()=>Vo,text_substring2:()=>bo,text_substring3:()=>qo,text_textarea:()=>Lo});var E={};t.r(E),t.d(E,{content_in_lists:()=>vp,enumerate:()=>Yp,list_many_input:()=>Op,list_tolist:()=>Fp,list_tolist2:()=>Pp,list_trig:()=>hp,lists_2d_get_col_row_data:()=>ip,lists_2d_get_data_with_col_row:()=>ep,lists_append_extend:()=>pp,lists_change_to:()=>Ep,lists_change_to_general:()=>cp,lists_clear:()=>dp,lists_create_with:()=>np,lists_create_with2:()=>Cp,lists_create_with_noreturn:()=>Rp,lists_create_with_text:()=>sp,lists_create_with_text2:()=>Sp,lists_del_general:()=>gp,lists_find:()=>Ip,lists_getIndex3:()=>Lp,lists_getSublist3:()=>Ap,lists_get_index:()=>_p,lists_get_random_item:()=>ap,lists_get_random_sublist:()=>up,lists_get_sublist:()=>tp,lists_insert_value:()=>rp,lists_insert_value2:()=>Dp,lists_pop:()=>Mp,lists_remove_at:()=>Tp,lists_remove_at2:()=>fp,lists_reverse:()=>lp,lists_setIndex3:()=>Np,lists_set_index:()=>op,lists_sort:()=>mp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Kp,dicts_add_or_change:()=>Vp,dicts_clear:()=>Up,dicts_create_with:()=>Xp,dicts_create_with_noreturn:()=>Qp,dicts_deldict:()=>Wp,dicts_delete:()=>Bp,dicts_get:()=>xp,dicts_get_default:()=>bp,dicts_items:()=>wp,dicts_keys:()=>yp,dicts_length:()=>Hp,dicts_pop:()=>Jp,dicts_setdefault:()=>qp,dicts_to_json:()=>jp,dicts_to_json2:()=>ta,dicts_to_to:()=>$p,dicts_todict:()=>zp,dicts_update:()=>Gp,dicts_values:()=>kp,json_to_dicts:()=>Zp});var R={};t.r(R),t.d(R,{logic_boolean:()=>_a,logic_compare:()=>ea,logic_compare_continous:()=>ia,logic_is:()=>ua,logic_is_in:()=>aa,logic_negate:()=>sa,logic_null:()=>oa,logic_operation:()=>na,logic_tobool:()=>ra,logic_true_or_false:()=>pa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>va,sdcard_use_spi_init:()=>Ya,storage_can_write_ornot:()=>Oa,storage_change_dir:()=>Na,storage_close_file:()=>ca,storage_delete_file:()=>Ca,storage_file_seek:()=>Aa,storage_file_tell:()=>La,storage_file_write:()=>Ma,storage_fileopen:()=>da,storage_fileopen_new:()=>Ia,storage_fileopen_new_encoding:()=>Ta,storage_get_a_line:()=>Ea,storage_get_contents:()=>ma,storage_get_contents_without_para:()=>ha,storage_get_current_dir:()=>Da,storage_get_file_size:()=>Sa,storage_get_filename:()=>Ra,storage_is_file:()=>Pa,storage_list_all_files:()=>ga,storage_make_dir:()=>fa,storage_open_file_with_os:()=>la,storage_rename:()=>Fa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>ba,procedures_callreturn:()=>xa,procedures_defnoreturn:()=>ya,procedures_defreturn:()=>Xa,procedures_ifreturn:()=>Va,procedures_return:()=>Ba});var C={};t.r(C),t.d(C,{tuple_change_to:()=>qa,tuple_create_with:()=>Ga,tuple_create_with_noreturn:()=>Za,tuple_create_with_text2:()=>Ua,tuple_create_with_text_return:()=>wa,tuple_del:()=>Wa,tuple_find:()=>Qa,tuple_getIndex:()=>ka,tuple_getSublist:()=>ja,tuple_get_random_item:()=>tu,tuple_get_sublist:()=>$a,tuple_join:()=>Ka,tuple_length:()=>Ha,tuple_max:()=>Ja,tuple_totuple:()=>eu,tuple_trig:()=>za});var S={};t.r(S),t.d(S,{set_add_discard:()=>au,set_clear:()=>_u,set_create_with:()=>iu,set_create_with_text_return:()=>lu,set_length:()=>nu,set_operate:()=>ou,set_operate_update:()=>pu,set_pop:()=>su,set_sub:()=>uu,set_toset:()=>du,set_update:()=>ru});var L={};t.r(L),t.d(L,{html_content:()=>hu,html_content_more:()=>mu,html_document:()=>Iu,html_form:()=>Ou,html_head_body:()=>Mu,html_style:()=>Eu,html_style_content:()=>Ru,html_text:()=>cu,html_title:()=>Tu});var A={};t.r(A),t.d(A,{attribute_access:()=>Du,function_call:()=>Nu,raw_block:()=>gu,raw_empty:()=>Su,raw_expression:()=>Cu,raw_table:()=>Lu,type_check:()=>Au});var N={};t.r(N),t.d(N,{PIN_init:()=>fr,actuator_extern_get_led_bright:()=>Gu,actuator_extern_get_led_state:()=>Uu,actuator_extern_led_bright:()=>Bu,actuator_extern_led_brightness:()=>wu,actuator_ms32006_dcmotor:()=>ju,actuator_ms32006_init:()=>zu,actuator_ms32006_stepper:()=>Zu,actuator_neopixel_init:()=>$u,actuator_neopixel_rgb:()=>tr,actuator_neopixel_rgb_all:()=>er,actuator_neopixel_write:()=>ir,actuator_use_uart_init:()=>nr,esp32_music_get_tempo_extern:()=>xu,esp32_music_pitch:()=>Yu,esp32_music_pitch_init:()=>Pu,esp32_music_pitch_with_time:()=>vu,esp32_music_play_list:()=>Xu,esp32_music_reset_extern:()=>bu,esp32_music_set_tempo_extern:()=>yu,esp32_music_stop:()=>Vu,mixbot_actuator_extern_get_addr:()=>Nr,mixbot_actuator_extern_set_addr:()=>Dr,mixbot_addr_extern:()=>Tr,parrot_PIN_init:()=>vr,parrot_move_speed:()=>Xr,pin_led_bright:()=>Fr,player_insert_music:()=>ur,player_play_music:()=>ar,player_set_mode:()=>pr,player_set_play:()=>_r,player_set_volume:()=>or,player_whether_stop:()=>sr,robot_led_extern:()=>Er,robot_led_extern_get_value:()=>Or,robot_motor_extern:()=>Mr,robot_motor_extern_get_speed:()=>hr,robot_servo_extern_absolute_run:()=>Cr,robot_servo_extern_get_status:()=>Rr,robot_servo_extern_relative_continue:()=>Ar,robot_servo_extern_relative_origin:()=>Sr,robot_servo_extern_relative_run:()=>Lr,robot_servo_extern_stop:()=>gr,robot_servo_extern_stop_mode:()=>cr,robot_traffic_light_extern:()=>mr,servo_PIN_init:()=>Pr,servo_get_angle:()=>qu,servo_get_speed:()=>Qu,servo_init:()=>ku,servo_move:()=>Hu,servo_move_angle:()=>Yr,servo_set_angle:()=>Ku,servo_set_speed:()=>Ju,servo_speed_360:()=>Wu,syn6288_builtin_voice:()=>dr,syn6288_get_voice:()=>lr,syn6288_set_voice:()=>rr,syn6288_tts_play:()=>Ir});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>dl,actuator_dc_motor_stop:()=>Il,actuator_get_led_bright:()=>Br,actuator_get_led_state:()=>Gr,actuator_led_bright:()=>Vr,actuator_led_brightness:()=>Ur,actuator_mixbot_buzzer_on_off:()=>El,actuator_mixgo_nova_mic_get:()=>Cl,actuator_mixgo_nova_mic_set:()=>gl,actuator_mixgo_nova_onboard_music_pitch:()=>fl,actuator_mixgo_nova_onboard_music_stop:()=>Fl,actuator_mixgo_nova_play_audio:()=>Nl,actuator_mixgo_nova_play_online_audio:()=>Dl,actuator_mixgo_nova_record_audio:()=>Al,actuator_mixgo_nova_voice_get:()=>Ll,actuator_mixgo_nova_voice_set:()=>Sl,actuator_mixgo_zero_led_color:()=>wr,actuator_onboard_neopixel_rgb:()=>qr,actuator_onboard_neopixel_rgb_all:()=>Qr,actuator_onboard_neopixel_rgb_show_all_chase:()=>jr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>zr,actuator_onboard_neopixel_write:()=>Zr,actuator_rm_onboard_neopixel_rgb:()=>$r,actuator_rm_onboard_neopixel_rgb_all:()=>tl,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>el,actuator_stepper_keep:()=>rl,actuator_stepper_stop:()=>ll,analog_ble_keyboard_init:()=>kl,analog_ble_keyboard_input:()=>Kl,analog_ble_keyboard_mouse_init:()=>td,analog_ble_keyboard_mouse_input:()=>sd,analog_ble_keyboard_mouse_send_battery:()=>nd,analog_ble_keyboard_mouse_str:()=>_d,analog_ble_keyboard_send_battery:()=>ql,analog_ble_keyboard_str:()=>Jl,analog_ble_mouse_init:()=>Ql,analog_ble_mouse_input:()=>Zl,analog_ble_mouse_keyboard_input:()=>od,analog_ble_mouse_send_battery:()=>$l,analog_keyboard_input:()=>Xl,analog_keyboard_str:()=>wl,analog_mouse_input:()=>Gl,bitbot_motor:()=>cl,bitbot_move:()=>Ol,bitbot_stop:()=>Rl,ble_keyboard_connect:()=>Wl,ble_keyboard_get_mac:()=>Hl,ble_keyboard_mouse_connect:()=>id,ble_keyboard_mouse_get_mac:()=>ed,ble_mouse_connect:()=>jl,ble_mouse_get_mac:()=>zl,cc_number:()=>Jr,educore_ble_keyboard_input:()=>hd,educore_ble_sensor_connected:()=>Md,educore_ble_sensor_init:()=>Td,educore_buzzer:()=>pd,educore_buzzer_play_tone:()=>ad,educore_buzzer_play_tone_time:()=>ud,educore_buzzer_stop:()=>rd,educore_neopixel_clear:()=>Id,educore_neopixel_rgb:()=>dd,educore_rgb_light:()=>ld,esp32_music_get_tempo:()=>nl,esp32_music_reset:()=>sl,esp32_music_set_tempo:()=>il,esp32_onboard_music_pitch:()=>_l,esp32_onboard_music_pitch_with_time:()=>ol,esp32_onboard_music_play_list:()=>al,esp32_onboard_music_stop:()=>pl,general_key:()=>xl,general_key_tuple:()=>bl,generalkey_container:()=>Vl,generalkey_create_with_item:()=>Bl,get_power_output:()=>Yl,ledswitch:()=>br,mixbot_motor:()=>ml,mixbot_motor_status:()=>Tl,mixbot_move:()=>Ml,mixbot_stop:()=>hl,mouse_key:()=>Ul,number:()=>xr,rm_actuator_get_led_bright:()=>Hr,rm_actuator_get_led_state:()=>Wr,rm_actuator_led_bright:()=>kr,rm_actuator_led_brightness:()=>Kr,rm_motor:()=>ul,set_all_power_output:()=>vl,set_power_output:()=>Pl,special_key:()=>yl});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>zd,ai_sensor_ailocal_class:()=>Bd,ai_sensor_ailocal_class_result:()=>Gd,ai_sensor_ailocal_train:()=>Vd,ai_sensor_asr_recognize:()=>Wd,ai_sensor_audio_play:()=>wd,ai_sensor_audio_record:()=>Ud,ai_sensor_barcode:()=>Sd,ai_sensor_circle:()=>Fd,ai_sensor_classifier_faces:()=>Qd,ai_sensor_color:()=>Xd,ai_sensor_color_chases:()=>bd,ai_sensor_color_chases_result:()=>xd,ai_sensor_config:()=>gd,ai_sensor_face:()=>qd,ai_sensor_find_20objects:()=>jd,ai_sensor_find_barcodes:()=>Ld,ai_sensor_find_circles:()=>Pd,ai_sensor_find_colors:()=>yd,ai_sensor_find_licenseplates:()=>Jd,ai_sensor_find_lines:()=>fd,ai_sensor_find_qrcodes:()=>cd,ai_sensor_find_rects:()=>vd,ai_sensor_find_tags:()=>Nd,ai_sensor_licenseplate:()=>Kd,ai_sensor_line:()=>Dd,ai_sensor_qrcode:()=>Od,ai_sensor_qrcode_lite:()=>Rd,ai_sensor_rect:()=>Yd,ai_sensor_rgb:()=>Cd,ai_sensor_tag:()=>Ad,ai_sensor_use_uart_init:()=>Ed,ai_sensor_yolo_recognize:()=>kd,ai_sensor_yolo_recognize_result:()=>Hd});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>tI,MICROPYTHON_AI_Speech_unit:()=>$d,MICROPYTHON_AI_client:()=>Zd});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>MI,mpython_blynk_app_notify:()=>aI,mpython_blynk_email:()=>lI,mpython_blynk_get_timers:()=>dI,mpython_blynk_on_connected:()=>_I,mpython_blynk_on_disconnected:()=>sI,mpython_blynk_run:()=>pI,mpython_blynk_sensor_data_to_app:()=>TI,mpython_blynk_set_property:()=>rI,mpython_blynk_setup:()=>hI,mpython_blynk_stop_timers:()=>uI,mpython_blynk_sync_virtual:()=>nI,mpython_blynk_terminal_widget_vpin:()=>iI,mpython_blynktimer:()=>II,mpython_blynktimer_run:()=>oI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>mI,cc_g1_read_bat:()=>EI,cc_g1_read_joystick:()=>OI,cc_g1_read_key:()=>RI,cc_g1_turnoff:()=>cI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>FI,ce_go_get_led_bright:()=>LI,ce_go_get_led_state:()=>AI,ce_go_hall_attachInterrupt:()=>PI,ce_go_hall_data:()=>vI,ce_go_hall_initialize:()=>YI,ce_go_led_bright:()=>SI,ce_go_led_brightness:()=>NI,ce_go_light_number:()=>CI,ce_go_pin_light:()=>VI,ce_go_pin_near:()=>yI,ce_go_pin_near_line:()=>XI,ce_go_pin_near_state_change:()=>xI,ce_go_stepper_keep:()=>DI,ce_go_stepper_stop:()=>fI,educore_car:()=>BI,educore_car_pin_near:()=>kI,educore_car_pin_near_line:()=>wI,educore_car_stepper_keep:()=>GI,educore_car_stepper_stop:()=>UI,sensor_mixgome_eulerangles:()=>bI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>LT,communicate_bluetooth_connect:()=>fT,communicate_bluetooth_disconnect:()=>FT,communicate_bluetooth_handle:()=>yT,communicate_bluetooth_is_connected:()=>YT,communicate_bluetooth_mac:()=>DT,communicate_bluetooth_peripheral_init:()=>AT,communicate_bluetooth_recv:()=>vT,communicate_bluetooth_recv_only:()=>XT,communicate_bluetooth_scan:()=>NT,communicate_bluetooth_send:()=>PT,communicate_espnow_init:()=>xT,communicate_espnow_init_new:()=>bT,communicate_i2c_available:()=>pT,communicate_i2c_init:()=>JI,communicate_i2c_master_read:()=>oT,communicate_i2c_onboard:()=>WI,communicate_i2c_read:()=>qI,communicate_i2c_scan:()=>zI,communicate_i2c_write:()=>QI,communicate_ir_recv_init:()=>MT,communicate_ir_send_init:()=>RT,communicate_ow_init:()=>uT,communicate_ow_read:()=>lT,communicate_ow_reset:()=>TT,communicate_ow_scan:()=>rT,communicate_ow_select:()=>IT,communicate_ow_write:()=>dT,communicate_spi_buffer:()=>$I,communicate_spi_init:()=>jI,communicate_spi_onboard:()=>KI,communicate_spi_read:()=>tT,communicate_spi_read_output:()=>eT,communicate_spi_readinto:()=>iT,communicate_spi_readinto_output:()=>nT,communicate_spi_set:()=>ZI,communicate_spi_write:()=>sT,communicate_spi_write_readinto:()=>_T,espnow_radio_channel:()=>kT,espnow_radio_channel_new:()=>WT,espnow_radio_on_off:()=>KT,espnow_radio_rec:()=>qT,espnow_radio_recv:()=>zT,espnow_radio_recv_certain_msg:()=>jT,espnow_radio_recv_certain_msg_new:()=>$T,espnow_radio_recv_msg:()=>QT,espnow_radio_recv_new:()=>ZT,espnow_radio_send:()=>JT,espnow_radio_txpower:()=>HT,i2c_available:()=>cM,i2c_init:()=>pM,i2c_master_reader2:()=>RM,i2c_read:()=>aM,i2c_scan:()=>rM,i2c_slave_onreceive:()=>aT,i2c_write:()=>uM,internal_variable:()=>hT,ir_recv_timeout:()=>OT,ir_transmit_busy:()=>ST,ir_transmit_conventional_data:()=>cT,ir_transmit_raw_code:()=>CT,ir_transmit_study_code:()=>gT,ir_whether_recv:()=>ET,lora_init:()=>tM,lora_packet:()=>eM,lora_recv:()=>nM,lora_send:()=>iM,network_espnow_info:()=>BT,network_espnow_mac:()=>VT,network_espnow_recv:()=>GT,network_espnow_recv_handle:()=>wT,network_espnow_send:()=>UT,recv_fun:()=>mT,spi_buffer:()=>IM,spi_init:()=>lM,spi_read:()=>TM,spi_read_output:()=>MM,spi_readinto:()=>hM,spi_readinto_output:()=>mM,spi_set:()=>dM,spi_write:()=>EM,spi_write_readinto:()=>OM,urequests_attribute:()=>_M,urequests_get:()=>sM,urequests_method:()=>oM});var y={};t.r(y),t.d(y,{display_animate:()=>jM,display_blink_rate:()=>JM,display_circle:()=>ZM,display_color_seclet:()=>rh,display_draw_4strings:()=>UM,display_fill:()=>zM,display_get_screen_image:()=>KM,display_help:()=>th,display_image_size:()=>wM,display_lcd_use_i2c_init:()=>hh,display_line:()=>HM,display_line_arbitrarily:()=>WM,display_matrix_extern_bright_point:()=>vM,display_matrix_extern_bright_screen:()=>yM,display_matrix_extern_clear:()=>xM,display_matrix_extern_get_pixel:()=>YM,display_matrix_extern_get_screen_pixel:()=>XM,display_matrix_extern_image_builtins:()=>bM,display_matrix_extern_scroll_string:()=>NM,display_matrix_extern_scroll_string_delay:()=>DM,display_matrix_extern_shift:()=>PM,display_matrix_extern_show_frame_string:()=>fM,display_matrix_extern_show_frame_string_delay:()=>FM,display_matrix_extern_show_image:()=>LM,display_matrix_extern_show_image_or_string_delay:()=>AM,display_matrix_use_i2c_init:()=>SM,display_oled_drawPixel:()=>ih,display_oled_showBitmap:()=>eh,display_oled_use_i2c_init:()=>ch,display_onoff:()=>QM,display_rect:()=>kM,display_rgb_color:()=>qM,display_tm1650_power:()=>sh,display_tm1650_set_brightness:()=>ph,display_tm1650_show_dot:()=>oh,display_tm1650_show_num:()=>_h,display_tm_use_i2c_init:()=>nh,display_triangle:()=>$M,display_use_i2c_init:()=>GM,extern_oled_bright_point:()=>Yh,extern_oled_clear:()=>vh,extern_oled_get_pixel:()=>Ph,extern_oled_hvline:()=>yh,extern_oled_line:()=>xh,extern_oled_scroll_string:()=>Ah,extern_oled_scroll_string_delay:()=>Nh,extern_oled_shape_rect:()=>Xh,extern_oled_shift:()=>Fh,extern_oled_show_frame_string:()=>Dh,extern_oled_show_frame_string_delay:()=>fh,extern_oled_show_image:()=>gh,extern_oled_show_image_or_string_delay:()=>Lh,extern_oled_show_image_xy:()=>Ch,extern_oled_show_string:()=>Sh,lcd_backlight:()=>Oh,lcd_clear:()=>Rh,lcd_print_string:()=>Eh,lcd_show_image_or_string_delay:()=>mh,matrix_extern_image_arithmetic:()=>VM,matrix_extern_image_invert:()=>BM,tft_fill:()=>Th,tft_line_arbitrarily:()=>Mh,tft_scroll_string_delay:()=>dh,tft_show_frame_string_delay:()=>Ih,tft_show_image_or_string_delay:()=>lh,tft_show_image_xy:()=>uh,tft_use_spi_init:()=>ah});var x={};t.r(x),t.d(x,{bitbot_display_image_create:()=>cm,display_bright_point:()=>jh,display_bright_screen:()=>$h,display_clear:()=>tm,display_get_pixel:()=>zh,display_get_screen_pixel:()=>Zh,display_image_builtins:()=>Wh,display_image_builtins_all:()=>Kh,display_image_create:()=>Hh,display_scroll_string:()=>Gh,display_scroll_string_delay:()=>Uh,display_shift:()=>Qh,display_show_frame_string:()=>wh,display_show_frame_string_delay:()=>kh,display_show_image:()=>Vh,display_show_image_or_string_delay:()=>Bh,draw_pointer:()=>Wm,image_arithmetic:()=>Jh,image_invert:()=>qh,mixbot_display_bright_screen:()=>Om,mixbot_display_get_ambientbright:()=>Em,mixbot_display_get_screen_pixel:()=>mm,mixbot_display_image_create:()=>hm,mixbot_display_rotate:()=>Rm,mixgo_display_image_create_new:()=>nm,mixgome_display_font:()=>sm,mixgome_display_image_create:()=>em,mixgomini_display_image_create:()=>im,mpython_display_hvline:()=>Im,mpython_display_line:()=>Tm,mpython_display_shape_rect:()=>dm,mpython_pbm_image:()=>Mm,onboard_oled_bright_point:()=>lm,onboard_oled_scroll_string_delay:()=>um,onboard_oled_show_frame_string_delay:()=>rm,onboard_oled_show_image:()=>_m,onboard_oled_show_image_or_string_delay:()=>am,onboard_oled_show_image_xy:()=>om,onboard_oled_show_string:()=>pm,onboard_tft_bright_point:()=>Xm,onboard_tft_bright_screen:()=>bm,onboard_tft_clear:()=>ym,onboard_tft_clock_clear:()=>km,onboard_tft_clock_draw:()=>wm,onboard_tft_clock_get_rtctime:()=>Gm,onboard_tft_clock_init:()=>Bm,onboard_tft_clock_set_time:()=>Um,onboard_tft_display_hvline:()=>Fm,onboard_tft_display_line:()=>Pm,onboard_tft_display_shape_circle:()=>Hm,onboard_tft_display_shape_rect:()=>fm,onboard_tft_fill:()=>Vm,onboard_tft_get_pixel:()=>vm,onboard_tft_get_screen_pixel:()=>xm,onboard_tft_scroll_string:()=>Lm,onboard_tft_scroll_string_delay:()=>Am,onboard_tft_shift:()=>Ym,onboard_tft_show_frame_string:()=>Nm,onboard_tft_show_frame_string_delay:()=>Dm,onboard_tft_show_image:()=>gm,onboard_tft_show_image_or_string_delay:()=>Sm,onboard_tft_show_image_xy:()=>Cm});var b={};t.r(b),t.d(b,{factory_block:()=>iE,factory_block_return:()=>nE,factory_block_return_with_textarea:()=>_E,factory_block_with_textarea:()=>sE,factory_callMethod_noreturn:()=>tE,factory_callMethod_return:()=>eE,factory_create_with_container:()=>zm,factory_create_with_item:()=>jm,factory_declare:()=>$m,factory_from_import:()=>Jm,factory_function_noreturn:()=>Qm,factory_function_return:()=>Zm,factory_import:()=>qm,folding_block:()=>oE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>DE,inout_analog_atten:()=>hE,inout_analog_read:()=>ME,inout_analog_read_init:()=>gE,inout_analog_write:()=>dE,inout_analog_write_init:()=>cE,inout_analog_write_set:()=>IE,inout_analog_write_set_freq:()=>LE,inout_digital_init:()=>OE,inout_digital_read:()=>rE,inout_digital_write:()=>uE,inout_highlow:()=>aE,inout_pinMode:()=>SE,inout_pin_attachInterrupt:()=>EE,inout_pin_pressed:()=>mE,inout_pin_pressed_init:()=>CE,inout_pwm_analog_write:()=>lE,inout_pwm_analog_write_init:()=>RE,inout_pwm_analog_write_set_freq:()=>TE,pin_pressed:()=>NE,pin_pressed_init:()=>AE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>ZE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>jE,IOT_EMQX_PING:()=>QE,IOT_FORMATTING:()=>JE,IOT_FORMAT_STRING:()=>qE,IOT_MIXIO_NTP:()=>zE,IOT_MIXIO_PUBLISH:()=>GE,IOT_MIXIO_SUBSCRIBE:()=>UE,iot_checkonenet:()=>aO,iot_client_onboard:()=>tO,iot_create_with_item:()=>VE,iot_http_client:()=>eO,iot_http_data:()=>iO,iot_mixio_check:()=>HE,iot_mixio_connect:()=>BE,iot_mixio_connect_only:()=>kE,iot_mixio_disconnect:()=>wE,iot_mixio_format_msg:()=>KE,iot_mixio_format_topic:()=>WE,iot_mixly_key:()=>$E,iot_mqtt_client:()=>nO,iot_mqtt_data:()=>sO,iot_onenet_check:()=>vE,iot_onenet_connect:()=>PE,iot_onenet_disconnect:()=>YE,iot_onenet_publish:()=>yE,iot_onenet_publish_dict:()=>XE,iot_onenetconnect:()=>oO,iot_onenetdisconnect:()=>pO,iot_publish:()=>uO,iot_publish_container:()=>xE,iot_publish_item:()=>bE,iot_wifi_connect:()=>FE,iot_wificonnect:()=>_O});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>wO,educore_mqtt_connect_success:()=>KO,educore_mqtt_subscribe_message:()=>kO,educore_mqtt_topic_publish:()=>WO,educore_mqtt_topic_subscribe:()=>HO,educore_wifi_connect:()=>UO,network_ap_connect:()=>RO,network_connect:()=>MO,network_get_connect:()=>mO,network_get_wifi:()=>OO,network_init:()=>lO,network_is_active:()=>IO,network_open:()=>dO,network_scan:()=>TO,network_server:()=>cO,network_socket_accept:()=>AO,network_socket_bind:()=>CO,network_socket_close:()=>PO,network_socket_connect:()=>SO,network_socket_init:()=>gO,network_socket_listen:()=>LO,network_socket_receive:()=>NO,network_socket_receive_from:()=>fO,network_socket_send:()=>DO,network_socket_send_to:()=>FO,network_stop:()=>EO,network_wifi_connect:()=>hO,ntptime_address:()=>xO,ntptime_time:()=>yO,requests_attribute:()=>vO,requests_attribute2:()=>GO,requests_get:()=>YO,requests_get2:()=>VO,requests_method:()=>XO,requests_post:()=>BO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>mR,CI130X_GET_THE_RECOGNIZED_CMD:()=>hR,CI130X_GET_WHETHER_IDENTIFY:()=>MR,CI130X_IDENTIFY_AND_SAVE:()=>TR,CI130X_SET_SYSTEM_CMD:()=>ER,HCSR04:()=>sc,PS2_Button:()=>ac,PS2_Buttons:()=>rc,PS2_Buttons_new:()=>Tc,PS2_State:()=>uc,PS2_init:()=>_c,PS2_init_new:()=>dc,PS2_stk:()=>lc,PS2_stk_new:()=>Mc,PS2_vibration:()=>pc,PS2_vibration_new:()=>Ic,camera_sensor_init:()=>Hc,camera_sensor_result:()=>Wc,educore_body_sensor:()=>Xc,educore_button_sensor_extern:()=>Vc,educore_camera_sensor:()=>kc,educore_infrared_sensor:()=>bc,educore_soilhum_sensor:()=>yc,educore_temp_sensor:()=>wc,educore_temphum_sensor:()=>xc,educore_ultrasonic_sensor:()=>Gc,esp32_s2_weather_init:()=>tc,esp32_s2_weather_rain:()=>ic,esp32_s2_weather_wd:()=>ec,esp32_s2_weather_ws:()=>nc,extern_rfid_read:()=>GR,extern_rfid_readcontent:()=>wR,extern_rfid_readid:()=>UR,extern_rfid_status:()=>WR,extern_rfid_write:()=>kR,extern_rfid_write_return:()=>HR,gnss_get_data:()=>Oc,gnss_have_data:()=>Ec,interaction_whether_to_interaction:()=>dR,interaction_whether_to_interaction_SANT:()=>IR,mixbot_sensor_extern_get_addr:()=>Ac,mixbot_sensor_extern_set_addr:()=>Nc,pm25_get_data:()=>mc,radar_set_DETECTION_THRESHOLD:()=>rR,radar_set_DETECTION_THRESHOLD_SANT:()=>lR,robot_button_extern_get_value:()=>Rc,robot_color_extern_get_value:()=>Lc,robot_infrared_extern_get_value:()=>gc,robot_infrared_extern_grey_get_value:()=>Cc,robot_potentiometer_extern_get_value:()=>Sc,robot_sonar_extern_get_value:()=>Dc,robot_sonar_extern_led:()=>fc,robot_touch_extern_get_value:()=>cc,sensor_APDS9960_extern:()=>RR,sensor_DS18X20:()=>pR,sensor_LTR308_extern:()=>cR,sensor_LTR390UV_extern:()=>SR,sensor_MAX30102_extern:()=>OR,sensor_QMC5883L_extern:()=>FR,sensor_VL530LX_extern:()=>LR,sensor_adxl345_get_acceleration:()=>$O,sensor_aht11_extern:()=>NR,sensor_bmp:()=>_R,sensor_compass_reset:()=>VR,sensor_dht11:()=>eR,sensor_hp203_extern:()=>DR,sensor_light_level:()=>tR,sensor_lm35:()=>aR,sensor_ltr381_extern:()=>gR,sensor_mixgo_extern_button_attachInterrupt:()=>jO,sensor_mixgo_extern_button_get_presses:()=>zO,sensor_mixgo_extern_button_is_pressed:()=>qO,sensor_mixgo_extern_button_was_pressed:()=>QO,sensor_mixgo_extern_light:()=>iR,sensor_mixgo_extern_pin_near:()=>sR,sensor_mixgo_extern_sound:()=>nR,sensor_mixgoce_hot_wheel_degrees:()=>$R,sensor_mixgoce_hot_wheel_is_touched:()=>ZR,sensor_mpu9250_attachGestureInterrupt:()=>ZO,sensor_mpu9250_calibrate_compass:()=>yR,sensor_mpu9250_field_strength:()=>bR,sensor_mpu9250_gesture:()=>PR,sensor_mpu9250_get_acceleration:()=>YR,sensor_mpu9250_get_gyro:()=>XR,sensor_mpu9250_get_magnetic:()=>vR,sensor_mpu9250_temperature:()=>xR,sensor_read_humiture:()=>Bc,sensor_sht:()=>oR,sensor_shtc3_extern:()=>AR,sensor_spl06_001_extern:()=>fR,sensor_ucs12071_extern:()=>CR,sensor_use_i2c_init:()=>uR,sensor_use_spi_init:()=>BR,sensor_use_uart_init:()=>hc,sensor_weather_solo_init:()=>Fc,sensor_weather_solo_rain:()=>vc,sensor_weather_solo_wd:()=>Pc,sensor_weather_solo_ws:()=>Yc,sensor_weigh_init:()=>Kc,ultrasonic_sensor_read_distance:()=>Uc,weather_data:()=>KR,weather_have_data:()=>JR,weather_set_label:()=>QR,weather_set_label_container:()=>zR,weather_set_label_item:()=>jR,weather_uart_mixio:()=>qR,weigh_sensor_get_weight:()=>Jc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>UC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>GC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>BC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>VC,CI130X_SET_SYSTEM_CMD_SANT:()=>wC,HCSR04:()=>rg,RTC_set_date:()=>ug,RTC_set_time:()=>ag,bitbot_als_num:()=>mC,dht11:()=>SC,educore_button_sensor:()=>vC,educore_button_was_pressed:()=>XC,educore_gyroscope_sensor:()=>FC,educore_gyroscope_sensor_read:()=>PC,educore_gyroscope_sensor_shake:()=>YC,educore_light_sensor:()=>fC,educore_rfid_sensor:()=>yC,educore_rfid_sensor_scan:()=>xC,educore_rfid_sensor_scan_data:()=>bC,educore_voice_sensor:()=>NC,number1:()=>dg,number2:()=>Ig,number3:()=>Tg,number4:()=>Mg,number5:()=>hg,number6:()=>mg,number7:()=>Eg,onboard_RTC_get_time:()=>Ag,onboard_RTC_get_time_str:()=>Yg,onboard_RTC_get_timestamp:()=>Ng,onboard_RTC_set_datetime:()=>Fg,onboard_RTC_settime_string:()=>fg,onboard_RTC_timestamp_totuple:()=>Dg,rfid_readcontent:()=>Bg,rfid_readid:()=>Vg,rfid_write:()=>Gg,rfid_write_return:()=>Ug,sensor_LTR308:()=>vg,sensor_aht11:()=>yg,sensor_bitbot_ALS:()=>hC,sensor_button_get_presses:()=>RC,sensor_button_is_pressed:()=>EC,sensor_button_was_pressed:()=>OC,sensor_distance_hrsc04:()=>pg,sensor_eulerangles:()=>kg,sensor_field_strength:()=>LC,sensor_get_acceleration:()=>wg,sensor_get_temperature:()=>xg,sensor_hp203:()=>bg,sensor_light:()=>CC,sensor_mixbot_get_gyro:()=>MC,sensor_mixbot_patrol_calibrate:()=>dC,sensor_mixbot_patrol_value:()=>IC,sensor_mixbot_temperature:()=>TC,sensor_mixgo_LTR308:()=>Sg,sensor_mixgo_button_attachInterrupt:()=>Zc,sensor_mixgo_button_get_presses:()=>jc,sensor_mixgo_button_is_pressed:()=>Qc,sensor_mixgo_button_was_pressed:()=>zc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>tC,sensor_mixgo_cc_mmc5603_get_angle:()=>$g,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Zg,sensor_mixgo_light:()=>lg,sensor_mixgo_nova_LTR308:()=>Cg,sensor_mixgo_nova_pin_near:()=>gg,sensor_mixgo_pin_near:()=>cg,sensor_mixgo_pin_near_double:()=>Rg,sensor_mixgo_pin_near_single:()=>Og,sensor_mixgo_pin_pressed:()=>ng,sensor_mixgo_sant_color:()=>Lg,sensor_mixgo_touch_slide:()=>og,sensor_mixgocar42_button_attachInterrupt:()=>ig,sensor_mixgocar42_button_get_presses:()=>eg,sensor_mixgocar42_button_is_pressed:()=>$c,sensor_mixgocar42_button_was_pressed:()=>tg,sensor_mixgocar_battery_left:()=>lC,sensor_mixgocar_pin_near:()=>uC,sensor_mixgocar_pin_near_line:()=>aC,sensor_mixgocar_pin_near_state_change:()=>rC,sensor_mixgoce_pin_pressed:()=>sg,sensor_mixgoce_temperature:()=>iC,sensor_mixgome_temperature:()=>eC,sensor_mpython_pin_pressed:()=>_g,sensor_mpython_qmi8658_get_gyro:()=>nC,sensor_mpython_qmi8658_temperature:()=>sC,sensor_onboard_compass_reset:()=>jg,sensor_onboard_mpu9250_calibrate_compass:()=>qg,sensor_onboard_mpu9250_field_strength:()=>zg,sensor_onboard_mpu9250_gesture:()=>Hg,sensor_onboard_mpu9250_get_acceleration:()=>Wg,sensor_onboard_mpu9250_get_gyro:()=>Jg,sensor_onboard_mpu9250_get_magnetic:()=>Kg,sensor_onboard_mpu9250_temperature:()=>Qg,sensor_pin_near:()=>gC,sensor_pin_pressed:()=>cC,sensor_read:()=>DC,sensor_rm_acc:()=>pC,sensor_rm_battery_left:()=>oC,sensor_rm_pin_near_double:()=>_C,sensor_rtc_init:()=>Pg,sensor_sound:()=>Xg,sensor_temperature:()=>AC});var k={};t.r(k),t.d(k,{serial_any:()=>zC,serial_begin:()=>eS,serial_print:()=>WC,serial_print_byte:()=>HC,serial_print_hex:()=>JC,serial_println:()=>KC,serial_read_from_ai:()=>rS,serial_readline:()=>jC,serial_readstr:()=>QC,serial_readstr_until:()=>ZC,serial_receive_data_event:()=>qC,serial_send_to_ai:()=>uS,serial_softserial:()=>tS,serial_softserial_new:()=>$C,system_input:()=>iS,system_print:()=>nS,system_print_container:()=>pS,system_print_end:()=>_S,system_print_inline:()=>sS,system_print_item:()=>aS,system_print_many:()=>oS});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>TS,Timer_init:()=>NS,base_delay:()=>FS,controls_delay:()=>IS,controls_delay_new:()=>dS,controls_millis:()=>hS,controls_uname:()=>ES,raw_block:()=>mS,reset:()=>MS,system_bitbot_shutdown:()=>AS,system_machine_reset:()=>LS,system_ticks_diff:()=>cS,system_timer:()=>RS,system_timer_init:()=>gS,system_wdt_feed:()=>SS,system_wdt_init:()=>CS,time_ticks_diff:()=>fS,timer:()=>OS,timer2:()=>DS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>HS,Air_now_content:()=>bS,Geo_moon_content:()=>KS,Geo_sun_content:()=>WS,Life_suggestion_content:()=>BS,Location_search_content:()=>US,Tide_daily_content:()=>GS,WEATHER_DAILY:()=>vS,WEATHER_HOUR:()=>XS,WEATHER_NOW:()=>YS,Weather_alarm_content:()=>VS,Weather_daily:()=>wS,Weather_daily_content:()=>kS,Weather_now:()=>yS,Weather_now_content:()=>xS});var K={};t.r(K),t.d(K,{PIN_init:()=>HL,actuator_extern_get_led_bright:()=>dL,actuator_extern_get_led_state:()=>IL,actuator_extern_led_bright:()=>lL,actuator_extern_led_brightness:()=>TL,actuator_ms32006_dcmotor:()=>tL,actuator_ms32006_init:()=>$S,actuator_ms32006_stepper:()=>eL,actuator_neopixel_init:()=>ML,actuator_neopixel_rgb:()=>EL,actuator_neopixel_rgb_all:()=>hL,actuator_neopixel_write:()=>mL,actuator_use_uart_init:()=>OL,esp32_music_get_tempo_extern:()=>pL,esp32_music_pitch:()=>nL,esp32_music_pitch_init:()=>iL,esp32_music_pitch_with_time:()=>sL,esp32_music_play_list:()=>aL,esp32_music_reset_extern:()=>uL,esp32_music_set_tempo_extern:()=>oL,esp32_music_stop:()=>_L,mixbot_actuator_extern_get_addr:()=>wL,mixbot_actuator_extern_set_addr:()=>kL,mixbot_addr_extern:()=>fL,parrot_PIN_init:()=>qL,parrot_move_speed:()=>QL,pin_led_bright:()=>WL,player_play_music:()=>SL,player_set_mode:()=>CL,player_set_play:()=>cL,player_set_volume:()=>gL,player_whether_stop:()=>RL,robot_led_extern:()=>vL,robot_led_extern_get_value:()=>XL,robot_motor_extern:()=>FL,robot_motor_extern_get_speed:()=>PL,robot_servo_extern_absolute_run:()=>VL,robot_servo_extern_get_status:()=>yL,robot_servo_extern_relative_continue:()=>UL,robot_servo_extern_relative_origin:()=>BL,robot_servo_extern_relative_run:()=>GL,robot_servo_extern_stop:()=>bL,robot_servo_extern_stop_mode:()=>xL,robot_traffic_light_extern:()=>YL,servo_PIN_init:()=>KL,servo_get_angle:()=>jS,servo_get_speed:()=>ZS,servo_init:()=>JS,servo_move:()=>rL,servo_move_angle:()=>JL,servo_set_angle:()=>QS,servo_set_speed:()=>zS,servo_speed_360:()=>qS,syn6288_builtin_voice:()=>NL,syn6288_get_voice:()=>AL,syn6288_set_voice:()=>LL,syn6288_tts_play:()=>DL});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>CA,actuator_dc_motor_stop:()=>SA,actuator_get_led_bright:()=>oA,actuator_get_led_state:()=>pA,actuator_led_bright:()=>_A,actuator_led_brightness:()=>aA,actuator_mixbot_buzzer_on_off:()=>fA,actuator_mixgo_nova_mic_get:()=>XA,actuator_mixgo_nova_mic_set:()=>vA,actuator_mixgo_nova_onboard_music_pitch:()=>GA,actuator_mixgo_nova_onboard_music_stop:()=>UA,actuator_mixgo_nova_play_audio:()=>VA,actuator_mixgo_nova_play_online_audio:()=>BA,actuator_mixgo_nova_record_audio:()=>bA,actuator_mixgo_nova_voice_get:()=>xA,actuator_mixgo_nova_voice_set:()=>yA,actuator_mixgo_zero_led_color:()=>uA,actuator_onboard_neopixel_rgb:()=>hA,actuator_onboard_neopixel_rgb_all:()=>mA,actuator_onboard_neopixel_rgb_show_all_chase:()=>EA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>OA,actuator_onboard_neopixel_write:()=>MA,actuator_stepper_keep:()=>cA,actuator_stepper_stop:()=>gA,analog_ble_keyboard_init:()=>ZA,analog_ble_keyboard_input:()=>eN,analog_ble_keyboard_mouse_init:()=>uN,analog_ble_keyboard_mouse_input:()=>IN,analog_ble_keyboard_mouse_send_battery:()=>dN,analog_ble_keyboard_mouse_str:()=>TN,analog_ble_keyboard_send_battery:()=>nN,analog_ble_keyboard_str:()=>iN,analog_ble_mouse_init:()=>sN,analog_ble_mouse_input:()=>pN,analog_ble_mouse_keyboard_input:()=>MN,analog_ble_mouse_send_battery:()=>aN,analog_keyboard_input:()=>WA,analog_keyboard_str:()=>zA,analog_mouse_input:()=>qA,bitbot_motor:()=>YA,bitbot_move:()=>FA,bitbot_stop:()=>PA,ble_keyboard_connect:()=>tN,ble_keyboard_get_mac:()=>$A,ble_keyboard_mouse_connect:()=>lN,ble_keyboard_mouse_get_mac:()=>rN,ble_mouse_connect:()=>oN,ble_mouse_get_mac:()=>_N,cc_number:()=>rA,educore_ble_keyboard_input:()=>LN,educore_ble_sensor_connected:()=>SN,educore_ble_sensor_init:()=>CN,educore_buzzer:()=>hN,educore_buzzer_play_tone:()=>mN,educore_buzzer_play_tone_time:()=>EN,educore_buzzer_stop:()=>ON,educore_neopixel_clear:()=>gN,educore_neopixel_rgb:()=>cN,educore_rgb_light:()=>RN,esp32_music_get_tempo:()=>jL,esp32_music_reset:()=>iA,esp32_music_set_tempo:()=>zL,esp32_onboard_music_pitch:()=>ZL,esp32_onboard_music_pitch_with_time:()=>$L,esp32_onboard_music_play_list:()=>eA,esp32_onboard_music_stop:()=>tA,general_key:()=>JA,general_key_tuple:()=>jA,get_power_output:()=>kA,ledswitch:()=>sA,mixbot_motor:()=>DA,mixbot_motor_status:()=>LA,mixbot_move:()=>AA,mixbot_stop:()=>NA,mouse_key:()=>QA,number:()=>nA,rm_actuator_get_led_bright:()=>dA,rm_actuator_get_led_state:()=>IA,rm_actuator_led_bright:()=>lA,rm_actuator_led_brightness:()=>TA,rm_motor:()=>RA,set_all_power_output:()=>HA,set_power_output:()=>wA,special_key:()=>KA});var q={};t.r(q),t.d(q,{ai_sensor_20object:()=>sD,ai_sensor_ailocal_class:()=>JN,ai_sensor_ailocal_class_result:()=>qN,ai_sensor_ailocal_train:()=>KN,ai_sensor_asr_recognize:()=>$N,ai_sensor_audio_play:()=>zN,ai_sensor_audio_record:()=>QN,ai_sensor_barcode:()=>YN,ai_sensor_circle:()=>VN,ai_sensor_classifier_faces:()=>nD,ai_sensor_color:()=>wN,ai_sensor_color_chases:()=>WN,ai_sensor_color_chases_result:()=>HN,ai_sensor_config:()=>DN,ai_sensor_face:()=>iD,ai_sensor_find_20objects:()=>_D,ai_sensor_find_barcodes:()=>vN,ai_sensor_find_circles:()=>BN,ai_sensor_find_colors:()=>kN,ai_sensor_find_licenseplates:()=>eD,ai_sensor_find_lines:()=>bN,ai_sensor_find_qrcodes:()=>PN,ai_sensor_find_rects:()=>UN,ai_sensor_find_tags:()=>yN,ai_sensor_licenseplate:()=>tD,ai_sensor_line:()=>xN,ai_sensor_qrcode:()=>FN,ai_sensor_qrcode_lite:()=>NN,ai_sensor_rect:()=>GN,ai_sensor_rgb:()=>fN,ai_sensor_tag:()=>XN,ai_sensor_use_uart_init:()=>AN,ai_sensor_yolo_recognize:()=>jN,ai_sensor_yolo_recognize_result:()=>ZN});var Q={};t.r(Q),t.d(Q,{MICROPYTHON_AI_Speech_asr:()=>aD,MICROPYTHON_AI_Speech_unit:()=>pD,MICROPYTHON_AI_client:()=>oD});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>RD,mpython_blynk_app_notify:()=>MD,mpython_blynk_email:()=>cD,mpython_blynk_get_timers:()=>mD,mpython_blynk_on_connected:()=>dD,mpython_blynk_on_disconnected:()=>lD,mpython_blynk_run:()=>TD,mpython_blynk_sensor_data_to_app:()=>OD,mpython_blynk_set_property:()=>gD,mpython_blynk_setup:()=>CD,mpython_blynk_stop_timers:()=>hD,mpython_blynk_sync_virtual:()=>rD,mpython_blynk_terminal_widget_vpin:()=>uD,mpython_blynktimer:()=>ED,mpython_blynktimer_run:()=>ID});var j={};t.r(j),t.d(j,{cc_g1_read_bat:()=>SD,cc_g1_read_joystick:()=>LD,cc_g1_read_key:()=>AD,cc_g1_turnoff:()=>ND});var Z={};t.r(Z),t.d(Z,{ce_go_dc_motor:()=>yD,ce_go_get_led_bright:()=>FD,ce_go_get_led_state:()=>PD,ce_go_hall_attachInterrupt:()=>xD,ce_go_hall_data:()=>VD,ce_go_hall_initialize:()=>bD,ce_go_led_bright:()=>fD,ce_go_led_brightness:()=>YD,ce_go_light_number:()=>DD,ce_go_pin_light:()=>kD,ce_go_pin_near:()=>GD,ce_go_pin_near_line:()=>BD,ce_go_pin_near_state_change:()=>UD,ce_go_stepper_keep:()=>vD,ce_go_stepper_stop:()=>XD,educore_car:()=>HD,educore_car_pin_near:()=>qD,educore_car_pin_near_line:()=>JD,educore_car_stepper_keep:()=>WD,educore_car_stepper_stop:()=>KD,sensor_mixgome_eulerangles:()=>wD});var $={};t.r($),t.d($,{communicate_bluetooth_central_init:()=>Ff,communicate_bluetooth_connect:()=>vf,communicate_bluetooth_disconnect:()=>Xf,communicate_bluetooth_handle:()=>Gf,communicate_bluetooth_is_connected:()=>xf,communicate_bluetooth_mac:()=>yf,communicate_bluetooth_peripheral_init:()=>Pf,communicate_bluetooth_recv:()=>Bf,communicate_bluetooth_recv_only:()=>Vf,communicate_bluetooth_scan:()=>Yf,communicate_bluetooth_send:()=>bf,communicate_espnow_init:()=>Uf,communicate_espnow_init_new:()=>wf,communicate_i2c_available:()=>nf,communicate_i2c_init:()=>jD,communicate_i2c_master_read:()=>ef,communicate_i2c_onboard:()=>QD,communicate_i2c_read:()=>ZD,communicate_i2c_scan:()=>tf,communicate_i2c_write:()=>$D,communicate_ir_recv_init:()=>Rf,communicate_ir_send_init:()=>Lf,communicate_ow_init:()=>Tf,communicate_ow_read:()=>mf,communicate_ow_reset:()=>hf,communicate_ow_scan:()=>Mf,communicate_ow_select:()=>Of,communicate_ow_write:()=>Ef,communicate_spi_buffer:()=>pf,communicate_spi_init:()=>_f,communicate_spi_onboard:()=>zD,communicate_spi_read:()=>af,communicate_spi_read_output:()=>uf,communicate_spi_readinto:()=>rf,communicate_spi_readinto_output:()=>lf,communicate_spi_set:()=>of,communicate_spi_write:()=>df,communicate_spi_write_readinto:()=>If,espnow_radio_channel:()=>qf,espnow_radio_channel_new:()=>zf,espnow_radio_on_off:()=>jf,espnow_radio_rec:()=>$f,espnow_radio_recv:()=>eF,espnow_radio_recv_certain_msg:()=>iF,espnow_radio_recv_certain_msg_new:()=>sF,espnow_radio_recv_msg:()=>tF,espnow_radio_recv_new:()=>nF,espnow_radio_send:()=>Zf,espnow_radio_txpower:()=>Qf,i2c_slave_onreceive:()=>sf,internal_variable:()=>cf,ir_recv_timeout:()=>Sf,ir_transmit_busy:()=>ff,ir_transmit_conventional_data:()=>Af,ir_transmit_raw_code:()=>Df,ir_transmit_study_code:()=>Nf,ir_whether_recv:()=>Cf,lora_init:()=>_F,lora_packet:()=>oF,lora_recv:()=>aF,lora_send:()=>pF,network_espnow_info:()=>Hf,network_espnow_mac:()=>kf,network_espnow_recv:()=>Wf,network_espnow_recv_handle:()=>Jf,network_espnow_send:()=>Kf,recv_fun:()=>gf,urequests_attribute:()=>rF,urequests_get:()=>uF,urequests_method:()=>lF});var tt={};t.r(tt),t.d(tt,{display_animate:()=>xF,display_circle:()=>bF,display_color_seclet:()=>qF,display_draw_4strings:()=>fF,display_fill:()=>yF,display_lcd_use_i2c_init:()=>tP,display_line:()=>YF,display_line_arbitrarily:()=>FF,display_matrix_extern_bright_point:()=>gF,display_matrix_extern_bright_screen:()=>SF,display_matrix_extern_clear:()=>OF,display_matrix_extern_get_pixel:()=>cF,display_matrix_extern_get_screen_pixel:()=>CF,display_matrix_extern_image_builtins:()=>LF,display_matrix_extern_scroll_string:()=>mF,display_matrix_extern_scroll_string_delay:()=>EF,display_matrix_extern_shift:()=>RF,display_matrix_extern_show_frame_string:()=>MF,display_matrix_extern_show_frame_string_delay:()=>hF,display_matrix_extern_show_image:()=>IF,display_matrix_extern_show_image_or_string_delay:()=>TF,display_matrix_use_i2c_init:()=>dF,display_oled_drawPixel:()=>GF,display_oled_showBitmap:()=>BF,display_oled_use_i2c_init:()=>_P,display_onoff:()=>vF,display_rect:()=>PF,display_tm1650_power:()=>wF,display_tm1650_set_brightness:()=>WF,display_tm1650_show_dot:()=>HF,display_tm1650_show_num:()=>kF,display_tm_use_i2c_init:()=>UF,display_triangle:()=>VF,display_use_i2c_init:()=>DF,extern_oled_bright_point:()=>mP,extern_oled_clear:()=>TP,extern_oled_get_pixel:()=>hP,extern_oled_hvline:()=>OP,extern_oled_line:()=>RP,extern_oled_scroll_string:()=>dP,extern_oled_scroll_string_delay:()=>IP,extern_oled_shape_rect:()=>EP,extern_oled_shift:()=>MP,extern_oled_show_frame_string:()=>rP,extern_oled_show_frame_string_delay:()=>lP,extern_oled_show_image:()=>oP,extern_oled_show_image_or_string_delay:()=>uP,extern_oled_show_image_xy:()=>pP,extern_oled_show_string:()=>aP,image_shift:()=>XF,lcd_backlight:()=>nP,lcd_clear:()=>sP,lcd_print_string:()=>iP,lcd_show_image_or_string_delay:()=>eP,matrix_extern_image_arithmetic:()=>AF,matrix_extern_image_invert:()=>NF,tft_fill:()=>ZF,tft_line_arbitrarily:()=>$F,tft_scroll_string_delay:()=>jF,tft_show_frame_string_delay:()=>zF,tft_show_image_or_string_delay:()=>QF,tft_show_image_xy:()=>JF,tft_use_spi_init:()=>KF});var et={};t.r(et),t.d(et,{bitbot_display_image_create:()=>sY,display_bright_point:()=>yP,display_bright_screen:()=>bP,display_clear:()=>FP,display_get_pixel:()=>XP,display_get_screen_pixel:()=>xP,display_image_builtins:()=>NP,display_image_builtins_all:()=>DP,display_image_create:()=>fP,display_scroll_string:()=>LP,display_scroll_string_delay:()=>AP,display_shift:()=>vP,display_show_frame_string:()=>CP,display_show_frame_string_delay:()=>SP,display_show_image:()=>cP,display_show_image_or_string_delay:()=>gP,draw_pointer:()=>DY,image_arithmetic:()=>PP,image_invert:()=>YP,mixbot_display_bright_screen:()=>iY,mixbot_display_get_ambientbright:()=>eY,mixbot_display_get_screen_pixel:()=>tY,mixbot_display_image_create:()=>$P,mixbot_display_rotate:()=>nY,mixgo_display_image_create_new:()=>UP,mixgome_display_font:()=>GP,mixgome_display_image_create:()=>VP,mixgomini_display_image_create:()=>BP,mpython_display_hvline:()=>jP,mpython_display_line:()=>ZP,mpython_display_shape_rect:()=>zP,mpython_pbm_image:()=>wP,onboard_oled_bright_point:()=>QP,onboard_oled_scroll_string_delay:()=>qP,onboard_oled_show_frame_string_delay:()=>JP,onboard_oled_show_image:()=>kP,onboard_oled_show_image_or_string_delay:()=>KP,onboard_oled_show_image_xy:()=>HP,onboard_oled_show_string:()=>WP,onboard_tft_bright_point:()=>EY,onboard_tft_bright_screen:()=>RY,onboard_tft_clear:()=>MY,onboard_tft_clock_clear:()=>AY,onboard_tft_clock_draw:()=>LY,onboard_tft_clock_get_rtctime:()=>CY,onboard_tft_clock_init:()=>gY,onboard_tft_clock_set_time:()=>SY,onboard_tft_display_hvline:()=>IY,onboard_tft_display_line:()=>TY,onboard_tft_display_shape_circle:()=>NY,onboard_tft_display_shape_rect:()=>dY,onboard_tft_fill:()=>cY,onboard_tft_get_pixel:()=>mY,onboard_tft_get_screen_pixel:()=>OY,onboard_tft_scroll_string:()=>rY,onboard_tft_scroll_string_delay:()=>lY,onboard_tft_shift:()=>hY,onboard_tft_show_frame_string:()=>aY,onboard_tft_show_frame_string_delay:()=>uY,onboard_tft_show_image:()=>_Y,onboard_tft_show_image_or_string_delay:()=>pY,onboard_tft_show_image_xy:()=>oY});var it={};t.r(it),t.d(it,{factory_block:()=>xY,factory_block_return:()=>bY,factory_block_return_with_textarea:()=>BY,factory_block_with_textarea:()=>VY,factory_callMethod_noreturn:()=>XY,factory_callMethod_return:()=>yY,factory_declare:()=>vY,factory_from_import:()=>fY,factory_function_noreturn:()=>PY,factory_function_return:()=>YY,factory_import:()=>FY,folding_block:()=>GY});var nt={};t.r(nt),t.d(nt,{inout_analog_atten:()=>ev,inout_analog_read:()=>qY,inout_analog_read_init:()=>tv,inout_analog_write:()=>WY,inout_analog_write_init:()=>$Y,inout_analog_write_set:()=>KY,inout_digital_init:()=>jY,inout_digital_read:()=>kY,inout_digital_write:()=>wY,inout_highlow:()=>UY,inout_pin_attachInterrupt:()=>zY,inout_pin_pressed:()=>QY,inout_pin_pressed_init:()=>iv,inout_pwm_analog_write:()=>HY,inout_pwm_analog_write_init:()=>ZY,inout_pwm_analog_write_set_freq:()=>JY});var st={};t.r(st),t.d(st,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>cv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Ov,IOT_EMQX_PING:()=>gv,IOT_FORMATTING:()=>mv,IOT_FORMAT_STRING:()=>Ev,IOT_MIXIO_NTP:()=>Cv,IOT_MIXIO_PUBLISH:()=>rv,IOT_MIXIO_SUBSCRIBE:()=>lv,iot_client_onboard:()=>Sv,iot_http_client:()=>Lv,iot_http_data:()=>Av,iot_mixio_check:()=>Tv,iot_mixio_connect:()=>uv,iot_mixio_connect_only:()=>Iv,iot_mixio_disconnect:()=>dv,iot_mixio_format_msg:()=>hv,iot_mixio_format_topic:()=>Mv,iot_mixly_key:()=>Rv,iot_mqtt_client:()=>Nv,iot_mqtt_data:()=>Dv,iot_onenet_check:()=>pv,iot_onenet_connect:()=>sv,iot_onenet_disconnect:()=>_v,iot_onenet_publish:()=>av,iot_onenet_publish_dict:()=>ov,iot_wifi_connect:()=>nv});var _t={};t.r(_t),t.d(_t,{educore_mqtt_connect:()=>_X,educore_mqtt_connect_success:()=>uX,educore_mqtt_subscribe_message:()=>oX,educore_mqtt_topic_publish:()=>aX,educore_mqtt_topic_subscribe:()=>pX,educore_wifi_connect:()=>sX,network_ap_connect:()=>bv,network_connect:()=>Fv,network_get_connect:()=>Yv,network_get_wifi:()=>xv,network_init:()=>fv,network_is_active:()=>yv,network_open:()=>Xv,network_scan:()=>Vv,network_server:()=>Bv,network_socket_accept:()=>Hv,network_socket_bind:()=>Uv,network_socket_close:()=>Qv,network_socket_connect:()=>wv,network_socket_init:()=>Gv,network_socket_listen:()=>kv,network_socket_receive:()=>Wv,network_socket_receive_from:()=>Jv,network_socket_send:()=>Kv,network_socket_send_to:()=>qv,network_stop:()=>vv,network_wifi_connect:()=>Pv,ntptime_address:()=>tX,ntptime_time:()=>$v,requests_attribute:()=>jv,requests_attribute2:()=>iX,requests_get:()=>zv,requests_get2:()=>eX,requests_method:()=>Zv,requests_post:()=>nX});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>YX,CI130X_GET_THE_RECOGNIZED_CMD:()=>PX,CI130X_GET_WHETHER_IDENTIFY:()=>FX,CI130X_IDENTIFY_AND_SAVE:()=>fX,CI130X_SET_SYSTEM_CMD:()=>vX,HCSR04:()=>uy,PS2_Button:()=>dy,PS2_Buttons:()=>Iy,PS2_Buttons_new:()=>cy,PS2_State:()=>Ty,PS2_init:()=>ry,PS2_init_new:()=>Oy,PS2_stk:()=>My,PS2_stk_new:()=>gy,PS2_vibration:()=>ly,PS2_vibration_new:()=>Ry,RTC_get_time:()=>my,RTC_set_date:()=>mX,RTC_set_datetime:()=>hy,RTC_set_time:()=>hX,camera_sensor_init:()=>Zy,camera_sensor_result:()=>$y,educore_body_sensor:()=>wy,educore_button_sensor_extern:()=>Ky,educore_camera_sensor:()=>jy,educore_infrared_sensor:()=>Wy,educore_soilhum_sensor:()=>ky,educore_temp_sensor:()=>zy,educore_temphum_sensor:()=>Hy,educore_ultrasonic_sensor:()=>qy,esp32_s2_weather_init:()=>_y,esp32_s2_weather_rain:()=>py,esp32_s2_weather_wd:()=>oy,esp32_s2_weather_ws:()=>ay,extern_rfid_read:()=>JX,extern_rfid_readcontent:()=>QX,extern_rfid_readid:()=>qX,extern_rfid_status:()=>ZX,extern_rfid_write:()=>zX,extern_rfid_write_return:()=>jX,gnss_get_data:()=>Ly,gnss_have_data:()=>Ay,interaction_whether_to_interaction:()=>NX,interaction_whether_to_interaction_SANT:()=>DX,mixbot_sensor_extern_get_addr:()=>yy,mixbot_sensor_extern_set_addr:()=>xy,pm25_get_data:()=>Sy,radar_set_DETECTION_THRESHOLD:()=>LX,radar_set_DETECTION_THRESHOLD_SANT:()=>AX,robot_button_extern_get_value:()=>Ny,robot_color_extern_get_value:()=>Yy,robot_infrared_extern_get_value:()=>fy,robot_infrared_extern_grey_get_value:()=>Fy,robot_potentiometer_extern_get_value:()=>Py,robot_sonar_extern_get_value:()=>vy,robot_sonar_extern_led:()=>Xy,robot_touch_extern_get_value:()=>Dy,sensor_APDS9960_extern:()=>yX,sensor_DS18X20:()=>Uy,sensor_LTR308_extern:()=>xX,sensor_LTR390UV_extern:()=>UX,sensor_MAX30102_extern:()=>XX,sensor_QMC5883L_extern:()=>wX,sensor_VL530LX_extern:()=>WX,sensor_aht11_extern:()=>HX,sensor_bmp:()=>gX,sensor_dht11:()=>Ey,sensor_distance_hrsc04:()=>MX,sensor_hp203_extern:()=>bX,sensor_ltr381_extern:()=>BX,sensor_mixgo_extern_button_attachInterrupt:()=>IX,sensor_mixgo_extern_button_get_presses:()=>dX,sensor_mixgo_extern_button_is_pressed:()=>rX,sensor_mixgo_extern_button_was_pressed:()=>lX,sensor_mixgo_extern_light:()=>EX,sensor_mixgo_extern_pin_near:()=>RX,sensor_mixgo_extern_sound:()=>OX,sensor_mixgoce_hot_wheel_degrees:()=>sy,sensor_mixgoce_hot_wheel_is_touched:()=>ny,sensor_mpu9250_attachGestureInterrupt:()=>TX,sensor_read_humiture:()=>Jy,sensor_rtc_init:()=>cX,sensor_sht:()=>CX,sensor_shtc3_extern:()=>kX,sensor_spl06_001_extern:()=>VX,sensor_ucs12071_extern:()=>GX,sensor_use_i2c_init:()=>SX,sensor_use_spi_init:()=>KX,sensor_use_uart_init:()=>Cy,sensor_weather_solo_init:()=>by,sensor_weather_solo_rain:()=>Gy,sensor_weather_solo_wd:()=>Vy,sensor_weather_solo_ws:()=>By,sensor_weigh_init:()=>tx,ultrasonic_sensor_read_distance:()=>Qy,weather_data:()=>$X,weather_have_data:()=>ty,weather_set_label:()=>iy,weather_uart_mixio:()=>ey,weigh_sensor_get_weight:()=>ex});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>$b,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Zb,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>jb,CI130X_IDENTIFY_AND_SAVE_SANT:()=>zb,CI130X_SET_SYSTEM_CMD_SANT:()=>tV,HCSR04:()=>rx,bitbot_als_num:()=>Fb,dht11:()=>Vb,educore_button_sensor:()=>Wb,educore_button_was_pressed:()=>Kb,educore_gyroscope_sensor:()=>wb,educore_gyroscope_sensor_read:()=>kb,educore_gyroscope_sensor_shake:()=>Hb,educore_light_sensor:()=>Ub,educore_rfid_sensor:()=>Jb,educore_rfid_sensor_scan:()=>qb,educore_rfid_sensor_scan_data:()=>Qb,educore_voice_sensor:()=>Bb,number1:()=>lx,number2:()=>dx,number3:()=>Ix,number4:()=>Tx,number5:()=>Mx,number6:()=>hx,number7:()=>mx,onboard_RTC_get_time:()=>pb,onboard_RTC_get_time_str:()=>rb,onboard_RTC_get_timestamp:()=>ab,onboard_RTC_set_datetime:()=>_b,onboard_RTC_settime_string:()=>ob,onboard_RTC_timestamp_totuple:()=>ub,rfid_readcontent:()=>vx,rfid_readid:()=>Yx,rfid_write:()=>Xx,rfid_write_return:()=>yx,sensor_LTR308:()=>Nx,sensor_adxl345_get_acceleration:()=>Hx,sensor_aht11:()=>Fx,sensor_bitbot_ALS:()=>fb,sensor_button_get_presses:()=>vb,sensor_button_is_pressed:()=>Pb,sensor_button_was_pressed:()=>Yb,sensor_compass_reset:()=>zx,sensor_ds18x20:()=>Lx,sensor_eulerangles:()=>bx,sensor_get_acceleration:()=>xx,sensor_get_temperature:()=>Px,sensor_hp203:()=>fx,sensor_light:()=>bb,sensor_lm35:()=>Ax,sensor_mixbot_get_gyro:()=>Db,sensor_mixbot_patrol_calibrate:()=>Lb,sensor_mixbot_patrol_value:()=>Ab,sensor_mixbot_temperature:()=>Nb,sensor_mixgo_LTR308:()=>gx,sensor_mixgo_button_attachInterrupt:()=>_x,sensor_mixgo_button_get_presses:()=>sx,sensor_mixgo_button_is_pressed:()=>ix,sensor_mixgo_button_was_pressed:()=>nx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Ib,sensor_mixgo_cc_mmc5603_get_angle:()=>db,sensor_mixgo_cc_mmc5603_get_magnetic:()=>lb,sensor_mixgo_light:()=>xb,sensor_mixgo_nova_LTR308:()=>Sx,sensor_mixgo_nova_pin_near:()=>cx,sensor_mixgo_pin_near:()=>Rx,sensor_mixgo_pin_near_double:()=>Ox,sensor_mixgo_pin_near_single:()=>Ex,sensor_mixgo_pin_pressed:()=>wx,sensor_mixgo_sant_color:()=>Cx,sensor_mixgo_touch_slide:()=>Ux,sensor_mixgocar42_button_attachInterrupt:()=>ux,sensor_mixgocar42_button_get_presses:()=>ax,sensor_mixgocar42_button_is_pressed:()=>ox,sensor_mixgocar42_button_was_pressed:()=>px,sensor_mixgocar_battery_left:()=>Sb,sensor_mixgocar_pin_near:()=>gb,sensor_mixgocar_pin_near_line:()=>cb,sensor_mixgocar_pin_near_state_change:()=>Cb,sensor_mixgoce_pin_pressed:()=>Gx,sensor_mixgoce_temperature:()=>Mb,sensor_mixgome_temperature:()=>Tb,sensor_mpu9250_calibrate_compass:()=>Jx,sensor_mpu9250_field_strength:()=>Qx,sensor_mpu9250_gesture:()=>Vx,sensor_mpu9250_get_acceleration:()=>Bx,sensor_mpu9250_get_gyro:()=>Kx,sensor_mpu9250_get_magnetic:()=>Wx,sensor_mpu9250_temperature:()=>qx,sensor_mpython_pin_pressed:()=>kx,sensor_mpython_qmi8658_get_gyro:()=>hb,sensor_mpython_qmi8658_temperature:()=>mb,sensor_onboard_compass_reset:()=>sb,sensor_onboard_mpu9250_calibrate_compass:()=>eb,sensor_onboard_mpu9250_field_strength:()=>nb,sensor_onboard_mpu9250_gesture:()=>jx,sensor_onboard_mpu9250_get_acceleration:()=>Zx,sensor_onboard_mpu9250_get_gyro:()=>tb,sensor_onboard_mpu9250_get_magnetic:()=>$x,sensor_onboard_mpu9250_temperature:()=>ib,sensor_pin_near:()=>yb,sensor_pin_pressed:()=>Xb,sensor_read:()=>Gb,sensor_rm_acc:()=>Rb,sensor_rm_battery_left:()=>Ob,sensor_rm_pin_near_double:()=>Eb,sensor_sound:()=>Dx});var at={};t.r(at),t.d(at,{serial_any:()=>_V,serial_print:()=>eV,serial_print_byte:()=>iV,serial_print_hex:()=>sV,serial_println:()=>nV,serial_read_from_ai:()=>hV,serial_readline:()=>pV,serial_readstr:()=>oV,serial_send_to_ai:()=>MV,serial_softserial:()=>aV,serial_softserial_new:()=>uV,system_input:()=>rV,system_print:()=>lV,system_print_end:()=>IV,system_print_inline:()=>dV,system_print_many:()=>TV});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>DV,Timer_init:()=>kV,base_delay:()=>KV,controls_delay:()=>vV,controls_delay_new:()=>XV,controls_end_program:()=>FV,controls_millis:()=>fV,controls_uname:()=>YV,reset:()=>PV,system_bitbot_shutdown:()=>wV,system_device_name:()=>AV,system_device_serial_number:()=>NV,system_event_bus_source:()=>SV,system_event_bus_value:()=>LV,system_machine_reset:()=>UV,system_on_event:()=>cV,system_raise_event:()=>RV,system_reset:()=>EV,system_run_in_background:()=>mV,system_ticks_diff:()=>bV,system_timer:()=>xV,system_timer_init:()=>VV,system_timestamp:()=>gV,system_value:()=>CV,system_wait:()=>OV,system_wdt_feed:()=>GV,system_wdt_init:()=>BV,time_ticks_diff:()=>WV,timer:()=>yV,timer2:()=>HV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>_B,Air_now_content:()=>ZV,Geo_moon_content:()=>pB,Geo_sun_content:()=>oB,Life_suggestion_content:()=>tB,Location_search_content:()=>iB,Tide_daily_content:()=>eB,WEATHER_DAILY:()=>qV,WEATHER_HOUR:()=>QV,WEATHER_NOW:()=>JV,Weather_alarm_content:()=>$V,Weather_daily:()=>nB,Weather_daily_content:()=>sB,Weather_now:()=>zV,Weather_now_content:()=>jV});var lt={};t.r(lt),t.d(lt,{controls_pin_attachInterrupt:()=>AB,inout_analog_atten:()=>hB,inout_analog_write:()=>TB,inout_analog_write_init:()=>RB,inout_analog_write_set:()=>MB,inout_analog_write_set_freq:()=>gB,inout_digital_init:()=>OB,inout_digital_read:()=>IB,inout_digital_write:()=>dB,inout_highlow:()=>lB,inout_pinMode:()=>CB,inout_pin_attachInterrupt:()=>EB,inout_pin_pressed:()=>mB,inout_pin_pressed_init:()=>cB,pin_pressed:()=>LB,pin_pressed_init:()=>SB});var dt={};t.r(dt),t.d(dt,{mini_g2_aht11:()=>DB,mini_g2_hp203:()=>fB,mini_g2_rfid_readcontent:()=>YB,mini_g2_rfid_readid:()=>PB,mini_g2_rfid_status:()=>yB,mini_g2_rfid_write:()=>vB,mini_g2_rfid_write_outcome:()=>XB,mini_g2_varistor:()=>FB});var It={};t.r(It),t.d(It,{me_go_dc_motor:()=>HB,me_go_get_led_bright:()=>BB,me_go_get_led_state:()=>GB,me_go_hall_attachInterrupt:()=>WB,me_go_hall_data:()=>JB,me_go_hall_initialize:()=>KB,me_go_led_bright:()=>VB,me_go_led_brightness:()=>UB,me_go_light_number:()=>bB,me_go_pin_light:()=>ZB,me_go_pin_near:()=>QB,me_go_pin_near_line:()=>qB,me_go_pin_near_state_change:()=>zB,me_go_stepper_keep:()=>wB,me_go_stepper_stop:()=>kB,sensor_mixgome_eulerangles:()=>jB});var Tt={};t.r(Tt),t.d(Tt,{analog_input:()=>pG,analog_output:()=>uG,espnow_channel:()=>sG,haskylens_model:()=>_G,i2c_A_pin:()=>rG,i2c_B_pin:()=>lG,pins_analog:()=>hG,pins_analog_pin:()=>mG,pins_axis:()=>XG,pins_brightness:()=>yG,pins_builtinimg:()=>NG,pins_builtinimg_extern:()=>DG,pins_button:()=>RG,pins_buttonB:()=>cG,pins_dac:()=>EG,pins_dac_pin:()=>OG,pins_digital:()=>tG,pins_digital_dot:()=>kG,pins_digital_pin:()=>eG,pins_exlcdh:()=>YG,pins_exlcdv:()=>vG,pins_imglist:()=>fG,pins_input_pin:()=>iG,pins_one_more:()=>wG,pins_output_pin:()=>nG,pins_playlist:()=>FG,pins_playlist_extern:()=>PG,pins_pwm:()=>gG,pins_pwm_pin:()=>CG,pins_radio_datarate:()=>UG,pins_radio_power:()=>GG,pins_serial:()=>AG,pins_tone_notes:()=>BG,pins_touch:()=>LG,pins_touch_pin:()=>SG,pins_tts_bgmusic:()=>VG,pins_tts_builtin_music:()=>bG,pins_tts_voice:()=>xG,pwm_input:()=>oG,pwm_output:()=>aG,spi_A_pin:()=>dG,spi_B_pin:()=>IG,spi_C_pin:()=>TG,spi_D_pin:()=>MG});var Mt={};t.r(Mt),t.d(Mt,{inout_analog_atten:()=>$G,inout_analog_write:()=>JG,inout_analog_write_init:()=>ZG,inout_analog_write_set:()=>qG,inout_digital_init:()=>jG,inout_digital_read:()=>KG,inout_digital_write:()=>WG,inout_highlow:()=>HG,inout_pin_attachInterrupt:()=>zG,inout_pin_pressed:()=>QG,inout_pin_pressed_init:()=>tU});var ht={};t.r(ht),t.d(ht,{mini_g2_aht11:()=>eU,mini_g2_hp203:()=>iU,mini_g2_rfid_readcontent:()=>_U,mini_g2_rfid_readid:()=>sU,mini_g2_rfid_status:()=>aU,mini_g2_rfid_write:()=>oU,mini_g2_rfid_write_outcome:()=>pU,mini_g2_varistor:()=>nU});var mt={};t.r(mt),t.d(mt,{me_go_dc_motor:()=>hU,me_go_get_led_bright:()=>lU,me_go_get_led_state:()=>dU,me_go_hall_attachInterrupt:()=>mU,me_go_hall_data:()=>OU,me_go_hall_initialize:()=>EU,me_go_led_bright:()=>rU,me_go_led_brightness:()=>IU,me_go_light_number:()=>uU,me_go_pin_light:()=>SU,me_go_pin_near:()=>cU,me_go_pin_near_line:()=>RU,me_go_pin_near_state_change:()=>gU,me_go_stepper_keep:()=>TU,me_go_stepper_stop:()=>MU,sensor_mixgome_eulerangles:()=>CU});var Et={};t.r(Et),t.d(Et,{analog_input:()=>XU,analog_output:()=>xU,espnow_channel:()=>YU,haskylens_model:()=>vU,i2c_A_pin:()=>bU,i2c_B_pin:()=>VU,pins_analog:()=>HU,pins_analog_pin:()=>kU,pins_axis:()=>sw,pins_brightness:()=>pw,pins_builtinimg:()=>$U,pins_builtinimg_extern:()=>tw,pins_button:()=>AU,pins_buttonB:()=>NU,pins_dac:()=>qU,pins_dac_pin:()=>JU,pins_digital:()=>LU,pins_digital_dot:()=>Mw,pins_digital_pin:()=>DU,pins_exlcdh:()=>_w,pins_exlcdv:()=>ow,pins_imglist:()=>ew,pins_input_pin:()=>fU,pins_interrupt:()=>jU,pins_one_more:()=>Tw,pins_output_pin:()=>FU,pins_playlist:()=>iw,pins_playlist_extern:()=>nw,pins_pwm:()=>KU,pins_pwm_input:()=>PU,pins_pwm_pin:()=>WU,pins_radio_datarate:()=>Iw,pins_radio_power:()=>dw,pins_serial:()=>ZU,pins_tone_notes:()=>lw,pins_touch:()=>zU,pins_touch_pin:()=>QU,pins_tts_bgmusic:()=>rw,pins_tts_builtin_music:()=>uw,pins_tts_voice:()=>aw,pwm_output:()=>yU,spi_A_pin:()=>BU,spi_B_pin:()=>GU,spi_C_pin:()=>UU,spi_D_pin:()=>wU});const Ot=Blockly,Rt=Mixly,ct={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},gt=ct; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Ft,controls_typeLists:()=>Pt,lists_zip:()=>Yt,lists_zip_container:()=>vt,lists_zip_item:()=>Xt,unpack_iterable_object:()=>yt,variables_change:()=>Dt,variables_get:()=>At,variables_global:()=>ft,variables_set:()=>Nt});var i={};t.r(i),t.d(i,{base_setup:()=>Vt,controls_delay:()=>Bt,controls_end_program:()=>Gt,controls_except:()=>$t,controls_finally:()=>te,controls_flow_statements:()=>Kt,controls_for:()=>Jt,controls_forEach:()=>kt,controls_for_range:()=>qt,controls_if:()=>Ut,controls_if_else:()=>jt,controls_if_elseif:()=>zt,controls_if_if:()=>Qt,controls_lambda:()=>ie,controls_main:()=>bt,controls_pass:()=>ne,controls_range:()=>wt,controls_repeat_ext:()=>ee,controls_thread:()=>se,controls_try:()=>Zt,controls_try_finally:()=>Wt,controls_whileUntil:()=>Ht,datetime_fromtimestamp:()=>re,do_while:()=>_e,garbage_collection:()=>oe,gene_unique_identifier:()=>le,get_mem_alloc:()=>pe,get_mem_free:()=>ae,get_unique_identifier:()=>ue});var n={};t.r(n),t.d(n,{base_map:()=>Ye,generate_cartesian_product:()=>Xe,math_arithmetic:()=>he,math_bit:()=>Ee,math_constant:()=>Te,math_constant_mp:()=>Me,math_constrain:()=>Le,math_dec:()=>Re,math_indexer_number:()=>Ne,math_map:()=>Ae,math_max_min:()=>ge,math_number:()=>Ie,math_number_base_conversion:()=>Ce,math_random:()=>Se,math_random_seed:()=>De,math_round:()=>fe,math_selfcalcu:()=>me,math_to_int:()=>ce,math_trig:()=>Oe,text_to_number:()=>Fe,text_to_number_skulpt:()=>Pe,turn_to_int:()=>ve});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ge,char_to_ascii:()=>Ue,number_to_text:()=>we,os_system:()=>Ii,text:()=>xe,text_capital:()=>je,text_center:()=>Ze,text_char:()=>Ve,text_char_at:()=>We,text_char_at2:()=>He,text_char_at3:()=>ui,text_compareTo:()=>ai,text_compare_to:()=>ze,text_create_with_container:()=>_i,text_create_with_item:()=>oi,text_encode:()=>li,text_equals_starts_ends:()=>Qe,text_eval:()=>di,text_find:()=>$e,text_format:()=>si,text_format_noreturn:()=>ri,text_join:()=>Be,text_join_seq:()=>ti,text_length:()=>ke,text_random_char:()=>Ke,text_replace:()=>ei,text_split:()=>ii,text_strip:()=>ni,text_substring:()=>qe,text_substring2:()=>Je,text_substring3:()=>pi,text_textarea:()=>be});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Qi,content_in_lists:()=>ji,enumerate:()=>zi,list_many_input:()=>xi,list_tolist:()=>Gi,list_tolist2:()=>qi,list_trig:()=>vi,lists_2d_get_col_row_data:()=>Ei,lists_2d_get_data_with_col_row:()=>mi,lists_append_extend:()=>Si,lists_change_to:()=>yi,lists_change_to_general:()=>Vi,lists_clear:()=>fi,lists_create_with:()=>Oi,lists_create_with2:()=>Ui,lists_create_with_container:()=>ci,lists_create_with_item:()=>gi,lists_create_with_noreturn:()=>bi,lists_create_with_text:()=>Ri,lists_create_with_text2:()=>wi,lists_del_general:()=>Bi,lists_find:()=>Yi,lists_getIndex3:()=>ki,lists_getSublist3:()=>Hi,lists_get_index:()=>Mi,lists_get_random_item:()=>Li,lists_get_random_sublist:()=>Ai,lists_get_sublist:()=>hi,lists_insert_value:()=>Ni,lists_insert_value2:()=>Ki,lists_pop:()=>Pi,lists_remove_at:()=>Fi,lists_remove_at2:()=>Ji,lists_reverse:()=>Di,lists_setIndex3:()=>Wi,lists_set_index:()=>Ci,lists_sort:()=>Xi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>Tn,dicts_add_or_change:()=>on,dicts_clear:()=>un,dicts_create_with:()=>$i,dicts_create_with_container:()=>tn,dicts_create_with_item:()=>en,dicts_create_with_noreturn:()=>mn,dicts_deldict:()=>In,dicts_delete:()=>pn,dicts_get:()=>sn,dicts_get_default:()=>_n,dicts_items:()=>rn,dicts_keys:()=>nn,dicts_length:()=>dn,dicts_pop:()=>Mn,dicts_setdefault:()=>hn,dicts_to_json:()=>On,dicts_to_json2:()=>gn,dicts_to_to:()=>cn,dicts_todict:()=>En,dicts_update:()=>an,dicts_values:()=>ln,json_to_dicts:()=>Rn});var p={};t.r(p),t.d(p,{logic_boolean:()=>Dn,logic_compare:()=>Sn,logic_compare_continous:()=>Ln,logic_is:()=>Yn,logic_is_in:()=>Pn,logic_negate:()=>Nn,logic_null:()=>fn,logic_operation:()=>An,logic_tobool:()=>vn,logic_true_or_false:()=>Fn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>is,sdcard_use_spi_init:()=>es,storage_can_write_ornot:()=>wn,storage_change_dir:()=>$n,storage_close_file:()=>Hn,storage_delete_file:()=>Kn,storage_file_seek:()=>Qn,storage_file_tell:()=>qn,storage_file_write:()=>Vn,storage_fileopen:()=>yn,storage_fileopen_new:()=>xn,storage_fileopen_new_encoding:()=>bn,storage_get_a_line:()=>Un,storage_get_contents:()=>Gn,storage_get_contents_without_para:()=>Bn,storage_get_current_dir:()=>zn,storage_get_file_size:()=>Jn,storage_get_filename:()=>kn,storage_is_file:()=>ts,storage_list_all_files:()=>Wn,storage_make_dir:()=>jn,storage_open_file_with_os:()=>Xn,storage_rename:()=>Zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>us,procedures_callreturn:()=>rs,procedures_defnoreturn:()=>_s,procedures_defreturn:()=>os,procedures_ifreturn:()=>ls,procedures_mutatorarg:()=>as,procedures_mutatorcontainer:()=>ps,procedures_return:()=>ds});var r={};t.r(r),t.d(r,{tuple_change_to:()=>Ss,tuple_create_with:()=>Ts,tuple_create_with_container:()=>Ms,tuple_create_with_item:()=>hs,tuple_create_with_noreturn:()=>Ds,tuple_create_with_text2:()=>ms,tuple_create_with_text_return:()=>Es,tuple_del:()=>cs,tuple_find:()=>Ls,tuple_getIndex:()=>Os,tuple_getSublist:()=>Ns,tuple_get_random_item:()=>Fs,tuple_get_sublist:()=>fs,tuple_input:()=>Ys,tuple_join:()=>gs,tuple_length:()=>Rs,tuple_max:()=>Cs,tuple_totuple:()=>Ps,tuple_trig:()=>As});var l={};t.r(l),t.d(l,{set_add_discard:()=>ws,set_clear:()=>Bs,set_create_with:()=>Xs,set_create_with_container:()=>ys,set_create_with_item:()=>xs,set_create_with_text_return:()=>Ws,set_length:()=>bs,set_operate:()=>Gs,set_operate_update:()=>Us,set_pop:()=>Vs,set_sub:()=>ks,set_toset:()=>Ks,set_update:()=>Hs});var d={};t.r(d),t.d(d,{html_content:()=>js,html_content_more:()=>Zs,html_document:()=>qs,html_form:()=>t_,html_head_body:()=>zs,html_style:()=>$s,html_style_color:()=>i_,html_style_content:()=>e_,html_text:()=>n_,html_title:()=>Qs});var I={};t.r(I),t.d(I,{attribute_access:()=>m_,function_call:()=>T_,function_call_container:()=>M_,function_call_item:()=>h_,raw_block:()=>o_,raw_empty:()=>a_,raw_expression:()=>p_,raw_table:()=>__,text_comment:()=>u_,text_print_multiple:()=>l_,text_print_multiple_container:()=>d_,text_print_multiple_item:()=>I_,type_check:()=>r_});var T={};t.r(T),t.d(T,{controls_type:()=>g_,controls_typeLists:()=>C_,lists_zip:()=>S_,unpack_iterable_object:()=>L_,variables_change:()=>R_,variables_get:()=>E_,variables_global:()=>c_,variables_set:()=>O_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>y_,base_setup:()=>N_,controls_delay:()=>X_,controls_flow_statements:()=>v_,controls_for:()=>F_,controls_forEach:()=>G_,controls_for_range:()=>P_,controls_if:()=>D_,controls_interrupts:()=>V_,controls_lambda:()=>w_,controls_main:()=>A_,controls_millis:()=>x_,controls_nointerrupts:()=>B_,controls_pass:()=>H_,controls_range:()=>U_,controls_repeat:()=>Z_,controls_repeat_ext:()=>J_,controls_thread:()=>W_,controls_try_finally:()=>f_,controls_whileUntil:()=>Y_,datetime_fromtimestamp:()=>$_,do_while:()=>K_,garbage_collection:()=>q_,gene_unique_identifier:()=>to,get_mem_alloc:()=>Q_,get_mem_free:()=>z_,get_unique_identifier:()=>j_,reset:()=>b_,time_sleep:()=>k_});var h={};t.r(h),t.d(h,{base_map:()=>go,generate_cartesian_product:()=>So,math_arithmetic:()=>_o,math_bit:()=>so,math_constant:()=>io,math_constant_mp:()=>no,math_constrain:()=>Mo,math_dec:()=>uo,math_indexer_number:()=>Eo,math_map:()=>To,math_max_min:()=>lo,math_number:()=>eo,math_number_base_conversion:()=>ho,math_random:()=>Io,math_random_seed:()=>mo,math_round:()=>Oo,math_selfcalcu:()=>oo,math_single:()=>po,math_to_int:()=>ro,math_trig:()=>ao,text_to_number:()=>Ro,text_to_number_skulpt:()=>co,turn_to_int:()=>Co});var m={};t.r(m),t.d(m,{ascii_to_char:()=>fo,char_to_ascii:()=>Fo,number_to_text:()=>Po,os_system:()=>tp,text:()=>Lo,text_capital:()=>Go,text_center:()=>Uo,text_char:()=>No,text_char_at:()=>Xo,text_char_at2:()=>vo,text_char_at3:()=>jo,text_compareTo:()=>zo,text_compare_to:()=>bo,text_encode:()=>Zo,text_equals_starts_ends:()=>xo,text_eval:()=>$o,text_find:()=>wo,text_format:()=>Jo,text_format_noreturn:()=>qo,text_join:()=>Do,text_join_seq:()=>ko,text_length:()=>Yo,text_random_char:()=>yo,text_replace:()=>Ho,text_split:()=>Wo,text_strip:()=>Ko,text_substring:()=>Bo,text_substring2:()=>Vo,text_substring3:()=>Qo,text_textarea:()=>Ao});var E={};t.r(E),t.d(E,{content_in_lists:()=>Xp,enumerate:()=>vp,list_many_input:()=>Rp,list_tolist:()=>Pp,list_tolist2:()=>Yp,list_trig:()=>mp,lists_2d_get_col_row_data:()=>np,lists_2d_get_data_with_col_row:()=>ip,lists_append_extend:()=>ap,lists_change_to:()=>Op,lists_change_to_general:()=>gp,lists_clear:()=>Ip,lists_create_with:()=>sp,lists_create_with2:()=>Sp,lists_create_with_noreturn:()=>cp,lists_create_with_text:()=>_p,lists_create_with_text2:()=>Lp,lists_del_general:()=>Cp,lists_find:()=>Tp,lists_getIndex3:()=>Ap,lists_getSublist3:()=>Np,lists_get_index:()=>op,lists_get_random_item:()=>up,lists_get_random_sublist:()=>rp,lists_get_sublist:()=>ep,lists_insert_value:()=>lp,lists_insert_value2:()=>fp,lists_pop:()=>hp,lists_remove_at:()=>Mp,lists_remove_at2:()=>Fp,lists_reverse:()=>dp,lists_setIndex3:()=>Dp,lists_set_index:()=>pp,lists_sort:()=>Ep});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Jp,dicts_add_or_change:()=>Bp,dicts_clear:()=>wp,dicts_create_with:()=>yp,dicts_create_with_noreturn:()=>zp,dicts_deldict:()=>Kp,dicts_delete:()=>Gp,dicts_get:()=>bp,dicts_get_default:()=>Vp,dicts_items:()=>kp,dicts_keys:()=>xp,dicts_length:()=>Wp,dicts_pop:()=>qp,dicts_setdefault:()=>Qp,dicts_to_json:()=>Zp,dicts_to_json2:()=>ea,dicts_to_to:()=>ta,dicts_todict:()=>jp,dicts_update:()=>Up,dicts_values:()=>Hp,json_to_dicts:()=>$p});var R={};t.r(R),t.d(R,{logic_boolean:()=>oa,logic_compare:()=>ia,logic_compare_continous:()=>na,logic_is:()=>ra,logic_is_in:()=>ua,logic_negate:()=>_a,logic_null:()=>pa,logic_operation:()=>sa,logic_tobool:()=>la,logic_true_or_false:()=>aa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Xa,sdcard_use_spi_init:()=>va,storage_can_write_ornot:()=>Ra,storage_change_dir:()=>Da,storage_close_file:()=>ga,storage_delete_file:()=>Sa,storage_file_seek:()=>Na,storage_file_tell:()=>Aa,storage_file_write:()=>ha,storage_fileopen:()=>Ia,storage_fileopen_new:()=>Ta,storage_fileopen_new_encoding:()=>Ma,storage_get_a_line:()=>Oa,storage_get_contents:()=>Ea,storage_get_contents_without_para:()=>ma,storage_get_current_dir:()=>fa,storage_get_file_size:()=>La,storage_get_filename:()=>ca,storage_is_file:()=>Ya,storage_list_all_files:()=>Ca,storage_make_dir:()=>Fa,storage_open_file_with_os:()=>da,storage_rename:()=>Pa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Va,procedures_callreturn:()=>ba,procedures_defnoreturn:()=>xa,procedures_defreturn:()=>ya,procedures_ifreturn:()=>Ba,procedures_return:()=>Ga});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Qa,tuple_create_with:()=>Ua,tuple_create_with_noreturn:()=>$a,tuple_create_with_text2:()=>wa,tuple_create_with_text_return:()=>ka,tuple_del:()=>Ka,tuple_find:()=>za,tuple_getIndex:()=>Ha,tuple_getSublist:()=>Za,tuple_get_random_item:()=>eu,tuple_get_sublist:()=>tu,tuple_input:()=>nu,tuple_join:()=>Ja,tuple_length:()=>Wa,tuple_max:()=>qa,tuple_totuple:()=>iu,tuple_trig:()=>ja});var S={};t.r(S),t.d(S,{set_add_discard:()=>ru,set_clear:()=>pu,set_create_with:()=>su,set_create_with_text_return:()=>Iu,set_length:()=>_u,set_operate:()=>au,set_operate_update:()=>uu,set_pop:()=>ou,set_sub:()=>lu,set_toset:()=>Tu,set_update:()=>du});var L={};t.r(L),t.d(L,{html_content:()=>Eu,html_content_more:()=>Ou,html_document:()=>Mu,html_form:()=>cu,html_head_body:()=>mu,html_style:()=>Ru,html_style_content:()=>gu,html_text:()=>Cu,html_title:()=>hu});var A={};t.r(A),t.d(A,{attribute_access:()=>Fu,function_call:()=>fu,raw_block:()=>Su,raw_empty:()=>Au,raw_expression:()=>Lu,raw_table:()=>Nu,type_check:()=>Du});var N={};t.r(N),t.d(N,{PIN_init:()=>Pr,actuator_extern_get_led_bright:()=>wu,actuator_extern_get_led_state:()=>ku,actuator_extern_led_bright:()=>Uu,actuator_extern_led_brightness:()=>Hu,actuator_ms32006_dcmotor:()=>$u,actuator_ms32006_init:()=>Zu,actuator_ms32006_stepper:()=>tr,actuator_neopixel_init:()=>er,actuator_neopixel_rgb:()=>ir,actuator_neopixel_rgb_all:()=>nr,actuator_neopixel_write:()=>sr,actuator_use_uart_init:()=>_r,esp32_music_get_tempo_extern:()=>Vu,esp32_music_pitch:()=>Xu,esp32_music_pitch_init:()=>vu,esp32_music_pitch_with_time:()=>yu,esp32_music_play_list:()=>xu,esp32_music_reset_extern:()=>Bu,esp32_music_set_tempo_extern:()=>bu,esp32_music_stop:()=>Gu,mixbot_actuator_extern_get_addr:()=>fr,mixbot_actuator_extern_set_addr:()=>Fr,mixbot_addr_extern:()=>hr,parrot_PIN_init:()=>yr,parrot_move_speed:()=>xr,pin_led_bright:()=>Yr,player_insert_music:()=>lr,player_play_music:()=>rr,player_set_mode:()=>ur,player_set_play:()=>pr,player_set_volume:()=>ar,player_whether_stop:()=>or,robot_led_extern:()=>Rr,robot_led_extern_get_value:()=>cr,robot_motor_extern:()=>mr,robot_motor_extern_get_speed:()=>Er,robot_servo_extern_absolute_run:()=>Lr,robot_servo_extern_get_status:()=>gr,robot_servo_extern_relative_continue:()=>Dr,robot_servo_extern_relative_origin:()=>Ar,robot_servo_extern_relative_run:()=>Nr,robot_servo_extern_stop:()=>Sr,robot_servo_extern_stop_mode:()=>Cr,robot_traffic_light_extern:()=>Or,servo_PIN_init:()=>vr,servo_get_angle:()=>zu,servo_get_speed:()=>ju,servo_init:()=>Wu,servo_move:()=>Ku,servo_move_angle:()=>Xr,servo_set_angle:()=>qu,servo_set_speed:()=>Qu,servo_speed_360:()=>Ju,syn6288_builtin_voice:()=>Tr,syn6288_get_voice:()=>Ir,syn6288_set_voice:()=>dr,syn6288_tts_play:()=>Mr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>Tl,actuator_dc_motor_stop:()=>Ml,actuator_get_led_bright:()=>Ur,actuator_get_led_state:()=>wr,actuator_led_bright:()=>Gr,actuator_led_brightness:()=>kr,actuator_mixbot_buzzer_on_off:()=>Rl,actuator_mixgo_nova_mic_get:()=>Ll,actuator_mixgo_nova_mic_set:()=>Sl,actuator_mixgo_nova_onboard_music_pitch:()=>Pl,actuator_mixgo_nova_onboard_music_stop:()=>Yl,actuator_mixgo_nova_play_audio:()=>fl,actuator_mixgo_nova_play_online_audio:()=>Fl,actuator_mixgo_nova_record_audio:()=>Dl,actuator_mixgo_nova_voice_get:()=>Nl,actuator_mixgo_nova_voice_set:()=>Al,actuator_mixgo_zero_led_color:()=>Hr,actuator_onboard_neopixel_rgb:()=>zr,actuator_onboard_neopixel_rgb_all:()=>jr,actuator_onboard_neopixel_rgb_show_all_chase:()=>$r,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>Zr,actuator_onboard_neopixel_write:()=>tl,actuator_rm_onboard_neopixel_rgb:()=>el,actuator_rm_onboard_neopixel_rgb_all:()=>il,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>nl,actuator_stepper_keep:()=>dl,actuator_stepper_stop:()=>Il,analog_ble_keyboard_init:()=>Wl,analog_ble_keyboard_input:()=>ql,analog_ble_keyboard_mouse_init:()=>id,analog_ble_keyboard_mouse_input:()=>od,analog_ble_keyboard_mouse_send_battery:()=>_d,analog_ble_keyboard_mouse_str:()=>pd,analog_ble_keyboard_send_battery:()=>zl,analog_ble_keyboard_str:()=>Ql,analog_ble_mouse_init:()=>jl,analog_ble_mouse_input:()=>td,analog_ble_mouse_keyboard_input:()=>ad,analog_ble_mouse_send_battery:()=>ed,analog_keyboard_input:()=>xl,analog_keyboard_str:()=>Hl,analog_mouse_input:()=>wl,bitbot_motor:()=>Cl,bitbot_move:()=>cl,bitbot_stop:()=>gl,ble_keyboard_connect:()=>Jl,ble_keyboard_get_mac:()=>Kl,ble_keyboard_mouse_connect:()=>sd,ble_keyboard_mouse_get_mac:()=>nd,ble_mouse_connect:()=>$l,ble_mouse_get_mac:()=>Zl,cc_number:()=>Qr,educore_ble_keyboard_input:()=>Ed,educore_ble_sensor_connected:()=>md,educore_ble_sensor_init:()=>hd,educore_buzzer:()=>ud,educore_buzzer_play_tone:()=>rd,educore_buzzer_play_tone_time:()=>ld,educore_buzzer_stop:()=>dd,educore_neopixel_clear:()=>Md,educore_neopixel_rgb:()=>Td,educore_rgb_light:()=>Id,esp32_music_get_tempo:()=>_l,esp32_music_reset:()=>ol,esp32_music_set_tempo:()=>sl,esp32_onboard_music_pitch:()=>pl,esp32_onboard_music_pitch_with_time:()=>al,esp32_onboard_music_play_list:()=>rl,esp32_onboard_music_stop:()=>ul,general_key:()=>Vl,general_key_tuple:()=>Bl,generalkey_container:()=>Gl,generalkey_create_with_item:()=>Ul,get_power_output:()=>Xl,ledswitch:()=>Br,mixbot_motor:()=>Ol,mixbot_motor_status:()=>hl,mixbot_move:()=>ml,mixbot_stop:()=>El,mouse_key:()=>kl,number:()=>Vr,rm_actuator_get_led_bright:()=>Kr,rm_actuator_get_led_state:()=>Jr,rm_actuator_led_bright:()=>Wr,rm_actuator_led_brightness:()=>qr,rm_motor:()=>ll,set_all_power_output:()=>yl,set_power_output:()=>vl,special_key:()=>bl});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>Zd,ai_sensor_ailocal_class:()=>Ud,ai_sensor_ailocal_class_result:()=>wd,ai_sensor_ailocal_train:()=>Gd,ai_sensor_asr_recognize:()=>Jd,ai_sensor_audio_play:()=>Hd,ai_sensor_audio_record:()=>kd,ai_sensor_barcode:()=>Ad,ai_sensor_circle:()=>Yd,ai_sensor_classifier_faces:()=>jd,ai_sensor_color:()=>xd,ai_sensor_color_chases:()=>Bd,ai_sensor_color_chases_result:()=>Vd,ai_sensor_config:()=>Sd,ai_sensor_face:()=>zd,ai_sensor_find_20objects:()=>$d,ai_sensor_find_barcodes:()=>Nd,ai_sensor_find_circles:()=>vd,ai_sensor_find_colors:()=>bd,ai_sensor_find_licenseplates:()=>Qd,ai_sensor_find_lines:()=>Pd,ai_sensor_find_qrcodes:()=>Cd,ai_sensor_find_rects:()=>yd,ai_sensor_find_tags:()=>fd,ai_sensor_licenseplate:()=>qd,ai_sensor_line:()=>Fd,ai_sensor_qrcode:()=>cd,ai_sensor_qrcode_lite:()=>gd,ai_sensor_rect:()=>Xd,ai_sensor_rgb:()=>Ld,ai_sensor_tag:()=>Dd,ai_sensor_use_uart_init:()=>Rd,ai_sensor_yolo_recognize:()=>Wd,ai_sensor_yolo_recognize_result:()=>Kd});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>iI,MICROPYTHON_AI_Speech_unit:()=>eI,MICROPYTHON_AI_client:()=>tI});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>mI,mpython_blynk_app_notify:()=>rI,mpython_blynk_email:()=>II,mpython_blynk_get_timers:()=>TI,mpython_blynk_on_connected:()=>pI,mpython_blynk_on_disconnected:()=>oI,mpython_blynk_run:()=>uI,mpython_blynk_sensor_data_to_app:()=>hI,mpython_blynk_set_property:()=>dI,mpython_blynk_setup:()=>EI,mpython_blynk_stop_timers:()=>lI,mpython_blynk_sync_virtual:()=>_I,mpython_blynk_terminal_widget_vpin:()=>sI,mpython_blynktimer:()=>MI,mpython_blynktimer_run:()=>aI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>OI,cc_g1_read_bat:()=>RI,cc_g1_read_joystick:()=>cI,cc_g1_read_key:()=>gI,cc_g1_turnoff:()=>CI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>YI,ce_go_get_led_bright:()=>NI,ce_go_get_led_state:()=>DI,ce_go_hall_attachInterrupt:()=>vI,ce_go_hall_data:()=>yI,ce_go_hall_initialize:()=>XI,ce_go_led_bright:()=>AI,ce_go_led_brightness:()=>fI,ce_go_light_number:()=>LI,ce_go_pin_light:()=>GI,ce_go_pin_near:()=>bI,ce_go_pin_near_line:()=>xI,ce_go_pin_near_state_change:()=>VI,ce_go_stepper_keep:()=>FI,ce_go_stepper_stop:()=>PI,educore_car:()=>UI,educore_car_pin_near:()=>WI,educore_car_pin_near_line:()=>HI,educore_car_stepper_keep:()=>wI,educore_car_stepper_stop:()=>kI,sensor_mixgome_eulerangles:()=>BI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>NT,communicate_bluetooth_connect:()=>PT,communicate_bluetooth_disconnect:()=>YT,communicate_bluetooth_handle:()=>bT,communicate_bluetooth_is_connected:()=>XT,communicate_bluetooth_mac:()=>FT,communicate_bluetooth_peripheral_init:()=>DT,communicate_bluetooth_recv:()=>yT,communicate_bluetooth_recv_only:()=>xT,communicate_bluetooth_scan:()=>fT,communicate_bluetooth_send:()=>vT,communicate_espnow_init:()=>VT,communicate_espnow_init_new:()=>BT,communicate_i2c_available:()=>uT,communicate_i2c_init:()=>QI,communicate_i2c_master_read:()=>aT,communicate_i2c_onboard:()=>JI,communicate_i2c_read:()=>zI,communicate_i2c_scan:()=>ZI,communicate_i2c_write:()=>jI,communicate_ir_recv_init:()=>mT,communicate_ir_send_init:()=>gT,communicate_ow_init:()=>lT,communicate_ow_read:()=>IT,communicate_ow_reset:()=>hT,communicate_ow_scan:()=>dT,communicate_ow_select:()=>MT,communicate_ow_write:()=>TT,communicate_spi_buffer:()=>eT,communicate_spi_init:()=>$I,communicate_spi_onboard:()=>qI,communicate_spi_read:()=>iT,communicate_spi_read_output:()=>nT,communicate_spi_readinto:()=>sT,communicate_spi_readinto_output:()=>_T,communicate_spi_set:()=>tT,communicate_spi_write:()=>oT,communicate_spi_write_readinto:()=>pT,espnow_radio_channel:()=>WT,espnow_radio_channel_new:()=>JT,espnow_radio_on_off:()=>qT,espnow_radio_rec:()=>zT,espnow_radio_recv:()=>ZT,espnow_radio_recv_certain_msg:()=>$T,espnow_radio_recv_certain_msg_new:()=>eM,espnow_radio_recv_msg:()=>jT,espnow_radio_recv_new:()=>tM,espnow_radio_send:()=>QT,espnow_radio_txpower:()=>KT,i2c_available:()=>CM,i2c_init:()=>uM,i2c_master_reader2:()=>gM,i2c_read:()=>rM,i2c_scan:()=>dM,i2c_slave_onreceive:()=>rT,i2c_write:()=>lM,internal_variable:()=>ET,ir_recv_timeout:()=>cT,ir_transmit_busy:()=>AT,ir_transmit_conventional_data:()=>CT,ir_transmit_raw_code:()=>LT,ir_transmit_study_code:()=>ST,ir_whether_recv:()=>RT,lora_init:()=>iM,lora_packet:()=>nM,lora_recv:()=>_M,lora_send:()=>sM,network_espnow_info:()=>UT,network_espnow_mac:()=>GT,network_espnow_recv:()=>wT,network_espnow_recv_handle:()=>HT,network_espnow_send:()=>kT,recv_fun:()=>OT,spi_buffer:()=>MM,spi_init:()=>IM,spi_read:()=>hM,spi_read_output:()=>mM,spi_readinto:()=>EM,spi_readinto_output:()=>OM,spi_set:()=>TM,spi_write:()=>RM,spi_write_readinto:()=>cM,urequests_attribute:()=>pM,urequests_get:()=>oM,urequests_method:()=>aM});var y={};t.r(y),t.d(y,{display_animate:()=>$M,display_blink_rate:()=>QM,display_circle:()=>th,display_color_seclet:()=>dh,display_draw_4strings:()=>kM,display_fill:()=>ZM,display_get_screen_image:()=>qM,display_help:()=>ih,display_image_size:()=>HM,display_lcd_use_i2c_init:()=>Eh,display_line:()=>KM,display_line_arbitrarily:()=>JM,display_matrix_extern_bright_point:()=>yM,display_matrix_extern_bright_screen:()=>bM,display_matrix_extern_clear:()=>VM,display_matrix_extern_get_pixel:()=>XM,display_matrix_extern_get_screen_pixel:()=>xM,display_matrix_extern_image_builtins:()=>BM,display_matrix_extern_scroll_string:()=>fM,display_matrix_extern_scroll_string_delay:()=>FM,display_matrix_extern_shift:()=>vM,display_matrix_extern_show_frame_string:()=>PM,display_matrix_extern_show_frame_string_delay:()=>YM,display_matrix_extern_show_image:()=>NM,display_matrix_extern_show_image_or_string_delay:()=>DM,display_matrix_use_i2c_init:()=>AM,display_oled_drawPixel:()=>sh,display_oled_showBitmap:()=>nh,display_oled_use_i2c_init:()=>Ch,display_onoff:()=>jM,display_rect:()=>WM,display_rgb_color:()=>zM,display_tm1650_power:()=>oh,display_tm1650_set_brightness:()=>uh,display_tm1650_show_dot:()=>ah,display_tm1650_show_num:()=>ph,display_tm_use_i2c_init:()=>_h,display_triangle:()=>eh,display_use_i2c_init:()=>wM,extern_oled_bright_point:()=>Xh,extern_oled_clear:()=>yh,extern_oled_get_pixel:()=>vh,extern_oled_hvline:()=>bh,extern_oled_line:()=>Vh,extern_oled_scroll_string:()=>Dh,extern_oled_scroll_string_delay:()=>fh,extern_oled_shape_rect:()=>xh,extern_oled_shift:()=>Yh,extern_oled_show_frame_string:()=>Fh,extern_oled_show_frame_string_delay:()=>Ph,extern_oled_show_image:()=>Sh,extern_oled_show_image_or_string_delay:()=>Nh,extern_oled_show_image_xy:()=>Lh,extern_oled_show_string:()=>Ah,lcd_backlight:()=>ch,lcd_clear:()=>gh,lcd_print_string:()=>Rh,lcd_show_image_or_string_delay:()=>Oh,matrix_extern_image_arithmetic:()=>GM,matrix_extern_image_invert:()=>UM,tft_fill:()=>hh,tft_line_arbitrarily:()=>mh,tft_scroll_string_delay:()=>Th,tft_show_frame_string_delay:()=>Mh,tft_show_image_or_string_delay:()=>Ih,tft_show_image_xy:()=>lh,tft_use_spi_init:()=>rh});var x={};t.r(x),t.d(x,{bitbot_display_image_create:()=>Cm,display_bright_point:()=>$h,display_bright_screen:()=>em,display_clear:()=>im,display_get_pixel:()=>Zh,display_get_screen_pixel:()=>tm,display_image_builtins:()=>Jh,display_image_builtins_all:()=>qh,display_image_create:()=>Kh,display_scroll_string:()=>wh,display_scroll_string_delay:()=>kh,display_shift:()=>jh,display_show_frame_string:()=>Hh,display_show_frame_string_delay:()=>Wh,display_show_image:()=>Gh,display_show_image_or_string_delay:()=>Uh,draw_pointer:()=>Jm,image_arithmetic:()=>Qh,image_invert:()=>zh,mixbot_display_bright_screen:()=>cm,mixbot_display_get_ambientbright:()=>Rm,mixbot_display_get_screen_pixel:()=>Om,mixbot_display_image_create:()=>Em,mixbot_display_rotate:()=>gm,mixgo_display_image_create_new:()=>_m,mixgome_display_font:()=>om,mixgome_display_image_create:()=>nm,mixgomini_display_image_create:()=>sm,mpython_display_hvline:()=>Mm,mpython_display_line:()=>hm,mpython_display_shape_rect:()=>Tm,mpython_pbm_image:()=>mm,onboard_oled_bright_point:()=>Im,onboard_oled_scroll_string_delay:()=>lm,onboard_oled_show_frame_string_delay:()=>dm,onboard_oled_show_image:()=>pm,onboard_oled_show_image_or_string_delay:()=>rm,onboard_oled_show_image_xy:()=>am,onboard_oled_show_string:()=>um,onboard_tft_bright_point:()=>xm,onboard_tft_bright_screen:()=>Bm,onboard_tft_clear:()=>bm,onboard_tft_clock_clear:()=>Wm,onboard_tft_clock_draw:()=>Hm,onboard_tft_clock_get_rtctime:()=>wm,onboard_tft_clock_init:()=>Um,onboard_tft_clock_set_time:()=>km,onboard_tft_display_hvline:()=>Ym,onboard_tft_display_line:()=>vm,onboard_tft_display_shape_circle:()=>Km,onboard_tft_display_shape_rect:()=>Pm,onboard_tft_fill:()=>Gm,onboard_tft_get_pixel:()=>ym,onboard_tft_get_screen_pixel:()=>Vm,onboard_tft_scroll_string:()=>Nm,onboard_tft_scroll_string_delay:()=>Dm,onboard_tft_shift:()=>Xm,onboard_tft_show_frame_string:()=>fm,onboard_tft_show_frame_string_delay:()=>Fm,onboard_tft_show_image:()=>Sm,onboard_tft_show_image_or_string_delay:()=>Am,onboard_tft_show_image_xy:()=>Lm});var b={};t.r(b),t.d(b,{factory_block:()=>sE,factory_block_return:()=>_E,factory_block_return_with_textarea:()=>pE,factory_block_with_textarea:()=>oE,factory_callMethod_noreturn:()=>iE,factory_callMethod_return:()=>nE,factory_create_with_container:()=>Zm,factory_create_with_item:()=>$m,factory_declare:()=>eE,factory_from_import:()=>Qm,factory_function_noreturn:()=>jm,factory_function_return:()=>tE,factory_import:()=>zm,folding_block:()=>aE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>FE,inout_analog_atten:()=>EE,inout_analog_read:()=>mE,inout_analog_read_init:()=>SE,inout_analog_write:()=>TE,inout_analog_write_init:()=>CE,inout_analog_write_set:()=>ME,inout_analog_write_set_freq:()=>NE,inout_digital_init:()=>cE,inout_digital_read:()=>dE,inout_digital_write:()=>lE,inout_highlow:()=>rE,inout_pinMode:()=>AE,inout_pin_attachInterrupt:()=>RE,inout_pin_pressed:()=>OE,inout_pin_pressed_init:()=>LE,inout_pwm_analog_write:()=>IE,inout_pwm_analog_write_init:()=>gE,inout_pwm_analog_write_set_freq:()=>hE,pin_pressed:()=>fE,pin_pressed_init:()=>DE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>tO,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>$E,IOT_EMQX_PING:()=>jE,IOT_FORMATTING:()=>QE,IOT_FORMAT_STRING:()=>zE,IOT_MIXIO_NTP:()=>ZE,IOT_MIXIO_PUBLISH:()=>wE,IOT_MIXIO_SUBSCRIBE:()=>kE,iot_checkonenet:()=>rO,iot_client_onboard:()=>iO,iot_create_with_item:()=>GE,iot_http_client:()=>nO,iot_http_data:()=>sO,iot_mixio_check:()=>KE,iot_mixio_connect:()=>UE,iot_mixio_connect_only:()=>WE,iot_mixio_disconnect:()=>HE,iot_mixio_format_msg:()=>qE,iot_mixio_format_topic:()=>JE,iot_mixly_key:()=>eO,iot_mqtt_client:()=>_O,iot_mqtt_data:()=>oO,iot_onenet_check:()=>yE,iot_onenet_connect:()=>vE,iot_onenet_disconnect:()=>XE,iot_onenet_publish:()=>bE,iot_onenet_publish_dict:()=>xE,iot_onenetconnect:()=>aO,iot_onenetdisconnect:()=>uO,iot_publish:()=>lO,iot_publish_container:()=>VE,iot_publish_item:()=>BE,iot_wifi_connect:()=>YE,iot_wificonnect:()=>pO});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>HO,educore_mqtt_connect_success:()=>qO,educore_mqtt_subscribe_message:()=>WO,educore_mqtt_topic_publish:()=>JO,educore_mqtt_topic_subscribe:()=>KO,educore_wifi_connect:()=>kO,network_ap_connect:()=>gO,network_connect:()=>mO,network_get_connect:()=>OO,network_get_wifi:()=>cO,network_init:()=>IO,network_is_active:()=>MO,network_open:()=>TO,network_scan:()=>hO,network_server:()=>CO,network_socket_accept:()=>DO,network_socket_bind:()=>LO,network_socket_close:()=>vO,network_socket_connect:()=>AO,network_socket_init:()=>SO,network_socket_listen:()=>NO,network_socket_receive:()=>fO,network_socket_receive_from:()=>PO,network_socket_send:()=>FO,network_socket_send_to:()=>YO,network_stop:()=>RO,network_wifi_connect:()=>EO,ntptime_address:()=>VO,ntptime_time:()=>bO,requests_attribute:()=>yO,requests_attribute2:()=>wO,requests_get:()=>XO,requests_get2:()=>GO,requests_method:()=>xO,requests_post:()=>UO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>OR,CI130X_GET_THE_RECOGNIZED_CMD:()=>ER,CI130X_GET_WHETHER_IDENTIFY:()=>mR,CI130X_IDENTIFY_AND_SAVE:()=>hR,CI130X_SET_SYSTEM_CMD:()=>RR,HCSR04:()=>oc,PS2_Button:()=>rc,PS2_Buttons:()=>dc,PS2_Buttons_new:()=>hc,PS2_State:()=>lc,PS2_init:()=>pc,PS2_init_new:()=>Tc,PS2_stk:()=>Ic,PS2_stk_new:()=>mc,PS2_vibration:()=>uc,PS2_vibration_new:()=>Mc,camera_sensor_init:()=>Kc,camera_sensor_result:()=>Jc,educore_body_sensor:()=>xc,educore_button_sensor_extern:()=>Gc,educore_camera_sensor:()=>Wc,educore_infrared_sensor:()=>Bc,educore_soilhum_sensor:()=>bc,educore_temp_sensor:()=>Hc,educore_temphum_sensor:()=>Vc,educore_ultrasonic_sensor:()=>wc,esp32_s2_weather_init:()=>ic,esp32_s2_weather_rain:()=>sc,esp32_s2_weather_wd:()=>nc,esp32_s2_weather_ws:()=>_c,extern_rfid_read:()=>wR,extern_rfid_readcontent:()=>HR,extern_rfid_readid:()=>kR,extern_rfid_status:()=>JR,extern_rfid_write:()=>WR,extern_rfid_write_return:()=>KR,gnss_get_data:()=>cc,gnss_have_data:()=>Rc,interaction_whether_to_interaction:()=>TR,interaction_whether_to_interaction_SANT:()=>MR,mixbot_sensor_extern_get_addr:()=>Dc,mixbot_sensor_extern_set_addr:()=>fc,pm25_get_data:()=>Oc,radar_set_DETECTION_THRESHOLD:()=>dR,radar_set_DETECTION_THRESHOLD_SANT:()=>IR,robot_button_extern_get_value:()=>gc,robot_color_extern_get_value:()=>Nc,robot_infrared_extern_get_value:()=>Sc,robot_infrared_extern_grey_get_value:()=>Lc,robot_potentiometer_extern_get_value:()=>Ac,robot_sonar_extern_get_value:()=>Fc,robot_sonar_extern_led:()=>Pc,robot_touch_extern_get_value:()=>Cc,sensor_APDS9960_extern:()=>gR,sensor_DS18X20:()=>uR,sensor_LTR308_extern:()=>CR,sensor_LTR390UV_extern:()=>AR,sensor_MAX30102_extern:()=>cR,sensor_QMC5883L_extern:()=>YR,sensor_VL530LX_extern:()=>NR,sensor_adxl345_get_acceleration:()=>eR,sensor_aht11_extern:()=>fR,sensor_bmp:()=>pR,sensor_compass_reset:()=>GR,sensor_dht11:()=>nR,sensor_hp203_extern:()=>FR,sensor_light_level:()=>iR,sensor_lm35:()=>rR,sensor_ltr381_extern:()=>SR,sensor_mixgo_extern_button_attachInterrupt:()=>$O,sensor_mixgo_extern_button_get_presses:()=>ZO,sensor_mixgo_extern_button_is_pressed:()=>zO,sensor_mixgo_extern_button_was_pressed:()=>jO,sensor_mixgo_extern_light:()=>sR,sensor_mixgo_extern_pin_near:()=>oR,sensor_mixgo_extern_sound:()=>_R,sensor_mixgoce_hot_wheel_degrees:()=>ec,sensor_mixgoce_hot_wheel_is_touched:()=>tc,sensor_mpu9250_attachGestureInterrupt:()=>tR,sensor_mpu9250_calibrate_compass:()=>bR,sensor_mpu9250_field_strength:()=>BR,sensor_mpu9250_gesture:()=>vR,sensor_mpu9250_get_acceleration:()=>XR,sensor_mpu9250_get_gyro:()=>xR,sensor_mpu9250_get_magnetic:()=>yR,sensor_mpu9250_temperature:()=>VR,sensor_read_humiture:()=>Uc,sensor_sht:()=>aR,sensor_shtc3_extern:()=>DR,sensor_spl06_001_extern:()=>PR,sensor_ucs12071_extern:()=>LR,sensor_use_i2c_init:()=>lR,sensor_use_spi_init:()=>UR,sensor_use_uart_init:()=>Ec,sensor_weather_solo_init:()=>Yc,sensor_weather_solo_rain:()=>yc,sensor_weather_solo_wd:()=>vc,sensor_weather_solo_ws:()=>Xc,sensor_weigh_init:()=>qc,ultrasonic_sensor_read_distance:()=>kc,weather_data:()=>qR,weather_have_data:()=>QR,weather_set_label:()=>jR,weather_set_label_container:()=>ZR,weather_set_label_item:()=>$R,weather_uart_mixio:()=>zR,weigh_sensor_get_weight:()=>Qc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>HC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>kC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>wC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>UC,CI130X_SET_SYSTEM_CMD_SANT:()=>WC,HCSR04:()=>dg,RTC_set_date:()=>lg,RTC_set_time:()=>rg,bitbot_als_num:()=>RC,dht11:()=>NC,educore_button_sensor:()=>xC,educore_button_was_pressed:()=>bC,educore_gyroscope_sensor:()=>vC,educore_gyroscope_sensor_read:()=>XC,educore_gyroscope_sensor_shake:()=>yC,educore_light_sensor:()=>YC,educore_rfid_sensor:()=>VC,educore_rfid_sensor_scan:()=>BC,educore_rfid_sensor_scan_data:()=>GC,educore_voice_sensor:()=>FC,number1:()=>Tg,number2:()=>Mg,number3:()=>hg,number4:()=>mg,number5:()=>Eg,number6:()=>Og,number7:()=>Rg,onboard_RTC_get_time:()=>Dg,onboard_RTC_get_time_str:()=>Xg,onboard_RTC_get_timestamp:()=>fg,onboard_RTC_get_timetuple_to_str:()=>yg,onboard_RTC_set_datetime:()=>Yg,onboard_RTC_settime_string:()=>Pg,onboard_RTC_timestamp_totuple:()=>Fg,rfid_readcontent:()=>wg,rfid_readid:()=>Ug,rfid_write:()=>kg,rfid_write_return:()=>Hg,sensor_LTR308:()=>xg,sensor_aht11:()=>Vg,sensor_bitbot_ALS:()=>OC,sensor_button_get_presses:()=>CC,sensor_button_is_pressed:()=>cC,sensor_button_was_pressed:()=>gC,sensor_distance_hrsc04:()=>ug,sensor_eulerangles:()=>Kg,sensor_field_strength:()=>DC,sensor_get_acceleration:()=>Wg,sensor_get_temperature:()=>Bg,sensor_hp203:()=>Gg,sensor_light:()=>AC,sensor_mixbot_get_gyro:()=>EC,sensor_mixbot_patrol_calibrate:()=>MC,sensor_mixbot_patrol_value:()=>hC,sensor_mixbot_temperature:()=>mC,sensor_mixgo_LTR308:()=>Ag,sensor_mixgo_button_attachInterrupt:()=>tg,sensor_mixgo_button_get_presses:()=>$c,sensor_mixgo_button_is_pressed:()=>jc,sensor_mixgo_button_was_pressed:()=>Zc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>nC,sensor_mixgo_cc_mmc5603_get_angle:()=>iC,sensor_mixgo_cc_mmc5603_get_magnetic:()=>eC,sensor_mixgo_light:()=>Ig,sensor_mixgo_nova_LTR308:()=>Lg,sensor_mixgo_nova_pin_near:()=>Sg,sensor_mixgo_pin_near:()=>Cg,sensor_mixgo_pin_near_double:()=>gg,sensor_mixgo_pin_near_single:()=>cg,sensor_mixgo_pin_pressed:()=>_g,sensor_mixgo_sant_color:()=>Ng,sensor_mixgo_touch_slide:()=>ag,sensor_mixgocar42_button_attachInterrupt:()=>sg,sensor_mixgocar42_button_get_presses:()=>ng,sensor_mixgocar42_button_is_pressed:()=>eg,sensor_mixgocar42_button_was_pressed:()=>ig,sensor_mixgocar_battery_left:()=>TC,sensor_mixgocar_pin_near:()=>dC,sensor_mixgocar_pin_near_line:()=>lC,sensor_mixgocar_pin_near_state_change:()=>IC,sensor_mixgoce_pin_pressed:()=>og,sensor_mixgoce_temperature:()=>_C,sensor_mixgome_temperature:()=>sC,sensor_mpython_pin_pressed:()=>pg,sensor_mpython_qmi8658_get_gyro:()=>oC,sensor_mpython_qmi8658_temperature:()=>pC,sensor_onboard_compass_reset:()=>tC,sensor_onboard_mpu9250_calibrate_compass:()=>jg,sensor_onboard_mpu9250_field_strength:()=>$g,sensor_onboard_mpu9250_gesture:()=>Jg,sensor_onboard_mpu9250_get_acceleration:()=>qg,sensor_onboard_mpu9250_get_gyro:()=>zg,sensor_onboard_mpu9250_get_magnetic:()=>Qg,sensor_onboard_mpu9250_temperature:()=>Zg,sensor_pin_near:()=>LC,sensor_pin_pressed:()=>SC,sensor_read:()=>PC,sensor_rm_acc:()=>rC,sensor_rm_battery_left:()=>uC,sensor_rm_pin_near_double:()=>aC,sensor_rtc_init:()=>vg,sensor_sound:()=>bg,sensor_temperature:()=>fC});var k={};t.r(k),t.d(k,{serial_any:()=>$C,serial_begin:()=>sS,serial_print:()=>qC,serial_print_byte:()=>JC,serial_print_hex:()=>zC,serial_println:()=>QC,serial_read_from_ai:()=>IS,serial_readline:()=>tS,serial_readstr:()=>ZC,serial_readstr_until:()=>eS,serial_receive_data_event:()=>jC,serial_send_to_ai:()=>dS,serial_softserial:()=>nS,serial_softserial_new:()=>iS,system_input:()=>_S,system_print:()=>oS,system_print_container:()=>rS,system_print_end:()=>aS,system_print_inline:()=>pS,system_print_item:()=>lS,system_print_many:()=>uS});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>mS,Timer_init:()=>FS,base_delay:()=>vS,controls_delay:()=>hS,controls_delay_new:()=>MS,controls_millis:()=>OS,controls_uname:()=>cS,raw_block:()=>RS,reset:()=>ES,system_bitbot_shutdown:()=>fS,system_machine_reset:()=>DS,system_ticks_diff:()=>SS,system_timer:()=>CS,system_timer_init:()=>LS,system_wdt_feed:()=>NS,system_wdt_init:()=>AS,time_ticks_diff:()=>YS,timer:()=>gS,timer2:()=>PS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>JS,Air_now_content:()=>GS,Geo_moon_content:()=>QS,Geo_sun_content:()=>qS,Life_suggestion_content:()=>wS,Location_search_content:()=>HS,Tide_daily_content:()=>kS,WEATHER_DAILY:()=>xS,WEATHER_HOUR:()=>bS,WEATHER_NOW:()=>yS,Weather_alarm_content:()=>US,Weather_daily:()=>WS,Weather_daily_content:()=>KS,Weather_now:()=>VS,Weather_now_content:()=>BS});var K={};t.r(K),t.d(K,{PIN_init:()=>JL,actuator_extern_get_led_bright:()=>ML,actuator_extern_get_led_state:()=>hL,actuator_extern_led_bright:()=>TL,actuator_extern_led_brightness:()=>mL,actuator_ms32006_dcmotor:()=>nL,actuator_ms32006_init:()=>iL,actuator_ms32006_stepper:()=>sL,actuator_neopixel_init:()=>EL,actuator_neopixel_rgb:()=>cL,actuator_neopixel_rgb_all:()=>OL,actuator_neopixel_write:()=>RL,actuator_use_uart_init:()=>gL,esp32_music_get_tempo_extern:()=>rL,esp32_music_pitch:()=>oL,esp32_music_pitch_init:()=>_L,esp32_music_pitch_with_time:()=>pL,esp32_music_play_list:()=>lL,esp32_music_reset_extern:()=>dL,esp32_music_set_tempo_extern:()=>uL,esp32_music_stop:()=>aL,mixbot_actuator_extern_get_addr:()=>WL,mixbot_actuator_extern_set_addr:()=>KL,mixbot_addr_extern:()=>YL,parrot_PIN_init:()=>jL,parrot_move_speed:()=>ZL,pin_led_bright:()=>qL,player_play_music:()=>NL,player_set_mode:()=>AL,player_set_play:()=>SL,player_set_volume:()=>LL,player_whether_stop:()=>CL,robot_led_extern:()=>xL,robot_led_extern_get_value:()=>bL,robot_motor_extern:()=>vL,robot_motor_extern_get_speed:()=>XL,robot_servo_extern_absolute_run:()=>UL,robot_servo_extern_get_status:()=>VL,robot_servo_extern_relative_continue:()=>HL,robot_servo_extern_relative_origin:()=>wL,robot_servo_extern_relative_run:()=>kL,robot_servo_extern_stop:()=>GL,robot_servo_extern_stop_mode:()=>BL,robot_traffic_light_extern:()=>yL,servo_PIN_init:()=>QL,servo_get_angle:()=>tL,servo_get_speed:()=>eL,servo_init:()=>zS,servo_move:()=>IL,servo_move_angle:()=>zL,servo_set_angle:()=>ZS,servo_set_speed:()=>$S,servo_speed_360:()=>jS,syn6288_builtin_voice:()=>FL,syn6288_get_voice:()=>fL,syn6288_set_voice:()=>DL,syn6288_tts_play:()=>PL});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>AA,actuator_dc_motor_stop:()=>NA,actuator_get_led_bright:()=>uA,actuator_get_led_state:()=>rA,actuator_led_bright:()=>aA,actuator_led_brightness:()=>lA,actuator_mixbot_buzzer_on_off:()=>YA,actuator_mixgo_nova_mic_get:()=>bA,actuator_mixgo_nova_mic_set:()=>xA,actuator_mixgo_nova_onboard_music_pitch:()=>kA,actuator_mixgo_nova_onboard_music_stop:()=>HA,actuator_mixgo_nova_play_audio:()=>UA,actuator_mixgo_nova_play_online_audio:()=>wA,actuator_mixgo_nova_record_audio:()=>GA,actuator_mixgo_nova_voice_get:()=>BA,actuator_mixgo_nova_voice_set:()=>VA,actuator_mixgo_zero_led_color:()=>dA,actuator_onboard_neopixel_rgb:()=>OA,actuator_onboard_neopixel_rgb_all:()=>RA,actuator_onboard_neopixel_rgb_show_all_chase:()=>cA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>gA,actuator_onboard_neopixel_write:()=>EA,actuator_stepper_keep:()=>SA,actuator_stepper_stop:()=>LA,analog_ble_keyboard_init:()=>eN,analog_ble_keyboard_input:()=>sN,analog_ble_keyboard_mouse_init:()=>dN,analog_ble_keyboard_mouse_input:()=>hN,analog_ble_keyboard_mouse_send_battery:()=>MN,analog_ble_keyboard_mouse_str:()=>mN,analog_ble_keyboard_send_battery:()=>oN,analog_ble_keyboard_str:()=>_N,analog_ble_mouse_init:()=>pN,analog_ble_mouse_input:()=>rN,analog_ble_mouse_keyboard_input:()=>EN,analog_ble_mouse_send_battery:()=>lN,analog_keyboard_input:()=>qA,analog_keyboard_str:()=>$A,analog_mouse_input:()=>jA,bitbot_motor:()=>yA,bitbot_move:()=>vA,bitbot_stop:()=>XA,ble_keyboard_connect:()=>nN,ble_keyboard_get_mac:()=>iN,ble_keyboard_mouse_connect:()=>TN,ble_keyboard_mouse_get_mac:()=>IN,ble_mouse_connect:()=>uN,ble_mouse_get_mac:()=>aN,cc_number:()=>IA,educore_ble_keyboard_input:()=>DN,educore_ble_sensor_connected:()=>NN,educore_ble_sensor_init:()=>AN,educore_buzzer:()=>ON,educore_buzzer_play_tone:()=>RN,educore_buzzer_play_tone_time:()=>cN,educore_buzzer_stop:()=>gN,educore_neopixel_clear:()=>LN,educore_neopixel_rgb:()=>SN,educore_rgb_light:()=>CN,esp32_music_get_tempo:()=>tA,esp32_music_reset:()=>_A,esp32_music_set_tempo:()=>$L,esp32_onboard_music_pitch:()=>eA,esp32_onboard_music_pitch_with_time:()=>iA,esp32_onboard_music_play_list:()=>sA,esp32_onboard_music_stop:()=>nA,general_key:()=>zA,general_key_tuple:()=>tN,get_power_output:()=>KA,ledswitch:()=>pA,mixbot_motor:()=>PA,mixbot_motor_status:()=>DA,mixbot_move:()=>fA,mixbot_stop:()=>FA,mouse_key:()=>ZA,number:()=>oA,rm_actuator_get_led_bright:()=>MA,rm_actuator_get_led_state:()=>hA,rm_actuator_led_bright:()=>TA,rm_actuator_led_brightness:()=>mA,rm_motor:()=>CA,set_all_power_output:()=>JA,set_power_output:()=>WA,special_key:()=>QA});var q={};t.r(q),t.d(q,{ai_sensor_20object:()=>pD,ai_sensor_ailocal_class:()=>zN,ai_sensor_ailocal_class_result:()=>jN,ai_sensor_ailocal_train:()=>QN,ai_sensor_asr_recognize:()=>iD,ai_sensor_audio_play:()=>$N,ai_sensor_audio_record:()=>ZN,ai_sensor_barcode:()=>yN,ai_sensor_circle:()=>UN,ai_sensor_classifier_faces:()=>oD,ai_sensor_color:()=>WN,ai_sensor_color_chases:()=>qN,ai_sensor_color_chases_result:()=>JN,ai_sensor_config:()=>PN,ai_sensor_face:()=>_D,ai_sensor_find_20objects:()=>aD,ai_sensor_find_barcodes:()=>xN,ai_sensor_find_circles:()=>wN,ai_sensor_find_colors:()=>KN,ai_sensor_find_licenseplates:()=>sD,ai_sensor_find_lines:()=>GN,ai_sensor_find_qrcodes:()=>XN,ai_sensor_find_rects:()=>HN,ai_sensor_find_tags:()=>VN,ai_sensor_licenseplate:()=>nD,ai_sensor_line:()=>BN,ai_sensor_qrcode:()=>vN,ai_sensor_qrcode_lite:()=>FN,ai_sensor_rect:()=>kN,ai_sensor_rgb:()=>YN,ai_sensor_tag:()=>bN,ai_sensor_use_uart_init:()=>fN,ai_sensor_yolo_recognize:()=>tD,ai_sensor_yolo_recognize_result:()=>eD});var Q={};t.r(Q),t.d(Q,{MICROPYTHON_AI_Speech_asr:()=>lD,MICROPYTHON_AI_Speech_unit:()=>rD,MICROPYTHON_AI_client:()=>uD});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>CD,mpython_blynk_app_notify:()=>ED,mpython_blynk_email:()=>SD,mpython_blynk_get_timers:()=>RD,mpython_blynk_on_connected:()=>MD,mpython_blynk_on_disconnected:()=>TD,mpython_blynk_run:()=>mD,mpython_blynk_sensor_data_to_app:()=>gD,mpython_blynk_set_property:()=>LD,mpython_blynk_setup:()=>AD,mpython_blynk_stop_timers:()=>OD,mpython_blynk_sync_virtual:()=>ID,mpython_blynk_terminal_widget_vpin:()=>dD,mpython_blynktimer:()=>cD,mpython_blynktimer_run:()=>hD});var j={};t.r(j),t.d(j,{cc_g1_read_bat:()=>ND,cc_g1_read_joystick:()=>DD,cc_g1_read_key:()=>fD,cc_g1_turnoff:()=>FD});var Z={};t.r(Z),t.d(Z,{ce_go_dc_motor:()=>VD,ce_go_get_led_bright:()=>vD,ce_go_get_led_state:()=>XD,ce_go_hall_attachInterrupt:()=>BD,ce_go_hall_data:()=>UD,ce_go_hall_initialize:()=>GD,ce_go_led_bright:()=>YD,ce_go_led_brightness:()=>yD,ce_go_light_number:()=>PD,ce_go_pin_light:()=>KD,ce_go_pin_near:()=>kD,ce_go_pin_near_line:()=>wD,ce_go_pin_near_state_change:()=>HD,ce_go_stepper_keep:()=>xD,ce_go_stepper_stop:()=>bD,educore_car:()=>JD,educore_car_pin_near:()=>jD,educore_car_pin_near_line:()=>zD,educore_car_stepper_keep:()=>qD,educore_car_stepper_stop:()=>QD,sensor_mixgome_eulerangles:()=>WD});var $={};t.r($),t.d($,{communicate_bluetooth_central_init:()=>vf,communicate_bluetooth_connect:()=>xf,communicate_bluetooth_disconnect:()=>bf,communicate_bluetooth_handle:()=>kf,communicate_bluetooth_is_connected:()=>Bf,communicate_bluetooth_mac:()=>Vf,communicate_bluetooth_peripheral_init:()=>Xf,communicate_bluetooth_recv:()=>wf,communicate_bluetooth_recv_only:()=>Uf,communicate_bluetooth_scan:()=>yf,communicate_bluetooth_send:()=>Gf,communicate_espnow_init:()=>Hf,communicate_espnow_init_new:()=>Wf,communicate_i2c_available:()=>of,communicate_i2c_init:()=>tf,communicate_i2c_master_read:()=>_f,communicate_i2c_onboard:()=>ZD,communicate_i2c_read:()=>ef,communicate_i2c_scan:()=>sf,communicate_i2c_write:()=>nf,communicate_ir_recv_init:()=>Cf,communicate_ir_send_init:()=>Df,communicate_ow_init:()=>mf,communicate_ow_read:()=>Rf,communicate_ow_reset:()=>Of,communicate_ow_scan:()=>Ef,communicate_ow_select:()=>gf,communicate_ow_write:()=>cf,communicate_spi_buffer:()=>rf,communicate_spi_init:()=>af,communicate_spi_onboard:()=>$D,communicate_spi_read:()=>lf,communicate_spi_read_output:()=>df,communicate_spi_readinto:()=>If,communicate_spi_readinto_output:()=>Tf,communicate_spi_set:()=>uf,communicate_spi_write:()=>Mf,communicate_spi_write_readinto:()=>hf,espnow_radio_channel:()=>jf,espnow_radio_channel_new:()=>$f,espnow_radio_on_off:()=>tF,espnow_radio_rec:()=>iF,espnow_radio_recv:()=>sF,espnow_radio_recv_certain_msg:()=>_F,espnow_radio_recv_certain_msg_new:()=>pF,espnow_radio_recv_msg:()=>nF,espnow_radio_recv_new:()=>oF,espnow_radio_send:()=>eF,espnow_radio_txpower:()=>Zf,i2c_slave_onreceive:()=>pf,internal_variable:()=>Sf,ir_recv_timeout:()=>Nf,ir_transmit_busy:()=>Yf,ir_transmit_conventional_data:()=>ff,ir_transmit_raw_code:()=>Pf,ir_transmit_study_code:()=>Ff,ir_whether_recv:()=>Af,lora_init:()=>aF,lora_packet:()=>uF,lora_recv:()=>lF,lora_send:()=>rF,network_espnow_info:()=>Jf,network_espnow_mac:()=>Kf,network_espnow_recv:()=>qf,network_espnow_recv_handle:()=>zf,network_espnow_send:()=>Qf,recv_fun:()=>Lf,urequests_attribute:()=>IF,urequests_get:()=>dF,urequests_method:()=>TF});var tt={};t.r(tt),t.d(tt,{display_animate:()=>BF,display_circle:()=>GF,display_color_seclet:()=>jF,display_draw_4strings:()=>YF,display_fill:()=>VF,display_lcd_use_i2c_init:()=>nP,display_line:()=>yF,display_line_arbitrarily:()=>vF,display_matrix_extern_bright_point:()=>LF,display_matrix_extern_bright_screen:()=>NF,display_matrix_extern_clear:()=>gF,display_matrix_extern_get_pixel:()=>SF,display_matrix_extern_get_screen_pixel:()=>AF,display_matrix_extern_image_builtins:()=>DF,display_matrix_extern_scroll_string:()=>RF,display_matrix_extern_scroll_string_delay:()=>cF,display_matrix_extern_shift:()=>CF,display_matrix_extern_show_frame_string:()=>EF,display_matrix_extern_show_frame_string_delay:()=>OF,display_matrix_extern_show_image:()=>hF,display_matrix_extern_show_image_or_string_delay:()=>mF,display_matrix_use_i2c_init:()=>MF,display_oled_drawPixel:()=>kF,display_oled_showBitmap:()=>wF,display_oled_use_i2c_init:()=>aP,display_onoff:()=>xF,display_rect:()=>XF,display_tm1650_power:()=>WF,display_tm1650_set_brightness:()=>qF,display_tm1650_show_dot:()=>JF,display_tm1650_show_num:()=>KF,display_tm_use_i2c_init:()=>HF,display_triangle:()=>UF,display_use_i2c_init:()=>PF,extern_oled_bright_point:()=>RP,extern_oled_clear:()=>mP,extern_oled_get_pixel:()=>OP,extern_oled_hvline:()=>gP,extern_oled_line:()=>CP,extern_oled_scroll_string:()=>MP,extern_oled_scroll_string_delay:()=>hP,extern_oled_shape_rect:()=>cP,extern_oled_shift:()=>EP,extern_oled_show_frame_string:()=>IP,extern_oled_show_frame_string_delay:()=>TP,extern_oled_show_image:()=>uP,extern_oled_show_image_or_string_delay:()=>dP,extern_oled_show_image_xy:()=>rP,extern_oled_show_string:()=>lP,image_shift:()=>bF,lcd_backlight:()=>oP,lcd_clear:()=>pP,lcd_print_string:()=>_P,lcd_show_image_or_string_delay:()=>sP,matrix_extern_image_arithmetic:()=>fF,matrix_extern_image_invert:()=>FF,tft_fill:()=>eP,tft_line_arbitrarily:()=>iP,tft_scroll_string_delay:()=>tP,tft_show_frame_string_delay:()=>$F,tft_show_image_or_string_delay:()=>ZF,tft_show_image_xy:()=>zF,tft_use_spi_init:()=>QF});var et={};t.r(et),t.d(et,{bitbot_display_image_create:()=>pY,display_bright_point:()=>VP,display_bright_screen:()=>GP,display_clear:()=>vP,display_get_pixel:()=>bP,display_get_screen_pixel:()=>BP,display_image_builtins:()=>FP,display_image_builtins_all:()=>PP,display_image_create:()=>YP,display_scroll_string:()=>DP,display_scroll_string_delay:()=>fP,display_shift:()=>xP,display_show_frame_string:()=>AP,display_show_frame_string_delay:()=>NP,display_show_image:()=>SP,display_show_image_or_string_delay:()=>LP,draw_pointer:()=>PY,image_arithmetic:()=>XP,image_invert:()=>yP,mixbot_display_bright_screen:()=>_Y,mixbot_display_get_ambientbright:()=>sY,mixbot_display_get_screen_pixel:()=>nY,mixbot_display_image_create:()=>iY,mixbot_display_rotate:()=>oY,mixgo_display_image_create_new:()=>HP,mixgome_display_font:()=>kP,mixgome_display_image_create:()=>UP,mixgomini_display_image_create:()=>wP,mpython_display_hvline:()=>tY,mpython_display_line:()=>eY,mpython_display_shape_rect:()=>$P,mpython_pbm_image:()=>WP,onboard_oled_bright_point:()=>ZP,onboard_oled_scroll_string_delay:()=>jP,onboard_oled_show_frame_string_delay:()=>zP,onboard_oled_show_image:()=>KP,onboard_oled_show_image_or_string_delay:()=>QP,onboard_oled_show_image_xy:()=>JP,onboard_oled_show_string:()=>qP,onboard_tft_bright_point:()=>cY,onboard_tft_bright_screen:()=>CY,onboard_tft_clear:()=>EY,onboard_tft_clock_clear:()=>fY,onboard_tft_clock_draw:()=>DY,onboard_tft_clock_get_rtctime:()=>AY,onboard_tft_clock_init:()=>LY,onboard_tft_clock_set_time:()=>NY,onboard_tft_display_hvline:()=>hY,onboard_tft_display_line:()=>mY,onboard_tft_display_shape_circle:()=>FY,onboard_tft_display_shape_rect:()=>MY,onboard_tft_fill:()=>SY,onboard_tft_get_pixel:()=>RY,onboard_tft_get_screen_pixel:()=>gY,onboard_tft_scroll_string:()=>IY,onboard_tft_scroll_string_delay:()=>TY,onboard_tft_shift:()=>OY,onboard_tft_show_frame_string:()=>lY,onboard_tft_show_frame_string_delay:()=>dY,onboard_tft_show_image:()=>aY,onboard_tft_show_image_or_string_delay:()=>rY,onboard_tft_show_image_xy:()=>uY});var it={};t.r(it),t.d(it,{factory_block:()=>BY,factory_block_return:()=>GY,factory_block_return_with_textarea:()=>wY,factory_block_with_textarea:()=>UY,factory_callMethod_noreturn:()=>bY,factory_callMethod_return:()=>VY,factory_declare:()=>xY,factory_from_import:()=>YY,factory_function_noreturn:()=>XY,factory_function_return:()=>yY,factory_import:()=>vY,folding_block:()=>kY});var nt={};t.r(nt),t.d(nt,{inout_analog_atten:()=>sv,inout_analog_read:()=>jY,inout_analog_read_init:()=>nv,inout_analog_write:()=>qY,inout_analog_write_init:()=>iv,inout_analog_write_set:()=>QY,inout_digital_init:()=>tv,inout_digital_read:()=>KY,inout_digital_write:()=>WY,inout_highlow:()=>HY,inout_pin_attachInterrupt:()=>$Y,inout_pin_pressed:()=>ZY,inout_pin_pressed_init:()=>_v,inout_pwm_analog_write:()=>JY,inout_pwm_analog_write_init:()=>ev,inout_pwm_analog_write_set_freq:()=>zY});var st={};t.r(st),t.d(st,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Sv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>gv,IOT_EMQX_PING:()=>Lv,IOT_FORMATTING:()=>Rv,IOT_FORMAT_STRING:()=>cv,IOT_MIXIO_NTP:()=>Av,IOT_MIXIO_PUBLISH:()=>Iv,IOT_MIXIO_SUBSCRIBE:()=>Tv,iot_client_onboard:()=>Nv,iot_http_client:()=>Dv,iot_http_data:()=>fv,iot_mixio_check:()=>mv,iot_mixio_connect:()=>dv,iot_mixio_connect_only:()=>hv,iot_mixio_disconnect:()=>Mv,iot_mixio_format_msg:()=>Ov,iot_mixio_format_topic:()=>Ev,iot_mixly_key:()=>Cv,iot_mqtt_client:()=>Fv,iot_mqtt_data:()=>Pv,iot_onenet_check:()=>rv,iot_onenet_connect:()=>pv,iot_onenet_disconnect:()=>av,iot_onenet_publish:()=>lv,iot_onenet_publish_dict:()=>uv,iot_wifi_connect:()=>ov});var _t={};t.r(_t),t.d(_t,{educore_mqtt_connect:()=>aX,educore_mqtt_connect_success:()=>dX,educore_mqtt_subscribe_message:()=>uX,educore_mqtt_topic_publish:()=>lX,educore_mqtt_topic_subscribe:()=>rX,educore_wifi_connect:()=>pX,network_ap_connect:()=>Gv,network_connect:()=>vv,network_get_connect:()=>yv,network_get_wifi:()=>Bv,network_init:()=>Yv,network_is_active:()=>Vv,network_open:()=>bv,network_scan:()=>Uv,network_server:()=>wv,network_socket_accept:()=>Jv,network_socket_bind:()=>Hv,network_socket_close:()=>Zv,network_socket_connect:()=>Wv,network_socket_init:()=>kv,network_socket_listen:()=>Kv,network_socket_receive:()=>qv,network_socket_receive_from:()=>zv,network_socket_send:()=>Qv,network_socket_send_to:()=>jv,network_stop:()=>xv,network_wifi_connect:()=>Xv,ntptime_address:()=>nX,ntptime_time:()=>iX,requests_attribute:()=>tX,requests_attribute2:()=>_X,requests_get:()=>$v,requests_get2:()=>sX,requests_method:()=>eX,requests_post:()=>oX});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>yX,CI130X_GET_THE_RECOGNIZED_CMD:()=>XX,CI130X_GET_WHETHER_IDENTIFY:()=>vX,CI130X_IDENTIFY_AND_SAVE:()=>YX,CI130X_SET_SYSTEM_CMD:()=>xX,HCSR04:()=>dy,PS2_Button:()=>My,PS2_Buttons:()=>hy,PS2_Buttons_new:()=>Sy,PS2_State:()=>my,PS2_init:()=>Iy,PS2_init_new:()=>gy,PS2_stk:()=>Ey,PS2_stk_new:()=>Ly,PS2_vibration:()=>Ty,PS2_vibration_new:()=>Cy,RTC_get_time:()=>Ry,RTC_set_date:()=>RX,RTC_set_datetime:()=>Oy,RTC_set_time:()=>OX,camera_sensor_init:()=>ex,camera_sensor_result:()=>ix,educore_body_sensor:()=>Wy,educore_button_sensor_extern:()=>Qy,educore_camera_sensor:()=>tx,educore_infrared_sensor:()=>qy,educore_soilhum_sensor:()=>Ky,educore_temp_sensor:()=>$y,educore_temphum_sensor:()=>Jy,educore_ultrasonic_sensor:()=>jy,esp32_s2_weather_init:()=>ay,esp32_s2_weather_rain:()=>ry,esp32_s2_weather_wd:()=>uy,esp32_s2_weather_ws:()=>ly,extern_rfid_read:()=>zX,extern_rfid_readcontent:()=>ZX,extern_rfid_readid:()=>jX,extern_rfid_status:()=>ey,extern_rfid_write:()=>$X,extern_rfid_write_return:()=>ty,gnss_get_data:()=>Dy,gnss_have_data:()=>fy,interaction_whether_to_interaction:()=>FX,interaction_whether_to_interaction_SANT:()=>PX,mixbot_sensor_extern_get_addr:()=>Vy,mixbot_sensor_extern_set_addr:()=>By,pm25_get_data:()=>Ny,radar_set_DETECTION_THRESHOLD:()=>DX,radar_set_DETECTION_THRESHOLD_SANT:()=>fX,robot_button_extern_get_value:()=>Fy,robot_color_extern_get_value:()=>yy,robot_infrared_extern_get_value:()=>Yy,robot_infrared_extern_grey_get_value:()=>vy,robot_potentiometer_extern_get_value:()=>Xy,robot_sonar_extern_get_value:()=>xy,robot_sonar_extern_led:()=>by,robot_touch_extern_get_value:()=>Py,sensor_APDS9960_extern:()=>VX,sensor_DS18X20:()=>Hy,sensor_LTR308_extern:()=>BX,sensor_LTR390UV_extern:()=>HX,sensor_MAX30102_extern:()=>bX,sensor_QMC5883L_extern:()=>WX,sensor_VL530LX_extern:()=>qX,sensor_aht11_extern:()=>JX,sensor_bmp:()=>LX,sensor_dht11:()=>cy,sensor_distance_hrsc04:()=>EX,sensor_hp203_extern:()=>GX,sensor_ltr381_extern:()=>wX,sensor_mixgo_extern_button_attachInterrupt:()=>hX,sensor_mixgo_extern_button_get_presses:()=>MX,sensor_mixgo_extern_button_is_pressed:()=>IX,sensor_mixgo_extern_button_was_pressed:()=>TX,sensor_mixgo_extern_light:()=>cX,sensor_mixgo_extern_pin_near:()=>CX,sensor_mixgo_extern_sound:()=>gX,sensor_mixgoce_hot_wheel_degrees:()=>py,sensor_mixgoce_hot_wheel_is_touched:()=>oy,sensor_mpu9250_attachGestureInterrupt:()=>mX,sensor_read_humiture:()=>zy,sensor_rtc_init:()=>SX,sensor_sht:()=>AX,sensor_shtc3_extern:()=>KX,sensor_spl06_001_extern:()=>UX,sensor_ucs12071_extern:()=>kX,sensor_use_i2c_init:()=>NX,sensor_use_spi_init:()=>QX,sensor_use_uart_init:()=>Ay,sensor_weather_solo_init:()=>Gy,sensor_weather_solo_rain:()=>ky,sensor_weather_solo_wd:()=>Uy,sensor_weather_solo_ws:()=>wy,sensor_weigh_init:()=>nx,ultrasonic_sensor_read_distance:()=>Zy,weather_data:()=>iy,weather_have_data:()=>ny,weather_set_label:()=>_y,weather_uart_mixio:()=>sy,weigh_sensor_get_weight:()=>sx});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>nV,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>iV,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>eV,CI130X_IDENTIFY_AND_SAVE_SANT:()=>tV,CI130X_SET_SYSTEM_CMD_SANT:()=>sV,HCSR04:()=>Ix,bitbot_als_num:()=>Xb,dht11:()=>wb,educore_button_sensor:()=>Qb,educore_button_was_pressed:()=>zb,educore_gyroscope_sensor:()=>Kb,educore_gyroscope_sensor_read:()=>Jb,educore_gyroscope_sensor_shake:()=>qb,educore_light_sensor:()=>Wb,educore_rfid_sensor:()=>jb,educore_rfid_sensor_scan:()=>Zb,educore_rfid_sensor_scan_data:()=>$b,educore_voice_sensor:()=>kb,number1:()=>Tx,number2:()=>Mx,number3:()=>hx,number4:()=>mx,number5:()=>Ex,number6:()=>Ox,number7:()=>Rx,onboard_RTC_get_time:()=>rb,onboard_RTC_get_time_str:()=>Ib,onboard_RTC_get_timestamp:()=>lb,onboard_RTC_get_timetuple_to_str:()=>Tb,onboard_RTC_set_datetime:()=>ab,onboard_RTC_settime_string:()=>ub,onboard_RTC_timestamp_totuple:()=>db,rfid_readcontent:()=>xx,rfid_readid:()=>yx,rfid_write:()=>bx,rfid_write_return:()=>Vx,sensor_LTR308:()=>Fx,sensor_adxl345_get_acceleration:()=>Jx,sensor_aht11:()=>vx,sensor_bitbot_ALS:()=>vb,sensor_button_get_presses:()=>bb,sensor_button_is_pressed:()=>yb,sensor_button_was_pressed:()=>xb,sensor_compass_reset:()=>$x,sensor_ds18x20:()=>Dx,sensor_eulerangles:()=>Gx,sensor_get_acceleration:()=>Bx,sensor_get_temperature:()=>Xx,sensor_hp203:()=>Yx,sensor_light:()=>Ub,sensor_lm35:()=>fx,sensor_mixbot_get_gyro:()=>Yb,sensor_mixbot_patrol_calibrate:()=>fb,sensor_mixbot_patrol_value:()=>Fb,sensor_mixbot_temperature:()=>Pb,sensor_mixgo_LTR308:()=>Lx,sensor_mixgo_button_attachInterrupt:()=>ax,sensor_mixgo_button_get_presses:()=>px,sensor_mixgo_button_is_pressed:()=>_x,sensor_mixgo_button_was_pressed:()=>ox,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>mb,sensor_mixgo_cc_mmc5603_get_angle:()=>hb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Mb,sensor_mixgo_light:()=>Gb,sensor_mixgo_nova_LTR308:()=>Nx,sensor_mixgo_nova_pin_near:()=>Sx,sensor_mixgo_pin_near:()=>Cx,sensor_mixgo_pin_near_double:()=>gx,sensor_mixgo_pin_near_single:()=>cx,sensor_mixgo_pin_pressed:()=>Wx,sensor_mixgo_sant_color:()=>Ax,sensor_mixgo_touch_slide:()=>Hx,sensor_mixgocar42_button_attachInterrupt:()=>dx,sensor_mixgocar42_button_get_presses:()=>lx,sensor_mixgocar42_button_is_pressed:()=>ux,sensor_mixgocar42_button_was_pressed:()=>rx,sensor_mixgocar_battery_left:()=>Db,sensor_mixgocar_pin_near:()=>Ab,sensor_mixgocar_pin_near_line:()=>Lb,sensor_mixgocar_pin_near_state_change:()=>Nb,sensor_mixgoce_pin_pressed:()=>kx,sensor_mixgoce_temperature:()=>Ob,sensor_mixgome_temperature:()=>Eb,sensor_mpu9250_calibrate_compass:()=>zx,sensor_mpu9250_field_strength:()=>Zx,sensor_mpu9250_gesture:()=>Ux,sensor_mpu9250_get_acceleration:()=>wx,sensor_mpu9250_get_gyro:()=>Qx,sensor_mpu9250_get_magnetic:()=>qx,sensor_mpu9250_temperature:()=>jx,sensor_mpython_pin_pressed:()=>Kx,sensor_mpython_qmi8658_get_gyro:()=>Rb,sensor_mpython_qmi8658_temperature:()=>cb,sensor_onboard_compass_reset:()=>pb,sensor_onboard_mpu9250_calibrate_compass:()=>sb,sensor_onboard_mpu9250_field_strength:()=>ob,sensor_onboard_mpu9250_gesture:()=>tb,sensor_onboard_mpu9250_get_acceleration:()=>eb,sensor_onboard_mpu9250_get_gyro:()=>nb,sensor_onboard_mpu9250_get_magnetic:()=>ib,sensor_onboard_mpu9250_temperature:()=>_b,sensor_pin_near:()=>Bb,sensor_pin_pressed:()=>Vb,sensor_read:()=>Hb,sensor_rm_acc:()=>Sb,sensor_rm_battery_left:()=>Cb,sensor_rm_pin_near_double:()=>gb,sensor_sound:()=>Px});var at={};t.r(at),t.d(at,{serial_any:()=>uV,serial_print:()=>_V,serial_print_byte:()=>oV,serial_print_hex:()=>aV,serial_println:()=>pV,serial_read_from_ai:()=>RV,serial_readline:()=>lV,serial_readstr:()=>rV,serial_send_to_ai:()=>OV,serial_softserial:()=>dV,serial_softserial_new:()=>IV,system_input:()=>TV,system_print:()=>MV,system_print_end:()=>mV,system_print_inline:()=>hV,system_print_many:()=>EV});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>YV,Timer_init:()=>JV,base_delay:()=>zV,controls_delay:()=>bV,controls_delay_new:()=>VV,controls_end_program:()=>XV,controls_millis:()=>vV,controls_uname:()=>xV,reset:()=>yV,system_bitbot_shutdown:()=>KV,system_device_name:()=>FV,system_device_serial_number:()=>PV,system_event_bus_source:()=>DV,system_event_bus_value:()=>fV,system_machine_reset:()=>WV,system_on_event:()=>LV,system_raise_event:()=>SV,system_reset:()=>gV,system_run_in_background:()=>cV,system_ticks_diff:()=>UV,system_timer:()=>GV,system_timer_init:()=>wV,system_timestamp:()=>AV,system_value:()=>NV,system_wait:()=>CV,system_wdt_feed:()=>HV,system_wdt_init:()=>kV,time_ticks_diff:()=>QV,timer:()=>BV,timer2:()=>qV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>uB,Air_now_content:()=>iB,Geo_moon_content:()=>lB,Geo_sun_content:()=>rB,Life_suggestion_content:()=>sB,Location_search_content:()=>oB,Tide_daily_content:()=>_B,WEATHER_DAILY:()=>ZV,WEATHER_HOUR:()=>$V,WEATHER_NOW:()=>jV,Weather_alarm_content:()=>nB,Weather_daily:()=>pB,Weather_daily_content:()=>aB,Weather_now:()=>tB,Weather_now_content:()=>eB});var lt={};t.r(lt),t.d(lt,{controls_pin_attachInterrupt:()=>FB,inout_analog_atten:()=>RB,inout_analog_write:()=>EB,inout_analog_write_init:()=>SB,inout_analog_write_set:()=>OB,inout_analog_write_set_freq:()=>AB,inout_digital_init:()=>CB,inout_digital_read:()=>mB,inout_digital_write:()=>hB,inout_highlow:()=>MB,inout_pinMode:()=>NB,inout_pin_attachInterrupt:()=>gB,inout_pin_pressed:()=>cB,inout_pin_pressed_init:()=>LB,pin_pressed:()=>fB,pin_pressed_init:()=>DB});var dt={};t.r(dt),t.d(dt,{mini_g2_aht11:()=>YB,mini_g2_hp203:()=>vB,mini_g2_rfid_readcontent:()=>xB,mini_g2_rfid_readid:()=>yB,mini_g2_rfid_status:()=>BB,mini_g2_rfid_write:()=>bB,mini_g2_rfid_write_outcome:()=>VB,mini_g2_varistor:()=>XB});var It={};t.r(It),t.d(It,{me_go_dc_motor:()=>qB,me_go_get_led_bright:()=>kB,me_go_get_led_state:()=>HB,me_go_hall_attachInterrupt:()=>QB,me_go_hall_data:()=>jB,me_go_hall_initialize:()=>zB,me_go_led_bright:()=>wB,me_go_led_brightness:()=>WB,me_go_light_number:()=>UB,me_go_pin_light:()=>iG,me_go_pin_near:()=>$B,me_go_pin_near_line:()=>ZB,me_go_pin_near_state_change:()=>tG,me_go_stepper_keep:()=>KB,me_go_stepper_stop:()=>JB,sensor_mixgome_eulerangles:()=>eG});var Tt={};t.r(Tt),t.d(Tt,{analog_input:()=>lG,analog_output:()=>IG,espnow_channel:()=>aG,haskylens_model:()=>uG,i2c_A_pin:()=>TG,i2c_B_pin:()=>MG,pins_analog:()=>RG,pins_analog_pin:()=>cG,pins_axis:()=>VG,pins_brightness:()=>BG,pins_builtinimg:()=>PG,pins_builtinimg_extern:()=>YG,pins_button:()=>SG,pins_buttonB:()=>LG,pins_dac:()=>gG,pins_dac_pin:()=>CG,pins_digital:()=>sG,pins_digital_dot:()=>JG,pins_digital_pin:()=>_G,pins_exlcdh:()=>xG,pins_exlcdv:()=>bG,pins_imglist:()=>vG,pins_input_pin:()=>oG,pins_one_more:()=>KG,pins_output_pin:()=>pG,pins_playlist:()=>XG,pins_playlist_extern:()=>yG,pins_pwm:()=>AG,pins_pwm_pin:()=>NG,pins_radio_datarate:()=>WG,pins_radio_power:()=>HG,pins_serial:()=>FG,pins_tone_notes:()=>kG,pins_touch:()=>fG,pins_touch_pin:()=>DG,pins_tts_bgmusic:()=>wG,pins_tts_builtin_music:()=>UG,pins_tts_voice:()=>GG,pwm_input:()=>rG,pwm_output:()=>dG,spi_A_pin:()=>hG,spi_B_pin:()=>mG,spi_C_pin:()=>EG,spi_D_pin:()=>OG});var Mt={};t.r(Mt),t.d(Mt,{inout_analog_atten:()=>nU,inout_analog_write:()=>jG,inout_analog_write_init:()=>iU,inout_analog_write_set:()=>ZG,inout_digital_init:()=>eU,inout_digital_read:()=>zG,inout_digital_write:()=>QG,inout_highlow:()=>qG,inout_pin_attachInterrupt:()=>tU,inout_pin_pressed:()=>$G,inout_pin_pressed_init:()=>sU});var ht={};t.r(ht),t.d(ht,{mini_g2_aht11:()=>_U,mini_g2_hp203:()=>oU,mini_g2_rfid_readcontent:()=>uU,mini_g2_rfid_readid:()=>aU,mini_g2_rfid_status:()=>dU,mini_g2_rfid_write:()=>rU,mini_g2_rfid_write_outcome:()=>lU,mini_g2_varistor:()=>pU});var mt={};t.r(mt),t.d(mt,{me_go_dc_motor:()=>RU,me_go_get_led_bright:()=>MU,me_go_get_led_state:()=>hU,me_go_hall_attachInterrupt:()=>cU,me_go_hall_data:()=>CU,me_go_hall_initialize:()=>gU,me_go_led_bright:()=>TU,me_go_led_brightness:()=>mU,me_go_light_number:()=>IU,me_go_pin_light:()=>DU,me_go_pin_near:()=>LU,me_go_pin_near_line:()=>SU,me_go_pin_near_state_change:()=>AU,me_go_stepper_keep:()=>EU,me_go_stepper_stop:()=>OU,sensor_mixgome_eulerangles:()=>NU});var Et={};t.r(Et),t.d(Et,{analog_input:()=>VU,analog_output:()=>GU,espnow_channel:()=>xU,haskylens_model:()=>bU,i2c_A_pin:()=>UU,i2c_B_pin:()=>wU,pins_analog:()=>qU,pins_analog_pin:()=>JU,pins_axis:()=>aw,pins_brightness:()=>lw,pins_builtinimg:()=>nw,pins_builtinimg_extern:()=>sw,pins_button:()=>FU,pins_buttonB:()=>PU,pins_dac:()=>ZU,pins_dac_pin:()=>jU,pins_digital:()=>fU,pins_digital_dot:()=>Ow,pins_digital_pin:()=>YU,pins_exlcdh:()=>uw,pins_exlcdv:()=>rw,pins_imglist:()=>_w,pins_input_pin:()=>vU,pins_interrupt:()=>ew,pins_one_more:()=>Ew,pins_output_pin:()=>XU,pins_playlist:()=>ow,pins_playlist_extern:()=>pw,pins_pwm:()=>zU,pins_pwm_input:()=>yU,pins_pwm_pin:()=>QU,pins_radio_datarate:()=>mw,pins_radio_power:()=>hw,pins_serial:()=>iw,pins_tone_notes:()=>Mw,pins_touch:()=>tw,pins_touch_pin:()=>$U,pins_tts_bgmusic:()=>Tw,pins_tts_builtin_music:()=>Iw,pins_tts_voice:()=>dw,pwm_output:()=>BU,spi_A_pin:()=>kU,spi_B_pin:()=>HU,spi_C_pin:()=>WU,spi_D_pin:()=>KU});const Ot=Blockly,Rt=Mixly,ct={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},gt=ct; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Le={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ae={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Ae,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ze={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},$e={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour(Zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour(Zi),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(Zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Ln={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},An={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Yn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={};ns.NAME_TYPE=Ot.PROCEDURE_CATEGORY_NAME,ns.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_=160,s_={init:function(){this.setColour(n_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},__={init:function(){this.setColour(n_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},o_={init:function(){this.setColour(n_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},p_={init:function(){this.setColour(n_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},a_={init:function(){this.setColour(n_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},u_={init:function(){this.setColour(n_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},r_={init:function(){this.setColour(n_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const na=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},sa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},_a=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},oa=function(t,e){return["None",e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},la=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},da=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ia=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ma=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ha=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ca=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ga=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ca=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},La=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Aa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Na=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Eu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Ou=function(t,e){return'"},Ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},cu=function(){return this.getFieldValue("TEXT")+"\n"},gu=function(t){return t.getFieldValue("TEXT")+"\n"},Cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Lu=function(){return""},Au=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Nu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},fu.scrubNakedValue=function(t){return t+"\n"},fu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},fu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},fu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,fu.COMMENT_WRAP-3),n+=fu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Fu="#74A55B",Pu={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},bu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Gu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Uu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},wu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},ku={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Ku={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},ju={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},$u={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},er={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ir={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},nr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},_r={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},ur={},rr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},dr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Ir={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},hr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Ar={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yr="#6C9858",xr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},br={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Vr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Br={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Gr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},wr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},kr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Jr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},qr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Qr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},zr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},jr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Zr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},$r={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},tl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},el={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(yr),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},nl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},_l={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ol={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},pl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},al={init:function(){this.setColour(yr),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ul={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rl={init:function(){this.setColour(yr),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ll={init:function(){this.setColour(yr),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},dl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Il={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ml={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},El={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gl={init:function(){this.setColour(yr),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sl={init:function(){this.setColour(yr),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ll={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Al={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Fl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Yl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},vl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Xl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},yl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},xl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},bl={init:function(){this.setColour(yr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},bE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},VE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},BE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},UE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},KE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},JE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},qE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},QE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},zE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},jE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(fE),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},tO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},eO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},_O=FE,oO=PE,pO=YE,aO=vE,uO=yE,rO=225,lO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},dO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},IO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},TO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},MO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},hO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},mO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},EO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},OO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},RO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},cO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gO={init:function(){this.setColour(rO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},CO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},SO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},LO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},AO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},NO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},DO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},fO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},FO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},PO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},YO={init:function(){this.setColour(rO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},XO={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},yO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},xO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},bO="#3288dd",VO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},BO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},GO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(bO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},UO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(bO),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},HO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},JO="#A58C5B",qO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},QO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},zO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},jO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},ZO={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},$O={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},tR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},eR={init:function(){var t=[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(JO),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},iR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},nR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},sR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},_R={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},oR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pR={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},aR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},uR={init:function(){this.setColour(JO),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},rR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},lR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},dR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},IR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},TR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},mR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ER={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},OR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},YR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},XR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},xR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},bR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},VR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},BR={init:function(){this.setColour(JO),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},GR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},wR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},kR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},HR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},WR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},JR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},IF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},MF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},EF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},OF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},RF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},cF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},gF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},CF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},SF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},AF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},NF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},DF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},fF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},FF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},PF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},YF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},vF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},XF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},xF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},bF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},VF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},BF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},GF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},UF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},wF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},kF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},WF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},KF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},JF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},QF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},zF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},jF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},ZF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},$F=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},tP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},eP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},iP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},nP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},sP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},_P=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},oP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},aP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},dP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},TP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},MP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},mP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},EP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},OP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},RP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},cP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},gP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},CP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},SP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},LP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},AP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},NP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},DP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},fP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},pY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},aY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},uY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},lY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},dY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},IY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},TY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},MY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},hY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},mY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},EY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},OY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},RY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},cY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},gY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},CY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},SY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},LY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},AY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},NY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},DY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},fY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},FY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},PY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},EV=function(){return"control.reset()\n"},OV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},RV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},cV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},gV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},CV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},SV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},LV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},AV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},NV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},DV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},fV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},FV=function(){return"while True:\n pass\n"},PV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},YV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},vV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},XV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},yV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},xV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},bV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},VV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},BV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},GV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},UV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},wV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},kV=VV,HV=xV,WV=bV,KV=vV,JV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},QV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},jV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$V=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},eB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},iB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},nB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},sB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},pB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},aB={};aB.mpython={description:"MicroPython[EDUCORE Edu Core]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},aB["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const uB=aB,rB=20,lB={init:function(){this.setColour(rB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},dB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},IB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},TB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},MB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},hB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},mB={init:function(){this.setColour(rB),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},EB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},OB={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},RB={init:function(){this.setColour(rB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},cB={init:function(){this.setColour(rB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},gB={init:function(){this.setColour(rB),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},CB=OB,SB=cB,LB=mB,AB=EB,NB=40,DB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},fB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},PB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},YB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},vB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},XB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},yB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(NB),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xB=100,bB={init:function(){this.setColour(xB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},VB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},BB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},GB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},UB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},wB={init:function(){this.setColour(xB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},kB={init:function(){this.setColour(xB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},HB={init:function(){this.setColour(xB),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},WB={init:function(){this.setColour(xB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KB={init:function(){this.setColour(xB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},JB={init:function(){this.setColour(xB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},qB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},QB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},zB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jB={init:function(){this.setColour(xB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZB={init:function(){this.setColour(xB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},$B=230,tG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},eG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},aG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},uG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},rG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},dG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},mG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},OG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},AG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},NG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},DG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},fG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},FG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},YG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},vG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},xG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},BG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},GG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},wG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},kG={init:function(){this.setColour($B),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},HG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},WG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},KG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},JG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},qG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},QG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},zG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},jG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},ZG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},$G=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},tU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},eU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},iU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},nU=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},sU=function(t,e){if(e.definitions_.import_mini_g2="import mini_g2","mixgo_mini"==Rt.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var i='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";i='mini_g2.ext_rc522.read_card(0, x="id")'}return[i,e.ORDER_ATOMIC]},_U=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},oU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},pU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},aU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},uU=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},rU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},lU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},dU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},IU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},TU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},MU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},hU=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},mU=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},EU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},OU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},RU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},cU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},gU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},CU=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},SU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},LU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},AU=LU,NU=LU,DU=LU,fU=LU,FU=LU,PU=LU,YU=LU,vU=LU,XU=LU,yU=LU,xU=LU,bU=LU,VU=LU,BU=LU,GU=LU,UU=LU,wU=LU,kU=LU,HU=LU,WU=LU,KU=LU,JU=LU,qU=LU,QU=LU,zU=LU,jU=LU,ZU=LU,$U=LU,tw=LU,ew=LU,iw=LU,nw=LU,sw=LU,_w=LU,ow=LU,pw=LU,aw=LU,uw=LU,rw=LU,lw=LU,dw=LU,Iw=LU,Tw=LU,Mw=LU;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,ss),Ot.Python=fu,Ot.generator=fu,Rt.Profile.default={},Object.assign(Rt.Profile,uB),Object.assign(Rt.Profile.default,uB["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,L,A,nt,ut,at,$,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,Z,Mt,ht,mt,Et)})(); \ No newline at end of file +class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Le={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ae={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Ae,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ze={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},$e={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour(Zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour(Zi),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(Zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Ln={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},An={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Yn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={};ns.NAME_TYPE=Ot.PROCEDURE_CATEGORY_NAME,ns.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Aa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Lu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Au=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Pu.scrubNakedValue=function(t){return t+"\n"},Pu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Pu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Pu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,Pu.COMMENT_WRAP-3),n+=Pu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Yu="#74A55B",vu={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Xu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},yu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},xu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},bu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Vu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Bu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Gu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Uu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},wu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},ku={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Hu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Wu={init:function(){this.setColour(Yu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Yu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},qu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},zu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ju={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},$u={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},tr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},er={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},ir={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},nr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},sr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_r={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},or={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},pr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},lr={},dr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Tr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Mr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},hr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},mr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Er={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Ar={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br="#6C9858",Vr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Br={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Gr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ur={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},wr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Hr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Wr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Kr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},qr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Qr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},zr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},jr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Zr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},$r={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},tl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},el={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},il={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},nl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(br),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},_l={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ol={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},pl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},al={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ul={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rl={init:function(){this.setColour(br),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ll={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dl={init:function(){this.setColour(br),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Il={init:function(){this.setColour(br),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Tl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},ml={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},El={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(br),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ll={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Al={init:function(){this.setColour(br),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Yl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Xl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},yl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},xl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},bl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Vl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Bl={init:function(){this.setColour(br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},VE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},BE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},GE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},UE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},kE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},HE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},qE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},QE={init:function(){this.setColour(PE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},zE={init:function(){this.setColour(PE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},jE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},ZE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},$E={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(PE),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},nO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},_O={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},pO=YE,aO=vE,uO=XE,rO=yE,lO=bE,dO=225,IO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},TO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},MO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},hO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},mO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},EO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},RO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},cO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},gO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},SO={init:function(){this.setColour(dO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},LO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},AO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},NO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},DO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},fO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},FO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},PO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},YO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},vO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},XO={init:function(){this.setColour(dO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},xO={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},bO={init:function(){this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},VO={init:function(){this.setColour(dO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},BO="#3288dd",GO={init:function(){this.setColour(BO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},UO={init:function(){this.setColour(BO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},wO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(BO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},kO={init:function(){this.setColour(BO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(BO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WO={init:function(){this.setColour(BO),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},KO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},QO="#A58C5B",zO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},jO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},ZO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},$O={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},tR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},eR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},iR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},nR={init:function(){var t=[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(QO),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},sR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},_R={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},oR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},pR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},aR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},uR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},rR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},lR={init:function(){this.setColour(QO),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},dR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},IR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},TR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},mR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},ER={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},OR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},RR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},fR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},FR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},XR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},bR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},VR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},BR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},GR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},UR={init:function(){this.setColour(QO),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},wR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},HR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},WR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},KR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},JR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},QR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},hF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},EF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},OF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},gF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},CF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},SF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},LF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},AF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},NF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},DF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},fF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},FF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},PF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},YF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},vF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},XF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},yF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},xF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},bF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},VF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},BF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},GF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},UF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},wF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},kF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},WF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},KF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},JF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},qF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},QF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},zF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},jF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},ZF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},$F=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},tP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},eP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},iP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},sP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_P=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},pP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},aP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},uP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},dP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},mP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},EP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},OP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},RP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},cP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},gP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},CP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},SP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},LP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},AP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},NP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},DP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},fP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},FP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},PP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},YP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},lY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},dY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},IY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},TY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},MY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},hY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},mY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},EY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},OY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},RY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},cY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},gY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},CY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},SY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},LY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},AY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},NY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},DY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},fY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},FY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},PY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},YY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},vY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},XY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},gV=function(){return"control.reset()\n"},CV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},SV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},LV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},AV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},NV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},DV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},fV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},FV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},PV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},YV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},vV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},XV=function(){return"while True:\n pass\n"},yV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},xV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},bV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},VV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},BV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},GV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},UV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},wV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},kV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},HV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},WV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},KV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},JV=wV,qV=GV,QV=UV,zV=bV,jV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$V=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},eB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},iB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},nB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},sB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},pB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},aB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},uB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},rB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},lB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},dB={};dB.mpython={description:"MicroPython[EDUCORE Edu Core]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},dB["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const IB=dB,TB=20,MB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},hB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},mB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},EB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},OB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},RB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},cB={init:function(){this.setColour(TB),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},gB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},CB={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},SB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},LB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},AB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},NB=CB,DB=LB,fB=cB,FB=gB,PB=40,YB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},vB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},yB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},xB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},bB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},VB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},BB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GB=100,UB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},wB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},kB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},HB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},WB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},KB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},JB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},jB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},ZB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},$B={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},tG={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eG={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},iG={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},nG=230,sG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},lG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},IG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},TG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},cG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},AG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},fG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},FG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},YG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},vG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},XG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},yG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},xG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},BG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},GG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},wG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},JG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},qG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},QG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},zG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},jG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},ZG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},$G=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},tU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},eU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},iU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},nU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},sU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},_U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},oU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},pU=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},aU=function(t,e){if(e.definitions_.import_mini_g2="import mini_g2","mixgo_mini"==Rt.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var i='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";i='mini_g2.ext_rc522.read_card(0, x="id")'}return[i,e.ORDER_ATOMIC]},uU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},rU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},lU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},dU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},IU=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},TU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},MU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},hU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},mU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},EU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},OU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},RU=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},cU=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},gU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},CU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},SU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},LU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},AU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},NU=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},DU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},fU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},FU=fU,PU=fU,YU=fU,vU=fU,XU=fU,yU=fU,xU=fU,bU=fU,VU=fU,BU=fU,GU=fU,UU=fU,wU=fU,kU=fU,HU=fU,WU=fU,KU=fU,JU=fU,qU=fU,QU=fU,zU=fU,jU=fU,ZU=fU,$U=fU,tw=fU,ew=fU,iw=fU,nw=fU,sw=fU,_w=fU,ow=fU,pw=fU,aw=fU,uw=fU,rw=fU,lw=fU,dw=fU,Iw=fU,Tw=fU,Mw=fU,hw=fU,mw=fU,Ew=fU,Ow=fU;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,ss),Ot.Python=Pu,Ot.generator=Pu,Rt.Profile.default={},Object.assign(Rt.Profile,IB),Object.assign(Rt.Profile.default,IB["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,L,A,nt,ut,at,$,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,Z,Mt,ht,mt,Et)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32/index.xml b/boards/default/micropython_esp32/index.xml index 4f4be601..8a6dfb50 100644 --- a/boards/default/micropython_esp32/index.xml +++ b/boards/default/micropython_esp32/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcp20189141420452023,1,1,12,0,0180291001004404401000004120000000000010001000100Mixly0MixlyMixly500MixlyMixly500>10.5001MixlyMixly0010MixlyMixly0550MixlyMixly550000200050502020201510000i2c_extend2122400000pei2c_extendpepe100pepe100pepe100pewifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr457ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcp20189141420452023,1,1,12,0,0180292023,1,1,12,0,01001004404401000004120000000000010001000100Mixly0MixlyMixly500MixlyMixly500>10.5001MixlyMixly0010MixlyMixly0550MixlyMixly550000200050502020201510000i2c_extend2122400000pei2c_extendpepe100pepe100pepe100pewifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr457ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32/main.bundle.js b/boards/default/micropython_esp32/main.bundle.js index ee94c965..e17f8814 100644 --- a/boards/default/micropython_esp32/main.bundle.js +++ b/boards/default/micropython_esp32/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>gt,controls_typeLists:()=>Ct,lists_zip:()=>St,lists_zip_container:()=>At,lists_zip_item:()=>Lt,unpack_iterable_object:()=>Nt,variables_change:()=>Rt,variables_get:()=>Et,variables_global:()=>ct,variables_set:()=>Ot});var i={};t.r(i),t.d(i,{base_setup:()=>Ft,controls_delay:()=>Pt,controls_end_program:()=>Yt,controls_except:()=>Wt,controls_finally:()=>Kt,controls_flow_statements:()=>Vt,controls_for:()=>Bt,controls_forEach:()=>xt,controls_for_range:()=>Gt,controls_if:()=>vt,controls_if_else:()=>Ht,controls_if_elseif:()=>wt,controls_if_if:()=>Ut,controls_lambda:()=>Qt,controls_main:()=>ft,controls_pass:()=>qt,controls_range:()=>Xt,controls_repeat_ext:()=>Jt,controls_thread:()=>zt,controls_try:()=>kt,controls_try_finally:()=>yt,controls_whileUntil:()=>bt,datetime_fromtimestamp:()=>ie,do_while:()=>jt,garbage_collection:()=>Zt,gene_unique_identifier:()=>ne,get_mem_alloc:()=>$t,get_mem_free:()=>te,get_unique_identifier:()=>ee});var n={};t.r(n),t.d(n,{base_map:()=>Se,generate_cartesian_product:()=>Le,math_arithmetic:()=>ae,math_bit:()=>re,math_constant:()=>oe,math_constant_mp:()=>pe,math_constrain:()=>me,math_dec:()=>le,math_indexer_number:()=>Oe,math_map:()=>Ee,math_max_min:()=>Te,math_number:()=>_e,math_number_base_conversion:()=>Me,math_random:()=>he,math_random_seed:()=>Re,math_round:()=>ce,math_selfcalcu:()=>ue,math_to_int:()=>Ie,math_trig:()=>de,text_to_number:()=>ge,text_to_number_skulpt:()=>Ce,turn_to_int:()=>Ae});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ye,char_to_ascii:()=>ve,number_to_text:()=>Xe,os_system:()=>_i,text:()=>De,text_capital:()=>He,text_center:()=>ke,text_char:()=>Fe,text_char_at:()=>ye,text_char_at2:()=>be,text_char_at3:()=>ei,text_compareTo:()=>ti,text_compare_to:()=>we,text_create_with_container:()=>je,text_create_with_item:()=>Ze,text_encode:()=>ni,text_equals_starts_ends:()=>Ue,text_eval:()=>si,text_find:()=>We,text_format:()=>ze,text_format_noreturn:()=>ii,text_join:()=>Pe,text_join_seq:()=>Ke,text_length:()=>xe,text_random_char:()=>Ve,text_replace:()=>Je,text_split:()=>Qe,text_strip:()=>qe,text_substring:()=>Ge,text_substring2:()=>Be,text_substring3:()=>$e,text_textarea:()=>fe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ui,content_in_lists:()=>Hi,enumerate:()=>wi,list_many_input:()=>Di,list_tolist:()=>Yi,list_tolist2:()=>Gi,list_trig:()=>Ai,lists_2d_get_col_row_data:()=>ri,lists_2d_get_data_with_col_row:()=>ui,lists_append_extend:()=>hi,lists_change_to:()=>Ni,lists_change_to_general:()=>Fi,lists_clear:()=>ci,lists_create_with:()=>di,lists_create_with2:()=>vi,lists_create_with_container:()=>Ii,lists_create_with_item:()=>Ti,lists_create_with_noreturn:()=>fi,lists_create_with_text:()=>li,lists_create_with_text2:()=>Xi,lists_del_general:()=>Pi,lists_find:()=>Si,lists_getIndex3:()=>xi,lists_getSublist3:()=>bi,lists_get_index:()=>pi,lists_get_random_item:()=>mi,lists_get_random_sublist:()=>Ei,lists_get_sublist:()=>ai,lists_insert_value:()=>Oi,lists_insert_value2:()=>Vi,lists_pop:()=>Ci,lists_remove_at:()=>gi,lists_remove_at2:()=>Bi,lists_reverse:()=>Ri,lists_setIndex3:()=>yi,lists_set_index:()=>Mi,lists_sort:()=>Li});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>on,dicts_add_or_change:()=>ji,dicts_clear:()=>tn,dicts_create_with:()=>Wi,dicts_create_with_container:()=>Ki,dicts_create_with_item:()=>Ji,dicts_create_with_noreturn:()=>un,dicts_deldict:()=>_n,dicts_delete:()=>Zi,dicts_get:()=>qi,dicts_get_default:()=>zi,dicts_items:()=>en,dicts_keys:()=>Qi,dicts_length:()=>sn,dicts_pop:()=>pn,dicts_setdefault:()=>an,dicts_to_json:()=>dn,dicts_to_json2:()=>Tn,dicts_to_to:()=>In,dicts_todict:()=>rn,dicts_update:()=>$i,dicts_values:()=>nn,json_to_dicts:()=>ln});var p={};t.r(p),t.d(p,{logic_boolean:()=>Rn,logic_compare:()=>hn,logic_compare_continous:()=>mn,logic_is:()=>Sn,logic_is_in:()=>Cn,logic_negate:()=>On,logic_null:()=>cn,logic_operation:()=>En,logic_tobool:()=>An,logic_true_or_false:()=>gn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>Qn,sdcard_use_spi_init:()=>Jn,storage_can_write_ornot:()=>Xn,storage_change_dir:()=>Wn,storage_close_file:()=>bn,storage_delete_file:()=>Vn,storage_file_seek:()=>Un,storage_file_tell:()=>Gn,storage_file_write:()=>Fn,storage_fileopen:()=>Nn,storage_fileopen_new:()=>Dn,storage_fileopen_new_encoding:()=>fn,storage_get_a_line:()=>vn,storage_get_contents:()=>Yn,storage_get_contents_without_para:()=>Pn,storage_get_current_dir:()=>wn,storage_get_file_size:()=>Bn,storage_get_filename:()=>xn,storage_is_file:()=>Kn,storage_list_all_files:()=>yn,storage_make_dir:()=>Hn,storage_open_file_with_os:()=>Ln,storage_rename:()=>kn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>es,procedures_callreturn:()=>is,procedures_defnoreturn:()=>jn,procedures_defreturn:()=>Zn,procedures_ifreturn:()=>ns,procedures_mutatorarg:()=>ts,procedures_mutatorcontainer:()=>$n,procedures_return:()=>ss});var r={};t.r(r),t.d(r,{tuple_change_to:()=>hs,tuple_create_with:()=>os,tuple_create_with_container:()=>ps,tuple_create_with_item:()=>as,tuple_create_with_noreturn:()=>Rs,tuple_create_with_text2:()=>us,tuple_create_with_text_return:()=>rs,tuple_del:()=>Is,tuple_find:()=>ms,tuple_getIndex:()=>ds,tuple_getSublist:()=>Os,tuple_get_random_item:()=>gs,tuple_get_sublist:()=>cs,tuple_join:()=>Ts,tuple_length:()=>ls,tuple_max:()=>Ms,tuple_totuple:()=>Cs,tuple_trig:()=>Es});var d={};t.r(d),t.d(d,{set_add_discard:()=>vs,set_clear:()=>Fs,set_create_with:()=>As,set_create_with_container:()=>Ls,set_create_with_item:()=>Ns,set_create_with_text_return:()=>bs,set_length:()=>Ds,set_operate:()=>Ps,set_operate_update:()=>Ys,set_pop:()=>fs,set_sub:()=>Xs,set_toset:()=>ys,set_update:()=>xs});var l={};t.r(l),t.d(l,{html_content:()=>ws,html_content_more:()=>Hs,html_document:()=>Bs,html_form:()=>Ws,html_head_body:()=>Us,html_style:()=>ks,html_style_color:()=>Js,html_style_content:()=>Ks,html_text:()=>Qs,html_title:()=>Gs});var I={};t.r(I),t.d(I,{attribute_access:()=>a_,function_call:()=>__,function_call_container:()=>o_,function_call_item:()=>p_,raw_block:()=>js,raw_empty:()=>$s,raw_expression:()=>Zs,raw_table:()=>zs,text_comment:()=>t_,text_print_multiple:()=>i_,text_print_multiple_container:()=>n_,text_print_multiple_item:()=>s_,type_check:()=>e_});var T={};t.r(T),t.d(T,{controls_type:()=>I_,controls_typeLists:()=>T_,lists_zip:()=>M_,unpack_iterable_object:()=>h_,variables_change:()=>d_,variables_get:()=>u_,variables_global:()=>l_,variables_set:()=>r_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>L_,base_setup:()=>E_,controls_delay:()=>A_,controls_flow_statements:()=>S_,controls_for:()=>c_,controls_forEach:()=>P_,controls_for_range:()=>g_,controls_if:()=>O_,controls_interrupts:()=>f_,controls_lambda:()=>v_,controls_main:()=>m_,controls_millis:()=>N_,controls_nointerrupts:()=>F_,controls_pass:()=>x_,controls_range:()=>Y_,controls_repeat:()=>H_,controls_repeat_ext:()=>V_,controls_thread:()=>b_,controls_try_finally:()=>R_,controls_whileUntil:()=>C_,datetime_fromtimestamp:()=>k_,do_while:()=>y_,garbage_collection:()=>B_,gene_unique_identifier:()=>W_,get_mem_alloc:()=>G_,get_mem_free:()=>U_,get_unique_identifier:()=>w_,reset:()=>D_,time_sleep:()=>X_});var h={};t.r(h),t.d(h,{base_map:()=>Io,generate_cartesian_product:()=>Mo,math_arithmetic:()=>z_,math_bit:()=>q_,math_constant:()=>J_,math_constant_mp:()=>Q_,math_constrain:()=>_o,math_dec:()=>to,math_indexer_number:()=>ao,math_map:()=>so,math_max_min:()=>io,math_number:()=>K_,math_number_base_conversion:()=>oo,math_random:()=>no,math_random_seed:()=>po,math_round:()=>uo,math_selfcalcu:()=>j_,math_single:()=>Z_,math_to_int:()=>eo,math_trig:()=>$_,text_to_number:()=>ro,text_to_number_skulpt:()=>lo,turn_to_int:()=>To});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Ro,char_to_ascii:()=>co,number_to_text:()=>go,os_system:()=>Wo,text:()=>ho,text_capital:()=>Po,text_center:()=>Yo,text_char:()=>Eo,text_char_at:()=>Ao,text_char_at2:()=>So,text_char_at3:()=>wo,text_compareTo:()=>Uo,text_compare_to:()=>Do,text_encode:()=>Ho,text_equals_starts_ends:()=>No,text_eval:()=>ko,text_find:()=>vo,text_format:()=>Vo,text_format_noreturn:()=>Bo,text_join:()=>Oo,text_join_seq:()=>Xo,text_length:()=>Co,text_random_char:()=>Lo,text_replace:()=>xo,text_split:()=>bo,text_strip:()=>yo,text_substring:()=>Fo,text_substring2:()=>fo,text_substring3:()=>Go,text_textarea:()=>mo});var E={};t.r(E),t.d(E,{content_in_lists:()=>Ap,enumerate:()=>Sp,list_many_input:()=>dp,list_tolist:()=>gp,list_tolist2:()=>Cp,list_trig:()=>ap,lists_2d_get_col_row_data:()=>Qo,lists_2d_get_data_with_col_row:()=>Jo,lists_append_extend:()=>$o,lists_change_to:()=>rp,lists_change_to_general:()=>Ip,lists_clear:()=>sp,lists_create_with:()=>qo,lists_create_with2:()=>Mp,lists_create_with_noreturn:()=>lp,lists_create_with_text:()=>zo,lists_create_with_text2:()=>hp,lists_del_general:()=>Tp,lists_find:()=>_p,lists_getIndex3:()=>mp,lists_getSublist3:()=>Ep,lists_get_index:()=>jo,lists_get_random_item:()=>tp,lists_get_random_sublist:()=>ep,lists_get_sublist:()=>Ko,lists_insert_value:()=>ip,lists_insert_value2:()=>Rp,lists_pop:()=>pp,lists_remove_at:()=>op,lists_remove_at2:()=>cp,lists_reverse:()=>np,lists_setIndex3:()=>Op,lists_set_index:()=>Zo,lists_sort:()=>up});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Vp,dicts_add_or_change:()=>Fp,dicts_clear:()=>vp,dicts_create_with:()=>Lp,dicts_create_with_noreturn:()=>Up,dicts_deldict:()=>yp,dicts_delete:()=>Pp,dicts_get:()=>Dp,dicts_get_default:()=>fp,dicts_items:()=>Xp,dicts_keys:()=>Np,dicts_length:()=>bp,dicts_pop:()=>Bp,dicts_setdefault:()=>Gp,dicts_to_json:()=>Hp,dicts_to_json2:()=>Kp,dicts_to_to:()=>Wp,dicts_todict:()=>wp,dicts_update:()=>Yp,dicts_values:()=>xp,json_to_dicts:()=>kp});var R={};t.r(R),t.d(R,{logic_boolean:()=>jp,logic_compare:()=>Jp,logic_compare_continous:()=>Qp,logic_is:()=>ea,logic_is_in:()=>ta,logic_negate:()=>zp,logic_null:()=>Zp,logic_operation:()=>qp,logic_tobool:()=>ia,logic_true_or_false:()=>$p});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Aa,sdcard_use_spi_init:()=>Sa,storage_can_write_ornot:()=>da,storage_change_dir:()=>Oa,storage_close_file:()=>Ia,storage_delete_file:()=>Ma,storage_file_seek:()=>Ea,storage_file_tell:()=>ma,storage_file_write:()=>pa,storage_fileopen:()=>sa,storage_fileopen_new:()=>_a,storage_fileopen_new_encoding:()=>oa,storage_get_a_line:()=>ra,storage_get_contents:()=>ua,storage_get_contents_without_para:()=>aa,storage_get_current_dir:()=>Ra,storage_get_file_size:()=>ha,storage_get_filename:()=>la,storage_is_file:()=>Ca,storage_list_all_files:()=>Ta,storage_make_dir:()=>ca,storage_open_file_with_os:()=>na,storage_rename:()=>ga});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>fa,procedures_callreturn:()=>Da,procedures_defnoreturn:()=>Na,procedures_defreturn:()=>La,procedures_ifreturn:()=>Fa,procedures_return:()=>Pa});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ga,tuple_create_with:()=>Ya,tuple_create_with_noreturn:()=>ka,tuple_create_with_text2:()=>va,tuple_create_with_text_return:()=>Xa,tuple_del:()=>ya,tuple_find:()=>Ua,tuple_getIndex:()=>xa,tuple_getSublist:()=>Ha,tuple_get_random_item:()=>Ka,tuple_get_sublist:()=>Wa,tuple_join:()=>Va,tuple_length:()=>ba,tuple_max:()=>Ba,tuple_totuple:()=>Ja,tuple_trig:()=>wa});var S={};t.r(S),t.d(S,{set_add_discard:()=>tu,set_clear:()=>ja,set_create_with:()=>Qa,set_create_with_text_return:()=>nu,set_length:()=>qa,set_operate:()=>Za,set_operate_update:()=>$a,set_pop:()=>za,set_sub:()=>eu,set_toset:()=>su,set_update:()=>iu});var A={};t.r(A),t.d(A,{html_content:()=>au,html_content_more:()=>uu,html_document:()=>_u,html_form:()=>du,html_head_body:()=>pu,html_style:()=>ru,html_style_content:()=>lu,html_text:()=>Iu,html_title:()=>ou});var L={};t.r(L),t.d(L,{attribute_access:()=>Ru,function_call:()=>Ou,raw_block:()=>Tu,raw_empty:()=>hu,raw_expression:()=>Mu,raw_table:()=>mu,type_check:()=>Eu});var N={};t.r(N),t.d(N,{PIN_init:()=>cr,actuator_extern_get_led_bright:()=>Yu,actuator_extern_get_led_state:()=>vu,actuator_extern_led_bright:()=>Pu,actuator_extern_led_brightness:()=>Xu,actuator_ms32006_dcmotor:()=>Hu,actuator_ms32006_init:()=>wu,actuator_ms32006_stepper:()=>ku,actuator_neopixel_init:()=>Wu,actuator_neopixel_rgb:()=>Ku,actuator_neopixel_rgb_all:()=>Ju,actuator_neopixel_write:()=>Qu,actuator_use_uart_init:()=>qu,esp32_music_get_tempo_extern:()=>Du,esp32_music_pitch:()=>Su,esp32_music_pitch_init:()=>Cu,esp32_music_pitch_with_time:()=>Au,esp32_music_play_list:()=>Lu,esp32_music_reset_extern:()=>fu,esp32_music_set_tempo_extern:()=>Nu,esp32_music_stop:()=>Fu,mixbot_actuator_extern_get_addr:()=>Or,mixbot_actuator_extern_set_addr:()=>Rr,mixbot_addr_extern:()=>or,parrot_PIN_init:()=>Ar,parrot_move_speed:()=>Lr,pin_led_bright:()=>gr,player_insert_music:()=>er,player_play_music:()=>tr,player_set_mode:()=>$u,player_set_play:()=>ju,player_set_volume:()=>Zu,player_whether_stop:()=>zu,robot_led_extern:()=>rr,robot_led_extern_get_value:()=>dr,robot_motor_extern:()=>pr,robot_motor_extern_get_speed:()=>ar,robot_servo_extern_absolute_run:()=>Mr,robot_servo_extern_get_status:()=>lr,robot_servo_extern_relative_continue:()=>Er,robot_servo_extern_relative_origin:()=>hr,robot_servo_extern_relative_run:()=>mr,robot_servo_extern_stop:()=>Tr,robot_servo_extern_stop_mode:()=>Ir,robot_traffic_light_extern:()=>ur,servo_PIN_init:()=>Cr,servo_get_angle:()=>Gu,servo_get_speed:()=>Uu,servo_init:()=>xu,servo_move:()=>bu,servo_move_angle:()=>Sr,servo_set_angle:()=>Vu,servo_set_speed:()=>Bu,servo_speed_360:()=>yu,syn6288_builtin_voice:()=>sr,syn6288_get_voice:()=>nr,syn6288_set_voice:()=>ir,syn6288_tts_play:()=>_r});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>sd,actuator_dc_motor_stop:()=>_d,actuator_get_led_bright:()=>Pr,actuator_get_led_state:()=>Yr,actuator_led_bright:()=>Fr,actuator_led_brightness:()=>vr,actuator_mixbot_buzzer_on_off:()=>rd,actuator_mixgo_nova_mic_get:()=>Md,actuator_mixgo_nova_mic_set:()=>Td,actuator_mixgo_nova_onboard_music_pitch:()=>cd,actuator_mixgo_nova_onboard_music_stop:()=>gd,actuator_mixgo_nova_play_audio:()=>Od,actuator_mixgo_nova_play_online_audio:()=>Rd,actuator_mixgo_nova_record_audio:()=>Ed,actuator_mixgo_nova_voice_get:()=>md,actuator_mixgo_nova_voice_set:()=>hd,actuator_mixgo_zero_led_color:()=>Xr,actuator_onboard_neopixel_rgb:()=>Gr,actuator_onboard_neopixel_rgb_all:()=>Ur,actuator_onboard_neopixel_rgb_show_all_chase:()=>Hr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>wr,actuator_onboard_neopixel_write:()=>kr,actuator_rm_onboard_neopixel_rgb:()=>Wr,actuator_rm_onboard_neopixel_rgb_all:()=>Kr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>Jr,actuator_stepper_keep:()=>id,actuator_stepper_stop:()=>nd,analog_ble_keyboard_init:()=>xd,analog_ble_keyboard_input:()=>Vd,analog_ble_keyboard_mouse_init:()=>Kd,analog_ble_keyboard_mouse_input:()=>zd,analog_ble_keyboard_mouse_send_battery:()=>qd,analog_ble_keyboard_mouse_str:()=>jd,analog_ble_keyboard_send_battery:()=>Gd,analog_ble_keyboard_str:()=>Bd,analog_ble_mouse_init:()=>Ud,analog_ble_mouse_input:()=>kd,analog_ble_mouse_keyboard_input:()=>Zd,analog_ble_mouse_send_battery:()=>Wd,analog_keyboard_input:()=>Ld,analog_keyboard_str:()=>Xd,analog_mouse_input:()=>Yd,bitbot_motor:()=>Id,bitbot_move:()=>dd,bitbot_stop:()=>ld,ble_keyboard_connect:()=>yd,ble_keyboard_get_mac:()=>bd,ble_keyboard_mouse_connect:()=>Qd,ble_keyboard_mouse_get_mac:()=>Jd,ble_mouse_connect:()=>Hd,ble_mouse_get_mac:()=>wd,cc_number:()=>Br,educore_ble_keyboard_input:()=>al,educore_ble_sensor_connected:()=>pl,educore_ble_sensor_init:()=>ol,educore_buzzer:()=>$d,educore_buzzer_play_tone:()=>tl,educore_buzzer_play_tone_time:()=>el,educore_buzzer_stop:()=>il,educore_neopixel_clear:()=>_l,educore_neopixel_rgb:()=>sl,educore_rgb_light:()=>nl,esp32_music_get_tempo:()=>qr,esp32_music_reset:()=>zr,esp32_music_set_tempo:()=>Qr,esp32_onboard_music_pitch:()=>jr,esp32_onboard_music_pitch_with_time:()=>Zr,esp32_onboard_music_play_list:()=>td,esp32_onboard_music_stop:()=>$r,general_key:()=>Dd,general_key_tuple:()=>fd,generalkey_container:()=>Fd,generalkey_create_with_item:()=>Pd,get_power_output:()=>Sd,ledswitch:()=>fr,mixbot_motor:()=>ud,mixbot_motor_status:()=>od,mixbot_move:()=>pd,mixbot_stop:()=>ad,mouse_key:()=>vd,number:()=>Dr,rm_actuator_get_led_bright:()=>br,rm_actuator_get_led_state:()=>yr,rm_actuator_led_bright:()=>xr,rm_actuator_led_brightness:()=>Vr,rm_motor:()=>ed,set_all_power_output:()=>Ad,set_power_output:()=>Cd,special_key:()=>Nd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>wl,ai_sensor_ailocal_class:()=>Pl,ai_sensor_ailocal_class_result:()=>Yl,ai_sensor_ailocal_train:()=>Fl,ai_sensor_asr_recognize:()=>yl,ai_sensor_audio_play:()=>Xl,ai_sensor_audio_record:()=>vl,ai_sensor_barcode:()=>hl,ai_sensor_circle:()=>gl,ai_sensor_classifier_faces:()=>Ul,ai_sensor_color:()=>Ll,ai_sensor_color_chases:()=>fl,ai_sensor_color_chases_result:()=>Dl,ai_sensor_config:()=>Tl,ai_sensor_face:()=>Gl,ai_sensor_find_20objects:()=>Hl,ai_sensor_find_barcodes:()=>ml,ai_sensor_find_circles:()=>Cl,ai_sensor_find_colors:()=>Nl,ai_sensor_find_licenseplates:()=>Bl,ai_sensor_find_lines:()=>cl,ai_sensor_find_qrcodes:()=>Il,ai_sensor_find_rects:()=>Al,ai_sensor_find_tags:()=>Ol,ai_sensor_licenseplate:()=>Vl,ai_sensor_line:()=>Rl,ai_sensor_qrcode:()=>dl,ai_sensor_qrcode_lite:()=>ll,ai_sensor_rect:()=>Sl,ai_sensor_rgb:()=>Ml,ai_sensor_tag:()=>El,ai_sensor_use_uart_init:()=>rl,ai_sensor_yolo_recognize:()=>xl,ai_sensor_yolo_recognize_result:()=>bl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Kl,MICROPYTHON_AI_Speech_unit:()=>Wl,MICROPYTHON_AI_client:()=>kl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>pI,mpython_blynk_app_notify:()=>tI,mpython_blynk_email:()=>nI,mpython_blynk_get_timers:()=>sI,mpython_blynk_on_connected:()=>jl,mpython_blynk_on_disconnected:()=>zl,mpython_blynk_run:()=>$l,mpython_blynk_sensor_data_to_app:()=>oI,mpython_blynk_set_property:()=>iI,mpython_blynk_setup:()=>aI,mpython_blynk_stop_timers:()=>eI,mpython_blynk_sync_virtual:()=>ql,mpython_blynk_terminal_widget_vpin:()=>Ql,mpython_blynktimer:()=>_I,mpython_blynktimer_run:()=>Zl});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>kI,communicate_bluetooth_connect:()=>QI,communicate_bluetooth_disconnect:()=>qI,communicate_bluetooth_handle:()=>tT,communicate_bluetooth_is_connected:()=>jI,communicate_bluetooth_mac:()=>JI,communicate_bluetooth_peripheral_init:()=>WI,communicate_bluetooth_recv:()=>ZI,communicate_bluetooth_recv_only:()=>$I,communicate_bluetooth_scan:()=>KI,communicate_bluetooth_send:()=>zI,communicate_espnow_init:()=>eT,communicate_espnow_init_new:()=>iT,communicate_i2c_available:()=>LI,communicate_i2c_init:()=>lI,communicate_i2c_master_read:()=>AI,communicate_i2c_onboard:()=>rI,communicate_i2c_read:()=>II,communicate_i2c_scan:()=>MI,communicate_i2c_write:()=>TI,communicate_ir_recv_init:()=>XI,communicate_ir_send_init:()=>BI,communicate_ow_init:()=>DI,communicate_ow_read:()=>FI,communicate_ow_reset:()=>vI,communicate_ow_scan:()=>fI,communicate_ow_select:()=>YI,communicate_ow_write:()=>PI,communicate_spi_buffer:()=>EI,communicate_spi_init:()=>hI,communicate_spi_onboard:()=>dI,communicate_spi_read:()=>OI,communicate_spi_read_output:()=>RI,communicate_spi_readinto:()=>cI,communicate_spi_readinto_output:()=>gI,communicate_spi_set:()=>mI,communicate_spi_write:()=>CI,communicate_spi_write_readinto:()=>SI,espnow_radio_channel:()=>aT,espnow_radio_channel_new:()=>rT,espnow_radio_on_off:()=>dT,espnow_radio_rec:()=>IT,espnow_radio_recv:()=>MT,espnow_radio_recv_certain_msg:()=>hT,espnow_radio_recv_certain_msg_new:()=>ET,espnow_radio_recv_msg:()=>TT,espnow_radio_recv_new:()=>mT,espnow_radio_send:()=>lT,espnow_radio_txpower:()=>uT,i2c_available:()=>GT,i2c_init:()=>LT,i2c_master_reader2:()=>BT,i2c_read:()=>NT,i2c_scan:()=>fT,i2c_slave_onreceive:()=>NI,i2c_write:()=>DT,internal_variable:()=>xI,ir_recv_timeout:()=>VI,ir_transmit_busy:()=>HI,ir_transmit_conventional_data:()=>GI,ir_transmit_raw_code:()=>wI,ir_transmit_study_code:()=>UI,ir_whether_recv:()=>yI,lora_init:()=>OT,lora_packet:()=>RT,lora_recv:()=>gT,lora_send:()=>cT,network_espnow_info:()=>sT,network_espnow_mac:()=>nT,network_espnow_recv:()=>_T,network_espnow_recv_handle:()=>pT,network_espnow_send:()=>oT,recv_fun:()=>bI,spi_buffer:()=>YT,spi_init:()=>FT,spi_read:()=>vT,spi_read_output:()=>XT,spi_readinto:()=>xT,spi_readinto_output:()=>bT,spi_set:()=>PT,spi_write:()=>yT,spi_write_readinto:()=>VT,urequests_attribute:()=>ST,urequests_get:()=>CT,urequests_method:()=>AT});var v={};t.r(v),t.d(v,{display_animate:()=>hM,display_blink_rate:()=>lM,display_circle:()=>mM,display_color_seclet:()=>fM,display_draw_4strings:()=>oM,display_fill:()=>MM,display_get_screen_image:()=>dM,display_help:()=>OM,display_image_size:()=>pM,display_lcd_use_i2c_init:()=>xM,display_line:()=>uM,display_line_arbitrarily:()=>rM,display_matrix_extern_bright_point:()=>ZT,display_matrix_extern_bright_screen:()=>tM,display_matrix_extern_clear:()=>eM,display_matrix_extern_get_pixel:()=>jT,display_matrix_extern_get_screen_pixel:()=>$T,display_matrix_extern_image_builtins:()=>iM,display_matrix_extern_scroll_string:()=>KT,display_matrix_extern_scroll_string_delay:()=>JT,display_matrix_extern_shift:()=>zT,display_matrix_extern_show_frame_string:()=>QT,display_matrix_extern_show_frame_string_delay:()=>qT,display_matrix_extern_show_image:()=>kT,display_matrix_extern_show_image_or_string_delay:()=>WT,display_matrix_use_i2c_init:()=>HT,display_oled_drawPixel:()=>cM,display_oled_showBitmap:()=>RM,display_oled_use_i2c_init:()=>GM,display_onoff:()=>TM,display_rect:()=>aM,display_rgb_color:()=>IM,display_tm1650_power:()=>CM,display_tm1650_set_brightness:()=>LM,display_tm1650_show_dot:()=>AM,display_tm1650_show_num:()=>SM,display_tm_use_i2c_init:()=>gM,display_triangle:()=>EM,display_use_i2c_init:()=>_M,extern_oled_bright_point:()=>jM,extern_oled_clear:()=>ZM,extern_oled_get_pixel:()=>zM,extern_oled_hvline:()=>th,extern_oled_line:()=>eh,extern_oled_scroll_string:()=>WM,extern_oled_scroll_string_delay:()=>KM,extern_oled_shape_rect:()=>$M,extern_oled_shift:()=>qM,extern_oled_show_frame_string:()=>JM,extern_oled_show_frame_string_delay:()=>QM,extern_oled_show_image:()=>UM,extern_oled_show_image_or_string_delay:()=>kM,extern_oled_show_image_xy:()=>wM,extern_oled_show_string:()=>HM,lcd_backlight:()=>VM,lcd_clear:()=>BM,lcd_print_string:()=>yM,lcd_show_image_or_string_delay:()=>bM,matrix_extern_image_arithmetic:()=>nM,matrix_extern_image_invert:()=>sM,tft_fill:()=>vM,tft_line_arbitrarily:()=>XM,tft_scroll_string_delay:()=>PM,tft_show_frame_string_delay:()=>YM,tft_show_image_or_string_delay:()=>FM,tft_show_image_xy:()=>DM,tft_use_spi_init:()=>NM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>Gh,display_bright_point:()=>hh,display_bright_screen:()=>Eh,display_clear:()=>Oh,display_get_pixel:()=>Mh,display_get_screen_pixel:()=>mh,display_image_builtins:()=>rh,display_image_builtins_all:()=>dh,display_image_create:()=>uh,display_scroll_string:()=>_h,display_scroll_string_delay:()=>oh,display_shift:()=>Th,display_show_frame_string:()=>ph,display_show_frame_string_delay:()=>ah,display_show_image:()=>nh,display_show_image_or_string_delay:()=>sh,draw_pointer:()=>rm,image_arithmetic:()=>lh,image_invert:()=>Ih,mixbot_display_bright_screen:()=>Vh,mixbot_display_get_ambientbright:()=>yh,mixbot_display_get_screen_pixel:()=>bh,mixbot_display_image_create:()=>xh,mixbot_display_rotate:()=>Bh,mixgo_display_image_create_new:()=>gh,mixgome_display_font:()=>Ch,mixgome_display_image_create:()=>Rh,mixgomini_display_image_create:()=>ch,mpython_display_hvline:()=>Yh,mpython_display_line:()=>vh,mpython_display_shape_rect:()=>Ph,mpython_pbm_image:()=>Xh,onboard_oled_bright_point:()=>Fh,onboard_oled_scroll_string_delay:()=>Dh,onboard_oled_show_frame_string_delay:()=>fh,onboard_oled_show_image:()=>Sh,onboard_oled_show_image_or_string_delay:()=>Nh,onboard_oled_show_image_xy:()=>Ah,onboard_oled_show_string:()=>Lh,onboard_tft_bright_point:()=>$h,onboard_tft_bright_screen:()=>im,onboard_tft_clear:()=>tm,onboard_tft_clock_clear:()=>am,onboard_tft_clock_draw:()=>pm,onboard_tft_clock_get_rtctime:()=>_m,onboard_tft_clock_init:()=>sm,onboard_tft_clock_set_time:()=>om,onboard_tft_display_hvline:()=>qh,onboard_tft_display_line:()=>zh,onboard_tft_display_shape_circle:()=>um,onboard_tft_display_shape_rect:()=>Qh,onboard_tft_fill:()=>nm,onboard_tft_get_pixel:()=>Zh,onboard_tft_get_screen_pixel:()=>em,onboard_tft_scroll_string:()=>kh,onboard_tft_scroll_string_delay:()=>Wh,onboard_tft_shift:()=>jh,onboard_tft_show_frame_string:()=>Kh,onboard_tft_show_frame_string_delay:()=>Jh,onboard_tft_show_image:()=>Uh,onboard_tft_show_image_or_string_delay:()=>Hh,onboard_tft_show_image_xy:()=>wh});var x={};t.r(x),t.d(x,{factory_block:()=>cm,factory_block_return:()=>gm,factory_block_return_with_textarea:()=>Sm,factory_block_with_textarea:()=>Cm,factory_callMethod_noreturn:()=>Om,factory_callMethod_return:()=>Rm,factory_create_with_container:()=>Mm,factory_create_with_item:()=>hm,factory_declare:()=>Em,factory_from_import:()=>lm,factory_function_noreturn:()=>Tm,factory_function_return:()=>mm,factory_import:()=>Im,folding_block:()=>Am});var b={};t.r(b),t.d(b,{controls_pin_attachInterrupt:()=>Jm,inout_analog_atten:()=>xm,inout_analog_read:()=>Xm,inout_analog_read_init:()=>Um,inout_analog_write:()=>Pm,inout_analog_write_init:()=>Gm,inout_analog_write_set:()=>Ym,inout_analog_write_set_freq:()=>km,inout_digital_init:()=>Vm,inout_digital_read:()=>fm,inout_digital_write:()=>Dm,inout_highlow:()=>Nm,inout_pinMode:()=>Hm,inout_pin_attachInterrupt:()=>ym,inout_pin_pressed:()=>bm,inout_pin_pressed_init:()=>wm,inout_pwm_analog_write:()=>Fm,inout_pwm_analog_write_init:()=>Bm,inout_pwm_analog_write_set_freq:()=>vm,pin_pressed:()=>Km,pin_pressed_init:()=>Wm});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>mE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>hE,IOT_EMQX_PING:()=>TE,IOT_FORMATTING:()=>lE,IOT_FORMAT_STRING:()=>IE,IOT_MIXIO_NTP:()=>ME,IOT_MIXIO_PUBLISH:()=>_E,IOT_MIXIO_SUBSCRIBE:()=>oE,iot_checkonenet:()=>NE,iot_client_onboard:()=>OE,iot_create_with_item:()=>nE,iot_http_client:()=>RE,iot_http_data:()=>cE,iot_mixio_check:()=>uE,iot_mixio_connect:()=>sE,iot_mixio_connect_only:()=>aE,iot_mixio_disconnect:()=>pE,iot_mixio_format_msg:()=>dE,iot_mixio_format_topic:()=>rE,iot_mixly_key:()=>EE,iot_mqtt_client:()=>gE,iot_mqtt_data:()=>CE,iot_onenet_check:()=>Zm,iot_onenet_connect:()=>zm,iot_onenet_disconnect:()=>jm,iot_onenet_publish:()=>tE,iot_onenet_publish_dict:()=>$m,iot_onenetconnect:()=>AE,iot_onenetdisconnect:()=>LE,iot_publish:()=>DE,iot_publish_container:()=>eE,iot_publish_item:()=>iE,iot_wifi_connect:()=>qm,iot_wificonnect:()=>SE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>pO,educore_mqtt_connect_success:()=>dO,educore_mqtt_subscribe_message:()=>aO,educore_mqtt_topic_publish:()=>rO,educore_mqtt_topic_subscribe:()=>uO,educore_wifi_connect:()=>oO,network_ap_connect:()=>BE,network_connect:()=>XE,network_get_connect:()=>bE,network_get_wifi:()=>VE,network_init:()=>FE,network_is_active:()=>YE,network_open:()=>PE,network_scan:()=>vE,network_server:()=>GE,network_socket_accept:()=>WE,network_socket_bind:()=>wE,network_socket_close:()=>zE,network_socket_connect:()=>HE,network_socket_init:()=>UE,network_socket_listen:()=>kE,network_socket_receive:()=>KE,network_socket_receive_from:()=>QE,network_socket_send:()=>JE,network_socket_send_to:()=>qE,network_stop:()=>yE,network_wifi_connect:()=>xE,ntptime_address:()=>eO,ntptime_time:()=>tO,requests_attribute:()=>ZE,requests_attribute2:()=>_O,requests_get:()=>jE,requests_get2:()=>nO,requests_method:()=>$E,requests_post:()=>sO});var B={};t.r(B),t.d(B,{pe_g1_battery_left:()=>TO,pe_g1_dc_motor:()=>MO,pe_g1_dc_motor_speed:()=>hO,pe_g1_servo_get_angle:()=>OO,pe_g1_servo_get_speed:()=>RO,pe_g1_servo_set_angle:()=>mO,pe_g1_servo_set_speed:()=>EO,pe_g1_use_i2c_init:()=>IO});var G={};t.r(G),t.d(G,{CI130X_BROADCAST:()=>WO,CI130X_GET_THE_RECOGNIZED_CMD:()=>kO,CI130X_GET_WHETHER_IDENTIFY:()=>HO,CI130X_IDENTIFY_AND_SAVE:()=>wO,CI130X_SET_SYSTEM_CMD:()=>KO,HCSR04:()=>YR,PS2_Button:()=>bR,PS2_Buttons:()=>VR,PS2_Buttons_new:()=>wR,PS2_State:()=>yR,PS2_init:()=>vR,PS2_init_new:()=>GR,PS2_stk:()=>BR,PS2_stk_new:()=>HR,PS2_vibration:()=>xR,PS2_vibration_new:()=>UR,camera_sensor_init:()=>Ec,camera_sensor_result:()=>Oc,educore_body_sensor:()=>ac,educore_button_sensor_extern:()=>lc,educore_camera_sensor:()=>mc,educore_infrared_sensor:()=>dc,educore_soilhum_sensor:()=>uc,educore_temp_sensor:()=>hc,educore_temphum_sensor:()=>rc,educore_ultrasonic_sensor:()=>Tc,esp32_s2_weather_init:()=>DR,esp32_s2_weather_rain:()=>FR,esp32_s2_weather_wd:()=>fR,esp32_s2_weather_ws:()=>PR,extern_rfid_read:()=>TR,extern_rfid_readcontent:()=>hR,extern_rfid_readid:()=>MR,extern_rfid_status:()=>OR,extern_rfid_write:()=>mR,extern_rfid_write_return:()=>ER,gnss_get_data:()=>JR,gnss_have_data:()=>KR,interaction_whether_to_interaction:()=>GO,interaction_whether_to_interaction_SANT:()=>UO,mixbot_sensor_extern_get_addr:()=>tc,mixbot_sensor_extern_set_addr:()=>ec,pm25_get_data:()=>WR,radar_set_DETECTION_THRESHOLD:()=>VO,radar_set_DETECTION_THRESHOLD_SANT:()=>BO,robot_button_extern_get_value:()=>QR,robot_color_extern_get_value:()=>$R,robot_infrared_extern_get_value:()=>zR,robot_infrared_extern_grey_get_value:()=>jR,robot_potentiometer_extern_get_value:()=>ZR,robot_sonar_extern_get_value:()=>ic,robot_sonar_extern_led:()=>nc,robot_touch_extern_get_value:()=>qR,sensor_APDS9960_extern:()=>QO,sensor_DS18X20:()=>xO,sensor_LTR308_extern:()=>qO,sensor_LTR390UV_extern:()=>ZO,sensor_MAX30102_extern:()=>JO,sensor_QMC5883L_extern:()=>sR,sensor_VL530LX_extern:()=>$O,sensor_adxl345_get_acceleration:()=>NO,sensor_aht11_extern:()=>eR,sensor_bmp:()=>vO,sensor_compass_reset:()=>lR,sensor_dht11:()=>fO,sensor_hp203_extern:()=>iR,sensor_light_level:()=>DO,sensor_lm35:()=>bO,sensor_ltr381_extern:()=>zO,sensor_mixgo_extern_button_attachInterrupt:()=>AO,sensor_mixgo_extern_button_get_presses:()=>SO,sensor_mixgo_extern_button_is_pressed:()=>gO,sensor_mixgo_extern_button_was_pressed:()=>CO,sensor_mixgo_extern_light:()=>FO,sensor_mixgo_extern_pin_near:()=>YO,sensor_mixgo_extern_sound:()=>PO,sensor_mixgoce_hot_wheel_degrees:()=>NR,sensor_mixgoce_hot_wheel_is_touched:()=>LR,sensor_mpu9250_attachGestureInterrupt:()=>LO,sensor_mpu9250_calibrate_compass:()=>uR,sensor_mpu9250_field_strength:()=>dR,sensor_mpu9250_gesture:()=>_R,sensor_mpu9250_get_acceleration:()=>oR,sensor_mpu9250_get_gyro:()=>aR,sensor_mpu9250_get_magnetic:()=>pR,sensor_mpu9250_temperature:()=>rR,sensor_read_humiture:()=>Ic,sensor_sht:()=>XO,sensor_shtc3_extern:()=>tR,sensor_spl06_001_extern:()=>nR,sensor_ucs12071_extern:()=>jO,sensor_use_i2c_init:()=>yO,sensor_use_spi_init:()=>IR,sensor_use_uart_init:()=>kR,sensor_weather_solo_init:()=>sc,sensor_weather_solo_rain:()=>pc,sensor_weather_solo_wd:()=>_c,sensor_weather_solo_ws:()=>oc,sensor_weigh_init:()=>Rc,ultrasonic_sensor_read_distance:()=>Mc,weather_data:()=>RR,weather_have_data:()=>cR,weather_set_label:()=>CR,weather_set_label_container:()=>SR,weather_set_label_item:()=>AR,weather_uart_mixio:()=>gR,weigh_sensor_get_weight:()=>cc});var U={};t.r(U),t.d(U,{CI130X_BROADCAST_SANT:()=>MC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>TC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>IC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>lC,CI130X_SET_SYSTEM_CMD_SANT:()=>hC,HCSR04:()=>Vc,RTC_set_date:()=>yc,RTC_set_time:()=>bc,bitbot_als_num:()=>Wg,dht11:()=>Zg,educore_button_sensor:()=>pC,educore_button_was_pressed:()=>aC,educore_gyroscope_sensor:()=>sC,educore_gyroscope_sensor_read:()=>_C,educore_gyroscope_sensor_shake:()=>oC,educore_light_sensor:()=>nC,educore_rfid_sensor:()=>uC,educore_rfid_sensor_scan:()=>rC,educore_rfid_sensor_scan_data:()=>dC,educore_voice_sensor:()=>eC,number1:()=>Gc,number2:()=>Uc,number3:()=>wc,number4:()=>Hc,number5:()=>kc,number6:()=>Wc,number7:()=>Kc,onboard_RTC_get_time:()=>tg,onboard_RTC_get_time_str:()=>og,onboard_RTC_get_timestamp:()=>eg,onboard_RTC_set_datetime:()=>sg,onboard_RTC_settime_string:()=>ng,onboard_RTC_timestamp_totuple:()=>ig,rfid_readcontent:()=>Ig,rfid_readid:()=>lg,rfid_write:()=>Tg,rfid_write_return:()=>Mg,sensor_LTR308:()=>pg,sensor_aht11:()=>ug,sensor_bitbot_ALS:()=>kg,sensor_button_get_presses:()=>Qg,sensor_button_is_pressed:()=>Kg,sensor_button_was_pressed:()=>Jg,sensor_distance_hrsc04:()=>xc,sensor_eulerangles:()=>mg,sensor_field_strength:()=>$g,sensor_get_acceleration:()=>hg,sensor_get_temperature:()=>rg,sensor_hp203:()=>dg,sensor_light:()=>jg,sensor_mixbot_get_gyro:()=>Hg,sensor_mixbot_patrol_calibrate:()=>Gg,sensor_mixbot_patrol_value:()=>Ug,sensor_mixbot_temperature:()=>wg,sensor_mixgo_LTR308:()=>Zc,sensor_mixgo_button_attachInterrupt:()=>Lc,sensor_mixgo_button_get_presses:()=>Ac,sensor_mixgo_button_is_pressed:()=>Cc,sensor_mixgo_button_was_pressed:()=>Sc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Dg,sensor_mixgo_cc_mmc5603_get_angle:()=>Ng,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Lg,sensor_mixgo_light:()=>Bc,sensor_mixgo_nova_LTR308:()=>jc,sensor_mixgo_nova_pin_near:()=>zc,sensor_mixgo_pin_near:()=>qc,sensor_mixgo_pin_near_double:()=>Qc,sensor_mixgo_pin_near_single:()=>Jc,sensor_mixgo_pin_pressed:()=>Pc,sensor_mixgo_sant_color:()=>$c,sensor_mixgo_touch_slide:()=>Xc,sensor_mixgocar42_button_attachInterrupt:()=>Fc,sensor_mixgocar42_button_get_presses:()=>fc,sensor_mixgocar42_button_is_pressed:()=>Nc,sensor_mixgocar42_button_was_pressed:()=>Dc,sensor_mixgocar_battery_left:()=>Bg,sensor_mixgocar_pin_near:()=>yg,sensor_mixgocar_pin_near_line:()=>bg,sensor_mixgocar_pin_near_state_change:()=>Vg,sensor_mixgoce_pin_pressed:()=>Yc,sensor_mixgoce_temperature:()=>Fg,sensor_mixgome_temperature:()=>fg,sensor_mpython_pin_pressed:()=>vc,sensor_mpython_qmi8658_get_gyro:()=>Pg,sensor_mpython_qmi8658_temperature:()=>Yg,sensor_onboard_compass_reset:()=>Ag,sensor_onboard_mpu9250_calibrate_compass:()=>gg,sensor_onboard_mpu9250_field_strength:()=>Sg,sensor_onboard_mpu9250_gesture:()=>Eg,sensor_onboard_mpu9250_get_acceleration:()=>Og,sensor_onboard_mpu9250_get_gyro:()=>cg,sensor_onboard_mpu9250_get_magnetic:()=>Rg,sensor_onboard_mpu9250_temperature:()=>Cg,sensor_pin_near:()=>zg,sensor_pin_pressed:()=>qg,sensor_read:()=>iC,sensor_rm_acc:()=>xg,sensor_rm_battery_left:()=>Xg,sensor_rm_pin_near_double:()=>vg,sensor_rtc_init:()=>_g,sensor_sound:()=>ag,sensor_temperature:()=>tC});var w={};t.r(w),t.d(w,{serial_any:()=>SC,serial_begin:()=>fC,serial_print:()=>OC,serial_print_byte:()=>EC,serial_print_hex:()=>cC,serial_println:()=>RC,serial_read_from_ai:()=>VC,serial_readline:()=>AC,serial_readstr:()=>CC,serial_readstr_until:()=>LC,serial_receive_data_event:()=>gC,serial_send_to_ai:()=>yC,serial_softserial:()=>DC,serial_softserial_new:()=>NC,system_input:()=>FC,system_print:()=>PC,system_print_container:()=>xC,system_print_end:()=>vC,system_print_inline:()=>YC,system_print_item:()=>bC,system_print_many:()=>XC});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>wC,Timer_init:()=>eS,base_delay:()=>sS,controls_delay:()=>UC,controls_delay_new:()=>GC,controls_millis:()=>kC,controls_uname:()=>KC,raw_block:()=>WC,reset:()=>HC,system_bitbot_shutdown:()=>tS,system_machine_reset:()=>$C,system_ticks_diff:()=>qC,system_timer:()=>QC,system_timer_init:()=>zC,system_wdt_feed:()=>ZC,system_wdt_init:()=>jC,time_ticks_diff:()=>nS,timer:()=>JC,timer2:()=>iS});var k={};t.r(k),t.d(k,{Air_daily_content:()=>ES,Air_now_content:()=>dS,Geo_moon_content:()=>RS,Geo_sun_content:()=>OS,Life_suggestion_content:()=>IS,Location_search_content:()=>MS,Tide_daily_content:()=>TS,WEATHER_DAILY:()=>pS,WEATHER_HOUR:()=>aS,WEATHER_NOW:()=>oS,Weather_alarm_content:()=>lS,Weather_daily:()=>hS,Weather_daily_content:()=>mS,Weather_now:()=>uS,Weather_now_content:()=>rS});var W={};t.r(W),t.d(W,{PIN_init:()=>EA,actuator_extern_get_led_bright:()=>GS,actuator_extern_get_led_state:()=>US,actuator_extern_led_bright:()=>BS,actuator_extern_led_brightness:()=>wS,actuator_ms32006_dcmotor:()=>DS,actuator_ms32006_init:()=>NS,actuator_ms32006_stepper:()=>fS,actuator_neopixel_init:()=>HS,actuator_neopixel_rgb:()=>KS,actuator_neopixel_rgb_all:()=>kS,actuator_neopixel_write:()=>WS,actuator_use_uart_init:()=>JS,esp32_music_get_tempo_extern:()=>xS,esp32_music_pitch:()=>PS,esp32_music_pitch_init:()=>FS,esp32_music_pitch_with_time:()=>YS,esp32_music_play_list:()=>bS,esp32_music_reset_extern:()=>yS,esp32_music_set_tempo_extern:()=>XS,esp32_music_stop:()=>vS,mixbot_actuator_extern_get_addr:()=>hA,mixbot_actuator_extern_set_addr:()=>mA,mixbot_addr_extern:()=>nA,parrot_PIN_init:()=>gA,parrot_move_speed:()=>CA,pin_led_bright:()=>OA,player_play_music:()=>ZS,player_set_mode:()=>jS,player_set_play:()=>qS,player_set_volume:()=>zS,player_whether_stop:()=>QS,robot_led_extern:()=>pA,robot_led_extern_get_value:()=>aA,robot_motor_extern:()=>sA,robot_motor_extern_get_speed:()=>_A,robot_servo_extern_absolute_run:()=>lA,robot_servo_extern_get_status:()=>uA,robot_servo_extern_relative_continue:()=>MA,robot_servo_extern_relative_origin:()=>IA,robot_servo_extern_relative_run:()=>TA,robot_servo_extern_stop:()=>dA,robot_servo_extern_stop_mode:()=>rA,robot_traffic_light_extern:()=>oA,servo_PIN_init:()=>RA,servo_get_angle:()=>AS,servo_get_speed:()=>LS,servo_init:()=>cS,servo_move:()=>VS,servo_move_angle:()=>cA,servo_set_angle:()=>CS,servo_set_speed:()=>SS,servo_speed_360:()=>gS,syn6288_builtin_voice:()=>eA,syn6288_get_voice:()=>tA,syn6288_set_voice:()=>$S,syn6288_tts_play:()=>iA});var K={};t.r(K),t.d(K,{actuator_dc_motor:()=>jA,actuator_dc_motor_stop:()=>ZA,actuator_get_led_bright:()=>XA,actuator_get_led_state:()=>xA,actuator_led_bright:()=>vA,actuator_led_brightness:()=>bA,actuator_mixbot_buzzer_on_off:()=>nL,actuator_mixgo_nova_mic_get:()=>aL,actuator_mixgo_nova_mic_set:()=>pL,actuator_mixgo_nova_onboard_music_pitch:()=>TL,actuator_mixgo_nova_onboard_music_stop:()=>ML,actuator_mixgo_nova_play_audio:()=>lL,actuator_mixgo_nova_play_online_audio:()=>IL,actuator_mixgo_nova_record_audio:()=>dL,actuator_mixgo_nova_voice_get:()=>rL,actuator_mixgo_nova_voice_set:()=>uL,actuator_mixgo_zero_led_color:()=>yA,actuator_onboard_neopixel_rgb:()=>kA,actuator_onboard_neopixel_rgb_all:()=>WA,actuator_onboard_neopixel_rgb_show_all_chase:()=>KA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>JA,actuator_onboard_neopixel_write:()=>HA,actuator_stepper_keep:()=>qA,actuator_stepper_stop:()=>zA,analog_ble_keyboard_init:()=>LL,analog_ble_keyboard_input:()=>fL,analog_ble_keyboard_mouse_init:()=>yL,analog_ble_keyboard_mouse_input:()=>UL,analog_ble_keyboard_mouse_send_battery:()=>GL,analog_ble_keyboard_mouse_str:()=>wL,analog_ble_keyboard_send_battery:()=>PL,analog_ble_keyboard_str:()=>FL,analog_ble_mouse_init:()=>YL,analog_ble_mouse_input:()=>xL,analog_ble_mouse_keyboard_input:()=>HL,analog_ble_mouse_send_battery:()=>bL,analog_keyboard_input:()=>OL,analog_keyboard_str:()=>SL,analog_mouse_input:()=>gL,bitbot_motor:()=>oL,bitbot_move:()=>sL,bitbot_stop:()=>_L,ble_keyboard_connect:()=>DL,ble_keyboard_get_mac:()=>NL,ble_keyboard_mouse_connect:()=>BL,ble_keyboard_mouse_get_mac:()=>VL,ble_mouse_connect:()=>XL,ble_mouse_get_mac:()=>vL,cc_number:()=>VA,educore_ble_keyboard_input:()=>$L,educore_ble_sensor_connected:()=>ZL,educore_ble_sensor_init:()=>jL,educore_buzzer:()=>kL,educore_buzzer_play_tone:()=>WL,educore_buzzer_play_tone_time:()=>KL,educore_buzzer_stop:()=>JL,educore_neopixel_clear:()=>zL,educore_neopixel_rgb:()=>qL,educore_rgb_light:()=>QL,esp32_music_get_tempo:()=>AA,esp32_music_reset:()=>FA,esp32_music_set_tempo:()=>SA,esp32_onboard_music_pitch:()=>LA,esp32_onboard_music_pitch_with_time:()=>NA,esp32_onboard_music_play_list:()=>fA,esp32_onboard_music_stop:()=>DA,general_key:()=>cL,general_key_tuple:()=>AL,get_power_output:()=>mL,ledswitch:()=>YA,mixbot_motor:()=>iL,mixbot_motor_status:()=>$A,mixbot_move:()=>tL,mixbot_stop:()=>eL,mouse_key:()=>CL,number:()=>PA,rm_actuator_get_led_bright:()=>GA,rm_actuator_get_led_state:()=>UA,rm_actuator_led_bright:()=>BA,rm_actuator_led_brightness:()=>wA,rm_motor:()=>QA,set_all_power_output:()=>EL,set_power_output:()=>hL,special_key:()=>RL});var J={};t.r(J),t.d(J,{ai_sensor_20object:()=>YN,ai_sensor_ailocal_class:()=>cN,ai_sensor_ailocal_class_result:()=>gN,ai_sensor_ailocal_train:()=>RN,ai_sensor_asr_recognize:()=>NN,ai_sensor_audio_play:()=>SN,ai_sensor_audio_record:()=>CN,ai_sensor_barcode:()=>oN,ai_sensor_circle:()=>lN,ai_sensor_classifier_faces:()=>PN,ai_sensor_color:()=>hN,ai_sensor_color_chases:()=>ON,ai_sensor_color_chases_result:()=>EN,ai_sensor_config:()=>iN,ai_sensor_face:()=>FN,ai_sensor_find_20objects:()=>vN,ai_sensor_find_barcodes:()=>pN,ai_sensor_find_circles:()=>IN,ai_sensor_find_colors:()=>mN,ai_sensor_find_licenseplates:()=>fN,ai_sensor_find_lines:()=>dN,ai_sensor_find_qrcodes:()=>_N,ai_sensor_find_rects:()=>MN,ai_sensor_find_tags:()=>uN,ai_sensor_licenseplate:()=>DN,ai_sensor_line:()=>rN,ai_sensor_qrcode:()=>sN,ai_sensor_qrcode_lite:()=>eN,ai_sensor_rect:()=>TN,ai_sensor_rgb:()=>nN,ai_sensor_tag:()=>aN,ai_sensor_use_uart_init:()=>tN,ai_sensor_yolo_recognize:()=>AN,ai_sensor_yolo_recognize_result:()=>LN});var Q={};t.r(Q),t.d(Q,{MICROPYTHON_AI_Speech_asr:()=>bN,MICROPYTHON_AI_Speech_unit:()=>xN,MICROPYTHON_AI_client:()=>XN});var q={};t.r(q),t.d(q,{mpython_blynk_app_data:()=>QN,mpython_blynk_app_notify:()=>HN,mpython_blynk_email:()=>qN,mpython_blynk_get_timers:()=>WN,mpython_blynk_on_connected:()=>GN,mpython_blynk_on_disconnected:()=>BN,mpython_blynk_run:()=>wN,mpython_blynk_sensor_data_to_app:()=>JN,mpython_blynk_set_property:()=>zN,mpython_blynk_setup:()=>jN,mpython_blynk_stop_timers:()=>kN,mpython_blynk_sync_virtual:()=>VN,mpython_blynk_terminal_widget_vpin:()=>yN,mpython_blynktimer:()=>KN,mpython_blynktimer_run:()=>UN});var z={};t.r(z),t.d(z,{communicate_bluetooth_central_init:()=>YD,communicate_bluetooth_connect:()=>xD,communicate_bluetooth_disconnect:()=>bD,communicate_bluetooth_handle:()=>wD,communicate_bluetooth_is_connected:()=>VD,communicate_bluetooth_mac:()=>yD,communicate_bluetooth_peripheral_init:()=>vD,communicate_bluetooth_recv:()=>UD,communicate_bluetooth_recv_only:()=>GD,communicate_bluetooth_scan:()=>XD,communicate_bluetooth_send:()=>BD,communicate_espnow_init:()=>HD,communicate_espnow_init_new:()=>kD,communicate_i2c_available:()=>_D,communicate_i2c_init:()=>tD,communicate_i2c_master_read:()=>sD,communicate_i2c_onboard:()=>ZN,communicate_i2c_read:()=>eD,communicate_i2c_scan:()=>nD,communicate_i2c_write:()=>iD,communicate_ir_recv_init:()=>gD,communicate_ir_send_init:()=>ND,communicate_ow_init:()=>hD,communicate_ow_read:()=>OD,communicate_ow_reset:()=>ED,communicate_ow_scan:()=>mD,communicate_ow_select:()=>cD,communicate_ow_write:()=>RD,communicate_spi_buffer:()=>uD,communicate_spi_init:()=>pD,communicate_spi_onboard:()=>$N,communicate_spi_read:()=>rD,communicate_spi_read_output:()=>dD,communicate_spi_readinto:()=>lD,communicate_spi_readinto_output:()=>ID,communicate_spi_set:()=>aD,communicate_spi_write:()=>TD,communicate_spi_write_readinto:()=>MD,espnow_radio_channel:()=>zD,espnow_radio_channel_new:()=>ZD,espnow_radio_on_off:()=>$D,espnow_radio_rec:()=>ef,espnow_radio_recv:()=>sf,espnow_radio_recv_certain_msg:()=>_f,espnow_radio_recv_certain_msg_new:()=>pf,espnow_radio_recv_msg:()=>nf,espnow_radio_recv_new:()=>of,espnow_radio_send:()=>tf,espnow_radio_txpower:()=>jD,i2c_slave_onreceive:()=>oD,internal_variable:()=>CD,ir_recv_timeout:()=>LD,ir_transmit_busy:()=>PD,ir_transmit_conventional_data:()=>DD,ir_transmit_raw_code:()=>FD,ir_transmit_study_code:()=>fD,ir_whether_recv:()=>AD,lora_init:()=>af,lora_packet:()=>uf,lora_recv:()=>df,lora_send:()=>rf,network_espnow_info:()=>KD,network_espnow_mac:()=>WD,network_espnow_recv:()=>JD,network_espnow_recv_handle:()=>qD,network_espnow_send:()=>QD,recv_fun:()=>SD,urequests_attribute:()=>If,urequests_get:()=>lf,urequests_method:()=>Tf});var j={};t.r(j),t.d(j,{display_animate:()=>Bf,display_circle:()=>Gf,display_color_seclet:()=>jf,display_draw_4strings:()=>Yf,display_fill:()=>Vf,display_lcd_use_i2c_init:()=>nF,display_line:()=>xf,display_line_arbitrarily:()=>vf,display_matrix_extern_bright_point:()=>Af,display_matrix_extern_bright_screen:()=>Nf,display_matrix_extern_clear:()=>gf,display_matrix_extern_get_pixel:()=>Sf,display_matrix_extern_get_screen_pixel:()=>Lf,display_matrix_extern_image_builtins:()=>Df,display_matrix_extern_scroll_string:()=>Rf,display_matrix_extern_scroll_string_delay:()=>cf,display_matrix_extern_shift:()=>Cf,display_matrix_extern_show_frame_string:()=>Ef,display_matrix_extern_show_frame_string_delay:()=>Of,display_matrix_extern_show_image:()=>hf,display_matrix_extern_show_image_or_string_delay:()=>mf,display_matrix_use_i2c_init:()=>Mf,display_oled_drawPixel:()=>Hf,display_oled_showBitmap:()=>wf,display_oled_use_i2c_init:()=>aF,display_onoff:()=>bf,display_rect:()=>Xf,display_tm1650_power:()=>Wf,display_tm1650_set_brightness:()=>Qf,display_tm1650_show_dot:()=>Jf,display_tm1650_show_num:()=>Kf,display_tm_use_i2c_init:()=>kf,display_triangle:()=>Uf,display_use_i2c_init:()=>Pf,extern_oled_bright_point:()=>RF,extern_oled_clear:()=>mF,extern_oled_get_pixel:()=>OF,extern_oled_hvline:()=>gF,extern_oled_line:()=>CF,extern_oled_scroll_string:()=>MF,extern_oled_scroll_string_delay:()=>hF,extern_oled_shape_rect:()=>cF,extern_oled_shift:()=>EF,extern_oled_show_frame_string:()=>IF,extern_oled_show_frame_string_delay:()=>TF,extern_oled_show_image:()=>uF,extern_oled_show_image_or_string_delay:()=>lF,extern_oled_show_image_xy:()=>rF,extern_oled_show_string:()=>dF,image_shift:()=>yf,lcd_backlight:()=>oF,lcd_clear:()=>pF,lcd_print_string:()=>_F,lcd_show_image_or_string_delay:()=>sF,matrix_extern_image_arithmetic:()=>ff,matrix_extern_image_invert:()=>Ff,tft_fill:()=>eF,tft_line_arbitrarily:()=>iF,tft_scroll_string_delay:()=>tF,tft_show_frame_string_delay:()=>$f,tft_show_image_or_string_delay:()=>Zf,tft_show_image_xy:()=>zf,tft_use_spi_init:()=>qf});var Z={};t.r(Z),t.d(Z,{bitbot_display_image_create:()=>pP,display_bright_point:()=>VF,display_bright_screen:()=>GF,display_clear:()=>vF,display_get_pixel:()=>yF,display_get_screen_pixel:()=>BF,display_image_builtins:()=>FF,display_image_builtins_all:()=>PF,display_image_create:()=>YF,display_scroll_string:()=>DF,display_scroll_string_delay:()=>fF,display_shift:()=>bF,display_show_frame_string:()=>LF,display_show_frame_string_delay:()=>NF,display_show_image:()=>SF,display_show_image_or_string_delay:()=>AF,draw_pointer:()=>PP,image_arithmetic:()=>XF,image_invert:()=>xF,mixbot_display_bright_screen:()=>_P,mixbot_display_get_ambientbright:()=>sP,mixbot_display_get_screen_pixel:()=>nP,mixbot_display_image_create:()=>iP,mixbot_display_rotate:()=>oP,mixgo_display_image_create_new:()=>kF,mixgome_display_font:()=>HF,mixgome_display_image_create:()=>UF,mixgomini_display_image_create:()=>wF,mpython_display_hvline:()=>tP,mpython_display_line:()=>eP,mpython_display_shape_rect:()=>$F,mpython_pbm_image:()=>WF,onboard_oled_bright_point:()=>ZF,onboard_oled_scroll_string_delay:()=>jF,onboard_oled_show_frame_string_delay:()=>zF,onboard_oled_show_image:()=>KF,onboard_oled_show_image_or_string_delay:()=>qF,onboard_oled_show_image_xy:()=>JF,onboard_oled_show_string:()=>QF,onboard_tft_bright_point:()=>cP,onboard_tft_bright_screen:()=>CP,onboard_tft_clear:()=>EP,onboard_tft_clock_clear:()=>fP,onboard_tft_clock_draw:()=>DP,onboard_tft_clock_get_rtctime:()=>LP,onboard_tft_clock_init:()=>AP,onboard_tft_clock_set_time:()=>NP,onboard_tft_display_hvline:()=>hP,onboard_tft_display_line:()=>mP,onboard_tft_display_shape_circle:()=>FP,onboard_tft_display_shape_rect:()=>MP,onboard_tft_fill:()=>SP,onboard_tft_get_pixel:()=>RP,onboard_tft_get_screen_pixel:()=>gP,onboard_tft_scroll_string:()=>IP,onboard_tft_scroll_string_delay:()=>TP,onboard_tft_shift:()=>OP,onboard_tft_show_frame_string:()=>dP,onboard_tft_show_frame_string_delay:()=>lP,onboard_tft_show_image:()=>aP,onboard_tft_show_image_or_string_delay:()=>rP,onboard_tft_show_image_xy:()=>uP});var $={};t.r($),t.d($,{factory_block:()=>BP,factory_block_return:()=>GP,factory_block_return_with_textarea:()=>wP,factory_block_with_textarea:()=>UP,factory_callMethod_noreturn:()=>yP,factory_callMethod_return:()=>VP,factory_declare:()=>bP,factory_from_import:()=>YP,factory_function_noreturn:()=>XP,factory_function_return:()=>xP,factory_import:()=>vP,folding_block:()=>HP});var tt={};t.r(tt),t.d(tt,{inout_analog_atten:()=>sY,inout_analog_read:()=>jP,inout_analog_read_init:()=>nY,inout_analog_write:()=>QP,inout_analog_write_init:()=>iY,inout_analog_write_set:()=>qP,inout_digital_init:()=>tY,inout_digital_read:()=>KP,inout_digital_write:()=>WP,inout_highlow:()=>kP,inout_pin_attachInterrupt:()=>$P,inout_pin_pressed:()=>ZP,inout_pin_pressed_init:()=>_Y,inout_pwm_analog_write:()=>JP,inout_pwm_analog_write_init:()=>eY,inout_pwm_analog_write_set_freq:()=>zP});var et={};t.r(et),t.d(et,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>SY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>gY,IOT_EMQX_PING:()=>AY,IOT_FORMATTING:()=>RY,IOT_FORMAT_STRING:()=>cY,IOT_MIXIO_NTP:()=>LY,IOT_MIXIO_PUBLISH:()=>IY,IOT_MIXIO_SUBSCRIBE:()=>TY,iot_client_onboard:()=>NY,iot_http_client:()=>DY,iot_http_data:()=>fY,iot_mixio_check:()=>mY,iot_mixio_connect:()=>lY,iot_mixio_connect_only:()=>hY,iot_mixio_disconnect:()=>MY,iot_mixio_format_msg:()=>OY,iot_mixio_format_topic:()=>EY,iot_mixly_key:()=>CY,iot_mqtt_client:()=>FY,iot_mqtt_data:()=>PY,iot_onenet_check:()=>rY,iot_onenet_connect:()=>pY,iot_onenet_disconnect:()=>aY,iot_onenet_publish:()=>dY,iot_onenet_publish_dict:()=>uY,iot_wifi_connect:()=>oY});var it={};t.r(it),t.d(it,{educore_mqtt_connect:()=>av,educore_mqtt_connect_success:()=>lv,educore_mqtt_subscribe_message:()=>uv,educore_mqtt_topic_publish:()=>dv,educore_mqtt_topic_subscribe:()=>rv,educore_wifi_connect:()=>pv,network_ap_connect:()=>GY,network_connect:()=>vY,network_get_connect:()=>xY,network_get_wifi:()=>BY,network_init:()=>YY,network_is_active:()=>VY,network_open:()=>yY,network_scan:()=>UY,network_server:()=>wY,network_socket_accept:()=>JY,network_socket_bind:()=>kY,network_socket_close:()=>ZY,network_socket_connect:()=>WY,network_socket_init:()=>HY,network_socket_listen:()=>KY,network_socket_receive:()=>QY,network_socket_receive_from:()=>zY,network_socket_send:()=>qY,network_socket_send_to:()=>jY,network_stop:()=>bY,network_wifi_connect:()=>XY,ntptime_address:()=>nv,ntptime_time:()=>iv,requests_attribute:()=>tv,requests_attribute2:()=>_v,requests_get:()=>$Y,requests_get2:()=>sv,requests_method:()=>ev,requests_post:()=>ov});var nt={};t.r(nt),t.d(nt,{pe_g1_battery_left:()=>Tv,pe_g1_dc_motor:()=>Mv,pe_g1_dc_motor_speed:()=>hv,pe_g1_servo_get_angle:()=>Ov,pe_g1_servo_get_speed:()=>Rv,pe_g1_servo_set_angle:()=>mv,pe_g1_servo_set_speed:()=>Ev,pe_g1_use_i2c_init:()=>Iv});var st={};t.r(st),t.d(st,{CI130X_BROADCAST:()=>Hv,CI130X_GET_THE_RECOGNIZED_CMD:()=>wv,CI130X_GET_WHETHER_IDENTIFY:()=>Uv,CI130X_IDENTIFY_AND_SAVE:()=>Gv,CI130X_SET_SYSTEM_CMD:()=>kv,HCSR04:()=>RX,PS2_Button:()=>CX,PS2_Buttons:()=>SX,PS2_Buttons_new:()=>YX,PS2_State:()=>AX,PS2_init:()=>cX,PS2_init_new:()=>FX,PS2_stk:()=>LX,PS2_stk_new:()=>vX,PS2_vibration:()=>gX,PS2_vibration_new:()=>PX,RTC_get_time:()=>DX,RTC_set_date:()=>Dv,RTC_set_datetime:()=>NX,RTC_set_time:()=>Nv,camera_sensor_init:()=>ux,camera_sensor_result:()=>rx,educore_body_sensor:()=>$X,educore_button_sensor_extern:()=>nx,educore_camera_sensor:()=>ax,educore_infrared_sensor:()=>ix,educore_soilhum_sensor:()=>tx,educore_temp_sensor:()=>px,educore_temphum_sensor:()=>ex,educore_ultrasonic_sensor:()=>_x,esp32_s2_weather_init:()=>hX,esp32_s2_weather_rain:()=>EX,esp32_s2_weather_wd:()=>mX,esp32_s2_weather_ws:()=>OX,extern_rfid_read:()=>sX,extern_rfid_readcontent:()=>oX,extern_rfid_readid:()=>_X,extern_rfid_status:()=>uX,extern_rfid_write:()=>pX,extern_rfid_write_return:()=>aX,gnss_get_data:()=>bX,gnss_have_data:()=>yX,interaction_whether_to_interaction:()=>Vv,interaction_whether_to_interaction_SANT:()=>Bv,mixbot_sensor_extern_get_addr:()=>KX,mixbot_sensor_extern_set_addr:()=>JX,pm25_get_data:()=>xX,radar_set_DETECTION_THRESHOLD:()=>bv,radar_set_DETECTION_THRESHOLD_SANT:()=>yv,robot_button_extern_get_value:()=>VX,robot_color_extern_get_value:()=>HX,robot_infrared_extern_get_value:()=>GX,robot_infrared_extern_grey_get_value:()=>UX,robot_potentiometer_extern_get_value:()=>wX,robot_sonar_extern_get_value:()=>kX,robot_sonar_extern_led:()=>WX,robot_touch_extern_get_value:()=>BX,sensor_APDS9960_extern:()=>Kv,sensor_DS18X20:()=>ZX,sensor_LTR308_extern:()=>Jv,sensor_LTR390UV_extern:()=>Zv,sensor_MAX30102_extern:()=>Wv,sensor_QMC5883L_extern:()=>$v,sensor_VL530LX_extern:()=>iX,sensor_aht11_extern:()=>eX,sensor_bmp:()=>vv,sensor_dht11:()=>fX,sensor_distance_hrsc04:()=>Lv,sensor_hp203_extern:()=>Qv,sensor_ltr381_extern:()=>zv,sensor_mixgo_extern_button_attachInterrupt:()=>Sv,sensor_mixgo_extern_button_get_presses:()=>Cv,sensor_mixgo_extern_button_is_pressed:()=>cv,sensor_mixgo_extern_button_was_pressed:()=>gv,sensor_mixgo_extern_light:()=>fv,sensor_mixgo_extern_pin_near:()=>Pv,sensor_mixgo_extern_sound:()=>Fv,sensor_mixgoce_hot_wheel_degrees:()=>MX,sensor_mixgoce_hot_wheel_is_touched:()=>TX,sensor_mpu9250_attachGestureInterrupt:()=>Av,sensor_read_humiture:()=>sx,sensor_rtc_init:()=>Yv,sensor_sht:()=>Xv,sensor_shtc3_extern:()=>tX,sensor_spl06_001_extern:()=>qv,sensor_ucs12071_extern:()=>jv,sensor_use_i2c_init:()=>xv,sensor_use_spi_init:()=>nX,sensor_use_uart_init:()=>XX,sensor_weather_solo_init:()=>QX,sensor_weather_solo_rain:()=>jX,sensor_weather_solo_wd:()=>qX,sensor_weather_solo_ws:()=>zX,sensor_weigh_init:()=>dx,ultrasonic_sensor_read_distance:()=>ox,weather_data:()=>rX,weather_have_data:()=>dX,weather_set_label:()=>IX,weather_uart_mixio:()=>lX,weigh_sensor_get_weight:()=>lx});var _t={};t.r(_t),t.d(_t,{CI130X_BROADCAST_SANT:()=>ry,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>uy,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>ay,CI130X_IDENTIFY_AND_SAVE_SANT:()=>py,CI130X_SET_SYSTEM_CMD_SANT:()=>dy,HCSR04:()=>cx,bitbot_als_num:()=>Ub,dht11:()=>qb,educore_button_sensor:()=>iy,educore_button_was_pressed:()=>ny,educore_gyroscope_sensor:()=>$b,educore_gyroscope_sensor_read:()=>ty,educore_gyroscope_sensor_shake:()=>ey,educore_light_sensor:()=>Zb,educore_rfid_sensor:()=>sy,educore_rfid_sensor_scan:()=>_y,educore_rfid_sensor_scan_data:()=>oy,educore_voice_sensor:()=>zb,number1:()=>gx,number2:()=>Cx,number3:()=>Sx,number4:()=>Ax,number5:()=>Lx,number6:()=>Nx,number7:()=>Dx,onboard_RTC_get_time:()=>Eb,onboard_RTC_get_time_str:()=>cb,onboard_RTC_get_timestamp:()=>Ob,onboard_RTC_set_datetime:()=>hb,onboard_RTC_settime_string:()=>mb,onboard_RTC_timestamp_totuple:()=>Rb,rfid_readcontent:()=>kx,rfid_readid:()=>Hx,rfid_write:()=>Wx,rfid_write_return:()=>Kx,sensor_LTR308:()=>Vx,sensor_adxl345_get_acceleration:()=>eb,sensor_aht11:()=>Ux,sensor_bitbot_ALS:()=>Gb,sensor_button_get_presses:()=>kb,sensor_button_is_pressed:()=>wb,sensor_button_was_pressed:()=>Hb,sensor_compass_reset:()=>pb,sensor_ds18x20:()=>bx,sensor_eulerangles:()=>Qx,sensor_get_acceleration:()=>Jx,sensor_get_temperature:()=>wx,sensor_hp203:()=>Gx,sensor_light:()=>Qb,sensor_lm35:()=>yx,sensor_mixbot_get_gyro:()=>Bb,sensor_mixbot_patrol_calibrate:()=>bb,sensor_mixbot_patrol_value:()=>yb,sensor_mixbot_temperature:()=>Vb,sensor_mixgo_LTR308:()=>vx,sensor_mixgo_button_attachInterrupt:()=>hx,sensor_mixgo_button_get_presses:()=>Mx,sensor_mixgo_button_is_pressed:()=>Ix,sensor_mixgo_button_was_pressed:()=>Tx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Sb,sensor_mixgo_cc_mmc5603_get_angle:()=>Cb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>gb,sensor_mixgo_light:()=>Jb,sensor_mixgo_nova_LTR308:()=>xx,sensor_mixgo_nova_pin_near:()=>Yx,sensor_mixgo_pin_near:()=>Px,sensor_mixgo_pin_near_double:()=>Fx,sensor_mixgo_pin_near_single:()=>fx,sensor_mixgo_pin_pressed:()=>$x,sensor_mixgo_sant_color:()=>Xx,sensor_mixgo_touch_slide:()=>Zx,sensor_mixgocar42_button_attachInterrupt:()=>Rx,sensor_mixgocar42_button_get_presses:()=>Ox,sensor_mixgocar42_button_is_pressed:()=>mx,sensor_mixgocar42_button_was_pressed:()=>Ex,sensor_mixgocar_battery_left:()=>xb,sensor_mixgocar_pin_near:()=>vb,sensor_mixgocar_pin_near_line:()=>Yb,sensor_mixgocar_pin_near_state_change:()=>Xb,sensor_mixgoce_pin_pressed:()=>jx,sensor_mixgoce_temperature:()=>Lb,sensor_mixgome_temperature:()=>Ab,sensor_mpu9250_calibrate_compass:()=>sb,sensor_mpu9250_field_strength:()=>ob,sensor_mpu9250_gesture:()=>qx,sensor_mpu9250_get_acceleration:()=>zx,sensor_mpu9250_get_gyro:()=>nb,sensor_mpu9250_get_magnetic:()=>ib,sensor_mpu9250_temperature:()=>_b,sensor_mpython_pin_pressed:()=>tb,sensor_mpython_qmi8658_get_gyro:()=>Nb,sensor_mpython_qmi8658_temperature:()=>Db,sensor_onboard_compass_reset:()=>Mb,sensor_onboard_mpu9250_calibrate_compass:()=>lb,sensor_onboard_mpu9250_field_strength:()=>Tb,sensor_onboard_mpu9250_gesture:()=>ab,sensor_onboard_mpu9250_get_acceleration:()=>ub,sensor_onboard_mpu9250_get_gyro:()=>db,sensor_onboard_mpu9250_get_magnetic:()=>rb,sensor_onboard_mpu9250_temperature:()=>Ib,sensor_pin_near:()=>Kb,sensor_pin_pressed:()=>Wb,sensor_read:()=>jb,sensor_rm_acc:()=>Pb,sensor_rm_battery_left:()=>Fb,sensor_rm_pin_near_double:()=>fb,sensor_sound:()=>Bx});var ot={};t.r(ot),t.d(ot,{serial_any:()=>hy,serial_print:()=>ly,serial_print_byte:()=>Iy,serial_print_hex:()=>My,serial_println:()=>Ty,serial_read_from_ai:()=>Ny,serial_readline:()=>Ey,serial_readstr:()=>my,serial_send_to_ai:()=>Ly,serial_softserial:()=>Oy,serial_softserial_new:()=>Ry,system_input:()=>cy,system_print:()=>gy,system_print_end:()=>Sy,system_print_inline:()=>Cy,system_print_many:()=>Ay});var pt={};t.r(pt),t.d(pt,{Panic_with_status_code:()=>By,Timer_init:()=>tV,base_delay:()=>nV,controls_delay:()=>ky,controls_delay_new:()=>Wy,controls_end_program:()=>Uy,controls_millis:()=>Gy,controls_uname:()=>Hy,reset:()=>wy,system_bitbot_shutdown:()=>$y,system_device_name:()=>yy,system_device_serial_number:()=>Vy,system_event_bus_source:()=>xy,system_event_bus_value:()=>by,system_machine_reset:()=>Zy,system_on_event:()=>Yy,system_raise_event:()=>Py,system_reset:()=>fy,system_run_in_background:()=>Dy,system_ticks_diff:()=>Qy,system_timer:()=>Jy,system_timer_init:()=>qy,system_timestamp:()=>vy,system_value:()=>Xy,system_wait:()=>Fy,system_wdt_feed:()=>jy,system_wdt_init:()=>zy,time_ticks_diff:()=>iV,timer:()=>Ky,timer2:()=>eV});var at={};t.r(at),t.d(at,{Air_daily_content:()=>hV,Air_now_content:()=>uV,Geo_moon_content:()=>EV,Geo_sun_content:()=>mV,Life_suggestion_content:()=>dV,Location_search_content:()=>IV,Tide_daily_content:()=>lV,WEATHER_DAILY:()=>_V,WEATHER_HOUR:()=>oV,WEATHER_NOW:()=>sV,Weather_alarm_content:()=>rV,Weather_daily:()=>TV,Weather_daily_content:()=>MV,Weather_now:()=>pV,Weather_now_content:()=>aV});var ut={};t.r(ut),t.d(ut,{analog_input:()=>FV,analog_output:()=>YV,espnow_channel:()=>NV,haskylens_model:()=>DV,i2c_A_pin:()=>vV,i2c_B_pin:()=>XV,pins_analog:()=>BV,pins_analog_pin:()=>GV,pins_axis:()=>iB,pins_brightness:()=>nB,pins_builtinimg:()=>qV,pins_builtinimg_extern:()=>zV,pins_button:()=>HV,pins_dac:()=>UV,pins_dac_pin:()=>wV,pins_digital:()=>gV,pins_digital_dot:()=>dB,pins_digital_pin:()=>CV,pins_exlcdh:()=>tB,pins_exlcdv:()=>eB,pins_imglist:()=>jV,pins_input_pin:()=>SV,pins_mpython_touch:()=>LV,pins_one_more:()=>rB,pins_output_pin:()=>AV,pins_playlist:()=>ZV,pins_playlist_extern:()=>$V,pins_pwm:()=>kV,pins_pwm_pin:()=>WV,pins_radio_datarate:()=>uB,pins_radio_power:()=>aB,pins_serial:()=>QV,pins_tone_notes:()=>pB,pins_touch:()=>JV,pins_touch_pin:()=>KV,pins_tts_bgmusic:()=>oB,pins_tts_builtin_music:()=>_B,pins_tts_voice:()=>sB,pwm_input:()=>fV,pwm_output:()=>PV,spi_A_pin:()=>xV,spi_B_pin:()=>bV,spi_C_pin:()=>yV,spi_D_pin:()=>VV});var rt={};t.r(rt),t.d(rt,{espnow_channel:()=>cB,haskylens_model:()=>gB,pins_analog:()=>EB,pins_analog_pin:()=>mB,pins_axis:()=>xB,pins_brightness:()=>VB,pins_builtinimg:()=>FB,pins_builtinimg_extern:()=>PB,pins_button:()=>IB,pins_dac:()=>AB,pins_dac_pin:()=>SB,pins_digital:()=>lB,pins_digital_dot:()=>KB,pins_digital_pin:()=>TB,pins_exlcdh:()=>bB,pins_exlcdv:()=>yB,pins_imglist:()=>YB,pins_input_pin:()=>MB,pins_interrupt:()=>DB,pins_mpython_touch:()=>CB,pins_one_more:()=>WB,pins_output_pin:()=>hB,pins_playlist:()=>vB,pins_playlist_extern:()=>XB,pins_pwm:()=>RB,pins_pwm_pin:()=>OB,pins_radio_datarate:()=>kB,pins_radio_power:()=>HB,pins_serial:()=>fB,pins_tone_notes:()=>wB,pins_touch:()=>NB,pins_touch_pin:()=>LB,pins_tts_bgmusic:()=>UB,pins_tts_builtin_music:()=>GB,pins_tts_voice:()=>BB});const dt=Blockly,lt=Mixly,It={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Tt=It; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>gt,controls_typeLists:()=>Ct,lists_zip:()=>St,lists_zip_container:()=>At,lists_zip_item:()=>Lt,unpack_iterable_object:()=>Nt,variables_change:()=>Rt,variables_get:()=>Et,variables_global:()=>ct,variables_set:()=>Ot});var i={};t.r(i),t.d(i,{base_setup:()=>Ft,controls_delay:()=>Pt,controls_end_program:()=>Yt,controls_except:()=>Wt,controls_finally:()=>Kt,controls_flow_statements:()=>Vt,controls_for:()=>Bt,controls_forEach:()=>xt,controls_for_range:()=>Gt,controls_if:()=>vt,controls_if_else:()=>Ht,controls_if_elseif:()=>wt,controls_if_if:()=>Ut,controls_lambda:()=>Qt,controls_main:()=>ft,controls_pass:()=>qt,controls_range:()=>Xt,controls_repeat_ext:()=>Jt,controls_thread:()=>zt,controls_try:()=>kt,controls_try_finally:()=>yt,controls_whileUntil:()=>bt,datetime_fromtimestamp:()=>ie,do_while:()=>jt,garbage_collection:()=>Zt,gene_unique_identifier:()=>ne,get_mem_alloc:()=>$t,get_mem_free:()=>te,get_unique_identifier:()=>ee});var n={};t.r(n),t.d(n,{base_map:()=>Se,generate_cartesian_product:()=>Le,math_arithmetic:()=>ae,math_bit:()=>re,math_constant:()=>oe,math_constant_mp:()=>pe,math_constrain:()=>me,math_dec:()=>le,math_indexer_number:()=>Oe,math_map:()=>Ee,math_max_min:()=>Te,math_number:()=>_e,math_number_base_conversion:()=>Me,math_random:()=>he,math_random_seed:()=>Re,math_round:()=>ce,math_selfcalcu:()=>ue,math_to_int:()=>Ie,math_trig:()=>de,text_to_number:()=>ge,text_to_number_skulpt:()=>Ce,turn_to_int:()=>Ae});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ye,char_to_ascii:()=>ve,number_to_text:()=>Xe,os_system:()=>_i,text:()=>De,text_capital:()=>He,text_center:()=>ke,text_char:()=>Fe,text_char_at:()=>ye,text_char_at2:()=>be,text_char_at3:()=>ei,text_compareTo:()=>ti,text_compare_to:()=>we,text_create_with_container:()=>je,text_create_with_item:()=>Ze,text_encode:()=>ni,text_equals_starts_ends:()=>Ue,text_eval:()=>si,text_find:()=>We,text_format:()=>ze,text_format_noreturn:()=>ii,text_join:()=>Pe,text_join_seq:()=>Ke,text_length:()=>xe,text_random_char:()=>Ve,text_replace:()=>Je,text_split:()=>Qe,text_strip:()=>qe,text_substring:()=>Ge,text_substring2:()=>Be,text_substring3:()=>$e,text_textarea:()=>fe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ui,content_in_lists:()=>Hi,enumerate:()=>wi,list_many_input:()=>Di,list_tolist:()=>Yi,list_tolist2:()=>Gi,list_trig:()=>Ai,lists_2d_get_col_row_data:()=>ri,lists_2d_get_data_with_col_row:()=>ui,lists_append_extend:()=>hi,lists_change_to:()=>Ni,lists_change_to_general:()=>Fi,lists_clear:()=>ci,lists_create_with:()=>di,lists_create_with2:()=>vi,lists_create_with_container:()=>Ii,lists_create_with_item:()=>Ti,lists_create_with_noreturn:()=>fi,lists_create_with_text:()=>li,lists_create_with_text2:()=>Xi,lists_del_general:()=>Pi,lists_find:()=>Si,lists_getIndex3:()=>xi,lists_getSublist3:()=>bi,lists_get_index:()=>pi,lists_get_random_item:()=>mi,lists_get_random_sublist:()=>Ei,lists_get_sublist:()=>ai,lists_insert_value:()=>Oi,lists_insert_value2:()=>Vi,lists_pop:()=>Ci,lists_remove_at:()=>gi,lists_remove_at2:()=>Bi,lists_reverse:()=>Ri,lists_setIndex3:()=>yi,lists_set_index:()=>Mi,lists_sort:()=>Li});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>on,dicts_add_or_change:()=>ji,dicts_clear:()=>tn,dicts_create_with:()=>Wi,dicts_create_with_container:()=>Ki,dicts_create_with_item:()=>Ji,dicts_create_with_noreturn:()=>un,dicts_deldict:()=>_n,dicts_delete:()=>Zi,dicts_get:()=>qi,dicts_get_default:()=>zi,dicts_items:()=>en,dicts_keys:()=>Qi,dicts_length:()=>sn,dicts_pop:()=>pn,dicts_setdefault:()=>an,dicts_to_json:()=>dn,dicts_to_json2:()=>Tn,dicts_to_to:()=>In,dicts_todict:()=>rn,dicts_update:()=>$i,dicts_values:()=>nn,json_to_dicts:()=>ln});var p={};t.r(p),t.d(p,{logic_boolean:()=>Rn,logic_compare:()=>hn,logic_compare_continous:()=>mn,logic_is:()=>Sn,logic_is_in:()=>Cn,logic_negate:()=>On,logic_null:()=>cn,logic_operation:()=>En,logic_tobool:()=>An,logic_true_or_false:()=>gn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>Qn,sdcard_use_spi_init:()=>Jn,storage_can_write_ornot:()=>Xn,storage_change_dir:()=>Wn,storage_close_file:()=>bn,storage_delete_file:()=>Vn,storage_file_seek:()=>Un,storage_file_tell:()=>Gn,storage_file_write:()=>Fn,storage_fileopen:()=>Nn,storage_fileopen_new:()=>Dn,storage_fileopen_new_encoding:()=>fn,storage_get_a_line:()=>vn,storage_get_contents:()=>Yn,storage_get_contents_without_para:()=>Pn,storage_get_current_dir:()=>wn,storage_get_file_size:()=>Bn,storage_get_filename:()=>xn,storage_is_file:()=>Kn,storage_list_all_files:()=>yn,storage_make_dir:()=>Hn,storage_open_file_with_os:()=>Ln,storage_rename:()=>kn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>es,procedures_callreturn:()=>is,procedures_defnoreturn:()=>jn,procedures_defreturn:()=>Zn,procedures_ifreturn:()=>ns,procedures_mutatorarg:()=>ts,procedures_mutatorcontainer:()=>$n,procedures_return:()=>ss});var r={};t.r(r),t.d(r,{tuple_change_to:()=>hs,tuple_create_with:()=>os,tuple_create_with_container:()=>ps,tuple_create_with_item:()=>as,tuple_create_with_noreturn:()=>Rs,tuple_create_with_text2:()=>us,tuple_create_with_text_return:()=>rs,tuple_del:()=>Is,tuple_find:()=>ms,tuple_getIndex:()=>ds,tuple_getSublist:()=>Os,tuple_get_random_item:()=>gs,tuple_get_sublist:()=>cs,tuple_input:()=>Ss,tuple_join:()=>Ts,tuple_length:()=>ls,tuple_max:()=>Ms,tuple_totuple:()=>Cs,tuple_trig:()=>Es});var d={};t.r(d),t.d(d,{set_add_discard:()=>Xs,set_clear:()=>Ps,set_create_with:()=>Ls,set_create_with_container:()=>Ns,set_create_with_item:()=>Ds,set_create_with_text_return:()=>ys,set_length:()=>fs,set_operate:()=>Ys,set_operate_update:()=>vs,set_pop:()=>Fs,set_sub:()=>xs,set_toset:()=>Vs,set_update:()=>bs});var l={};t.r(l),t.d(l,{html_content:()=>Hs,html_content_more:()=>ks,html_document:()=>Gs,html_form:()=>Ks,html_head_body:()=>ws,html_style:()=>Ws,html_style_color:()=>Qs,html_style_content:()=>Js,html_text:()=>qs,html_title:()=>Us});var I={};t.r(I),t.d(I,{attribute_access:()=>u_,function_call:()=>o_,function_call_container:()=>p_,function_call_item:()=>a_,raw_block:()=>Zs,raw_empty:()=>t_,raw_expression:()=>$s,raw_table:()=>js,text_comment:()=>e_,text_print_multiple:()=>n_,text_print_multiple_container:()=>s_,text_print_multiple_item:()=>__,type_check:()=>i_});var T={};t.r(T),t.d(T,{controls_type:()=>T_,controls_typeLists:()=>M_,lists_zip:()=>h_,unpack_iterable_object:()=>m_,variables_change:()=>l_,variables_get:()=>r_,variables_global:()=>I_,variables_set:()=>d_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>N_,base_setup:()=>O_,controls_delay:()=>L_,controls_flow_statements:()=>A_,controls_for:()=>g_,controls_forEach:()=>Y_,controls_for_range:()=>C_,controls_if:()=>R_,controls_interrupts:()=>F_,controls_lambda:()=>X_,controls_main:()=>E_,controls_millis:()=>D_,controls_nointerrupts:()=>P_,controls_pass:()=>b_,controls_range:()=>v_,controls_repeat:()=>k_,controls_repeat_ext:()=>B_,controls_thread:()=>y_,controls_try_finally:()=>c_,controls_whileUntil:()=>S_,datetime_fromtimestamp:()=>W_,do_while:()=>V_,garbage_collection:()=>G_,gene_unique_identifier:()=>K_,get_mem_alloc:()=>U_,get_mem_free:()=>w_,get_unique_identifier:()=>H_,reset:()=>f_,time_sleep:()=>x_});var h={};t.r(h),t.d(h,{base_map:()=>To,generate_cartesian_product:()=>ho,math_arithmetic:()=>j_,math_bit:()=>z_,math_constant:()=>Q_,math_constant_mp:()=>q_,math_constrain:()=>oo,math_dec:()=>eo,math_indexer_number:()=>uo,math_map:()=>_o,math_max_min:()=>no,math_number:()=>J_,math_number_base_conversion:()=>po,math_random:()=>so,math_random_seed:()=>ao,math_round:()=>ro,math_selfcalcu:()=>Z_,math_single:()=>$_,math_to_int:()=>io,math_trig:()=>to,text_to_number:()=>lo,text_to_number_skulpt:()=>Io,turn_to_int:()=>Mo});var m={};t.r(m),t.d(m,{ascii_to_char:()=>co,char_to_ascii:()=>go,number_to_text:()=>Co,os_system:()=>Ko,text:()=>mo,text_capital:()=>Yo,text_center:()=>vo,text_char:()=>Oo,text_char_at:()=>Lo,text_char_at2:()=>Ao,text_char_at3:()=>Ho,text_compareTo:()=>wo,text_compare_to:()=>fo,text_encode:()=>ko,text_equals_starts_ends:()=>Do,text_eval:()=>Wo,text_find:()=>Xo,text_format:()=>Bo,text_format_noreturn:()=>Go,text_join:()=>Ro,text_join_seq:()=>xo,text_length:()=>So,text_random_char:()=>No,text_replace:()=>bo,text_split:()=>yo,text_strip:()=>Vo,text_substring:()=>Po,text_substring2:()=>Fo,text_substring3:()=>Uo,text_textarea:()=>Eo});var E={};t.r(E),t.d(E,{content_in_lists:()=>Lp,enumerate:()=>Ap,list_many_input:()=>lp,list_tolist:()=>Cp,list_tolist2:()=>Sp,list_trig:()=>up,lists_2d_get_col_row_data:()=>qo,lists_2d_get_data_with_col_row:()=>Qo,lists_append_extend:()=>tp,lists_change_to:()=>dp,lists_change_to_general:()=>Tp,lists_clear:()=>_p,lists_create_with:()=>zo,lists_create_with2:()=>hp,lists_create_with_noreturn:()=>Ip,lists_create_with_text:()=>jo,lists_create_with_text2:()=>mp,lists_del_general:()=>Mp,lists_find:()=>op,lists_getIndex3:()=>Ep,lists_getSublist3:()=>Op,lists_get_index:()=>Zo,lists_get_random_item:()=>ep,lists_get_random_sublist:()=>ip,lists_get_sublist:()=>Jo,lists_insert_value:()=>np,lists_insert_value2:()=>cp,lists_pop:()=>ap,lists_remove_at:()=>pp,lists_remove_at2:()=>gp,lists_reverse:()=>sp,lists_setIndex3:()=>Rp,lists_set_index:()=>$o,lists_sort:()=>rp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Bp,dicts_add_or_change:()=>Pp,dicts_clear:()=>Xp,dicts_create_with:()=>Np,dicts_create_with_noreturn:()=>wp,dicts_deldict:()=>Vp,dicts_delete:()=>Yp,dicts_get:()=>fp,dicts_get_default:()=>Fp,dicts_items:()=>xp,dicts_keys:()=>Dp,dicts_length:()=>yp,dicts_pop:()=>Gp,dicts_setdefault:()=>Up,dicts_to_json:()=>kp,dicts_to_json2:()=>Jp,dicts_to_to:()=>Kp,dicts_todict:()=>Hp,dicts_update:()=>vp,dicts_values:()=>bp,json_to_dicts:()=>Wp});var R={};t.r(R),t.d(R,{logic_boolean:()=>Zp,logic_compare:()=>Qp,logic_compare_continous:()=>qp,logic_is:()=>ia,logic_is_in:()=>ea,logic_negate:()=>jp,logic_null:()=>$p,logic_operation:()=>zp,logic_tobool:()=>na,logic_true_or_false:()=>ta});var c={};t.r(c),t.d(c,{sdcard_mount:()=>La,sdcard_use_spi_init:()=>Aa,storage_can_write_ornot:()=>la,storage_change_dir:()=>Ra,storage_close_file:()=>Ta,storage_delete_file:()=>ha,storage_file_seek:()=>Oa,storage_file_tell:()=>Ea,storage_file_write:()=>aa,storage_fileopen:()=>_a,storage_fileopen_new:()=>oa,storage_fileopen_new_encoding:()=>pa,storage_get_a_line:()=>da,storage_get_contents:()=>ra,storage_get_contents_without_para:()=>ua,storage_get_current_dir:()=>ca,storage_get_file_size:()=>ma,storage_get_filename:()=>Ia,storage_is_file:()=>Sa,storage_list_all_files:()=>Ma,storage_make_dir:()=>ga,storage_open_file_with_os:()=>sa,storage_rename:()=>Ca});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Fa,procedures_callreturn:()=>fa,procedures_defnoreturn:()=>Da,procedures_defreturn:()=>Na,procedures_ifreturn:()=>Pa,procedures_return:()=>Ya});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ua,tuple_create_with:()=>va,tuple_create_with_noreturn:()=>Wa,tuple_create_with_text2:()=>Xa,tuple_create_with_text_return:()=>xa,tuple_del:()=>Va,tuple_find:()=>wa,tuple_getIndex:()=>ba,tuple_getSublist:()=>ka,tuple_get_random_item:()=>Ja,tuple_get_sublist:()=>Ka,tuple_input:()=>qa,tuple_join:()=>Ba,tuple_length:()=>ya,tuple_max:()=>Ga,tuple_totuple:()=>Qa,tuple_trig:()=>Ha});var S={};t.r(S),t.d(S,{set_add_discard:()=>iu,set_clear:()=>$a,set_create_with:()=>za,set_create_with_text_return:()=>_u,set_length:()=>ja,set_operate:()=>tu,set_operate_update:()=>eu,set_pop:()=>Za,set_sub:()=>nu,set_toset:()=>ou,set_update:()=>su});var A={};t.r(A),t.d(A,{html_content:()=>ru,html_content_more:()=>du,html_document:()=>pu,html_form:()=>Iu,html_head_body:()=>uu,html_style:()=>lu,html_style_content:()=>Tu,html_text:()=>Mu,html_title:()=>au});var L={};t.r(L),t.d(L,{attribute_access:()=>gu,function_call:()=>cu,raw_block:()=>hu,raw_empty:()=>Eu,raw_expression:()=>mu,raw_table:()=>Ou,type_check:()=>Ru});var N={};t.r(N),t.d(N,{PIN_init:()=>Cr,actuator_extern_get_led_bright:()=>Xu,actuator_extern_get_led_state:()=>xu,actuator_extern_led_bright:()=>vu,actuator_extern_led_brightness:()=>bu,actuator_ms32006_dcmotor:()=>Wu,actuator_ms32006_init:()=>ku,actuator_ms32006_stepper:()=>Ku,actuator_neopixel_init:()=>Ju,actuator_neopixel_rgb:()=>Qu,actuator_neopixel_rgb_all:()=>qu,actuator_neopixel_write:()=>zu,actuator_use_uart_init:()=>ju,esp32_music_get_tempo_extern:()=>Fu,esp32_music_pitch:()=>Lu,esp32_music_pitch_init:()=>Au,esp32_music_pitch_with_time:()=>Nu,esp32_music_play_list:()=>Du,esp32_music_reset_extern:()=>Pu,esp32_music_set_tempo_extern:()=>fu,esp32_music_stop:()=>Yu,mixbot_actuator_extern_get_addr:()=>cr,mixbot_actuator_extern_set_addr:()=>gr,mixbot_addr_extern:()=>ar,parrot_PIN_init:()=>Nr,parrot_move_speed:()=>Dr,pin_led_bright:()=>Sr,player_insert_music:()=>nr,player_play_music:()=>ir,player_set_mode:()=>er,player_set_play:()=>$u,player_set_volume:()=>tr,player_whether_stop:()=>Zu,robot_led_extern:()=>lr,robot_led_extern_get_value:()=>Ir,robot_motor_extern:()=>ur,robot_motor_extern_get_speed:()=>rr,robot_servo_extern_absolute_run:()=>mr,robot_servo_extern_get_status:()=>Tr,robot_servo_extern_relative_continue:()=>Rr,robot_servo_extern_relative_origin:()=>Er,robot_servo_extern_relative_run:()=>Or,robot_servo_extern_stop:()=>hr,robot_servo_extern_stop_mode:()=>Mr,robot_traffic_light_extern:()=>dr,servo_PIN_init:()=>Ar,servo_get_angle:()=>wu,servo_get_speed:()=>Hu,servo_init:()=>yu,servo_move:()=>Vu,servo_move_angle:()=>Lr,servo_set_angle:()=>Gu,servo_set_speed:()=>Uu,servo_speed_360:()=>Bu,syn6288_builtin_voice:()=>or,syn6288_get_voice:()=>_r,syn6288_set_voice:()=>sr,syn6288_tts_play:()=>pr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>od,actuator_dc_motor_stop:()=>pd,actuator_get_led_bright:()=>vr,actuator_get_led_state:()=>Xr,actuator_led_bright:()=>Yr,actuator_led_brightness:()=>xr,actuator_mixbot_buzzer_on_off:()=>ld,actuator_mixgo_nova_mic_get:()=>md,actuator_mixgo_nova_mic_set:()=>hd,actuator_mixgo_nova_onboard_music_pitch:()=>Cd,actuator_mixgo_nova_onboard_music_stop:()=>Sd,actuator_mixgo_nova_play_audio:()=>cd,actuator_mixgo_nova_play_online_audio:()=>gd,actuator_mixgo_nova_record_audio:()=>Rd,actuator_mixgo_nova_voice_get:()=>Od,actuator_mixgo_nova_voice_set:()=>Ed,actuator_mixgo_zero_led_color:()=>br,actuator_onboard_neopixel_rgb:()=>wr,actuator_onboard_neopixel_rgb_all:()=>Hr,actuator_onboard_neopixel_rgb_show_all_chase:()=>Wr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>kr,actuator_onboard_neopixel_write:()=>Kr,actuator_rm_onboard_neopixel_rgb:()=>Jr,actuator_rm_onboard_neopixel_rgb_all:()=>Qr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>qr,actuator_stepper_keep:()=>sd,actuator_stepper_stop:()=>_d,analog_ble_keyboard_init:()=>yd,analog_ble_keyboard_input:()=>Gd,analog_ble_keyboard_mouse_init:()=>Qd,analog_ble_keyboard_mouse_input:()=>Zd,analog_ble_keyboard_mouse_send_battery:()=>jd,analog_ble_keyboard_mouse_str:()=>$d,analog_ble_keyboard_send_battery:()=>wd,analog_ble_keyboard_str:()=>Ud,analog_ble_mouse_init:()=>Hd,analog_ble_mouse_input:()=>Kd,analog_ble_mouse_keyboard_input:()=>tl,analog_ble_mouse_send_battery:()=>Jd,analog_keyboard_input:()=>Dd,analog_keyboard_str:()=>bd,analog_mouse_input:()=>Xd,bitbot_motor:()=>Md,bitbot_move:()=>Id,bitbot_stop:()=>Td,ble_keyboard_connect:()=>Bd,ble_keyboard_get_mac:()=>Vd,ble_keyboard_mouse_connect:()=>zd,ble_keyboard_mouse_get_mac:()=>qd,ble_mouse_connect:()=>Wd,ble_mouse_get_mac:()=>kd,cc_number:()=>Ur,educore_ble_keyboard_input:()=>rl,educore_ble_sensor_connected:()=>ul,educore_ble_sensor_init:()=>al,educore_buzzer:()=>el,educore_buzzer_play_tone:()=>il,educore_buzzer_play_tone_time:()=>nl,educore_buzzer_stop:()=>sl,educore_neopixel_clear:()=>pl,educore_neopixel_rgb:()=>ol,educore_rgb_light:()=>_l,esp32_music_get_tempo:()=>jr,esp32_music_reset:()=>Zr,esp32_music_set_tempo:()=>zr,esp32_onboard_music_pitch:()=>$r,esp32_onboard_music_pitch_with_time:()=>td,esp32_onboard_music_play_list:()=>id,esp32_onboard_music_stop:()=>ed,general_key:()=>Fd,general_key_tuple:()=>Pd,generalkey_container:()=>Yd,generalkey_create_with_item:()=>vd,get_power_output:()=>Ld,ledswitch:()=>Pr,mixbot_motor:()=>dd,mixbot_motor_status:()=>ad,mixbot_move:()=>ud,mixbot_stop:()=>rd,mouse_key:()=>xd,number:()=>Fr,rm_actuator_get_led_bright:()=>Vr,rm_actuator_get_led_state:()=>Br,rm_actuator_led_bright:()=>yr,rm_actuator_led_brightness:()=>Gr,rm_motor:()=>nd,set_all_power_output:()=>Nd,set_power_output:()=>Ad,special_key:()=>fd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>kl,ai_sensor_ailocal_class:()=>vl,ai_sensor_ailocal_class_result:()=>Xl,ai_sensor_ailocal_train:()=>Yl,ai_sensor_asr_recognize:()=>Bl,ai_sensor_audio_play:()=>bl,ai_sensor_audio_record:()=>xl,ai_sensor_barcode:()=>El,ai_sensor_circle:()=>Sl,ai_sensor_classifier_faces:()=>Hl,ai_sensor_color:()=>Dl,ai_sensor_color_chases:()=>Pl,ai_sensor_color_chases_result:()=>Fl,ai_sensor_config:()=>hl,ai_sensor_face:()=>wl,ai_sensor_find_20objects:()=>Wl,ai_sensor_find_barcodes:()=>Ol,ai_sensor_find_circles:()=>Al,ai_sensor_find_colors:()=>fl,ai_sensor_find_licenseplates:()=>Ul,ai_sensor_find_lines:()=>Cl,ai_sensor_find_qrcodes:()=>Ml,ai_sensor_find_rects:()=>Nl,ai_sensor_find_tags:()=>cl,ai_sensor_licenseplate:()=>Gl,ai_sensor_line:()=>gl,ai_sensor_qrcode:()=>Il,ai_sensor_qrcode_lite:()=>Tl,ai_sensor_rect:()=>Ll,ai_sensor_rgb:()=>ml,ai_sensor_tag:()=>Rl,ai_sensor_use_uart_init:()=>ll,ai_sensor_yolo_recognize:()=>yl,ai_sensor_yolo_recognize_result:()=>Vl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Ql,MICROPYTHON_AI_Speech_unit:()=>Jl,MICROPYTHON_AI_client:()=>Kl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>uI,mpython_blynk_app_notify:()=>iI,mpython_blynk_email:()=>_I,mpython_blynk_get_timers:()=>oI,mpython_blynk_on_connected:()=>$l,mpython_blynk_on_disconnected:()=>Zl,mpython_blynk_run:()=>eI,mpython_blynk_sensor_data_to_app:()=>aI,mpython_blynk_set_property:()=>sI,mpython_blynk_setup:()=>rI,mpython_blynk_stop_timers:()=>nI,mpython_blynk_sync_virtual:()=>jl,mpython_blynk_terminal_widget_vpin:()=>zl,mpython_blynktimer:()=>pI,mpython_blynktimer_run:()=>tI});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>KI,communicate_bluetooth_connect:()=>zI,communicate_bluetooth_disconnect:()=>jI,communicate_bluetooth_handle:()=>iT,communicate_bluetooth_is_connected:()=>$I,communicate_bluetooth_mac:()=>qI,communicate_bluetooth_peripheral_init:()=>JI,communicate_bluetooth_recv:()=>tT,communicate_bluetooth_recv_only:()=>eT,communicate_bluetooth_scan:()=>QI,communicate_bluetooth_send:()=>ZI,communicate_espnow_init:()=>nT,communicate_espnow_init_new:()=>sT,communicate_i2c_available:()=>DI,communicate_i2c_init:()=>TI,communicate_i2c_master_read:()=>NI,communicate_i2c_onboard:()=>lI,communicate_i2c_read:()=>MI,communicate_i2c_scan:()=>mI,communicate_i2c_write:()=>hI,communicate_ir_recv_init:()=>bI,communicate_ir_send_init:()=>UI,communicate_ow_init:()=>FI,communicate_ow_read:()=>YI,communicate_ow_reset:()=>xI,communicate_ow_scan:()=>PI,communicate_ow_select:()=>XI,communicate_ow_write:()=>vI,communicate_spi_buffer:()=>RI,communicate_spi_init:()=>EI,communicate_spi_onboard:()=>II,communicate_spi_read:()=>cI,communicate_spi_read_output:()=>gI,communicate_spi_readinto:()=>CI,communicate_spi_readinto_output:()=>SI,communicate_spi_set:()=>OI,communicate_spi_write:()=>AI,communicate_spi_write_readinto:()=>LI,espnow_radio_channel:()=>rT,espnow_radio_channel_new:()=>lT,espnow_radio_on_off:()=>IT,espnow_radio_rec:()=>MT,espnow_radio_recv:()=>mT,espnow_radio_recv_certain_msg:()=>ET,espnow_radio_recv_certain_msg_new:()=>RT,espnow_radio_recv_msg:()=>hT,espnow_radio_recv_new:()=>OT,espnow_radio_send:()=>TT,espnow_radio_txpower:()=>dT,i2c_available:()=>wT,i2c_init:()=>DT,i2c_master_reader2:()=>UT,i2c_read:()=>fT,i2c_scan:()=>PT,i2c_slave_onreceive:()=>fI,i2c_write:()=>FT,internal_variable:()=>yI,ir_recv_timeout:()=>GI,ir_transmit_busy:()=>WI,ir_transmit_conventional_data:()=>wI,ir_transmit_raw_code:()=>kI,ir_transmit_study_code:()=>HI,ir_whether_recv:()=>BI,lora_init:()=>cT,lora_packet:()=>gT,lora_recv:()=>ST,lora_send:()=>CT,network_espnow_info:()=>oT,network_espnow_mac:()=>_T,network_espnow_recv:()=>pT,network_espnow_recv_handle:()=>uT,network_espnow_send:()=>aT,recv_fun:()=>VI,spi_buffer:()=>XT,spi_init:()=>YT,spi_read:()=>xT,spi_read_output:()=>bT,spi_readinto:()=>yT,spi_readinto_output:()=>VT,spi_set:()=>vT,spi_write:()=>BT,spi_write_readinto:()=>GT,urequests_attribute:()=>LT,urequests_get:()=>AT,urequests_method:()=>NT});var v={};t.r(v),t.d(v,{display_animate:()=>EM,display_blink_rate:()=>TM,display_circle:()=>OM,display_color_seclet:()=>PM,display_draw_4strings:()=>aM,display_fill:()=>mM,display_get_screen_image:()=>IM,display_help:()=>cM,display_image_size:()=>uM,display_lcd_use_i2c_init:()=>yM,display_line:()=>dM,display_line_arbitrarily:()=>lM,display_matrix_extern_bright_point:()=>tM,display_matrix_extern_bright_screen:()=>iM,display_matrix_extern_clear:()=>nM,display_matrix_extern_get_pixel:()=>$T,display_matrix_extern_get_screen_pixel:()=>eM,display_matrix_extern_image_builtins:()=>sM,display_matrix_extern_scroll_string:()=>QT,display_matrix_extern_scroll_string_delay:()=>qT,display_matrix_extern_shift:()=>ZT,display_matrix_extern_show_frame_string:()=>zT,display_matrix_extern_show_frame_string_delay:()=>jT,display_matrix_extern_show_image:()=>KT,display_matrix_extern_show_image_or_string_delay:()=>JT,display_matrix_use_i2c_init:()=>WT,display_oled_drawPixel:()=>CM,display_oled_showBitmap:()=>gM,display_oled_use_i2c_init:()=>wM,display_onoff:()=>hM,display_rect:()=>rM,display_rgb_color:()=>MM,display_tm1650_power:()=>AM,display_tm1650_set_brightness:()=>DM,display_tm1650_show_dot:()=>NM,display_tm1650_show_num:()=>LM,display_tm_use_i2c_init:()=>SM,display_triangle:()=>RM,display_use_i2c_init:()=>pM,extern_oled_bright_point:()=>$M,extern_oled_clear:()=>th,extern_oled_get_pixel:()=>ZM,extern_oled_hvline:()=>ih,extern_oled_line:()=>nh,extern_oled_scroll_string:()=>JM,extern_oled_scroll_string_delay:()=>QM,extern_oled_shape_rect:()=>eh,extern_oled_shift:()=>jM,extern_oled_show_frame_string:()=>qM,extern_oled_show_frame_string_delay:()=>zM,extern_oled_show_image:()=>HM,extern_oled_show_image_or_string_delay:()=>KM,extern_oled_show_image_xy:()=>kM,extern_oled_show_string:()=>WM,lcd_backlight:()=>GM,lcd_clear:()=>UM,lcd_print_string:()=>BM,lcd_show_image_or_string_delay:()=>VM,matrix_extern_image_arithmetic:()=>_M,matrix_extern_image_invert:()=>oM,tft_fill:()=>xM,tft_line_arbitrarily:()=>bM,tft_scroll_string_delay:()=>vM,tft_show_frame_string_delay:()=>XM,tft_show_image_or_string_delay:()=>YM,tft_show_image_xy:()=>FM,tft_use_spi_init:()=>fM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>wh,display_bright_point:()=>Eh,display_bright_screen:()=>Rh,display_clear:()=>ch,display_get_pixel:()=>mh,display_get_screen_pixel:()=>Oh,display_image_builtins:()=>lh,display_image_builtins_all:()=>Ih,display_image_create:()=>dh,display_scroll_string:()=>ph,display_scroll_string_delay:()=>ah,display_shift:()=>hh,display_show_frame_string:()=>uh,display_show_frame_string_delay:()=>rh,display_show_image:()=>_h,display_show_image_or_string_delay:()=>oh,draw_pointer:()=>lm,image_arithmetic:()=>Th,image_invert:()=>Mh,mixbot_display_bright_screen:()=>Gh,mixbot_display_get_ambientbright:()=>Bh,mixbot_display_get_screen_pixel:()=>Vh,mixbot_display_image_create:()=>yh,mixbot_display_rotate:()=>Uh,mixgo_display_image_create_new:()=>Sh,mixgome_display_font:()=>Ah,mixgome_display_image_create:()=>gh,mixgomini_display_image_create:()=>Ch,mpython_display_hvline:()=>Xh,mpython_display_line:()=>xh,mpython_display_shape_rect:()=>vh,mpython_pbm_image:()=>bh,onboard_oled_bright_point:()=>Yh,onboard_oled_scroll_string_delay:()=>Fh,onboard_oled_show_frame_string_delay:()=>Ph,onboard_oled_show_image:()=>Lh,onboard_oled_show_image_or_string_delay:()=>fh,onboard_oled_show_image_xy:()=>Nh,onboard_oled_show_string:()=>Dh,onboard_tft_bright_point:()=>em,onboard_tft_bright_screen:()=>sm,onboard_tft_clear:()=>im,onboard_tft_clock_clear:()=>rm,onboard_tft_clock_draw:()=>um,onboard_tft_clock_get_rtctime:()=>pm,onboard_tft_clock_init:()=>om,onboard_tft_clock_set_time:()=>am,onboard_tft_display_hvline:()=>jh,onboard_tft_display_line:()=>Zh,onboard_tft_display_shape_circle:()=>dm,onboard_tft_display_shape_rect:()=>zh,onboard_tft_fill:()=>_m,onboard_tft_get_pixel:()=>tm,onboard_tft_get_screen_pixel:()=>nm,onboard_tft_scroll_string:()=>Kh,onboard_tft_scroll_string_delay:()=>Jh,onboard_tft_shift:()=>$h,onboard_tft_show_frame_string:()=>Qh,onboard_tft_show_frame_string_delay:()=>qh,onboard_tft_show_image:()=>Hh,onboard_tft_show_image_or_string_delay:()=>Wh,onboard_tft_show_image_xy:()=>kh});var x={};t.r(x),t.d(x,{factory_block:()=>Cm,factory_block_return:()=>Sm,factory_block_return_with_textarea:()=>Lm,factory_block_with_textarea:()=>Am,factory_callMethod_noreturn:()=>cm,factory_callMethod_return:()=>gm,factory_create_with_container:()=>mm,factory_create_with_item:()=>Em,factory_declare:()=>Rm,factory_from_import:()=>Tm,factory_function_noreturn:()=>hm,factory_function_return:()=>Om,factory_import:()=>Mm,folding_block:()=>Nm});var b={};t.r(b),t.d(b,{controls_pin_attachInterrupt:()=>qm,inout_analog_atten:()=>ym,inout_analog_read:()=>bm,inout_analog_read_init:()=>Hm,inout_analog_write:()=>vm,inout_analog_write_init:()=>wm,inout_analog_write_set:()=>Xm,inout_analog_write_set_freq:()=>Km,inout_digital_init:()=>Gm,inout_digital_read:()=>Pm,inout_digital_write:()=>Fm,inout_highlow:()=>fm,inout_pinMode:()=>Wm,inout_pin_attachInterrupt:()=>Bm,inout_pin_pressed:()=>Vm,inout_pin_pressed_init:()=>km,inout_pwm_analog_write:()=>Ym,inout_pwm_analog_write_init:()=>Um,inout_pwm_analog_write_set_freq:()=>xm,pin_pressed:()=>Qm,pin_pressed_init:()=>Jm});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>OE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>EE,IOT_EMQX_PING:()=>hE,IOT_FORMATTING:()=>TE,IOT_FORMAT_STRING:()=>ME,IOT_MIXIO_NTP:()=>mE,IOT_MIXIO_PUBLISH:()=>pE,IOT_MIXIO_SUBSCRIBE:()=>aE,iot_checkonenet:()=>fE,iot_client_onboard:()=>cE,iot_create_with_item:()=>_E,iot_http_client:()=>gE,iot_http_data:()=>CE,iot_mixio_check:()=>dE,iot_mixio_connect:()=>oE,iot_mixio_connect_only:()=>rE,iot_mixio_disconnect:()=>uE,iot_mixio_format_msg:()=>IE,iot_mixio_format_topic:()=>lE,iot_mixly_key:()=>RE,iot_mqtt_client:()=>SE,iot_mqtt_data:()=>AE,iot_onenet_check:()=>tE,iot_onenet_connect:()=>Zm,iot_onenet_disconnect:()=>$m,iot_onenet_publish:()=>iE,iot_onenet_publish_dict:()=>eE,iot_onenetconnect:()=>NE,iot_onenetdisconnect:()=>DE,iot_publish:()=>FE,iot_publish_container:()=>nE,iot_publish_item:()=>sE,iot_wifi_connect:()=>jm,iot_wificonnect:()=>LE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>uO,educore_mqtt_connect_success:()=>IO,educore_mqtt_subscribe_message:()=>rO,educore_mqtt_topic_publish:()=>lO,educore_mqtt_topic_subscribe:()=>dO,educore_wifi_connect:()=>aO,network_ap_connect:()=>UE,network_connect:()=>bE,network_get_connect:()=>VE,network_get_wifi:()=>GE,network_init:()=>YE,network_is_active:()=>XE,network_open:()=>vE,network_scan:()=>xE,network_server:()=>wE,network_socket_accept:()=>JE,network_socket_bind:()=>kE,network_socket_close:()=>ZE,network_socket_connect:()=>WE,network_socket_init:()=>HE,network_socket_listen:()=>KE,network_socket_receive:()=>QE,network_socket_receive_from:()=>zE,network_socket_send:()=>qE,network_socket_send_to:()=>jE,network_stop:()=>BE,network_wifi_connect:()=>yE,ntptime_address:()=>nO,ntptime_time:()=>iO,requests_attribute:()=>tO,requests_attribute2:()=>pO,requests_get:()=>$E,requests_get2:()=>_O,requests_method:()=>eO,requests_post:()=>oO});var B={};t.r(B),t.d(B,{pe_g1_battery_left:()=>hO,pe_g1_dc_motor:()=>mO,pe_g1_dc_motor_speed:()=>EO,pe_g1_servo_get_angle:()=>cO,pe_g1_servo_get_speed:()=>gO,pe_g1_servo_set_angle:()=>OO,pe_g1_servo_set_speed:()=>RO,pe_g1_use_i2c_init:()=>MO});var G={};t.r(G),t.d(G,{CI130X_BROADCAST:()=>JO,CI130X_GET_THE_RECOGNIZED_CMD:()=>KO,CI130X_GET_WHETHER_IDENTIFY:()=>WO,CI130X_IDENTIFY_AND_SAVE:()=>kO,CI130X_SET_SYSTEM_CMD:()=>QO,HCSR04:()=>XR,PS2_Button:()=>VR,PS2_Buttons:()=>GR,PS2_Buttons_new:()=>kR,PS2_State:()=>BR,PS2_init:()=>xR,PS2_init_new:()=>wR,PS2_stk:()=>UR,PS2_stk_new:()=>WR,PS2_vibration:()=>yR,PS2_vibration_new:()=>HR,camera_sensor_init:()=>Rc,camera_sensor_result:()=>cc,educore_body_sensor:()=>rc,educore_button_sensor_extern:()=>Tc,educore_camera_sensor:()=>Oc,educore_infrared_sensor:()=>Ic,educore_soilhum_sensor:()=>dc,educore_temp_sensor:()=>Ec,educore_temphum_sensor:()=>lc,educore_ultrasonic_sensor:()=>hc,esp32_s2_weather_init:()=>FR,esp32_s2_weather_rain:()=>YR,esp32_s2_weather_wd:()=>PR,esp32_s2_weather_ws:()=>vR,extern_rfid_read:()=>hR,extern_rfid_readcontent:()=>ER,extern_rfid_readid:()=>mR,extern_rfid_status:()=>cR,extern_rfid_write:()=>OR,extern_rfid_write_return:()=>RR,gnss_get_data:()=>qR,gnss_have_data:()=>QR,interaction_whether_to_interaction:()=>wO,interaction_whether_to_interaction_SANT:()=>HO,mixbot_sensor_extern_get_addr:()=>ic,mixbot_sensor_extern_set_addr:()=>nc,pm25_get_data:()=>JR,radar_set_DETECTION_THRESHOLD:()=>GO,radar_set_DETECTION_THRESHOLD_SANT:()=>UO,robot_button_extern_get_value:()=>zR,robot_color_extern_get_value:()=>ec,robot_infrared_extern_get_value:()=>ZR,robot_infrared_extern_grey_get_value:()=>$R,robot_potentiometer_extern_get_value:()=>tc,robot_sonar_extern_get_value:()=>sc,robot_sonar_extern_led:()=>_c,robot_touch_extern_get_value:()=>jR,sensor_APDS9960_extern:()=>zO,sensor_DS18X20:()=>yO,sensor_LTR308_extern:()=>jO,sensor_LTR390UV_extern:()=>tR,sensor_MAX30102_extern:()=>qO,sensor_QMC5883L_extern:()=>oR,sensor_VL530LX_extern:()=>eR,sensor_adxl345_get_acceleration:()=>fO,sensor_aht11_extern:()=>nR,sensor_bmp:()=>xO,sensor_compass_reset:()=>TR,sensor_dht11:()=>PO,sensor_hp203_extern:()=>sR,sensor_light_level:()=>FO,sensor_lm35:()=>VO,sensor_ltr381_extern:()=>ZO,sensor_mixgo_extern_button_attachInterrupt:()=>NO,sensor_mixgo_extern_button_get_presses:()=>LO,sensor_mixgo_extern_button_is_pressed:()=>SO,sensor_mixgo_extern_button_was_pressed:()=>AO,sensor_mixgo_extern_light:()=>YO,sensor_mixgo_extern_pin_near:()=>XO,sensor_mixgo_extern_sound:()=>vO,sensor_mixgoce_hot_wheel_degrees:()=>fR,sensor_mixgoce_hot_wheel_is_touched:()=>DR,sensor_mpu9250_attachGestureInterrupt:()=>DO,sensor_mpu9250_calibrate_compass:()=>dR,sensor_mpu9250_field_strength:()=>IR,sensor_mpu9250_gesture:()=>pR,sensor_mpu9250_get_acceleration:()=>aR,sensor_mpu9250_get_gyro:()=>rR,sensor_mpu9250_get_magnetic:()=>uR,sensor_mpu9250_temperature:()=>lR,sensor_read_humiture:()=>Mc,sensor_sht:()=>bO,sensor_shtc3_extern:()=>iR,sensor_spl06_001_extern:()=>_R,sensor_ucs12071_extern:()=>$O,sensor_use_i2c_init:()=>BO,sensor_use_spi_init:()=>MR,sensor_use_uart_init:()=>KR,sensor_weather_solo_init:()=>oc,sensor_weather_solo_rain:()=>uc,sensor_weather_solo_wd:()=>pc,sensor_weather_solo_ws:()=>ac,sensor_weigh_init:()=>gc,ultrasonic_sensor_read_distance:()=>mc,weather_data:()=>gR,weather_have_data:()=>CR,weather_set_label:()=>AR,weather_set_label_container:()=>LR,weather_set_label_item:()=>NR,weather_uart_mixio:()=>SR,weigh_sensor_get_weight:()=>Cc});var U={};t.r(U),t.d(U,{CI130X_BROADCAST_SANT:()=>EC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>mC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>hC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>MC,CI130X_SET_SYSTEM_CMD_SANT:()=>OC,HCSR04:()=>Gc,RTC_set_date:()=>Bc,RTC_set_time:()=>Vc,bitbot_als_num:()=>Qg,dht11:()=>eC,educore_button_sensor:()=>rC,educore_button_was_pressed:()=>dC,educore_gyroscope_sensor:()=>pC,educore_gyroscope_sensor_read:()=>aC,educore_gyroscope_sensor_shake:()=>uC,educore_light_sensor:()=>oC,educore_rfid_sensor:()=>lC,educore_rfid_sensor_scan:()=>IC,educore_rfid_sensor_scan_data:()=>TC,educore_voice_sensor:()=>sC,number1:()=>wc,number2:()=>Hc,number3:()=>kc,number4:()=>Wc,number5:()=>Kc,number6:()=>Jc,number7:()=>Qc,onboard_RTC_get_time:()=>ig,onboard_RTC_get_time_str:()=>ag,onboard_RTC_get_timestamp:()=>ng,onboard_RTC_get_timetuple_to_str:()=>ug,onboard_RTC_set_datetime:()=>og,onboard_RTC_settime_string:()=>_g,onboard_RTC_timestamp_totuple:()=>sg,rfid_readcontent:()=>hg,rfid_readid:()=>Mg,rfid_write:()=>mg,rfid_write_return:()=>Eg,sensor_LTR308:()=>rg,sensor_aht11:()=>lg,sensor_bitbot_ALS:()=>Jg,sensor_button_get_presses:()=>jg,sensor_button_is_pressed:()=>qg,sensor_button_was_pressed:()=>zg,sensor_distance_hrsc04:()=>yc,sensor_eulerangles:()=>Rg,sensor_field_strength:()=>iC,sensor_get_acceleration:()=>Og,sensor_get_temperature:()=>Ig,sensor_hp203:()=>Tg,sensor_light:()=>tC,sensor_mixbot_get_gyro:()=>Kg,sensor_mixbot_patrol_calibrate:()=>Hg,sensor_mixbot_patrol_value:()=>kg,sensor_mixbot_temperature:()=>Wg,sensor_mixgo_LTR308:()=>tg,sensor_mixgo_button_attachInterrupt:()=>Dc,sensor_mixgo_button_get_presses:()=>Nc,sensor_mixgo_button_is_pressed:()=>Ac,sensor_mixgo_button_was_pressed:()=>Lc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Pg,sensor_mixgo_cc_mmc5603_get_angle:()=>Fg,sensor_mixgo_cc_mmc5603_get_magnetic:()=>fg,sensor_mixgo_light:()=>Uc,sensor_mixgo_nova_LTR308:()=>$c,sensor_mixgo_nova_pin_near:()=>Zc,sensor_mixgo_pin_near:()=>jc,sensor_mixgo_pin_near_double:()=>zc,sensor_mixgo_pin_near_single:()=>qc,sensor_mixgo_pin_pressed:()=>vc,sensor_mixgo_sant_color:()=>eg,sensor_mixgo_touch_slide:()=>bc,sensor_mixgocar42_button_attachInterrupt:()=>Yc,sensor_mixgocar42_button_get_presses:()=>Pc,sensor_mixgocar42_button_is_pressed:()=>fc,sensor_mixgocar42_button_was_pressed:()=>Fc,sensor_mixgocar_battery_left:()=>wg,sensor_mixgocar_pin_near:()=>Gg,sensor_mixgocar_pin_near_line:()=>Bg,sensor_mixgocar_pin_near_state_change:()=>Ug,sensor_mixgoce_pin_pressed:()=>Xc,sensor_mixgoce_temperature:()=>vg,sensor_mixgome_temperature:()=>Yg,sensor_mpython_pin_pressed:()=>xc,sensor_mpython_qmi8658_get_gyro:()=>Xg,sensor_mpython_qmi8658_temperature:()=>xg,sensor_onboard_compass_reset:()=>Dg,sensor_onboard_mpu9250_calibrate_compass:()=>Ag,sensor_onboard_mpu9250_field_strength:()=>Ng,sensor_onboard_mpu9250_gesture:()=>cg,sensor_onboard_mpu9250_get_acceleration:()=>gg,sensor_onboard_mpu9250_get_gyro:()=>Sg,sensor_onboard_mpu9250_get_magnetic:()=>Cg,sensor_onboard_mpu9250_temperature:()=>Lg,sensor_pin_near:()=>$g,sensor_pin_pressed:()=>Zg,sensor_read:()=>_C,sensor_rm_acc:()=>Vg,sensor_rm_battery_left:()=>yg,sensor_rm_pin_near_double:()=>bg,sensor_rtc_init:()=>pg,sensor_sound:()=>dg,sensor_temperature:()=>nC});var w={};t.r(w),t.d(w,{serial_any:()=>NC,serial_begin:()=>YC,serial_print:()=>gC,serial_print_byte:()=>cC,serial_print_hex:()=>SC,serial_println:()=>CC,serial_read_from_ai:()=>UC,serial_readline:()=>DC,serial_readstr:()=>LC,serial_readstr_until:()=>fC,serial_receive_data_event:()=>AC,serial_send_to_ai:()=>GC,serial_softserial:()=>PC,serial_softserial_new:()=>FC,system_input:()=>vC,system_print:()=>XC,system_print_container:()=>VC,system_print_end:()=>bC,system_print_inline:()=>xC,system_print_item:()=>BC,system_print_many:()=>yC});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>WC,Timer_init:()=>sS,base_delay:()=>pS,controls_delay:()=>kC,controls_delay_new:()=>HC,controls_millis:()=>JC,controls_uname:()=>qC,raw_block:()=>QC,reset:()=>KC,system_bitbot_shutdown:()=>nS,system_machine_reset:()=>iS,system_ticks_diff:()=>ZC,system_timer:()=>jC,system_timer_init:()=>$C,system_wdt_feed:()=>eS,system_wdt_init:()=>tS,time_ticks_diff:()=>oS,timer:()=>zC,timer2:()=>_S});var k={};t.r(k),t.d(k,{Air_daily_content:()=>cS,Air_now_content:()=>TS,Geo_moon_content:()=>CS,Geo_sun_content:()=>gS,Life_suggestion_content:()=>hS,Location_search_content:()=>ES,Tide_daily_content:()=>mS,WEATHER_DAILY:()=>rS,WEATHER_HOUR:()=>dS,WEATHER_NOW:()=>uS,Weather_alarm_content:()=>MS,Weather_daily:()=>OS,Weather_daily_content:()=>RS,Weather_now:()=>lS,Weather_now_content:()=>IS});var W={};t.r(W),t.d(W,{PIN_init:()=>cA,actuator_extern_get_led_bright:()=>HS,actuator_extern_get_led_state:()=>kS,actuator_extern_led_bright:()=>wS,actuator_extern_led_brightness:()=>WS,actuator_ms32006_dcmotor:()=>PS,actuator_ms32006_init:()=>FS,actuator_ms32006_stepper:()=>YS,actuator_neopixel_init:()=>KS,actuator_neopixel_rgb:()=>qS,actuator_neopixel_rgb_all:()=>JS,actuator_neopixel_write:()=>QS,actuator_use_uart_init:()=>zS,esp32_music_get_tempo_extern:()=>VS,esp32_music_pitch:()=>XS,esp32_music_pitch_init:()=>vS,esp32_music_pitch_with_time:()=>xS,esp32_music_play_list:()=>BS,esp32_music_reset_extern:()=>GS,esp32_music_set_tempo_extern:()=>yS,esp32_music_stop:()=>bS,mixbot_actuator_extern_get_addr:()=>OA,mixbot_actuator_extern_set_addr:()=>RA,mixbot_addr_extern:()=>oA,parrot_PIN_init:()=>AA,parrot_move_speed:()=>LA,pin_led_bright:()=>gA,player_play_music:()=>eA,player_set_mode:()=>tA,player_set_play:()=>ZS,player_set_volume:()=>$S,player_whether_stop:()=>jS,robot_led_extern:()=>rA,robot_led_extern_get_value:()=>dA,robot_motor_extern:()=>pA,robot_motor_extern_get_speed:()=>aA,robot_servo_extern_absolute_run:()=>MA,robot_servo_extern_get_status:()=>lA,robot_servo_extern_relative_continue:()=>EA,robot_servo_extern_relative_origin:()=>hA,robot_servo_extern_relative_run:()=>mA,robot_servo_extern_stop:()=>TA,robot_servo_extern_stop_mode:()=>IA,robot_traffic_light_extern:()=>uA,servo_PIN_init:()=>CA,servo_get_angle:()=>DS,servo_get_speed:()=>fS,servo_init:()=>SS,servo_move:()=>US,servo_move_angle:()=>SA,servo_set_angle:()=>LS,servo_set_speed:()=>NS,servo_speed_360:()=>AS,syn6288_builtin_voice:()=>sA,syn6288_get_voice:()=>nA,syn6288_set_voice:()=>iA,syn6288_tts_play:()=>_A});var K={};t.r(K),t.d(K,{actuator_dc_motor:()=>tL,actuator_dc_motor_stop:()=>eL,actuator_get_led_bright:()=>yA,actuator_get_led_state:()=>VA,actuator_led_bright:()=>bA,actuator_led_brightness:()=>BA,actuator_mixbot_buzzer_on_off:()=>oL,actuator_mixgo_nova_mic_get:()=>dL,actuator_mixgo_nova_mic_set:()=>rL,actuator_mixgo_nova_onboard_music_pitch:()=>mL,actuator_mixgo_nova_onboard_music_stop:()=>EL,actuator_mixgo_nova_play_audio:()=>ML,actuator_mixgo_nova_play_online_audio:()=>hL,actuator_mixgo_nova_record_audio:()=>TL,actuator_mixgo_nova_voice_get:()=>IL,actuator_mixgo_nova_voice_set:()=>lL,actuator_mixgo_zero_led_color:()=>GA,actuator_onboard_neopixel_rgb:()=>JA,actuator_onboard_neopixel_rgb_all:()=>QA,actuator_onboard_neopixel_rgb_show_all_chase:()=>qA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>zA,actuator_onboard_neopixel_write:()=>KA,actuator_stepper_keep:()=>ZA,actuator_stepper_stop:()=>$A,analog_ble_keyboard_init:()=>fL,analog_ble_keyboard_input:()=>YL,analog_ble_keyboard_mouse_init:()=>GL,analog_ble_keyboard_mouse_input:()=>kL,analog_ble_keyboard_mouse_send_battery:()=>HL,analog_ble_keyboard_mouse_str:()=>WL,analog_ble_keyboard_send_battery:()=>XL,analog_ble_keyboard_str:()=>vL,analog_ble_mouse_init:()=>xL,analog_ble_mouse_input:()=>VL,analog_ble_mouse_keyboard_input:()=>KL,analog_ble_mouse_send_battery:()=>BL,analog_keyboard_input:()=>gL,analog_keyboard_str:()=>NL,analog_mouse_input:()=>AL,bitbot_motor:()=>uL,bitbot_move:()=>pL,bitbot_stop:()=>aL,ble_keyboard_connect:()=>PL,ble_keyboard_get_mac:()=>FL,ble_keyboard_mouse_connect:()=>wL,ble_keyboard_mouse_get_mac:()=>UL,ble_mouse_connect:()=>yL,ble_mouse_get_mac:()=>bL,cc_number:()=>UA,educore_ble_keyboard_input:()=>iN,educore_ble_sensor_connected:()=>eN,educore_ble_sensor_init:()=>tN,educore_buzzer:()=>JL,educore_buzzer_play_tone:()=>QL,educore_buzzer_play_tone_time:()=>qL,educore_buzzer_stop:()=>zL,educore_neopixel_clear:()=>$L,educore_neopixel_rgb:()=>ZL,educore_rgb_light:()=>jL,esp32_music_get_tempo:()=>DA,esp32_music_reset:()=>vA,esp32_music_set_tempo:()=>NA,esp32_onboard_music_pitch:()=>fA,esp32_onboard_music_pitch_with_time:()=>FA,esp32_onboard_music_play_list:()=>YA,esp32_onboard_music_stop:()=>PA,general_key:()=>SL,general_key_tuple:()=>DL,get_power_output:()=>RL,ledswitch:()=>xA,mixbot_motor:()=>_L,mixbot_motor_status:()=>iL,mixbot_move:()=>nL,mixbot_stop:()=>sL,mouse_key:()=>LL,number:()=>XA,rm_actuator_get_led_bright:()=>HA,rm_actuator_get_led_state:()=>kA,rm_actuator_led_bright:()=>wA,rm_actuator_led_brightness:()=>WA,rm_motor:()=>jA,set_all_power_output:()=>cL,set_power_output:()=>OL,special_key:()=>CL});var J={};t.r(J),t.d(J,{ai_sensor_20object:()=>xN,ai_sensor_ailocal_class:()=>SN,ai_sensor_ailocal_class_result:()=>AN,ai_sensor_ailocal_train:()=>CN,ai_sensor_asr_recognize:()=>FN,ai_sensor_audio_play:()=>NN,ai_sensor_audio_record:()=>LN,ai_sensor_barcode:()=>uN,ai_sensor_circle:()=>MN,ai_sensor_classifier_faces:()=>XN,ai_sensor_color:()=>ON,ai_sensor_color_chases:()=>gN,ai_sensor_color_chases_result:()=>cN,ai_sensor_config:()=>_N,ai_sensor_face:()=>vN,ai_sensor_find_20objects:()=>bN,ai_sensor_find_barcodes:()=>rN,ai_sensor_find_circles:()=>hN,ai_sensor_find_colors:()=>RN,ai_sensor_find_licenseplates:()=>YN,ai_sensor_find_lines:()=>TN,ai_sensor_find_qrcodes:()=>aN,ai_sensor_find_rects:()=>EN,ai_sensor_find_tags:()=>lN,ai_sensor_licenseplate:()=>PN,ai_sensor_line:()=>IN,ai_sensor_qrcode:()=>pN,ai_sensor_qrcode_lite:()=>sN,ai_sensor_rect:()=>mN,ai_sensor_rgb:()=>oN,ai_sensor_tag:()=>dN,ai_sensor_use_uart_init:()=>nN,ai_sensor_yolo_recognize:()=>DN,ai_sensor_yolo_recognize_result:()=>fN});var Q={};t.r(Q),t.d(Q,{MICROPYTHON_AI_Speech_asr:()=>BN,MICROPYTHON_AI_Speech_unit:()=>VN,MICROPYTHON_AI_client:()=>yN});var q={};t.r(q),t.d(q,{mpython_blynk_app_data:()=>jN,mpython_blynk_app_notify:()=>KN,mpython_blynk_email:()=>ZN,mpython_blynk_get_timers:()=>QN,mpython_blynk_on_connected:()=>HN,mpython_blynk_on_disconnected:()=>wN,mpython_blynk_run:()=>WN,mpython_blynk_sensor_data_to_app:()=>zN,mpython_blynk_set_property:()=>$N,mpython_blynk_setup:()=>tD,mpython_blynk_stop_timers:()=>JN,mpython_blynk_sync_virtual:()=>UN,mpython_blynk_terminal_widget_vpin:()=>GN,mpython_blynktimer:()=>qN,mpython_blynktimer_run:()=>kN});var z={};t.r(z),t.d(z,{communicate_bluetooth_central_init:()=>xD,communicate_bluetooth_connect:()=>VD,communicate_bluetooth_disconnect:()=>BD,communicate_bluetooth_handle:()=>WD,communicate_bluetooth_is_connected:()=>UD,communicate_bluetooth_mac:()=>GD,communicate_bluetooth_peripheral_init:()=>bD,communicate_bluetooth_recv:()=>kD,communicate_bluetooth_recv_only:()=>HD,communicate_bluetooth_scan:()=>yD,communicate_bluetooth_send:()=>wD,communicate_espnow_init:()=>KD,communicate_espnow_init_new:()=>JD,communicate_i2c_available:()=>aD,communicate_i2c_init:()=>nD,communicate_i2c_master_read:()=>pD,communicate_i2c_onboard:()=>eD,communicate_i2c_read:()=>sD,communicate_i2c_scan:()=>oD,communicate_i2c_write:()=>_D,communicate_ir_recv_init:()=>AD,communicate_ir_send_init:()=>FD,communicate_ow_init:()=>OD,communicate_ow_read:()=>gD,communicate_ow_reset:()=>cD,communicate_ow_scan:()=>RD,communicate_ow_select:()=>SD,communicate_ow_write:()=>CD,communicate_spi_buffer:()=>lD,communicate_spi_init:()=>rD,communicate_spi_onboard:()=>iD,communicate_spi_read:()=>ID,communicate_spi_read_output:()=>TD,communicate_spi_readinto:()=>MD,communicate_spi_readinto_output:()=>hD,communicate_spi_set:()=>dD,communicate_spi_write:()=>mD,communicate_spi_write_readinto:()=>ED,espnow_radio_channel:()=>$D,espnow_radio_channel_new:()=>ef,espnow_radio_on_off:()=>nf,espnow_radio_rec:()=>_f,espnow_radio_recv:()=>pf,espnow_radio_recv_certain_msg:()=>af,espnow_radio_recv_certain_msg_new:()=>rf,espnow_radio_recv_msg:()=>of,espnow_radio_recv_new:()=>uf,espnow_radio_send:()=>sf,espnow_radio_txpower:()=>tf,i2c_slave_onreceive:()=>uD,internal_variable:()=>LD,ir_recv_timeout:()=>fD,ir_transmit_busy:()=>XD,ir_transmit_conventional_data:()=>PD,ir_transmit_raw_code:()=>vD,ir_transmit_study_code:()=>YD,ir_whether_recv:()=>DD,lora_init:()=>df,lora_packet:()=>lf,lora_recv:()=>Tf,lora_send:()=>If,network_espnow_info:()=>qD,network_espnow_mac:()=>QD,network_espnow_recv:()=>zD,network_espnow_recv_handle:()=>ZD,network_espnow_send:()=>jD,recv_fun:()=>ND,urequests_attribute:()=>hf,urequests_get:()=>Mf,urequests_method:()=>mf});var j={};t.r(j),t.d(j,{display_animate:()=>wf,display_circle:()=>Hf,display_color_seclet:()=>tF,display_draw_4strings:()=>xf,display_fill:()=>Uf,display_lcd_use_i2c_init:()=>oF,display_line:()=>Vf,display_line_arbitrarily:()=>bf,display_matrix_extern_bright_point:()=>Df,display_matrix_extern_bright_screen:()=>Ff,display_matrix_extern_clear:()=>Af,display_matrix_extern_get_pixel:()=>Nf,display_matrix_extern_get_screen_pixel:()=>ff,display_matrix_extern_image_builtins:()=>Pf,display_matrix_extern_scroll_string:()=>Cf,display_matrix_extern_scroll_string_delay:()=>Sf,display_matrix_extern_shift:()=>Lf,display_matrix_extern_show_frame_string:()=>cf,display_matrix_extern_show_frame_string_delay:()=>gf,display_matrix_extern_show_image:()=>Of,display_matrix_extern_show_image_or_string_delay:()=>Rf,display_matrix_use_i2c_init:()=>Ef,display_oled_drawPixel:()=>Kf,display_oled_showBitmap:()=>Wf,display_oled_use_i2c_init:()=>dF,display_onoff:()=>Bf,display_rect:()=>yf,display_tm1650_power:()=>Qf,display_tm1650_set_brightness:()=>jf,display_tm1650_show_dot:()=>zf,display_tm1650_show_num:()=>qf,display_tm_use_i2c_init:()=>Jf,display_triangle:()=>kf,display_use_i2c_init:()=>Xf,extern_oled_bright_point:()=>CF,extern_oled_clear:()=>RF,extern_oled_get_pixel:()=>gF,extern_oled_hvline:()=>AF,extern_oled_line:()=>LF,extern_oled_scroll_string:()=>EF,extern_oled_scroll_string_delay:()=>OF,extern_oled_shape_rect:()=>SF,extern_oled_shift:()=>cF,extern_oled_show_frame_string:()=>hF,extern_oled_show_frame_string_delay:()=>mF,extern_oled_show_image:()=>lF,extern_oled_show_image_or_string_delay:()=>MF,extern_oled_show_image_xy:()=>IF,extern_oled_show_string:()=>TF,image_shift:()=>Gf,lcd_backlight:()=>uF,lcd_clear:()=>rF,lcd_print_string:()=>aF,lcd_show_image_or_string_delay:()=>pF,matrix_extern_image_arithmetic:()=>Yf,matrix_extern_image_invert:()=>vf,tft_fill:()=>sF,tft_line_arbitrarily:()=>_F,tft_scroll_string_delay:()=>nF,tft_show_frame_string_delay:()=>iF,tft_show_image_or_string_delay:()=>eF,tft_show_image_xy:()=>$f,tft_use_spi_init:()=>Zf});var Z={};t.r(Z),t.d(Z,{bitbot_display_image_create:()=>rP,display_bright_point:()=>UF,display_bright_screen:()=>HF,display_clear:()=>bF,display_get_pixel:()=>GF,display_get_screen_pixel:()=>wF,display_image_builtins:()=>vF,display_image_builtins_all:()=>XF,display_image_create:()=>xF,display_scroll_string:()=>PF,display_scroll_string_delay:()=>YF,display_shift:()=>BF,display_show_frame_string:()=>fF,display_show_frame_string_delay:()=>FF,display_show_image:()=>NF,display_show_image_or_string_delay:()=>DF,draw_pointer:()=>XP,image_arithmetic:()=>yF,image_invert:()=>VF,mixbot_display_bright_screen:()=>aP,mixbot_display_get_ambientbright:()=>pP,mixbot_display_get_screen_pixel:()=>oP,mixbot_display_image_create:()=>_P,mixbot_display_rotate:()=>uP,mixgo_display_image_create_new:()=>JF,mixgome_display_font:()=>KF,mixgome_display_image_create:()=>kF,mixgomini_display_image_create:()=>WF,mpython_display_hvline:()=>nP,mpython_display_line:()=>sP,mpython_display_shape_rect:()=>iP,mpython_pbm_image:()=>QF,onboard_oled_bright_point:()=>eP,onboard_oled_scroll_string_delay:()=>tP,onboard_oled_show_frame_string_delay:()=>$F,onboard_oled_show_image:()=>qF,onboard_oled_show_image_or_string_delay:()=>ZF,onboard_oled_show_image_xy:()=>zF,onboard_oled_show_string:()=>jF,onboard_tft_bright_point:()=>SP,onboard_tft_bright_screen:()=>LP,onboard_tft_clear:()=>cP,onboard_tft_clock_clear:()=>YP,onboard_tft_clock_draw:()=>PP,onboard_tft_clock_get_rtctime:()=>fP,onboard_tft_clock_init:()=>DP,onboard_tft_clock_set_time:()=>FP,onboard_tft_display_hvline:()=>OP,onboard_tft_display_line:()=>RP,onboard_tft_display_shape_circle:()=>vP,onboard_tft_display_shape_rect:()=>EP,onboard_tft_fill:()=>NP,onboard_tft_get_pixel:()=>CP,onboard_tft_get_screen_pixel:()=>AP,onboard_tft_scroll_string:()=>hP,onboard_tft_scroll_string_delay:()=>mP,onboard_tft_shift:()=>gP,onboard_tft_show_frame_string:()=>TP,onboard_tft_show_frame_string_delay:()=>MP,onboard_tft_show_image:()=>dP,onboard_tft_show_image_or_string_delay:()=>IP,onboard_tft_show_image_xy:()=>lP});var $={};t.r($),t.d($,{factory_block:()=>wP,factory_block_return:()=>HP,factory_block_return_with_textarea:()=>WP,factory_block_with_textarea:()=>kP,factory_callMethod_noreturn:()=>GP,factory_callMethod_return:()=>UP,factory_declare:()=>BP,factory_from_import:()=>xP,factory_function_noreturn:()=>yP,factory_function_return:()=>VP,factory_import:()=>bP,folding_block:()=>KP});var tt={};t.r(tt),t.d(tt,{inout_analog_atten:()=>pY,inout_analog_read:()=>tY,inout_analog_read_init:()=>oY,inout_analog_write:()=>jP,inout_analog_write_init:()=>_Y,inout_analog_write_set:()=>ZP,inout_digital_init:()=>nY,inout_digital_read:()=>qP,inout_digital_write:()=>QP,inout_highlow:()=>JP,inout_pin_attachInterrupt:()=>iY,inout_pin_pressed:()=>eY,inout_pin_pressed_init:()=>aY,inout_pwm_analog_write:()=>zP,inout_pwm_analog_write_init:()=>sY,inout_pwm_analog_write_set_freq:()=>$P});var et={};t.r(et),t.d(et,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>NY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>AY,IOT_EMQX_PING:()=>DY,IOT_FORMATTING:()=>CY,IOT_FORMAT_STRING:()=>SY,IOT_MIXIO_NTP:()=>fY,IOT_MIXIO_PUBLISH:()=>hY,IOT_MIXIO_SUBSCRIBE:()=>mY,iot_client_onboard:()=>FY,iot_http_client:()=>PY,iot_http_data:()=>YY,iot_mixio_check:()=>RY,iot_mixio_connect:()=>MY,iot_mixio_connect_only:()=>OY,iot_mixio_disconnect:()=>EY,iot_mixio_format_msg:()=>gY,iot_mixio_format_topic:()=>cY,iot_mixly_key:()=>LY,iot_mqtt_client:()=>vY,iot_mqtt_data:()=>XY,iot_onenet_check:()=>IY,iot_onenet_connect:()=>rY,iot_onenet_disconnect:()=>dY,iot_onenet_publish:()=>TY,iot_onenet_publish_dict:()=>lY,iot_wifi_connect:()=>uY});var it={};t.r(it),t.d(it,{educore_mqtt_connect:()=>dv,educore_mqtt_connect_success:()=>Mv,educore_mqtt_subscribe_message:()=>lv,educore_mqtt_topic_publish:()=>Tv,educore_mqtt_topic_subscribe:()=>Iv,educore_wifi_connect:()=>rv,network_ap_connect:()=>HY,network_connect:()=>bY,network_get_connect:()=>VY,network_get_wifi:()=>wY,network_init:()=>xY,network_is_active:()=>UY,network_open:()=>GY,network_scan:()=>kY,network_server:()=>WY,network_socket_accept:()=>zY,network_socket_bind:()=>JY,network_socket_close:()=>ev,network_socket_connect:()=>QY,network_socket_init:()=>KY,network_socket_listen:()=>qY,network_socket_receive:()=>jY,network_socket_receive_from:()=>$Y,network_socket_send:()=>ZY,network_socket_send_to:()=>tv,network_stop:()=>BY,network_wifi_connect:()=>yY,ntptime_address:()=>ov,ntptime_time:()=>_v,requests_attribute:()=>nv,requests_attribute2:()=>av,requests_get:()=>iv,requests_get2:()=>pv,requests_method:()=>sv,requests_post:()=>uv});var nt={};t.r(nt),t.d(nt,{pe_g1_battery_left:()=>mv,pe_g1_dc_motor:()=>Ev,pe_g1_dc_motor_speed:()=>Ov,pe_g1_servo_get_angle:()=>gv,pe_g1_servo_get_speed:()=>Cv,pe_g1_servo_set_angle:()=>Rv,pe_g1_servo_set_speed:()=>cv,pe_g1_use_i2c_init:()=>hv});var st={};t.r(st),t.d(st,{CI130X_BROADCAST:()=>Kv,CI130X_GET_THE_RECOGNIZED_CMD:()=>Wv,CI130X_GET_WHETHER_IDENTIFY:()=>kv,CI130X_IDENTIFY_AND_SAVE:()=>Hv,CI130X_SET_SYSTEM_CMD:()=>Jv,HCSR04:()=>CX,PS2_Button:()=>LX,PS2_Buttons:()=>NX,PS2_Buttons_new:()=>xX,PS2_State:()=>DX,PS2_init:()=>SX,PS2_init_new:()=>vX,PS2_stk:()=>fX,PS2_stk_new:()=>bX,PS2_vibration:()=>AX,PS2_vibration_new:()=>XX,RTC_get_time:()=>PX,RTC_set_date:()=>Pv,RTC_set_datetime:()=>FX,RTC_set_time:()=>Fv,camera_sensor_init:()=>lx,camera_sensor_result:()=>Ix,educore_body_sensor:()=>ix,educore_button_sensor_extern:()=>ox,educore_camera_sensor:()=>dx,educore_infrared_sensor:()=>_x,educore_soilhum_sensor:()=>nx,educore_temp_sensor:()=>rx,educore_temphum_sensor:()=>sx,educore_ultrasonic_sensor:()=>ax,esp32_s2_weather_init:()=>OX,esp32_s2_weather_rain:()=>cX,esp32_s2_weather_wd:()=>RX,esp32_s2_weather_ws:()=>gX,extern_rfid_read:()=>pX,extern_rfid_readcontent:()=>uX,extern_rfid_readid:()=>aX,extern_rfid_status:()=>lX,extern_rfid_write:()=>rX,extern_rfid_write_return:()=>dX,gnss_get_data:()=>BX,gnss_have_data:()=>GX,interaction_whether_to_interaction:()=>Uv,interaction_whether_to_interaction_SANT:()=>wv,mixbot_sensor_extern_get_addr:()=>qX,mixbot_sensor_extern_set_addr:()=>zX,pm25_get_data:()=>VX,radar_set_DETECTION_THRESHOLD:()=>Bv,radar_set_DETECTION_THRESHOLD_SANT:()=>Gv,robot_button_extern_get_value:()=>UX,robot_color_extern_get_value:()=>KX,robot_infrared_extern_get_value:()=>HX,robot_infrared_extern_grey_get_value:()=>kX,robot_potentiometer_extern_get_value:()=>WX,robot_sonar_extern_get_value:()=>JX,robot_sonar_extern_led:()=>QX,robot_touch_extern_get_value:()=>wX,sensor_APDS9960_extern:()=>qv,sensor_DS18X20:()=>ex,sensor_LTR308_extern:()=>zv,sensor_LTR390UV_extern:()=>eX,sensor_MAX30102_extern:()=>Qv,sensor_QMC5883L_extern:()=>iX,sensor_VL530LX_extern:()=>_X,sensor_aht11_extern:()=>sX,sensor_bmp:()=>bv,sensor_dht11:()=>YX,sensor_distance_hrsc04:()=>fv,sensor_hp203_extern:()=>jv,sensor_ltr381_extern:()=>$v,sensor_mixgo_extern_button_attachInterrupt:()=>Nv,sensor_mixgo_extern_button_get_presses:()=>Lv,sensor_mixgo_extern_button_is_pressed:()=>Sv,sensor_mixgo_extern_button_was_pressed:()=>Av,sensor_mixgo_extern_light:()=>Yv,sensor_mixgo_extern_pin_near:()=>Xv,sensor_mixgo_extern_sound:()=>vv,sensor_mixgoce_hot_wheel_degrees:()=>EX,sensor_mixgoce_hot_wheel_is_touched:()=>mX,sensor_mpu9250_attachGestureInterrupt:()=>Dv,sensor_read_humiture:()=>px,sensor_rtc_init:()=>xv,sensor_sht:()=>yv,sensor_shtc3_extern:()=>nX,sensor_spl06_001_extern:()=>Zv,sensor_ucs12071_extern:()=>tX,sensor_use_i2c_init:()=>Vv,sensor_use_spi_init:()=>oX,sensor_use_uart_init:()=>yX,sensor_weather_solo_init:()=>jX,sensor_weather_solo_rain:()=>tx,sensor_weather_solo_wd:()=>ZX,sensor_weather_solo_ws:()=>$X,sensor_weigh_init:()=>Tx,ultrasonic_sensor_read_distance:()=>ux,weather_data:()=>IX,weather_have_data:()=>TX,weather_set_label:()=>hX,weather_uart_mixio:()=>MX,weigh_sensor_get_weight:()=>Mx});var _t={};t.r(_t),t.d(_t,{CI130X_BROADCAST_SANT:()=>Ty,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Iy,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>ly,CI130X_IDENTIFY_AND_SAVE_SANT:()=>dy,CI130X_SET_SYSTEM_CMD_SANT:()=>My,HCSR04:()=>Sx,bitbot_als_num:()=>Wb,dht11:()=>$b,educore_button_sensor:()=>oy,educore_button_was_pressed:()=>py,educore_gyroscope_sensor:()=>ny,educore_gyroscope_sensor_read:()=>sy,educore_gyroscope_sensor_shake:()=>_y,educore_light_sensor:()=>iy,educore_rfid_sensor:()=>ay,educore_rfid_sensor_scan:()=>uy,educore_rfid_sensor_scan_data:()=>ry,educore_voice_sensor:()=>ty,number1:()=>Ax,number2:()=>Lx,number3:()=>Nx,number4:()=>Dx,number5:()=>fx,number6:()=>Fx,number7:()=>Px,onboard_RTC_get_time:()=>cb,onboard_RTC_get_time_str:()=>Sb,onboard_RTC_get_timestamp:()=>gb,onboard_RTC_get_timetuple_to_str:()=>Ab,onboard_RTC_set_datetime:()=>Ob,onboard_RTC_settime_string:()=>Rb,onboard_RTC_timestamp_totuple:()=>Cb,rfid_readcontent:()=>Jx,rfid_readid:()=>Kx,rfid_write:()=>Qx,rfid_write_return:()=>qx,sensor_LTR308:()=>Ux,sensor_adxl345_get_acceleration:()=>sb,sensor_aht11:()=>kx,sensor_bitbot_ALS:()=>kb,sensor_button_get_presses:()=>Qb,sensor_button_is_pressed:()=>Kb,sensor_button_was_pressed:()=>Jb,sensor_compass_reset:()=>rb,sensor_ds18x20:()=>Bx,sensor_eulerangles:()=>jx,sensor_get_acceleration:()=>zx,sensor_get_temperature:()=>Wx,sensor_hp203:()=>Hx,sensor_light:()=>Zb,sensor_lm35:()=>Gx,sensor_mixbot_get_gyro:()=>Hb,sensor_mixbot_patrol_calibrate:()=>Gb,sensor_mixbot_patrol_value:()=>Ub,sensor_mixbot_temperature:()=>wb,sensor_mixgo_LTR308:()=>bx,sensor_mixgo_button_attachInterrupt:()=>Ox,sensor_mixgo_button_get_presses:()=>Ex,sensor_mixgo_button_is_pressed:()=>hx,sensor_mixgo_button_was_pressed:()=>mx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Db,sensor_mixgo_cc_mmc5603_get_angle:()=>Nb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Lb,sensor_mixgo_light:()=>jb,sensor_mixgo_nova_LTR308:()=>Vx,sensor_mixgo_nova_pin_near:()=>xx,sensor_mixgo_pin_near:()=>Xx,sensor_mixgo_pin_near_double:()=>vx,sensor_mixgo_pin_near_single:()=>Yx,sensor_mixgo_pin_pressed:()=>ib,sensor_mixgo_sant_color:()=>yx,sensor_mixgo_touch_slide:()=>eb,sensor_mixgocar42_button_attachInterrupt:()=>Cx,sensor_mixgocar42_button_get_presses:()=>gx,sensor_mixgocar42_button_is_pressed:()=>Rx,sensor_mixgocar42_button_was_pressed:()=>cx,sensor_mixgocar_battery_left:()=>Bb,sensor_mixgocar_pin_near:()=>yb,sensor_mixgocar_pin_near_line:()=>bb,sensor_mixgocar_pin_near_state_change:()=>Vb,sensor_mixgoce_pin_pressed:()=>tb,sensor_mixgoce_temperature:()=>Fb,sensor_mixgome_temperature:()=>fb,sensor_mpu9250_calibrate_compass:()=>pb,sensor_mpu9250_field_strength:()=>ub,sensor_mpu9250_gesture:()=>Zx,sensor_mpu9250_get_acceleration:()=>$x,sensor_mpu9250_get_gyro:()=>ob,sensor_mpu9250_get_magnetic:()=>_b,sensor_mpu9250_temperature:()=>ab,sensor_mpython_pin_pressed:()=>nb,sensor_mpython_qmi8658_get_gyro:()=>Pb,sensor_mpython_qmi8658_temperature:()=>Yb,sensor_onboard_compass_reset:()=>Eb,sensor_onboard_mpu9250_calibrate_compass:()=>Mb,sensor_onboard_mpu9250_field_strength:()=>mb,sensor_onboard_mpu9250_gesture:()=>db,sensor_onboard_mpu9250_get_acceleration:()=>lb,sensor_onboard_mpu9250_get_gyro:()=>Tb,sensor_onboard_mpu9250_get_magnetic:()=>Ib,sensor_onboard_mpu9250_temperature:()=>hb,sensor_pin_near:()=>zb,sensor_pin_pressed:()=>qb,sensor_read:()=>ey,sensor_rm_acc:()=>xb,sensor_rm_battery_left:()=>Xb,sensor_rm_pin_near_double:()=>vb,sensor_sound:()=>wx});var ot={};t.r(ot),t.d(ot,{serial_any:()=>Ry,serial_print:()=>hy,serial_print_byte:()=>my,serial_print_hex:()=>Oy,serial_println:()=>Ey,serial_read_from_ai:()=>Py,serial_readline:()=>gy,serial_readstr:()=>cy,serial_send_to_ai:()=>Fy,serial_softserial:()=>Cy,serial_softserial_new:()=>Sy,system_input:()=>Ay,system_print:()=>Ly,system_print_end:()=>Dy,system_print_inline:()=>Ny,system_print_many:()=>fy});var pt={};t.r(pt),t.d(pt,{Panic_with_status_code:()=>Hy,Timer_init:()=>sV,base_delay:()=>pV,controls_delay:()=>Qy,controls_delay_new:()=>qy,controls_end_program:()=>Wy,controls_millis:()=>ky,controls_uname:()=>Jy,reset:()=>Ky,system_bitbot_shutdown:()=>nV,system_device_name:()=>Uy,system_device_serial_number:()=>wy,system_event_bus_source:()=>By,system_event_bus_value:()=>Gy,system_machine_reset:()=>iV,system_on_event:()=>by,system_raise_event:()=>xy,system_reset:()=>vy,system_run_in_background:()=>Yy,system_ticks_diff:()=>Zy,system_timer:()=>jy,system_timer_init:()=>$y,system_timestamp:()=>yy,system_value:()=>Vy,system_wait:()=>Xy,system_wdt_feed:()=>eV,system_wdt_init:()=>tV,time_ticks_diff:()=>oV,timer:()=>zy,timer2:()=>_V});var at={};t.r(at),t.d(at,{Air_daily_content:()=>RV,Air_now_content:()=>IV,Geo_moon_content:()=>gV,Geo_sun_content:()=>cV,Life_suggestion_content:()=>MV,Location_search_content:()=>mV,Tide_daily_content:()=>hV,WEATHER_DAILY:()=>uV,WEATHER_HOUR:()=>rV,WEATHER_NOW:()=>aV,Weather_alarm_content:()=>TV,Weather_daily:()=>EV,Weather_daily_content:()=>OV,Weather_now:()=>dV,Weather_now_content:()=>lV});var ut={};t.r(ut),t.d(ut,{analog_input:()=>XV,analog_output:()=>bV,espnow_channel:()=>PV,haskylens_model:()=>YV,i2c_A_pin:()=>yV,i2c_B_pin:()=>VV,pins_analog:()=>HV,pins_analog_pin:()=>kV,pins_axis:()=>oB,pins_brightness:()=>pB,pins_builtinimg:()=>$V,pins_builtinimg_extern:()=>tB,pins_button:()=>JV,pins_dac:()=>WV,pins_dac_pin:()=>KV,pins_digital:()=>LV,pins_digital_dot:()=>MB,pins_digital_pin:()=>NV,pins_exlcdh:()=>sB,pins_exlcdv:()=>_B,pins_imglist:()=>eB,pins_input_pin:()=>DV,pins_mpython_touch:()=>FV,pins_one_more:()=>TB,pins_output_pin:()=>fV,pins_playlist:()=>iB,pins_playlist_extern:()=>nB,pins_pwm:()=>QV,pins_pwm_pin:()=>qV,pins_radio_datarate:()=>IB,pins_radio_power:()=>lB,pins_serial:()=>ZV,pins_tone_notes:()=>dB,pins_touch:()=>jV,pins_touch_pin:()=>zV,pins_tts_bgmusic:()=>rB,pins_tts_builtin_music:()=>uB,pins_tts_voice:()=>aB,pwm_input:()=>vV,pwm_output:()=>xV,spi_A_pin:()=>BV,spi_B_pin:()=>GV,spi_C_pin:()=>UV,spi_D_pin:()=>wV});var rt={};t.r(rt),t.d(rt,{espnow_channel:()=>AB,haskylens_model:()=>LB,pins_analog:()=>gB,pins_analog_pin:()=>cB,pins_axis:()=>BB,pins_brightness:()=>wB,pins_builtinimg:()=>XB,pins_builtinimg_extern:()=>xB,pins_button:()=>mB,pins_dac:()=>fB,pins_dac_pin:()=>DB,pins_digital:()=>hB,pins_digital_dot:()=>zB,pins_digital_pin:()=>EB,pins_exlcdh:()=>GB,pins_exlcdv:()=>UB,pins_imglist:()=>bB,pins_input_pin:()=>OB,pins_interrupt:()=>YB,pins_mpython_touch:()=>NB,pins_one_more:()=>qB,pins_output_pin:()=>RB,pins_playlist:()=>yB,pins_playlist_extern:()=>VB,pins_pwm:()=>SB,pins_pwm_pin:()=>CB,pins_radio_datarate:()=>QB,pins_radio_power:()=>JB,pins_serial:()=>vB,pins_tone_notes:()=>KB,pins_touch:()=>PB,pins_touch_pin:()=>FB,pins_tts_bgmusic:()=>WB,pins_tts_builtin_music:()=>kB,pins_tts_voice:()=>HB});const dt=Blockly,lt=Mixly,It={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Tt=It; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class Mt{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(dt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new dt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(dt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},yt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Vt={init:function(){this.setColour(Dt);var t=new dt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Vt.OPERATORS=[[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:dt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:dt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:dt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_STAT),this.setOutput(!0)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(dt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new dt.FieldDropdown([[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ie={init:function(){this.setColour(Dt),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(dt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ne={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},se=230;dt.FieldTextInput.math_number_validator=function(t){return String(t)},dt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const _e={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(se),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(se),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},re={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new dt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},de={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:dt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:dt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:dt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:dt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:dt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:dt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:dt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[dt.Msg.MATH_BIN,"bin"],[dt.Msg.MATH_OCT,"oct"],[dt.Msg.MATH_HEX,"hex"]];this.setColour(se),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:dt.Msg.MATH_DEC_TOOLTIP_BIN,oct:dt.Msg.MATH_DEC_TOOLTIP_OCT,hex:dt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ie={init:function(){var t=[[dt.Msg.LANG_MATH_TO_ROUND,"round"],[dt.Msg.LANG_MATH_TO_CEIL,"ceil"],[dt.Msg.LANG_MATH_TO_FLOOR,"floor"],[dt.Msg.MATH_ABS,"fabs"],[dt.Msg.MATH_SQRT,"sqrt"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:dt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:dt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:dt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:dt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:dt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:dt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Te={init:function(){var t=[[dt.Msg.MIXLY_MAX,"max"],[dt.Msg.MIXLY_MIN,"min"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(dt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:dt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:dt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Me={init:function(){var t=[[dt.Msg.MATH_TWO,"two"],[dt.Msg.MATH_EIGHT,"eight"],[dt.Msg.MATH_TEN,"ten"],[dt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(se),this.appendDummyInput("").appendField(dt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new dt.FieldDropdown(t),"OP").appendField(dt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MATH_ZHW).appendField(new dt.FieldDropdown(t),"OP2").appendField(dt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:dt.Msg.MATH_Before_two,eight:dt.Msg.MATH_Before_eight,ten:dt.Msg.MATH_Before_ten,sixteen:dt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:dt.Msg.MATH_Behind_two,eight:dt.Msg.MATH_Behind_eight,ten:dt.Msg.MATH_Behind_ten,sixteen:dt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[dt.Msg.LANG_MATH_INT,"int"],[dt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(se),this.setOutput(!0,Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new dt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:dt.Msg.LANG_MATH_INT,float:dt.Msg.LANG_MATH_FLOAT_RANDOM};return dt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},me={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ee={init:function(){this.setColour(se),this.appendValueInput("NUM",Number).appendField(dt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(dt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(dt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},Re={init:function(){this.setColour(se),this.appendValueInput("NUM").setCheck(Number).appendField(dt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MATH_ROUND).appendField(dt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(dt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ge={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"],[dt.Msg.MIXLY_TO_BITES,"b"],[dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:dt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ce={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:dt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Se=Ee,Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Le={init:function(){this.setColour(se),this.itemCount_=1,this.setMutator(new dt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(dt.Msg.MIXLY_PRODUCT+dt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(dt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(dt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Fe={init:function(){this.setColour(Ne),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new dt.FieldTextInput("",dt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(dt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new dt.FieldImage(e,7,12,'"')}},Pe={init:function(){this.setColour(Ne),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(dt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ye={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ve={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String).appendField(dt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},be={init:function(){this.WHERE_OPTIONS=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.TEXT_GET_INDEX_RANDOM+1+dt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.LISTS_GET_INDEX_GET,"MODE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(dt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+dt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",dt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:dt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:dt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:dt.Msg.TEXT_GET_INDEX_RANDOM};return dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+dt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==dt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new dt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ye={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.LISTS_GET_INDEX_FROM_START+"n"+dt.Msg.TEXT_CHARAT2)}},Ve={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(dt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(dt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Be={init:function(){this.WHERE_OPTIONS_1=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[dt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==dt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new dt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ge={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(dt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ue={init:function(){var t=[[dt.Msg.MIXLY_EQUALS,"==="],[dt.Msg.MIXLY_STARTSWITH,"startswith"],[dt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new dt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},we={init:function(){this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_COMPARETO_HELP)}},He={init:function(){var t=[[dt.Msg.TEXT_UPPER,"upper"],[dt.Msg.TEXT_TITLE,"title"],[dt.Msg.TEXT_CAPITALIZE,"capitalize"],[dt.Msg.TEXT_SWAPCASE,"swapcase"],[dt.Msg.TEXT_LOWER,"lower"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:dt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:dt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:dt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:dt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:dt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ke={init:function(){var t=[[dt.Msg.TEXT_LJUST,"ljust"],[dt.Msg.TEXT_CENTER,"center"],[dt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(dt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(dt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},We={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(dt.Msg.MIXLY_MID+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(dt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ke={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Je={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(dt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Qe={init:function(){this.setColour(Ne),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(dt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(dt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},qe={init:function(){var t=[[dt.Msg.TEXT_TRIM_BOTH,"strip"],[dt.Msg.TEXT_TRIM_LEFT,"lstrip"],[dt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ne),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(dt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:dt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:dt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:dt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ze={init:function(){this.setColour(Ne),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new dt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ki={init:function(){this.setColour(ki),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ji={init:function(){this.setColour(ki),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_KEYS),this.setTooltip(dt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_TOOLTIP)}},zi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Zi={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_DELETE_TOOLTIP)}},$i={init:function(){this.setColour(ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(dt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(dt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MID),this.setTooltip(dt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_CLEAR),this.setTooltip(dt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},en={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_ITEMS),this.setTooltip(dt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},nn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_VALUES),this.setTooltip(dt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LENGTH),this.setTooltip(dt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},_n={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_DELDICT),this.setTooltip(dt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},on={init:function(){this.MODE=[[dt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[dt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(dt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=dt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=dt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new dt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},pn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setTooltip(dt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},an={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},un={init:function(){this.setColour(ki),this.appendDummyInput("").appendField(new dt.FieldLabel(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new dt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rn={init:function(){this.setColour(ki),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},In={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn=210,hn={init:function(){var t=dt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:dt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:dt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},mn={init:function(){var t=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new dt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},En={init:function(){var t=[[dt.Msg.LOGIC_OPERATION_AND,"AND"],[dt.Msg.LOGIC_OPERATION_OR,"OR"],[dt.Msg.LOGIC_OPERATION_NOR,"NOR"],[dt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:dt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:dt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},On={init:function(){this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(dt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(dt.Msg.LOGIC_NEGATE_TOOLTIP)}},Rn={init:function(){var t=[[dt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[dt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new dt.FieldDropdown(t),"BOOL"),this.setTooltip(dt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},cn={init:function(){this.setColour(Mn),this.setOutput(!0),this.appendDummyInput().appendField(dt.Msg.LOGIC_NULL),this.setTooltip(dt.Msg.LOGIC_NULL_TOOLTIP)}},gn={init:function(){this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(dt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(dt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Cn={init:function(){var t=[[dt.Msg.TEXT_APPEND_TO,"in"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new dt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(dt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.IN)}},Sn={init:function(){var t=[[dt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},An={init:function(){this.setColour(Mn),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(dt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXPY_TEXT_ENCODE).appendField(new dt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MICROBIT_PYTHON_TYPE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.HTML_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Hn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+dt.Msg.MIXLY_ESP32_SET+{mkdir:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(dt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.HTML_FILE,"isfile"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Jn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(dt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(dt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},qn={};qn.NAME_TYPE=dt.PROCEDURE_CATEGORY_NAME,qn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(Vs),this.appendDummyInput().appendField(dt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ws={init:function(){this.setColour(Vs),this.appendDummyInput().appendField(dt.Msg.HTML_FORM_CONTENT).appendField(new dt.FieldDropdown([[dt.Msg.HTML_TEXT,"text"],[dt.Msg.HTML_EMAIL,"email"],[dt.Msg.HTML_NUMBER,"number"],[dt.Msg.HTML_PASSWORD,"password"],[dt.Msg.HTML_CHECKBOX,"checkbox"],[dt.Msg.HTML_RADIOBUTTON,"radiobutton"],[dt.Msg.HTML_BUTTON,"button"],[dt.Msg.HTML_COLOUR,"colour"],[dt.Msg.HTML_DATE,"date"],[dt.Msg.HTML_LOCALTIME,"local time"],[dt.Msg.HTML_FILE,"file"],[dt.Msg.HTML_HIDDEN,"hidden"],[dt.Msg.HTML_IMAGE,"image"],[dt.Msg.HTML_MONTH,"month"],[dt.Msg.HTML_RANGE,"range"],[dt.Msg.HTML_RESET,"reset"],[dt.Msg.HTML_SEARCH,"search"],[dt.Msg.HTML_SUBMIT,"submit"],[dt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[dt.Msg.HTML_TIME,"time"],[dt.Msg.HTML_URL,"url"],[dt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(dt.Msg.HTML_NAME).appendField(new dt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(dt.Msg.HTML_VALUE).appendField(new dt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ks={init:function(){this.setColour(Vs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Vs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(Vs),this.appendDummyInput().appendField(dt.Msg.HTML_TEXT).appendField(new dt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs=160,zs={init:function(){this.setColour(qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new dt.FieldTable(""),"TEXT")}},js={init:function(){this.setColour(qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT")}},Zs={init:function(){this.setColour(qs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},$s={init:function(){this.setColour(qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},t_={init:function(){this.setColour(qs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new dt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},e_={init:function(){this.setColour(qs),this.appendValueInput("VALUE").appendField(dt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},i_={init:function(){this.setColour(qs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(dt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=dt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},dt.isNumber(n)&&dt.isNumber(s)&&dt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const qp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},zp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},jp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Zp=function(t,e){return["None",e.ORDER_ATOMIC]},$p=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ta=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ea=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ia=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},na=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},sa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},_a=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},oa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},aa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ua=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},la=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ta=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ma=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ha=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Oa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ra=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ca=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},La=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),dt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},pu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},au=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},uu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},du=function(t,e){return'"},lu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Iu=function(){return this.getFieldValue("TEXT")+"\n"},Tu=function(t){return t.getFieldValue("TEXT")+"\n"},Mu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},hu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},mu=function(){return""},Eu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Ou=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},cu.scrubNakedValue=function(t){return t+"\n"},cu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},cu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},cu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=dt.utils.string.wrap(_,cu.COMMENT_WRAP-3),n+=cu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const gu="#74A55B",Cu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Su={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Au={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Nu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Du={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},fu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Fu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Yu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},vu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Xu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},xu={init:function(){this.setColour(gu),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},bu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},yu={init:function(){this.setColour(gu),this.appendValueInput("VAR").appendField("360°"+dt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETTING+dt.Msg.blockpy_turtle_rotate+dt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Vu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Bu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Gu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Uu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new dt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(dt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Hu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[dt.Msg.MOTOR_N,"ms32006.MOT_N"],[dt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ku={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new dt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Wu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Ku={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Ju={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},qu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new dt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["SYN6288"+dt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+dt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_WHETHER).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_STOPPED,"0"],[dt.Msg.MIXLY_PLAYING,"1"],[dt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ju={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_PLAY,"1"],[dt.Msg.MIXLY_MP3_PAUSE,"2"],[dt.Msg.MIXLY_STOP,"3"],[dt.Msg.MIXLY_MP3_PREV,"4"],[dt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(dt.Msg.MIXLY_MP3_VOL+dt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},$u={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE+dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[dt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[dt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[dt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[dt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[dt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[dt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},er={},ir={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},nr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},sr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},_r={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},or={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},pr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},ar={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ur={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LISTS_SET_INDEX_SET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},lr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[dt.Msg.MIXLY_SPEED,"[1]"],[dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[dt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[dt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[dt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},hr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Er={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},gr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SERVO+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Sr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ar={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MOTOR+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Lr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr="#6C9858",Dr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},fr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_ON,"1"],[dt.Msg.MIXLY_ESP32_OFF,"0"],[dt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Fr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},vr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Xr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LIGHT_RED,"1"],[dt.Msg.MIXLY_LIGHT_GREEN,"2"],[dt.Msg.MIXLY_LIGHT_BLUE,"3"],[dt.Msg.MIXLY_LIGHT_YELLOW,"4"],[dt.Msg.MIXLY_LIGHT_CYAN,"5"],[dt.Msg.MIXLY_LIGHT_PURPLE,"6"],[dt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},xr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Br={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Gr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Ur={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},wr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Hr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},kr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Wr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Kr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Jr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Qr={init:function(){this.setColour(Nr),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},qr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},zr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},jr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Zr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},$r={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},td={init:function(){this.setColour(Nr),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ed={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},id={init:function(){this.setColour(Nr),this.appendDummyInput().appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_d={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},od={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},pd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ad={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"1"],[dt.Msg.TEXT_TRIM_RIGHT,"2"],[dt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},rd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},dd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"0"],[dt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Td={init:function(){this.setColour(Nr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Md={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},hd={init:function(){this.setColour(Nr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},md={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ed={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_RECORD_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},gd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Cd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Sd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.MIXLY_ALL+dt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(dt.ALIGN_RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Ld={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(dt.Msg.MIXLY_RELEASE).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT)}},Nd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SPECIAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[dt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[dt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[dt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[dt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[dt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[dt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Dd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GENERAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},fd={init:function(){this.setColour(Nr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new dt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(dt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},eE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},sE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_PROJECT).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_E={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},oE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},pE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},dE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},lE={init:function(){this.setColour(Qm),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IE={init:function(){this.setColour(Qm),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},TE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},ME={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(dt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},hE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+dt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.VISITOR_ID=lt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Qm),this.appendDummyInput("").appendField(new dt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},OE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},RE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(dt.Msg.MIXLY_REQUESTS_GET).appendField(dt.Msg.MIXLY_GET_CURRENT_TIME).appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},gE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(dt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(dt.Msg.MQTT_Topic).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SE=qm,AE=zm,LE=jm,NE=Zm,DE=tE,fE=225,FE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(dt.Msg.MIXLY_NETWORK_MODE).appendField(new dt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},PE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[dt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=dt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:dt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:dt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},YE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},vE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:dt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},XE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},xE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_CONNECT+dt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},bE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[dt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:dt.Msg.MIXLY_ESP32_NETWORK_IP,1:dt.Msg.MIXLY_ESP32_NETWORK_MASK,2:dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},yE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},VE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},BE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(dt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},GE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},UE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new dt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},wE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},HE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},kE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},WE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},KE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},JE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},QE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},qE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},zE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},jE={init:function(){this.setColour(fE),this.appendValueInput("DOMAIN").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS_GET).appendField(new dt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ZE={init:function(){this.appendValueInput("VAL");var t=[[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(fE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:dt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:dt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:dt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},$E={init:function(){this.appendValueInput("VAR").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(fE),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:dt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:dt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},tO={init:function(){this.setColour(fE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(dt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},eO={init:function(){this.setColour(fE),this.appendDummyInput("").appendField(new dt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},iO="#3288dd",nO={init:function(){this.setColour(iO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS).appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},sO={init:function(){this.setColour(iO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(dt.Msg.blockpy_REQUESTS+dt.Msg.OLED_STRING),this.appendDummyInput("").appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},_O={init:function(){this.appendValueInput("VAL");var t=[[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[dt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(iO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},oO={init:function(){this.setColour(iO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(dt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},pO={init:function(){this.setColour(iO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(dt.Msg.MIXLY_EMQX_PORT).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aO={init:function(){this.setColour(iO),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(dt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},uO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"+dt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},lO=100,IO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},TO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},MO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},mO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},EO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},OO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},RO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(lO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},cO="#A58C5B",gO={init:function(){this.setColour(cO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_IS_PRESSED)}},CO={init:function(){this.setColour(cO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_WAS_PRESSED)}},SO={init:function(){this.setColour(cO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_BUTTON+dt.Msg.MIXLY_GET_PRESSES)}},AO={init:function(){this.setColour(cO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[dt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[dt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},LO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"],[dt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down,freefall:dt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},NO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},DO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},fO={init:function(){var t=[[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(cO),this.appendValueInput("PIN",Number).appendField(new dt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},FO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},PO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},YO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"left"],[dt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(dt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=dt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=dt.Msg.MIXLY_ESP32_NEAR;return i+{left:dt.Msg.TEXT_TRIM_LEFT,right:dt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},vO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[dt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},XO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[dt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},xO={init:function(){this.setColour(cO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},bO={init:function(){this.setColour(cO),this.appendDummyInput("").appendField("LM35"+dt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LM35)}},yO={init:function(){this.setColour(cO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[dt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[dt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[dt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[dt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[dt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[dt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[dt.Msg.HTML_COLOUR+"、"+dt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+dt.Msg.MIXLY_NEXT+"、"+dt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[dt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[dt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[dt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[dt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},VO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},BO={init:function(){this.setColour(cO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},GO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},UO={init:function(){this.setColour(cO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},wO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[dt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[dt.Msg.MIXLY_THE_FIRST,"3"],[dt.Msg.MIXLY_THE_SECOND,"4"],[dt.Msg.MIXLY_THE_THIRD,"5"],[dt.Msg.MIXLY_THE_FOURTH,"6"],[dt.Msg.MIXLY_THE_FIFTH,"7"],[dt.Msg.MIXLY_THE_SIXTH,"8"],[dt.Msg.MIXLY_THE_SEVENTH,"9"],[dt.Msg.MIXLY_THE_EIGHTH,"10"],[dt.Msg.MIXLY_THE_NINTH,"11"],[dt.Msg.MIXLY_THE_TENTH,"12"],[dt.Msg.MIXLY_THE_ELEVENTH,"13"],[dt.Msg.MIXLY_THE_TWELFTH,"14"],[dt.Msg.MIXLY_THE_13TH,"15"],[dt.Msg.MIXLY_THE_14TH,"16"],[dt.Msg.MIXLY_THE_15TH,"17"],[dt.Msg.MIXLY_THE_16TH,"18"],[dt.Msg.MIXLY_THE_17TH,"19"],[dt.Msg.MIXLY_THE_18TH,"20"],[dt.Msg.MIXLY_THE_19TH,"21"],[dt.Msg.MIXLY_THE_20TH,"22"],[dt.Msg.MIXLY_Turn_on_the_lights,"23"],[dt.Msg.MIXLY_Turn_off_the_lights,"24"],[dt.Msg.MIXLY_Turn_up_the_brightness,"25"],[dt.Msg.MIXLY_Turn_down_the_brightness,"26"],[dt.Msg.MIXLY_Set_it_to_red,"27"],[dt.Msg.MIXLY_Set_it_to_orange,"28"],[dt.Msg.MIXLY_Set_it_to_yellow,"29"],[dt.Msg.MIXLY_Set_it_to_green,"30"],[dt.Msg.MIXLY_Set_it_to_cyan,"31"],[dt.Msg.MIXLY_Set_it_to_blue,"32"],[dt.Msg.MIXLY_Set_it_to_purple,"33"],[dt.Msg.MIXLY_Set_it_to_white,"34"],[dt.Msg.MIXLY_Turn_on_the_fan,"35"],[dt.Msg.MIXLY_Turn_off_the_fan,"36"],[dt.Msg.MIXLY_First_gear,"37"],[dt.Msg.MIXLY_Wind_speed_second,"38"],[dt.Msg.MIXLY_Third_gear,"39"],[dt.Msg.MIXLY_Previous,"40"],[dt.Msg.MIXLY_Next_page,"41"],[dt.Msg.MIXLY_Show_smiley_face,"42"],[dt.Msg.MIXLY_Show_crying_face,"43"],[dt.Msg.MIXLY_Show_love,"44"],[dt.Msg.MIXLY_Close_display,"45"],[dt.Msg.MIXLY_Start_execution,"46"],[dt.Msg.MIXLY_FORWARD,"47"],[dt.Msg.MIXLY_BACKWARD,"48"],[dt.Msg.MIXLY_TURNLEFT,"49"],[dt.Msg.MIXLY_TURNRIGHT,"50"],[dt.Msg.MIXLY_STOP,"51"],[dt.Msg.MIXLY_Accelerate,"52"],[dt.Msg.MIXLY_retard,"53"],[dt.Msg.ROTATION_FORWARD,"54"],[dt.Msg.ROTATION_BACKWARD,"55"],[dt.Msg.MIXLY_Query_temperature,"56"],[dt.Msg.MIXLY_Query_humidity,"57"],[dt.Msg.MIXLY_Query_brightness,"58"],[dt.Msg.MIXLY_Query_sound,"59"],[dt.Msg.MIXLY_Query_time,"60"],[dt.Msg.MIXLY_Query_distance,"61"],[dt.Msg.MIXLY_Query_pressure,"62"],[dt.Msg.MIXLY_Query_key,"63"],[dt.Msg.MIXLY_Query_touch,"64"],[dt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(dt.Msg.MIXLY_WHETHER+dt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},kO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[dt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[dt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},WO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MP3_PLAY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_WIND_SPEED,"154"],[dt.Msg.MIXLY_HYETAL,"155"],[dt.Msg.MIXLY_TEMPERATURE,"156"],[dt.Msg.MIXLY_Humidity,"157"],[dt.Msg.MIXLY_Altitude,"158"],[dt.Msg.MIXLY_SOUND,"159"],[dt.Msg.MIXLY_BRIGHTNESS,"160"],[dt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[dt.Msg.MIXLY_SERVO,"162"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[dt.Msg.MIXLY_BUTTON2,"164"],[dt.Msg.MIXLY_ESP32_TOUCH,"165"],[dt.Msg.MIXLY_PAY,"166"],[dt.Msg.MIXLY_CARSH_CHANGE,"167"],[dt.Msg.MIXLY_COUNTDOWN,"168"],[dt.Msg.MIXLY_TIMING,"169"],[dt.Msg.MIXLY_AT_THE_MOMENT,"170"],[dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[dt.Msg.MIXLY_FORWARD,"172"],[dt.Msg.MIXLY_BACKWARD,"173"],[dt.Msg.MIXLY_TURNLEFT,"174"],[dt.Msg.MIXLY_TURNRIGHT,"175"],[dt.Msg.MIXLY_STOP,"176"],[dt.Msg.MIXLY_Accelerate,"177"],[dt.Msg.MIXLY_retard,"178"],[dt.Msg.ROTATION_FORWARD,"179"],[dt.Msg.ROTATION_BACKWARD,"180"],[dt.Msg.TUPLE_JOIN,"181"],[dt.Msg.MIXLY_SHOW,"182"],[dt.Msg.MIXLY_LAMPLIGHT,"183"],[dt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(dt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(dt.Msg.MIXLY_UNIT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_YEAR,"117"],[dt.Msg.MIXLY_MONTH,"118"],[dt.Msg.MIXLY_DAY,"119"],[dt.Msg.MIXLY_HOUR,"120"],[dt.Msg.MIXLY_MINUTE,"121"],[dt.Msg.MIXLY_SECOND,"122"],[dt.Msg.MIXLY_WEEK2,"123"],[dt.Msg.MIXLY_RMB_UNIT,"124"],[dt.Msg.blockpy_setheading_degree,"125"],[dt.Msg.MIXLY_GEAR,"126"],[dt.Msg.MIXLY_LAYER,"127"],[dt.Msg.MIXLY_GRAM,"128"],[dt.Msg.MIXLY_METER,"129"],[dt.Msg.MIXLY_CENTIMETER,"130"],[dt.Msg.MIXLY_MILLIMETER,"131"],[dt.Msg.MIXLY_LUMEN,"132"],[dt.Msg.MIXLY_DECIBEL,"133"],[dt.Msg.MIXLY_hectopascal,"134"],[dt.Msg.MIXLY_PERCENT,"135"],[dt.Msg.MIXLY_CELSIUS,"136"],[dt.Msg.MIXLY_METER_PER_SEC,"137"],[dt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[dt.Msg.MIXLY_SUCCESS,"140"],[dt.Msg.MIXLY_FAILED,"141"],[dt.Msg.MIXLY_WRONG,"142"],[dt.Msg.MIXLY_GOOD,"143"],[dt.Msg.MIXLY_blockpy_set_add,"144"],[dt.Msg.MIXLY_DECREASE,"145"],[dt.Msg.COLOUR_RGB_RED,"146"],[dt.Msg.COLOUR_RGB_ORANGE,"147"],[dt.Msg.COLOUR_YELLOW,"148"],[dt.Msg.COLOUR_RGB_GREEN,"149"],[dt.Msg.COLOUR_CYAN,"150"],[dt.Msg.COLOUR_RGB_BLUE,"151"],[dt.Msg.COLOUR_RGB_PURPLE,"152"],[dt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},KO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXLY_SYSTEM+dt.Msg.MIXLY_CMD).appendField(new dt.FieldDropdown([[dt.Msg.MILXY_ENTER_WAKE_UP,"1"],[dt.Msg.MIXLY_INCREASE_VOLUME,"202"],[dt.Msg.MIXLY_REDUCE_VOLUME,"203"],[dt.Msg.MIXLY_MAX_VOLUME,"204"],[dt.Msg.MIXLY_MINIMUM,"205"],[dt.Msg.MIXLY_OPEN_RESPONSE,"206"],[dt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[dt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},JO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[dt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[dt.Msg.MIXLY_ESP32_MAX30102_IR+","+dt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},QO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[dt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[dt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+dt.Msg.HTML_COLOUR,"[2]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_IR_STRENGTH,"[1]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+"RGB"+dt.Msg.HTML_COLOUR,"0"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_RGB_RAW,"1"],[dt.Msg.MIXLY_GET_ENV_LIGHT+dt.Msg.MIXLY_BRIGHTNESS,"2"],[dt.Msg.GET_IR_STRENGTH+dt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZO={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[dt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$O={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},eR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},iR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},nR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MIXGOPE_FIELD+dt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[dt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},oR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},pR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET+dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},aR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},rR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_GETTEMPERATUE)}},dR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},lR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},IR={init:function(){this.setColour(cO),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},TR={init:function(){this.setColour(cO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[dt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},MR={init:function(){this.setColour(cO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},hR={init:function(){this.setColour(cO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},mR={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ER={init:function(){this.setColour(cO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(dt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},OR={init:function(){this.setColour(cO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_SCAN_OK,"0"],[dt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[dt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},cR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},CR={init:function(){this.setColour(cO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},hf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},Ef=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Of=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},Rf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},gf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Cf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},Sf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},Af=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},Lf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},Nf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},Df=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},ff=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ff=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Pf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},Yf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},vf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},Xf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},xf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},bf=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},yf=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Vf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},Bf=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},Gf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},Uf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},wf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},Hf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},kf=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},Wf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},Kf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},Jf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},Qf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},qf=function(t,e){e.definitions_.import_st7789="import st7789";var i=lt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},zf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},jf=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},Zf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},$f=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},tF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},eF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},iF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},sF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_F=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},oF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},pF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},aF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=lt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},uF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},rF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},dF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},IF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},EF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},OF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},RF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},cF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},gF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},CF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},SF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},AF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},LF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},NF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},DF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},fF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},FF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},PF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},YF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},dP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},lP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},IP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},TP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},MP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},hP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},mP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},EP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},OP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},RP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},cP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},gP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},CP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},SP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},AP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},LP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},NP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},DP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},fP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},FP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},PP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},YP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},vP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},XP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},fy=function(){return"control.reset()\n"},Fy=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},Py=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},Yy=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},vy=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},Xy=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},xy=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},by=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},yy=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},Vy=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},By=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},Gy=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},Uy=function(){return"while True:\n pass\n"},wy=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},Hy=function(t,e){return e.definitions_.import_os="import os","os.uname()"},ky=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Wy=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Ky=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},Jy=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},Qy=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},qy=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},zy=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},jy=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},Zy=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},$y=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},tV=qy,eV=Jy,iV=Qy,nV=ky,sV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},_V=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},oV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},pV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},aV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},uV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},rV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},dV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},lV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},IV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},TV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},MV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},hV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},mV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},EV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},OV={};OV["MixGo(ESP32, 4M)"]={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},OV["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:lt.Profile.generate(["0-7"]),exlcdv:lt.Profile.generate(["0-4"]),brightness:lt.Profile.generate(["0-9"]),tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},OV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["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"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},OV.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const RV=OV,cV=230,gV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital),"PIN"),this.setOutput(!0)}},CV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},SV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},AV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},LV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},NV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},DV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},fV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},FV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},PV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},YV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},vV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},XV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},xV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},bV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},yV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},VV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},BV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog),"PIN"),this.setOutput(!0)}},GV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},UV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac),"PIN"),this.setOutput(!0)}},wV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},HV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},kV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},WV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},KV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},JV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch),"PIN"),this.setOutput(!0)}},QV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},qV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},zV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},jV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},ZV={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},$V={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},tB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},eB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},iB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},nB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},sB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},_B={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},pB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},aB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},uB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},rB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},dB={init:function(){this.setColour(cV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},lB=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},IB=lB,TB=lB,MB=lB,hB=lB,mB=lB,EB=lB,OB=lB,RB=lB,cB=lB,gB=lB,CB=lB,SB=lB,AB=lB,LB=lB,NB=lB,DB=lB,fB=lB,FB=lB,PB=lB,YB=lB,vB=lB,XB=lB,xB=lB,bB=lB,yB=lB,VB=lB,BB=lB,GB=lB,UB=lB,wB=lB,HB=lB,kB=lB,WB=lB,KB=lB;Object.assign(dt.Variables,Tt),Object.assign(dt.Procedures,zn),dt.Python=cu,dt.generator=cu,lt.Profile.default={},Object.assign(lt.Profile,RV),Object.assign(lt.Profile.default,RV["ESP32 Generic"]),Object.assign(dt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,b,H,w,Y,y,k,f,U,G,B,V,F,D,N,X,v,x,P,ut),Object.assign(dt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,tt,pt,ot,z,et,at,J,_t,st,nt,it,Q,K,W,Z,j,$,q,rt)})(); \ No newline at end of file +class Mt{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(dt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Xt={init:function(){this.setColour(Dt),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},xt={init:function(){this.setColour(Dt),this.appendValueInput("LIST").setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(dt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new dt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(dt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:dt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},yt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(dt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Vt={init:function(){this.setColour(Dt);var t=new dt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:dt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Bt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Gt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new dt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return dt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};bt.OPERATORS=[[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Vt.OPERATORS=[[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[dt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Ut={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ht={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(dt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Wt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Kt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(dt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Jt={init:function(){this.jsonInit({message0:dt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Dt,tooltip:dt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:dt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Qt={init:function(){this.setColour(Dt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_STAT),this.setOutput(!0)}},qt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},jt={init:function(){this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+dt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(dt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new dt.FieldDropdown([[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[dt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Dt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Zt={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$t={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},te={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ee={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ie={init:function(){this.setColour(Dt),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(dt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ne={init:function(){this.setColour(Dt),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},se=230;dt.FieldTextInput.math_number_validator=function(t){return String(t)},dt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const _e={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},oe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},pe={init:function(){this.setColour(se);this.appendDummyInput("").appendField(dt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new dt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:dt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},ae={init:function(){this.setColour(se),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ue={init:function(){this.setColour(se),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:dt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:dt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:dt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:dt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:dt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},re={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new dt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},de={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:dt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:dt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:dt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:dt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:dt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:dt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:dt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},le={init:function(){var t=[[dt.Msg.MATH_BIN,"bin"],[dt.Msg.MATH_OCT,"oct"],[dt.Msg.MATH_HEX,"hex"]];this.setColour(se),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:dt.Msg.MATH_DEC_TOOLTIP_BIN,oct:dt.Msg.MATH_DEC_TOOLTIP_OCT,hex:dt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ie={init:function(){var t=[[dt.Msg.LANG_MATH_TO_ROUND,"round"],[dt.Msg.LANG_MATH_TO_CEIL,"ceil"],[dt.Msg.LANG_MATH_TO_FLOOR,"floor"],[dt.Msg.MATH_ABS,"fabs"],[dt.Msg.MATH_SQRT,"sqrt"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).appendField(new dt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:dt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:dt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:dt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:dt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:dt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:dt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Te={init:function(){var t=[[dt.Msg.MIXLY_MAX,"max"],[dt.Msg.MIXLY_MIN,"min"]];this.setColour(se),this.appendValueInput("A").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(dt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:dt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:dt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Me={init:function(){var t=[[dt.Msg.MATH_TWO,"two"],[dt.Msg.MATH_EIGHT,"eight"],[dt.Msg.MATH_TEN,"ten"],[dt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(se),this.appendDummyInput("").appendField(dt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new dt.FieldDropdown(t),"OP").appendField(dt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MATH_ZHW).appendField(new dt.FieldDropdown(t),"OP2").appendField(dt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:dt.Msg.MATH_Before_two,eight:dt.Msg.MATH_Before_eight,ten:dt.Msg.MATH_Before_ten,sixteen:dt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:dt.Msg.MATH_Behind_two,eight:dt.Msg.MATH_Behind_eight,ten:dt.Msg.MATH_Behind_ten,sixteen:dt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},he={init:function(){var t=[[dt.Msg.LANG_MATH_INT,"int"],[dt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(se),this.setOutput(!0,Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new dt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(dt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:dt.Msg.LANG_MATH_INT,float:dt.Msg.LANG_MATH_FLOAT_RANDOM};return dt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},me={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(dt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ee={init:function(){this.setColour(se),this.appendValueInput("NUM",Number).appendField(dt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(dt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(dt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Oe={init:function(){this.setColour(se),this.appendDummyInput().appendField(new dt.FieldTextInput("0",dt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(dt.Msg.MATH_NUMBER_TOOLTIP)}},Re={init:function(){this.setColour(se),this.appendValueInput("NUM").setCheck(Number).appendField(dt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},ce={init:function(){this.setColour(se),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MATH_ROUND).appendField(dt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(dt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(dt.Msg.MATH_ROUND_NEW_TOOLTIP)}},ge={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"],[dt.Msg.MIXLY_TO_BITES,"b"],[dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:dt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:dt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Ce={init:function(){var t=[[dt.Msg.MIXLY_TO_INT,"int"],[dt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(se),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:dt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:dt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Se=Ee,Ae={init:function(){this.setColour(se),this.appendValueInput("VAR").appendField(dt.Msg.LANG_MATH_BYTE+dt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Le={init:function(){this.setColour(se),this.itemCount_=1,this.setMutator(new dt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(dt.Msg.MIXLY_PRODUCT+dt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(dt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(dt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(dt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Fe={init:function(){this.setColour(Ne),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new dt.FieldTextInput("",dt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(dt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new dt.FieldImage(e,7,12,'"')}},Pe={init:function(){this.setColour(Ne),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(dt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ye={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},ve={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String).appendField(dt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},xe={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},be={init:function(){this.WHERE_OPTIONS=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.TEXT_GET_INDEX_RANDOM+1+dt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.LISTS_GET_INDEX_GET,"MODE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(dt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=dt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+dt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",dt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:dt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:dt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:dt.Msg.TEXT_GET_INDEX_RANDOM};return dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+dt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==dt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new dt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),dt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ye={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.LISTS_GET_INDEX_FROM_START+"n"+dt.Msg.TEXT_CHARAT2)}},Ve={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(dt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(dt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Be={init:function(){this.WHERE_OPTIONS_1=[[dt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[dt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[dt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[dt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==dt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),dt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(dt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new dt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ge={init:function(){this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(dt.Msg.LISTS_GET_INDEX_GET+" "+dt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(dt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(dt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(dt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Ue={init:function(){var t=[[dt.Msg.MIXLY_EQUALS,"==="],[dt.Msg.MIXLY_STARTSWITH,"startswith"],[dt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new dt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},we={init:function(){this.setColour(Ne),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_COMPARETO_HELP)}},He={init:function(){var t=[[dt.Msg.TEXT_UPPER,"upper"],[dt.Msg.TEXT_TITLE,"title"],[dt.Msg.TEXT_CAPITALIZE,"capitalize"],[dt.Msg.TEXT_SWAPCASE,"swapcase"],[dt.Msg.TEXT_LOWER,"lower"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:dt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:dt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:dt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:dt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:dt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ke={init:function(){var t=[[dt.Msg.TEXT_LJUST,"ljust"],[dt.Msg.TEXT_CENTER,"center"],[dt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ne),this.appendValueInput("VAR").appendField(new dt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(dt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(dt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},We={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(dt.Msg.MIXLY_MID+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(dt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ke={init:function(){this.setColour(Ne),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Je={init:function(){this.setColour(Ne),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(dt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(dt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Qe={init:function(){this.setColour(Ne),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(dt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(dt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},qe={init:function(){var t=[[dt.Msg.TEXT_TRIM_BOTH,"strip"],[dt.Msg.TEXT_TRIM_LEFT,"lstrip"],[dt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ne),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(dt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:dt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:dt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:dt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ze={init:function(){this.setColour(Ne),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new dt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ki={init:function(){this.setColour(ki),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Ji={init:function(){this.setColour(ki),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_KEYS),this.setTooltip(dt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},qi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_TOOLTIP)}},zi={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(dt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},ji={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(dt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Zi={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(dt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_DELETE_TOOLTIP)}},$i={init:function(){this.setColour(ki),this.appendValueInput("DICT2").setCheck("Dict").appendField(dt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(dt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MID),this.setTooltip(dt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_CLEAR),this.setTooltip(dt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},en={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_ITEMS),this.setTooltip(dt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},nn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_VALUES),this.setTooltip(dt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LENGTH),this.setTooltip(dt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},_n={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.DICT_DELDICT),this.setTooltip(dt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},on={init:function(){this.MODE=[[dt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[dt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(dt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(dt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=dt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=dt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==dt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new dt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},pn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(dt.Msg.DICTS_ADD_VALUE),this.setTooltip(dt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},an={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(dt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(dt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},un={init:function(){this.setColour(ki),this.appendDummyInput("").appendField(new dt.FieldLabel(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new dt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},rn={init:function(){this.setColour(ki),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},dn={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(ki),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},In={init:function(){this.setColour(ki),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Tn={init:function(){this.setColour(ki),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TO_JSON),this.setTooltip(dt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn=210,hn={init:function(){var t=dt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:dt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:dt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:dt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:dt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},mn={init:function(){var t=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=dt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new dt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},En={init:function(){var t=[[dt.Msg.LOGIC_OPERATION_AND,"AND"],[dt.Msg.LOGIC_OPERATION_OR,"OR"],[dt.Msg.LOGIC_OPERATION_NOR,"NOR"],[dt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new dt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:dt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:dt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:dt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},On={init:function(){this.setColour(Mn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(dt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(dt.Msg.LOGIC_NEGATE_TOOLTIP)}},Rn={init:function(){var t=[[dt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[dt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Mn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new dt.FieldDropdown(t),"BOOL"),this.setTooltip(dt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},cn={init:function(){this.setColour(Mn),this.setOutput(!0),this.appendDummyInput().appendField(dt.Msg.LOGIC_NULL),this.setTooltip(dt.Msg.LOGIC_NULL_TOOLTIP)}},gn={init:function(){this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(dt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(dt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Cn={init:function(){var t=[[dt.Msg.TEXT_APPEND_TO,"in"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new dt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(dt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.IN)}},Sn={init:function(){var t=[[dt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[dt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Mn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new dt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},An={init:function(){this.setColour(Mn),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(dt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},fn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXPY_TEXT_ENCODE).appendField(new dt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_USE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=dt.Msg.MIXLY_BELONG,o=dt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+dt.Msg.MIXLY_MICROBIT_TYPE_STRING+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MICROBIT_PYTHON_TYPE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.HTML_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},yn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Vn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Hn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+dt.Msg.MIXLY_ESP32_SET+{mkdir:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(dt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.HTML_FILE,"isfile"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+dt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Jn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(dt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(dt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},qn={};qn.NAME_TYPE=dt.PROCEDURE_CATEGORY_NAME,qn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ks={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_FORM_CONTENT).appendField(new dt.FieldDropdown([[dt.Msg.HTML_TEXT,"text"],[dt.Msg.HTML_EMAIL,"email"],[dt.Msg.HTML_NUMBER,"number"],[dt.Msg.HTML_PASSWORD,"password"],[dt.Msg.HTML_CHECKBOX,"checkbox"],[dt.Msg.HTML_RADIOBUTTON,"radiobutton"],[dt.Msg.HTML_BUTTON,"button"],[dt.Msg.HTML_COLOUR,"colour"],[dt.Msg.HTML_DATE,"date"],[dt.Msg.HTML_LOCALTIME,"local time"],[dt.Msg.HTML_FILE,"file"],[dt.Msg.HTML_HIDDEN,"hidden"],[dt.Msg.HTML_IMAGE,"image"],[dt.Msg.HTML_MONTH,"month"],[dt.Msg.HTML_RANGE,"range"],[dt.Msg.HTML_RESET,"reset"],[dt.Msg.HTML_SEARCH,"search"],[dt.Msg.HTML_SUBMIT,"submit"],[dt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[dt.Msg.HTML_TIME,"time"],[dt.Msg.HTML_URL,"url"],[dt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(dt.Msg.HTML_NAME).appendField(new dt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(dt.Msg.HTML_VALUE).appendField(new dt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(dt.Msg.MIXLY_AIP_ATTR).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(new dt.FieldTextInput("property"),"KEY").appendField(":").appendField(new dt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qs={init:function(){this.setColour(Bs),this.appendDummyInput().appendField(dt.Msg.HTML_TEXT).appendField(new dt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs=160,js={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new dt.FieldTable(""),"TEXT")}},Zs={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT")}},$s={init:function(){this.setColour(zs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new dt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},t_={init:function(){this.setColour(zs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},e_={init:function(){this.setColour(zs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new dt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},i_={init:function(){this.setColour(zs),this.appendValueInput("VALUE").appendField(dt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},n_={init:function(){this.setColour(zs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new dt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(dt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=dt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},dt.isNumber(n)&&dt.isNumber(s)&&dt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const zp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},jp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Zp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},$p=function(t,e){return["None",e.ORDER_ATOMIC]},ta=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ea=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ia=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},na=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},sa=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},oa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},pa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ua=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ra=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},la=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ta=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ma=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ha=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ma=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Oa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Ra=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},La=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),dt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},au=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},uu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},ru=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},du=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},lu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Iu=function(t,e){return'"},Tu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Mu=function(){return this.getFieldValue("TEXT")+"\n"},hu=function(t){return t.getFieldValue("TEXT")+"\n"},mu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Eu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Ou=function(){return""},Ru=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},cu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Cu.scrubNakedValue=function(t){return t+"\n"},Cu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Cu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Cu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=dt.utils.string.wrap(_,Cu.COMMENT_WRAP-3),n+=Cu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Su="#74A55B",Au={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Lu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Nu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Du={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},fu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Fu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Pu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Yu={init:function(){this.setColour(Su),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vu={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Xu={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},xu={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},bu={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},yu={init:function(){this.setColour(Su),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Vu={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Bu={init:function(){this.setColour(Su),this.appendValueInput("VAR").appendField("360°"+dt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETTING+dt.Msg.blockpy_turtle_rotate+dt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Gu={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Uu={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},wu={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ku={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new dt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(dt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Wu={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[dt.Msg.MOTOR_N,"ms32006.MOT_N"],[dt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Ku={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new dt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[dt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Ju={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(dt.Msg.MIXLY_RGB_PIN_COUNT)}},Qu={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},qu={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},zu={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},ju={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new dt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["SYN6288"+dt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+dt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Zu={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_WHETHER).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_STOPPED,"0"],[dt.Msg.MIXLY_PLAYING,"1"],[dt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},$u={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_PLAY,"1"],[dt.Msg.MIXLY_MP3_PAUSE,"2"],[dt.Msg.MIXLY_STOP,"3"],[dt.Msg.MIXLY_MP3_PREV,"4"],[dt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tr={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(dt.Msg.MIXLY_MP3_VOL+dt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},er={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE+dt.Msg.MIXLY_STAT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[dt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[dt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[dt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[dt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[dt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ir={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[dt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},nr={},sr={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},or={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},pr={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(dt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(dt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(dt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},ar={init:function(){this.setColour(Su),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},ur={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},rr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},dr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.LISTS_SET_INDEX_SET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[dt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_WHITE,"W"],[dt.Msg.COLOUR_RGB_RED,"R"],[dt.Msg.COLOUR_RGB_YELLOW,"Y"],[dt.Msg.COLOUR_RGB_GREEN,"G"],[dt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Tr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[dt.Msg.MIXLY_SPEED,"[1]"],[dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[dt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[dt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[dt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[dt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MATH_SINGLE_OP_ABSOLUTE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Er={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Rr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.ME_GO_MOTOR_EXTERN+dt.Msg.MIXLY_SERVO_MOTOR).appendField(dt.Msg.MIXLY_RELATIVE+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+dt.Msg.MSG.run).appendField("("+dt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LEFT,"0"],[dt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MODE).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPEED+dt.Msg.MIXLY_MODE,"0"],[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+dt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(dt.inputs.Align.RIGHT).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"0"],[dt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.ME_GO_MOTOR_EXTERN).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MOTOR,"ext_motor"],[dt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[dt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[dt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[dt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[dt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[dt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[dt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Sr={init:function(){this.setColour(Su),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SERVO+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Lr={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(dt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr={init:function(){this.setColour(Su),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MOTOR+dt.Msg.MIXLY_SETUP+dt.Msg.MIXLY_AT).appendField(dt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Su),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+dt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fr="#6C9858",Fr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Pr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_ON,"1"],[dt.Msg.MIXLY_ESP32_OFF,"0"],[dt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Yr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},vr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Xr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},xr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},br={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(dt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(dt.Msg.MIXLY_LCD_SETCOLOR).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_LIGHT_RED,"1"],[dt.Msg.MIXLY_LIGHT_GREEN,"2"],[dt.Msg.MIXLY_LIGHT_BLUE,"3"],[dt.Msg.MIXLY_LIGHT_YELLOW,"4"],[dt.Msg.MIXLY_LIGHT_CYAN,"5"],[dt.Msg.MIXLY_LIGHT_PURPLE,"6"],[dt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},yr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Vr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(dt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Gr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_SETTING).appendField(dt.Msg.MIXLY_BUILDIN_LED).appendField(new dt.FieldDropdown([[dt.Msg.COLOUR_RGB_RED,"r"],[dt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_BUILDIN_LED+dt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Ur={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(new dt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},wr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Hr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},kr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Wr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Kr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_WRI)}},Jr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(lt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(dt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Qr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(dt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},qr={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(dt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.PYTHON_RANGE_STEP).appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(fr),this.appendValueInput("TICKS").setCheck(Number).appendField(dt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(dt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(dt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},jr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Zr={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_RESET)}},$r={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},td={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(dt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ed={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},id={init:function(){this.setColour(fr),this.appendValueInput("LIST").appendField(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},nd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd={init:function(){this.setColour(fr),this.appendDummyInput().appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_d={init:function(){this.setColour(fr),this.appendDummyInput("").appendField("MixGo Car").appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},od={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MOTOR_DC).appendField(new dt.FieldDropdown([[dt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[dt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_STOP).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ad={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},ud={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},rd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"1"],[dt.Msg.TEXT_TRIM_RIGHT,"2"],[dt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[dt.Msg.MIXLY_SPEED,"SPEED"],[dt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ld={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[dt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Id={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.blockpy_forward,"F"],[dt.Msg.blockpy_backward,"B"],[dt.Msg.blockpy_left,"L"],[dt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Td={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(new dt.FieldDropdown([[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Md={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.BITBOT).appendField(dt.Msg.MIXLY_MOTOR).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"0"],[dt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hd={init:function(){this.setColour(fr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},md={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ed={init:function(){this.setColour(fr),this.appendValueInput("bright").appendField(dt.Msg.MIXLY_SETTING+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Od={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MIXBOT_BUZZER+dt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Rd={init:function(){this.setColour(fr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_RECORD_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cd={init:function(){this.setColour(fr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_AUDIO).appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gd={init:function(){this.setColour(fr),this.appendValueInput("PATH").appendField(dt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(dt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Sd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ad={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ld={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.PIN_NUMBERING).appendField(new dt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.ME_GO_MOTOR_EXTERN).appendField(dt.Msg.MIXLY_ALL+dt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(dt.ALIGN_RIGHT).appendField(dt.Msg.blynk_IOT_IR_POWER+dt.Msg.MIXLY_PINMODEOUT+dt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Dd={init:function(){this.setColour(fr),this.appendDummyInput().appendField(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(dt.Msg.MIXLY_RELEASE).appendField(new dt.FieldDropdown([[dt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[dt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.ANALOG+dt.Msg.MIXLY_KEYBOARD_INPUT)}},fd={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SPECIAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[dt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[dt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[dt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[dt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[dt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[dt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[dt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Fd={init:function(){this.setColour(fr),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GENERAL_KEY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Pd={init:function(){this.setColour(fr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new dt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(dt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},nE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},sE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},_E={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_PROJECT).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},aE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},uE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},IE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},TE={init:function(){this.setColour(zm),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},ME={init:function(){this.setColour(zm),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},hE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(dt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},mE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(dt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},EE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+dt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OE={init:function(){this.setColour(zm),this.appendDummyInput().appendField(dt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(dt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},RE={init:function(){this.VISITOR_ID=lt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(zm),this.appendDummyInput("").appendField(new dt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},cE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MixIO").appendField(dt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},gE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(dt.Msg.MIXLY_REQUESTS_GET).appendField(dt.Msg.MIXLY_GET_CURRENT_TIME).appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("HTTP"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(dt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(dt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(dt.Msg.MQTT_Topic).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(dt.Msg.MIXLY_OPEN_DEBUG).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[dt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AE={init:function(){this.setColour(zm),this.appendDummyInput().appendField("MQTT"+dt.Msg.MIXLY_Client).appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[dt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[dt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},LE=jm,NE=Zm,DE=$m,fE=tE,FE=iE,PE=225,YE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(dt.Msg.MIXLY_NETWORK_MODE).appendField(new dt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},vE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[dt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=dt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:dt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:dt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},XE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},xE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return dt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:dt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},bE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},yE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_NETWORK_WIFI_CONNECT+dt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},VE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[dt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:dt.Msg.MIXLY_ESP32_NETWORK_IP,1:dt.Msg.MIXLY_ESP32_NETWORK_MASK,2:dt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},BE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},GE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},UE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(dt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(dt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},wE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(dt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},HE={init:function(){this.setColour(PE),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new dt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},kE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},WE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},KE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},JE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},QE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},qE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},zE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},jE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},ZE={init:function(){this.setColour(PE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},$E={init:function(){this.setColour(PE),this.appendValueInput("DOMAIN").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS_GET).appendField(new dt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){dt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tO={init:function(){this.appendValueInput("VAL");var t=[[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(PE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:dt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:dt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:dt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},eO={init:function(){this.appendValueInput("VAR").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(PE),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(dt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:dt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:dt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},iO={init:function(){this.setColour(PE),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(dt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},nO={init:function(){this.setColour(PE),this.appendDummyInput("").appendField(new dt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},sO="#3288dd",_O={init:function(){this.setColour(sO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS).appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},oO={init:function(){this.setColour(sO),this.appendValueInput("URL").appendField(dt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(dt.Msg.blockpy_CONDUCT).appendField(new dt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(dt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(dt.Msg.blockpy_REQUESTS+dt.Msg.OLED_STRING),this.appendDummyInput("").appendField(dt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},pO={init:function(){this.appendValueInput("VAL");var t=[[dt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[dt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[dt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(sO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},aO={init:function(){this.setColour(sO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(dt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(dt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(dt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},uO={init:function(){this.setColour(sO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_SERVER).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(dt.Msg.MIXLY_EMQX_PORT).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(dt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(dt.Msg.MIXLY_WIFI_USERNAME).setAlign(dt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(dt.Msg.MIXLY_IOT_PASSWORD).setAlign(dt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(sO),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(dt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},dO={init:function(){this.setColour(sO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_SUBSCRIBE+dt.Msg.MIXLY_MICROBIT_MSG).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(dt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},lO={init:function(){this.setColour(sO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(dt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(dt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(dt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IO={init:function(){this.setColour(sO),this.appendDummyInput().appendField("mqtt"+dt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},TO=100,MO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},hO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},mO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Direction).appendField(new dt.FieldDropdown([[dt.Msg.CLOCKWISE,"CW"],[dt.Msg.ANTI_CLOCKWISE,"CCW"],[dt.Msg.MOTOR_P,"P"],[dt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},EO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(dt.Msg.MOTOR_DC).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},OO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_MOVE)}},RO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(dt.inputs.Align.RIGHT).appendField(dt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},cO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+dt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO={init:function(){var t=lt.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(TO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+dt.Msg.MIXLY_SERVO).appendField(dt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET+dt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},CO="#A58C5B",SO={init:function(){this.setColour(CO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_IS_PRESSED)}},AO={init:function(){this.setColour(CO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(dt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_SENOR_WAS_PRESSED)}},LO={init:function(){this.setColour(CO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(dt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.PROCEDURES_DEFRETURN_RETURN+dt.Msg.MIXLY_BUTTON+dt.Msg.MIXLY_GET_PRESSES)}},NO={init:function(){this.setColour(CO),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_BUTTON).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MODE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[dt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[dt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},DO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"],[dt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(dt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down,freefall:dt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},fO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},FO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},PO={init:function(){var t=[[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(CO),this.appendValueInput("PIN",Number).appendField(new dt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new dt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:dt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},YO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},vO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},XO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new dt.FieldDropdown([[dt.Msg.TEXT_TRIM_LEFT,"left"],[dt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(dt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=dt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=dt.Msg.MIXLY_ESP32_NEAR;return i+{left:dt.Msg.TEXT_TRIM_LEFT,right:dt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},xO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[dt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":dt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},bO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[dt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},yO={init:function(){this.setColour(CO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},VO={init:function(){this.setColour(CO),this.appendDummyInput("").appendField("LM35"+dt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(dt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(dt.Msg.MIXLY_TOOLTIP_LM35)}},BO={init:function(){this.setColour(CO),this.appendValueInput("I2CSUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[dt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[dt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[dt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[dt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[dt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[dt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[dt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[dt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[dt.Msg.HTML_COLOUR+"、"+dt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+dt.Msg.MIXLY_NEXT+"、"+dt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[dt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[dt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[dt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[dt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},GO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},UO={init:function(){this.setColour(CO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(dt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(dt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+dt.Msg.MIXLY_DELAY_TIME_RANGE)}},wO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},HO={init:function(){this.setColour(CO),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RADAR).appendField(dt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},kO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},WO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[dt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[dt.Msg.MIXLY_THE_FIRST,"3"],[dt.Msg.MIXLY_THE_SECOND,"4"],[dt.Msg.MIXLY_THE_THIRD,"5"],[dt.Msg.MIXLY_THE_FOURTH,"6"],[dt.Msg.MIXLY_THE_FIFTH,"7"],[dt.Msg.MIXLY_THE_SIXTH,"8"],[dt.Msg.MIXLY_THE_SEVENTH,"9"],[dt.Msg.MIXLY_THE_EIGHTH,"10"],[dt.Msg.MIXLY_THE_NINTH,"11"],[dt.Msg.MIXLY_THE_TENTH,"12"],[dt.Msg.MIXLY_THE_ELEVENTH,"13"],[dt.Msg.MIXLY_THE_TWELFTH,"14"],[dt.Msg.MIXLY_THE_13TH,"15"],[dt.Msg.MIXLY_THE_14TH,"16"],[dt.Msg.MIXLY_THE_15TH,"17"],[dt.Msg.MIXLY_THE_16TH,"18"],[dt.Msg.MIXLY_THE_17TH,"19"],[dt.Msg.MIXLY_THE_18TH,"20"],[dt.Msg.MIXLY_THE_19TH,"21"],[dt.Msg.MIXLY_THE_20TH,"22"],[dt.Msg.MIXLY_Turn_on_the_lights,"23"],[dt.Msg.MIXLY_Turn_off_the_lights,"24"],[dt.Msg.MIXLY_Turn_up_the_brightness,"25"],[dt.Msg.MIXLY_Turn_down_the_brightness,"26"],[dt.Msg.MIXLY_Set_it_to_red,"27"],[dt.Msg.MIXLY_Set_it_to_orange,"28"],[dt.Msg.MIXLY_Set_it_to_yellow,"29"],[dt.Msg.MIXLY_Set_it_to_green,"30"],[dt.Msg.MIXLY_Set_it_to_cyan,"31"],[dt.Msg.MIXLY_Set_it_to_blue,"32"],[dt.Msg.MIXLY_Set_it_to_purple,"33"],[dt.Msg.MIXLY_Set_it_to_white,"34"],[dt.Msg.MIXLY_Turn_on_the_fan,"35"],[dt.Msg.MIXLY_Turn_off_the_fan,"36"],[dt.Msg.MIXLY_First_gear,"37"],[dt.Msg.MIXLY_Wind_speed_second,"38"],[dt.Msg.MIXLY_Third_gear,"39"],[dt.Msg.MIXLY_Previous,"40"],[dt.Msg.MIXLY_Next_page,"41"],[dt.Msg.MIXLY_Show_smiley_face,"42"],[dt.Msg.MIXLY_Show_crying_face,"43"],[dt.Msg.MIXLY_Show_love,"44"],[dt.Msg.MIXLY_Close_display,"45"],[dt.Msg.MIXLY_Start_execution,"46"],[dt.Msg.MIXLY_FORWARD,"47"],[dt.Msg.MIXLY_BACKWARD,"48"],[dt.Msg.MIXLY_TURNLEFT,"49"],[dt.Msg.MIXLY_TURNRIGHT,"50"],[dt.Msg.MIXLY_STOP,"51"],[dt.Msg.MIXLY_Accelerate,"52"],[dt.Msg.MIXLY_retard,"53"],[dt.Msg.ROTATION_FORWARD,"54"],[dt.Msg.ROTATION_BACKWARD,"55"],[dt.Msg.MIXLY_Query_temperature,"56"],[dt.Msg.MIXLY_Query_humidity,"57"],[dt.Msg.MIXLY_Query_brightness,"58"],[dt.Msg.MIXLY_Query_sound,"59"],[dt.Msg.MIXLY_Query_time,"60"],[dt.Msg.MIXLY_Query_distance,"61"],[dt.Msg.MIXLY_Query_pressure,"62"],[dt.Msg.MIXLY_Query_key,"63"],[dt.Msg.MIXLY_Query_touch,"64"],[dt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(dt.Msg.MIXLY_WHETHER+dt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},KO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[dt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[dt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},JO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MP3_PLAY).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_WIND_SPEED,"154"],[dt.Msg.MIXLY_HYETAL,"155"],[dt.Msg.MIXLY_TEMPERATURE,"156"],[dt.Msg.MIXLY_Humidity,"157"],[dt.Msg.MIXLY_Altitude,"158"],[dt.Msg.MIXLY_SOUND,"159"],[dt.Msg.MIXLY_BRIGHTNESS,"160"],[dt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[dt.Msg.MIXLY_SERVO,"162"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[dt.Msg.MIXLY_BUTTON2,"164"],[dt.Msg.MIXLY_ESP32_TOUCH,"165"],[dt.Msg.MIXLY_PAY,"166"],[dt.Msg.MIXLY_CARSH_CHANGE,"167"],[dt.Msg.MIXLY_COUNTDOWN,"168"],[dt.Msg.MIXLY_TIMING,"169"],[dt.Msg.MIXLY_AT_THE_MOMENT,"170"],[dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[dt.Msg.MIXLY_FORWARD,"172"],[dt.Msg.MIXLY_BACKWARD,"173"],[dt.Msg.MIXLY_TURNLEFT,"174"],[dt.Msg.MIXLY_TURNRIGHT,"175"],[dt.Msg.MIXLY_STOP,"176"],[dt.Msg.MIXLY_Accelerate,"177"],[dt.Msg.MIXLY_retard,"178"],[dt.Msg.ROTATION_FORWARD,"179"],[dt.Msg.ROTATION_BACKWARD,"180"],[dt.Msg.TUPLE_JOIN,"181"],[dt.Msg.MIXLY_SHOW,"182"],[dt.Msg.MIXLY_LAMPLIGHT,"183"],[dt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(dt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(dt.Msg.MIXLY_UNIT).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[dt.Msg.MIXLY_YEAR,"117"],[dt.Msg.MIXLY_MONTH,"118"],[dt.Msg.MIXLY_DAY,"119"],[dt.Msg.MIXLY_HOUR,"120"],[dt.Msg.MIXLY_MINUTE,"121"],[dt.Msg.MIXLY_SECOND,"122"],[dt.Msg.MIXLY_WEEK2,"123"],[dt.Msg.MIXLY_RMB_UNIT,"124"],[dt.Msg.blockpy_setheading_degree,"125"],[dt.Msg.MIXLY_GEAR,"126"],[dt.Msg.MIXLY_LAYER,"127"],[dt.Msg.MIXLY_GRAM,"128"],[dt.Msg.MIXLY_METER,"129"],[dt.Msg.MIXLY_CENTIMETER,"130"],[dt.Msg.MIXLY_MILLIMETER,"131"],[dt.Msg.MIXLY_LUMEN,"132"],[dt.Msg.MIXLY_DECIBEL,"133"],[dt.Msg.MIXLY_hectopascal,"134"],[dt.Msg.MIXLY_PERCENT,"135"],[dt.Msg.MIXLY_CELSIUS,"136"],[dt.Msg.MIXLY_METER_PER_SEC,"137"],[dt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[dt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[dt.Msg.MIXLY_SUCCESS,"140"],[dt.Msg.MIXLY_FAILED,"141"],[dt.Msg.MIXLY_WRONG,"142"],[dt.Msg.MIXLY_GOOD,"143"],[dt.Msg.MIXLY_blockpy_set_add,"144"],[dt.Msg.MIXLY_DECREASE,"145"],[dt.Msg.COLOUR_RGB_RED,"146"],[dt.Msg.COLOUR_RGB_ORANGE,"147"],[dt.Msg.COLOUR_YELLOW,"148"],[dt.Msg.COLOUR_RGB_GREEN,"149"],[dt.Msg.COLOUR_CYAN,"150"],[dt.Msg.COLOUR_RGB_BLUE,"151"],[dt.Msg.COLOUR_RGB_PURPLE,"152"],[dt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},QO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.LISTS_SET_INDEX_SET+dt.Msg.MIXLY_SYSTEM+dt.Msg.MIXLY_CMD).appendField(new dt.FieldDropdown([[dt.Msg.MILXY_ENTER_WAKE_UP,"1"],[dt.Msg.MIXLY_INCREASE_VOLUME,"202"],[dt.Msg.MIXLY_REDUCE_VOLUME,"203"],[dt.Msg.MIXLY_MAX_VOLUME,"204"],[dt.Msg.MIXLY_MINIMUM,"205"],[dt.Msg.MIXLY_OPEN_RESPONSE,"206"],[dt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[dt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},qO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[dt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[dt.Msg.MIXLY_ESP32_MAX30102_IR+","+dt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[dt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[dt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},jO={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZO={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+dt.Msg.HTML_COLOUR,"[2]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_IR_STRENGTH,"[1]"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$O={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.HTML_COLOUR+dt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET+"RGB"+dt.Msg.HTML_COLOUR,"0"],[dt.Msg.MIXLY_GET+dt.Msg.MIXLY_RGB_RAW,"1"],[dt.Msg.MIXLY_GET_ENV_LIGHT+dt.Msg.MIXLY_BRIGHTNESS,"2"],[dt.Msg.GET_IR_STRENGTH+dt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},tR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[dt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},eR={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},iR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},nR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[dt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:dt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},sR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_Altitude+dt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_GETPRESSURE,"pressure()"],[dt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[dt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MIXGOPE_FIELD+dt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[dt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},pR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_shake,"shake"],[dt.Msg.MIXLY_UP,"up"],[dt.Msg.MIXLY_DOWN,"down"],[dt.Msg.MIXLY_LEFT,"left"],[dt.Msg.MIXLY_RIGHT,"right"],[dt.Msg.MIXLY_MICROBIT_face_up,"face up"],[dt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=dt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=dt.Msg.MSG.catSensor,s=dt.Msg.MIXLY_MICROBIT_JS_STATE,_=dt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:dt.Msg.MIXLY_MICROBIT_shake,up:dt.Msg.MIXLY_UP,down:dt.Msg.MIXLY_DOWN,left:dt.Msg.MIXLY_LEFT,right:dt.Msg.MIXLY_RIGHT,"face up":dt.Msg.MIXLY_MICROBIT_face_up,"face down":dt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},aR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET+dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},rR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+dt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new dt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=dt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=dt.Msg.MIXLY_MICROBIT_Direction,s=dt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":dt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},dR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},lR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_GETTEMPERATUE)}},IR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return dt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:dt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:dt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},TR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(dt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},MR={init:function(){this.setColour(CO),this.appendValueInput("SPISUB").appendField(dt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(dt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SETUP+dt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new dt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},hR={init:function(){this.setColour(CO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[dt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},mR={init:function(){this.setColour(CO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},ER={init:function(){this.setColour(CO),this.appendDummyInput().appendField("RFID"+dt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},OR={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},RR={init:function(){this.setColour(CO),this.appendDummyInput().appendField(dt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(dt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(dt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(dt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},cR={init:function(){this.setColour(CO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new dt.FieldDropdown([[dt.Msg.MIXLY_RFID_SCAN_OK,"0"],[dt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[dt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new dt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},CR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(dt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AR={init:function(){this.setColour(CO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new dt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},Of=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Rf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},cf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},gf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},Cf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Sf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},Af=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Lf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},Nf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},Df=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},ff=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},Ff=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},Pf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},Yf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},vf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Xf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},xf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},bf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},yf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},Vf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},Bf=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},Gf=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Uf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},wf=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},Hf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},kf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},Wf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},Kf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},Jf=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},Qf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},qf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},zf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},jf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},Zf=function(t,e){e.definitions_.import_st7789="import st7789";var i=lt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},$f=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},tF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},eF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},iF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},nF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},sF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},_F=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},oF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},pF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},aF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},rF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},dF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=lt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},lF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},IF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},MF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},hF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},EF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},OF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},cF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},gF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},CF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},SF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},AF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},LF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},NF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},DF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},fF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},FF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},PF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},YF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},vF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},XF=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},xF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},IP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},TP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},MP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},hP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},mP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},EP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},OP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},RP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},cP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},gP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},CP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},SP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},AP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},LP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},NP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},DP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},fP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},FP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},PP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},YP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},vP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},XP=function(t,e){var i=lt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},xP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},bP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},yP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},vy=function(){return"control.reset()\n"},Xy=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},xy=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+")\n"},by=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||lt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},yy=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},Vy=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},By=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Gy=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Uy=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},wy=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},Hy=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},ky=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},Wy=function(){return"while True:\n pass\n"},Ky=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},Jy=function(t,e){return e.definitions_.import_os="import os","os.uname()"},Qy=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},qy=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},zy=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},jy=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},Zy=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},$y=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},tV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},eV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},iV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},nV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},sV=$y,_V=jy,oV=Zy,pV=Qy,aV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},rV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},dV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},lV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},IV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},TV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},MV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},hV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},mV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},EV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},OV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},RV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},cV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},gV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},CV={};CV["MixGo(ESP32, 4M)"]={description:"MicroPython[ESP32 MixGo]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},CV["MixGo PE"]={description:"MicroPython[ESP32 MixGo PE]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin7","pin7"],["pin8","pin8"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"],["pwm33","pwm33"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:lt.Profile.generate(["0-7"]),exlcdv:lt.Profile.generate(["0-4"]),brightness:lt.Profile.generate(["0-9"]),tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},CV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["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"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},CV.mPython={description:"MicroPython[ESP32 Generic]",digital_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],digital:[["pin0","pin33"],["pin1","pin32"],["pin2","pin35"],["pin5","pin0"],["pin6","pin16"],["pin7","pin17"],["pin8","pin26"],["pin9","pin25"],["pin11","pin2"],["pin13","pin18"],["pin14","pin19"],["pin15","pin21"],["pin16","pin5"],["pin19","pin22"],["pin20","pin23"]],input_pin:[["p0","33"],["p1","32"],["p2","35"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],output_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm_pin:[["p0","33"],["p1","32"],["p5","0"],["p6","16"],["p7","17"],["p8","26"],["p9","25"],["p11","2"],["p13","18"],["p14","19"],["p15","21"],["p16","5"],["p19","22"],["p20","23"]],pwm:[["pwm0","pwm33"],["pwm1","pwm32"],["pwm5","pwm0"],["pwm6","pwm16"],["pwm7","pwm17"],["pwm8","pwm26"],["pwm9","pwm25"],["pwm11","pwm2"],["pwm13","pwm18"],["pwm14","pwm19"],["pwm15","pwm21"],["pwm16","pwm5"],["pwm19","pwm22"],["pwm20","pwm23"]],espnow_channel:lt.Profile.generate(["1-13"]),haskylens_model:lt.Profile.generate(["0-4"]),analog_pin:[["p0","33"],["p1","32"],["p2","35"],["p3","34"],["p4","39"],["p10","36"]],analog:[["adc0","adc33"],["adc1","adc32"],["adc2","adc35"],["adc3","adc34"],["adc4","adc39"],["adc10","adc36"]],dac_pin:[["p8","26"],["p9","25"]],dac:[["dac8","dac26"],["dac9","dac25"]],touch_mpython:[["p","p"],["y","y"],["t","t"],["h","h"],["o","o"],["n","n"]],touch:[["tc0","tc33"],["tc1","tc32"],["tc5","tc0"],["tc11","tc2"],["tc23","tc27"],["tc24","tc14"],["tc25","tc12"],["tc26","tc13"],["tc27","tc15"],["tc28","tc4"]],touch_pin:[["p0","33"],["p1","32"],["p5","0"],["p11","2"],["p23","27"],["p24","14"],["p25","12"],["p26","13"],["p27","15"],["p28","4"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:lt.Profile.generate(["0-16"]),tts_builtin_music:lt.Profile.generate(["0-47"]),tts_bgmusic:lt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const SV=CV,AV=230,LV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital),"PIN"),this.setOutput(!0)}},NV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},DV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},fV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},FV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},PV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},YV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},vV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},XV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},xV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},bV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},yV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},VV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},BV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},GV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},UV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},wV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},HV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog),"PIN"),this.setOutput(!0)}},kV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},WV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac),"PIN"),this.setOutput(!0)}},KV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},JV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},QV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},qV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},zV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},jV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.touch),"PIN"),this.setOutput(!0)}},ZV={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},$V={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},tB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},eB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},iB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},nB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},sB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},_B={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},pB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},aB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},uB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},rB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},dB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},lB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},IB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},TB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},MB={init:function(){this.setColour(AV),this.appendDummyInput("").appendField(new dt.FieldDropdown(lt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hB=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},mB=hB,EB=hB,OB=hB,RB=hB,cB=hB,gB=hB,CB=hB,SB=hB,AB=hB,LB=hB,NB=hB,DB=hB,fB=hB,FB=hB,PB=hB,YB=hB,vB=hB,XB=hB,xB=hB,bB=hB,yB=hB,VB=hB,BB=hB,GB=hB,UB=hB,wB=hB,HB=hB,kB=hB,WB=hB,KB=hB,JB=hB,QB=hB,qB=hB,zB=hB;Object.assign(dt.Variables,Tt),Object.assign(dt.Procedures,zn),dt.Python=Cu,dt.generator=Cu,lt.Profile.default={},Object.assign(lt.Profile,SV),Object.assign(lt.Profile.default,SV["ESP32 Generic"]),Object.assign(dt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,b,H,w,Y,y,k,f,U,G,B,V,F,D,N,X,v,x,P,ut),Object.assign(dt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,tt,pt,ot,z,et,at,J,_t,st,nt,it,Q,K,W,Z,j,$,q,rt)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/build/Mixgo_Mini-v1.23.0.bin b/boards/default/micropython_esp32c2/build/Mixgo_Mini-v1.23.0.bin index 4bb8be13243bd97ac0ba11bf25fad5611b930fca..7b23ee2c32019f4a66d2eaa046dd4cce6e91b4e5 100644 GIT binary patch delta 273 zcmca`F#N*7@Cm;BMhZp-My3jeMpj0qR;Csc4MjE) z+HKkyftU%1nSq!Eh*^P{4T#x+m;;D8ftU-3xq+Amh}PFuwBPTr`G0*$gRp_Im4Pt>6u6}(0Zp9R#;B#xy{C2w zzx%fJH=S0_4|b_pefQSqGanyBn>jhyHZ@=0^?Le3RhEG53XF^~0gMLQYXcegnKBx* z+q5$RF%u9o12GE_vjQ<25VHd@2M}`tF&7YX12GQ}^8zs+5c31E01yiTu@Ddo1F^_< tn|9ISNX2)0=Qqk2=&lnL-RRjgF@tl@x4_iNTbX7j>3rl%e7&h_8vy0VXvP2l diff --git a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib-v1.23.0.bin index 884030b3f081b66f2a69a3b13b0423f2d15bbaae..27ce2e441f16cd43ebf86a81b4c660c7ebc9f81d 100644 GIT binary patch delta 131724 zcmcG%3s@E9`u{y^&49322M&vaii(PgiiwI!HYOq_l_?r386HwnR7x^ZQ)^*ap;=*B zgKjM}D>N%K3o|P;YFnF%%*u@RHlsE_qcWp1!+JmWnpsNj{d?c*|G%!6%WvQ3exCa| z-_LPoR#oQ;PMs?#yT&sxVPML@!3hHf4jY&@Z1CW91H8M6UbwvLvoBn+`;!O0m_6fx z&bHfrwjZ*vkDcxJ|dU524H_~7H)7PoQ9{2Z0JKH8j4ZL(%>LA7X zyW+-K2?GZ{datcd!cDJ?nfmhek1SsG>FnBvjWwgb_O-m~e*K1$>j#$?xUNb4-B`D# zU3PVX%{FtqZD94vY@546y`lKV>N`)_&Z*V+x7czMZ3FLXjI&oa#;J8d)8hI?=|jmT z7}R!-(sz3lC8SG~ZjUng-55n_#XmAgQCeWTQ&DW_c7s(oWMGtj^VLd5&44KV&p%bg zJx<9GzkdoFt}bdv+n(y)T~wdu3mF!rE6Pk_O9K8syEaM5IMh8#mtv5!KjbL#>CTFB z9F}A?#jYeyR5F%LP%=dC3G^tPq9jJ?QoN(E6t526+Ma5_JK+7WBUVwW;6)K6Qf~B4 zR2N)hmg5q;Bw_v8@_L(jNfk=Qn^m}+{G=**aG)IHC~u&uyRVfhewnCt8Qx4$Pl2St zQM$K>SsjD4BS9kaKKQOqin0dYgDmbt@WyD0X$~KqkPgJ&ycDYg!DA~FJ(%UK8))5IYLq5dqwF7X^3!mYB+lE zEGZg1QKR7`UOWv4AB6YA?{-v_2KX?11nxkITi`x$GaLyw_KfoB8F7kIiO0i~U=Mr} ztH`GSr{S^iSvVc;Mi1q}(t5#k#*oQo>*nVw8AtJ3JWa_s1#c`cx!&SUb4~fM#cqph z^QEo&N9iF-h~msMm4;0>6Ah=40$r9*qe{YO;1Hv0FE#d>bSf?l*M&9^BhE$^ODYzo zVOGE=s8<0TNG5)vnarA-FC=|0?nL9BUh1g9(({d|lbZkU$RZ^}9FollxE*LATr44y zKG+wkC~3yIUTR-|7cRlu4fLcaeHp>Y*yB`6k^qYhd*PEbxf4D{mng7wT{HT}Fpo2^ zL%IZBL;Ry6Gf3*;hcU84a5u)p9tlUTfg?L8%FZOZP>lR}s%IK@kaB#fS=EP^n5`Lk zn<;OC13F2TPS0Y~F9ehAyx7#AYWW4@xAk_@?}U}U_=VgONJmv>-r_R_8RhjWQ1;vW zP@CW8WsItd7I&+Xv6cjm(16L5TpCpxRQ?KSiAF~FPKMwA6?go9iTLP;wzMFBs>ZqA z>iwfjX{o(wQM#~XE}Tivx0NprFY9ZDhoBp?i3%F;^-*JOA;#Bz)b5?m5c^c6k}>NU zvyHQMnmh}?5Ti$5wSQ2^5RBZoPMmRm=L3D!?!@2KSMBu|<7py$W8D-?7a}42l zJOf`fJ9)Cj%itq%5&Ch^3_^@MlKoYFG+FIF%`_oZsX1WA>I{pYn8unnF1U}iac_K0 z$;i7jN^hko0o}9v&G?lTzb&~N(f!oEK@GG-h%p*xd$AP}g=LWo{Dl~+`>9=ms_+gm zo)hP`6mfot)9H8m4Y8MEl=V~Nobi_s==VuAeJu6imk={w0*xDRwuzZy#k`PKzrVzM zPhy&R{wOhZnalh+Bv~;p`1Jit%xV44$6SfCO`Zw=k!P2`#QaWTrupj`kwQ$r)1PPO z|A;y0FEQ^x-74)CiJ3}=nWgPv#k}Ct$BOCqFmfd zHo#=cOrt1S496Wf^5GL0doC=N6~b0%@n@#B6^frRZy=kP5aXVKYIk26J~G%HRw^~P z|NQe$-#kUNi*?64hII)-fzvp5ZPqTAK}gBK$2IJu-zzJ!?UsaX*iui4Wp1n_ebd&aMoH@MCZNUNXCjQm)OXRAidHJ61mlmo1{ST}YT(?}NP*!a?h_%ppOzjs>g_T#P&nE`2dp z&yaBRc2Llk$$?Ror1~u!GmyXCr5}29A_T%7Tm_zPR8i*Fp8cH`GrfZ7u*oZ?20y|+li{v)A1M(*LED5a_f8@1rA9xiU39o=p zGjj4_S<$j#8Hj1;%)u!Gc1^S`qsE7)Y?Lo?AXx5kPMd#}_CZ-XGu~pi#frtJTg~vg z-%NfTmQ3v7Hb1v|%rs>tc=r!8W10A}6w_ahLB0q3n99e9ECrB~osBRR#C@ub`y0zG zYj|Y0K!G)7S=S30J+57FKi0o^*5L z_(|APi1AXI+J9sk&LkQZEAvmofeBy3Po~=hSS-j3ON!D4?g3_sondxem#TfcwqPLD z$9E~_|sO1D`=S7eXwZ0 ze3hwrFDx^1wk0RPrP*v?F=SagiPkQQ<1mk534B@z0HA0zZa zIN#_xLLJm;f5%AO>4?&s@j3&v{%pB`7aTHf8KHJ}ewZH%?UN+LDd;CQ?St_;I2-G^p%1TD-d7wd%8~|NbK3 zqP@pAH`y}e=vOr6A0tfj)ReoH(B}+JeX+^wmj+B%QxYt<99qA(^qiJn7P6!vW2+Fq zKzc`)``r$|rCz=Qq56g?>a!Yq5?7wu(U+2E&c#D99NB}UBg<*F5|(S63b+Gv>Uww| za;b#FE8v505gf?3e(i-a%)kGFyXb)n?)M)u>vegl-_Pa0_Zj=BErYxjqbg55)lZtF zip5iwh#C0GHmC-9A1n)NH;lY!1`{J3XS_E}9p#e}$P~2fahv~^XD+JTF)69jnZQ|- zy{K=6L*PYh3|jG@NG(sn2U&6&g;`pT!n+ysb?`B2R|9WFe-AvBdAkx`#ynmj%#ytx zCT|~Gx)9|Mnaj8w_cyb;PW&$45^y_|m`c+fPSMh~1^k`LzNbyM8~=&Vm~MySP;R#T z#of(vOC@tQU5Fcu{;2_mdxkod9-TJ>Q%tPBXNIb(K552sHbl~lOIR&0p*<>*r5RF^HPEfqe& z!kd&&o6MpC6Yw|*$H7;Tkp3n+J>+foVMa8d_7)j(cM%THf(rya7XC?chX^_l75JI6g)LQmL8RayRamqDCh7#62aI!TODC5 zF}|3s4)V!J`{h|%hTNaIcbd)0?5^ZIcfsvwjV7xrUt#1L6$w zKH8ymHSLOl##MiouP(Rw2ZB`Kc$-2$j$1NaL0V!ABM6rZkhRE?=Wg~pwSe*8P&F7!H-hIIwEXc1R9A z#dz4!D1>F@ykeJ`&}0$~OpNtb;hq;ZR?lTFOhnyWu|F|ykjR5SduO8Sgbm;>mHtws zE)B?1mcYE(j4XALV@w7em&qnRgNo|#Rn#vP?m$=){4k9e4+rMWZ}#|$HO@a5CcR{q zb>qtxSDR&)iM{IbZ#?hh&?@d8%#8<|0eBa@KNi@mXq2TfiC{ zVys-iIirct%8O#`MgHGzk^@)Uvq7B@ozi$l9Bz^fU$RznF_fBoC8O~V_`|>`J-l!r@>f)PyYqS2GzXr zkc5j-l!W`!vK)n!RmhUC9PBsJFo%%0!u#RF`0asD!aHHf;NE{(85}cBN;dq-=iNcd zK-`i~1Nw3Od>0P(&3H&ga$}HzJtuKXFbvz?bTg+rI0gAEcAT?>0?_4S;eBMB3Ok6C z49hH&C^GYBJlqHN!iTX6Cwvyx;8~<6dOLhlqs8np;Pqs*k)}!~U@8d~!2?k&fcr4n zuMio|T4vUC{&92lsiDSkFURWAS{j9HA)Q8W1k?gAesYmau>U-L=o&WRmfV|)D23S< zJY>_?)J8!P%^WDZ_H#FLXXRh*tQK~XzqDjJ>9;k7Y-DLjxpEP#LbkJjtbn)DU`4PD zc3A=6w(77S4*2bsbU9GTR91y<1+dEN^P9w}HszD@o@pbqDNvMg7wR(z(TOYtZ6YBl z=y?2?Ig~TVQc$@Ql2tXmh>oB^O5lz3TroV5umZRnJhKRMu`}=F;vtc;;j8GOELd8m z;Dk9?Gru%@=5l1Q$;huv|GmiO>}pqv@e{YyvJ!pKYk{SpWu(`33{)UXL9gqE|4d24mMPYWGlS?>WCo3BI5NK84V>O%{%PTKWuLMi=G6 z!x&WAu%wa++cCy8IM5|YBo}DC$IqC%_fLK`yKawFak-Ru%+izH_xxXM8Jkp_aqA*A z+J96jCqXI57>XVODv_lca;0~Y9cKu4iW}LoH5e}~QZMsAa|zgE$gThTLKS%A8OaQi zjb32klIu8mHoJq?o{7Ih%oCPY@BF)IRu7&v>(B&C(S}kS88=IBW&V`}ju2r!3Dm)7 zY3f?|7>%%+#&e{Wd)v4$L-e=9J?M zM$;5tXCuM1=l`=Q_9hzY3r;Y};{nX6y2 z)JAHH3IBhs38m;sA~UT-XcVRa=36TbM*=%0P=ajsfK8MAtN+igsKE|_gU%$_k85XE1nz-BC;@Qce7C`(|h@aS-{I*L1~1B)4X z(gy?En|<+poXLk_>FaV!USV-69O$cGVlTLha7*9+5oN}2jWNSyX?q{HKM%qJgJx4S ze*SszYu|-41#Ms2)t<45^}PZVcC!12=|ZZ=grQX77fF*8FU3-6v$e476AED2cx1t{ z(a42mgOU!*1|3HFR)7WEZY9&T?pdxom9y}$$|a(E9C zH*UFIjWQ~hs#^O!D7Jv-6YUu@!Ta6q8Dgy=#um}3N5|LrUvyCM8^&B%?tHY{|I;u6 z?~!a|fkb=C<`d+A!EB|~;*b|H4TQsi$#xd$a$4wo{u^5w?<^?1o!l zvB72-8}uoSIK;>%_cV=aKJ1@X2`ho()*?<4(UOkS>D;XiloBupl%zyz}&StcrZ_9qR{U>sPkMlqRuyqtZp zXa-jN@D-*7mBV6D74U8*;u8352gWaan5HO(Cz4VD?0+=^9*CR`OQ}K_Hr-Oq(u;e| z;0x~T^KMN!F~r`-Uq#uQgbxWQ1uL~ENmCB9xSO!CWrZ5+K0|HpMRj+YJwsVh{q_p= z69>=gHs7cA=P3Q&eQL+hGxzZ#4EJxgbpv9%?)U^f{-j(~MOpiqnT-tXMV~VX8of)^ zx&CJ8Pq3UCDodG3n9-Zz4$S@y@M(Iy5ti4H>fyVvphVd01XVfpg<0ZHEPfl7Fv%wK zU#45;*7=R-4U;2H{`nP*EbX>(BVx6B*=XsGDR{_fAfG!iDaR>z7Wp>9Ql1)E%5w;o z^6Y`7JoT^)^af+yYPI8yfuhw(mNe!*i(iHVMZ2@f4BPQdpoqM@`0oqhm0z3T#|Srz zZL}@6EysvhqxPlYhp$m%C(K-9THYHJo^mQh$Wnp)`^^gE!i(5AWy4Z|On55xq{C9N zRFSDr66|kacLcD=#lM^U7;Ku7O^Iy1;2wC6aKrY1|Fw`#P;eH-iGSO;`~h{U&)Yjj zuSkl~n|sFSMPPlW7`?b-j9wobqkCgw^vdWM{fs+CPjtlS4Waml#PHlNMo;}cT95lJ zTA%q-v|jQuk1DtOMT7jF0J1>3xO z>Q=9Qw8E>0fP}}rdP%ugKmM3kcdqy9c@KH@>{4`AdG-Bwc=d)wUfny-tC!C4>PfS4 zPxb11$D?PY5s6e^kwL2d+v zILli9BeyQ!(((VqIzNlj_Z;Tw-9MP(_OY50|1KcqexKx`cZXw=(Fz2om1`Q%IC&8#4&}QTV&iY2NzS| z9155VM2t;Ur)l-~wM}n?YKFM%xR%1Io;c2JrRG(KrReRgpsXqlrC}Y)c96onQ zyF1+}#>mZT^nw(3ndcd1-x#HXvRZk_m9E^NOjim$o0SzxhEm+_L{P0(;<-YxyJe}9 zrr1WGmQ$)tK;&HHO57oE>k~8sC;};<>2bn93aG0-uvvZ97P=Gv6`-X0wkLR?-8*4x zlzyDJ-Y3}`<8Il4ZGpX@929_7!jp`jE7S!8q{_0|W!%C;hZ`;+a=M~S#P2G)Jb-R_ z(iH2q@On;?vCE_nx6u7b#&=Lez+@IpQk28fxEnLtZ&mNR^lkTB?w+2n9s3dzT zkOPhqXFn(fMWDT7Mq$YG%zxX-IwNd#oSp3!wXyG+x( z2gp$QmNUy`#42K_h`j4d^O50BOMWET97>JI*BG~NS37kqcOPiC&aqA#?b3pN3Vz&E z8ob&yI=E}lgy2KQuI+Tq8qXKbFYVd3*X{pQ=P6s2lcA$RGeiIG-loiVzT+-*9&(qu z54zrPB`VA8%at0}0oPluzq{Ucy{#S67HBtV3$0^;4Z2hxQ9rRp;Vm#x40xFTqKvDILJ9v-6pnuoqMc z)3&AGnr$0@liAieSjS*$lw--)#$znVYmwz$(|f+1Fhcmfy0z)_@O-~T#FL2=w34WF zyKJAu3}oU6$g=a1tzJN;kNvN@1?0B+GO=|9vhR}XvmPMHxTZ>t9WHO#J@t}lQF(X7 z=pv7vFRiR7Gm)iE)3OxhQsg?yoW)f8sk*}+rd}N~#MnX-wjIVRRcgoKA38g`TZ1PB zPYM1#I45{=@N;Ul>u=h8^-GuLn&D~;j%qh9NDrFr+8q3MX2P+-#qIv?zS+6NF4i)} zh}fle@*Q#3I8V8cs0Uqdx_(wa3y!q64>JvDrSmT5GfvZ7)`ol^w4+^N$aQKE6YX~A zM&(g;sFJ7L=(tyr`Qm2JShXQc4&-)a&ns93UAZ2Pdy!cHxA@oYrps`zfKxyMXw~r8 zU%hLWI@>m&buUv35lZ0w)jY8PwJ)>Qg2p|p!-Um?8c+bTt4F`6-rCNWyPx@)bvy4h z{BWm(6p#SIfdWpwiv56kPy?z!1tgHXoak z{>i>M!sjxWbsQU+r?k<(__yA3}#Y z?ovN-4+|aasCSQ3KXM;-A8~)^?(5Q(KCWa}wL3a=h~snjBlb?t=hTPPR@ZFx7ki~T z-k#}jXq%Lqlu&JP-r@L?VJmOknf70$$ zr(@Gwl``cA_Z7|(b+b~aELR+!%a!@cY*(2KW$d{5UCa+tD+D4Jzr*x}JKTq({t&kI zckJkG<~)!9LcpoFusg5{WP&(QSIf2xG``6o0i_3t1LDA`1K2*;3rau%Xsp3DK?rDh zgSiwGf+MeE$DnTk|53n?t4eI0)3fjNtyGqlW%lgSt9#Ofs;H>UgC$i_E^o>s6_Ga@ zWq%Lq;+qm__a?0wV!Q6V|Eg5m5cRr@F_Fu=dsA)KO_)uU2RKG#m!tXPJbT65va}w(Q^rYtb0g>MO0~_ny3?Cg-u~MnC%>3# z>$cMO!w~y*lJEN6<4%)xM%TaOR)3GJr=God$wXfvgPX~5S_~%EN z)5ULhx03u+dr7MOAdPYVuG4p&j$B0fX^a;|=SF{mc{S>Uq1g+IN`CKoNwPn=T@pCe zpJ*U~10=9IauH=EvOfbea$}8p^^EM2GiGO&RYke!N`DV#gb&G{SaNzmuf*;VyQW-! z?24f7k;gJJrd~H{OyrdAQK_~YcU8rCNcN$M$OUV5wWQjrHivH~WUUCC?}H?AfDNzn=c4T^KpXSo)?qIE!>hcgfp-!(c>z*?A>P5_jC@Pc6AMp~@Rqg0))x{;JI# zFa8Tn{|^HJ_;(cl1>(Q!!;&`s9mIdG-~YU~QW2dMN4HHa8B^W)ZFPe!CVNuJpoE?S z`wmVSoZYKuzadG9$^B^Q_x`RHhD_=1!Js0qHAWs%Q#q?HKBRWdAwu7T!O2%uL{6rb zVuHclN_>7B%$$6e-?QSUdsS9TAHxvG0; z%+=i;F=M-j#az?f88fbGc3h;bq+N1y@}iPRdv&E2=UL%>ExFZS!1wBQ`gzcxYyHd~#$S;4>c;vrTIG7k&q__@ zC`n&Qf7s-bB^LL+%5rovS^3gmAVs;);ywNhn-YaKZDf+Dkj8VVOy1S*YL1it_hxZJ#TwH@ErAg?D^F5iKouy1(1F`dXx@3 z(vcm#I6h^!1!_OxWC`?-F@WkDj;Nn&omz-k3i6K832-gg3Ch9$$vu^Cv;UszueVe- zm)uj`>$=n3>P+!`X1~j}RoTWD`|)xfbe(fP!ZAK8?BeUIY4)}kSpV(%D(jzY1u1YL zklHqX5p{{a6rtb?Y66l$eFJA3kO?$U^ErD+5CW+EG4&Z+XbJw=fM*&F>fNDEqBS5M zuio6i#~Xvo8i_()EyAD(%mmpW9i)H+5C=lQnXfpaS6}x})noIUo*ZT61xPsy1T3^2 zf_jnMHoP~&r)|O|ep`JWDEUv*f%HU{fgO-Lnfku-9uoOSJOc`HTyLA;56A?c5C85W z`D^5JZQ_50+&2D~$nt_(ApH+;+jus5-eVme6WS;|ggc^*d_V4yZRFLs+ZO0=$Za#& zfGk&Wfea1Ya<>qW7vNq^{^vdB;cnMPz7O}xHnLjlNTkh1=-am zf$}@yCy-o?H$u~PIoWHoQ*Iu;0 zY^zd-kF~4X-_&hNhu|*C6i>0;r<5v>DDot1jAHZTxJ#Y)Ic>p{m2ZPoch7b+ICmX) zb#1pXY;{nCGSGOVS#2LW(lyJIYY+B(VSL%FM)g?#BYOi{bLS~GZg7pbK{;3jia=g< z`|s2#YWtb!?nN&PP6B6eH-ftA)u&|nD?N>jf5J~}OmG)~T#yCQKoV#g%+d*m0BOuI z+ziTv@e%88?Y5UpOKY?m=kLsm65e2iKVyZ*^WCGwzl|{`;f=l+vv-1KnXTPyMfjTM zL(=-EEV(1SCEeeGJk{UY^E}&wD}#ePciOkm55vN$)NkA`+9U11xX-x1b9D@xx+fn!9#yktKh{6H>x;Q|4on zo6YCEOYxB2dco>F`Fd64do8)#3SYCx?5s_eyrtNbvkWtXiA?dbm#Hu_(4S&P?1jAF zk|*pjpBp#&36k%Y^!^N{XyqO*CyBB zT$^1_xE^;^xVE~s7=Qa+Z9gW|HIoM_Hl;wB#I>wl>k+!u;Zeq^@yaLediRBkUGrLZ zf-}l_Q|N&3ANTM=g3GHnId}mf*sG6Kc{u@p(b;e3JptU6 zaHY+w$4B#@2F0sa{fTA$!Eio@;<@VATh)od?T-ZU#sINv;54vF^Xg}i3#)sp%tphD z$RUv&(%=N3ftFBSO$Z@ppn#@!UcDZy0$xyoegR-U3DzFbVrnR93-PkxQ%0#A#lOPgj;HooQ{e zg=@XkixlI5v}O@<67Dqd2Tf64eGjMrsi2&&Qcwu8t6h=WtM=hu-olX7QsHc-o;4hd zR1S+irJOnZZ0L9<<~eRd$+q&`hF&^Y3bKr#Xl?o67MykB9plv-;Uhps;;)5#M^7~8 zE#^Qecu{UJvp?GKd4M_#Xi)sxOVv{%xDKm$-!>yggO>M=#&9(Ja!N71y!Iz+?1^S+vbz6 z^;XH+KKKfhbPy%|RGnlz)KTj+>1FqGDy4O2IiBb7jd@Qa=lTmpzW02y=kdx;0vRU) zDR2^U3hq6f7zp4D?rng=#%tHxBU%Wr1bP>*z7tL|ZtAR!@eT0jFMG7nA+k4nF!X`2 z1kYggEoZ7aGAvZPFYF5CsQZ}vGxw+NF+uBszI6nykG9i_jD!7PRf5;8=ivwedr@3fJ+h1TjQzS2UP(#?ji3k=fLxFT z4i7N5WhbqrVAb{JQqgG1HE)|{@LpZraOs4h-zZ97y11TB@ERk#XIy67AWk zzOG)T+@U<`Jn0_q@VV}CA9HMM7pUKO&vbW@XCY&32{yuS=PAoPLzVknhVr5-)3h1h zo;pR5T7chXkd^LCl8H1kXvJLvN{qVuiFFaj@yqc<#RivyNH8 zU$hODm;(MOTl}$IJ=-L{lATc?SX7dX;RHvYb&C;i;r%8tq=ulO!IM1mjCnn^PFFwY z+3R^x{med5z03As*d+V+p}W*Zx8`_Gz1RJ|bF||Tdn)_W!D^7Bog>t7MqO`z*FH`? z>R8GX%_`?vd#LMxqpPE5n9jRfANJH1gyp$!bv8JL$kJzw>7{k`J>_}9^R%bRqq-ia zmj>DI^xW>ehE+0M{nGsf4=V5F5oS7Tpgho&N14)7jRP<)+I=Tn4pxB{WWUv>z)AS` z$7+EWv|K_zfIUD58mQ~XNblzzqOZbH0Fpp!GL{UIK{zPvODFcBV?hWg?@eSdv$|7~ z_NT*_JA}A{NDR&fI!FQEwBkJ1vwxcB!hV11g)go3>ra$ zGOh)|U>#3*<8!=5Cbo+bGSn3N*7#LMzcJMJLcgHeP;~8t1psk#qmfHtB4&(kbHy zUjm&l7oGY*IzDRO<5@GIf;I`=h*C>H>3`9gjZPdU87R3lZ-AywC)}6mF1abuY2h2_BS1)9p-Ex%iqh!v>{rr40F5_pQhY&Dbppz zXaFK-A~)eKOT+R(-B7k1pcIS+@gQVq_1iR~Q-gtwS;_yqrBE@ym3te&{lWCT{Vs zz`YH37JLS-s=jF$o5hHH^p4<{3~S)HvH3Esx@!u_Y(i`r&gcg@ARQzEC)itko31Ui z`*x-?1&zReBvTabJdg^Upb`K5U_B@V^I7Eb;XEKM{Yz4%^~_1}KN*p(_!4-e3D7AW zXueGPM)ev_#V^_M?$-ncTt0q|c;jO$;doSAl!j7iX z=&)2E^0rJm7xzqI5Dr>KVXPoO1A8K@1QdgU>K-GtZ`Jk%q>%@DL^vjwQK*w#+GwA{`F%byKTAtE@Tps@P(0g5BtJsKSt~5 z^SZuv-=!`Iz0wh?6{$CB!<7M{Plk?gjSqd&+0A1X_BwUF|HU{tO(d{`9H@Ndj&=>A zm+i`#t1xP^tpOsJAlKp6;Sh0ONn3$pkPcEoBFN2RozC(G>mfK=t6v$T4OM-6dFx#V zXFw$=2c=*sC;&4-E|5A*+}q#(fOXEC%Q9q{xZavg*HTB3M+IhAOU|(5^_HA%$>o+j z`6WKp5rf)gq;YoGEMliYoJlrGjFJ{B@q93?b_Vo0xz)h&{gX2?i}+{$9t<;r~LcPOPmx-ZvUA1vkFS5PC^p(A)?9&Uj@(vFkjh4dC?4#uxE3Vkgu=6PM@SJJMuP^6=Ai|3* zxtKdhkt-}Yx2tsovE(T?nekgK`N#QYeo41U`lGqZ{-=4Q&GUQk>EM3rjYvx#Mg%$X z)>!i3Yj|>kd1qmH>$o?}aNgk<99H6p z^!$%wbC}JYYhS1I&{il>o~g#w6WCJE@+2w)>FRlk%e6MF+$qN&G0!8pbR<1B7Ct%! ziv#tO>3DEt5<65-n}gYcvTIqVKvt1zT<5@t38SeApwiFRu_~W>!UY zoXrbs#(^x{A!NVwMc=R|F>D}lT=A-8~S#tqkMPrA0@ zH5QZrp4#SUOI#_GtR7K;j~b8WXg*gJ&OA^G_^rT6Xr)q*r+>{aI* z&d=Ym_>+ z6I>9?qVK6}IuN-Gc`WXDSOHZtX>8CmgSMN_voj4z^G$abr@3N3rOTMi}QO48waZCQ%gH6O&4#w_Z&7j_458{yh6w~!w&pgiy zt{3f9>JQ2u+DWXj`F7ZL-1qH`JQy;6?=c<+c{eMh?)W#nX>6{Eu32& zJy(0f<|~|!_01#w1=I(39+*fY=D?XC6(oa1kc(axkh*Mt++0EmD61SaWMB6qEf_Z!2&e%&K{;3j+FIuNd0wAhR#S9CQ(^F_v4q?!fA-zYQV1^ zzec9$wtkKHMK1fR-x>VUnY!ERIVt2R3R^nx`U?pr;90@#r+?v0Y`NOx;wz=LU6{xj zc1i`c75Uo+v-Wk!qUZRuySeaMFB&N&M@KC)`pwq{^f>N5?S3b0veM3dwP(FE!z1st z1o8j$c*AkVKFZTYkr#nJHtwFU_4eKDS!wUAI#r+Rn0f>E6$`lA7h9}Y#AHPOgaeT^ z=3L1RW~s!f_Tte$TS8L3%z!}OX;^j zTiDK*bt@f6CarK9NCFS@h$ap`NK=Hsj-I?6b%{9@jbPgrPf@j{X7eokoM{O;5m{!D zuXv*X6(u~{3{P2X{RA@MLosUe#%O7~H9Q!;F7z6sY(P@>| z%Red4bS!mtGp<>sjn0#Y3fr~cf}Ym`N2!Ngn|XIl{y4SV$23b?tw7{l@eU3CjlQAmyIw?^kKvR9|Z;3ZQZ|T?jXWMvy^akH9&|h`a87rQch0bPv5#}kcE0MK;@s>0Fl?gJaIe-b=X;Mof}d>{+Ah$_GkEKB ztFqZ1;gVc=*!Lj4O#|%(BBvqO;@QVj>g9Id%5egRpX_-f9&yJKMpO#57Mn1$E9%Wqjkk+OB&(6Eu zGhH{hKIWa)k)hA2BSN<-&#TSOTa9%OaX%C7j`5#Davx!?BhfS<#rGm-;%;6?CLjsa zA(w(;!1ZgH_JZ0W;W3K1p5YCL0|lIVlxjR`eDa7k)&DE+CwOKY$~3Z`TRfT4R>zuh z#l5EdShFebTy4oaO?mHHQy#y|lxrU{<((`^l3xA8raXw@E^@=8raU6cl$*+9%r_MB zpEW&N{$?uddEJziCrtUC&Zg|#YRd7GO*!rc`WV_coSR%*s2>^FPkrC12&ES z9(XJmNb)+I4B~+kv=ZJ78bJf71N(tk_$was9A1Kji#+8G^L4`gfk~sL&YU!A>ij=0 z_ODsyk+H?ppRD(!2?kT_gk@#|f6O({q`8)S?tAkHxXO|C9!oy3#0)=yOWY2hIg~ zM*9lQ*Z#;BtOfBDTnqMqZD75zrGk!;+2;P!rm5E*Hcemu!<3JHY|6>^m~!J$Q~u*g zQ$F>%DbFh~<<@_i@}gQ(4mn}Ue_FElYg4Y|QG<--gr=Ab|8y703LzfJ-B9M_ zzp-ws7VApbM)Q+K`IG(=-B#^Zn=j-kRtfx|QKq=@z)W2mA90ymzv)bsyrHy{VM$hLK;$yyOx!u*4>Zv7 zEX4=4APK~QCUhDA2bvw)Pxh`Q&rvN<@&bOa*wVA)Ahwn#ePfJ#PP?aFlDnt#U|1jH zz2~%7Bl^03cl;1G$&u@L-mx$2rLf+{hUc|T!~f5IE@FwjLV40Y(;oQAh@YObz1Q%Z35~+B;8jGTN}~LJB{J5YF%yPj2W+L z?Z<6*nl~noxNi2yoyiP)XZuV3cbu3bUn2)%9tTq5a^z;**>D0-z^VO=8c+;E_E*3C zsupSQm-#yD0@wp|kPM_-2JbMJv=X{SiX;2uJB*;$weDfFU1OBTlnL(f?uo{r*R@_V z0F}kP6J8IB!B~)1!#yNue1paV zOFmGzCRv`Hu^EKRi83B7V#Y zAdh1jEWIx;xzYb?!_3+KM_&Op-(&Mh%WmAz-v8Yh>`zLfh`*!B%wo`>yZu=W8l+mE znJvq>kvT_ZoOzy4)iB=mkYBTTI=EDOCRolX@@myOj}{snx+3(>(4f#eLca{{<~b2M z!|_$?Gz%|b`-?hNC$n|U3 zFJbSyr+JTDm+7w=EG=Q!s&3!Hh* z)y^*V#qEZ;%pchKB>0$foO-8cn-Z>FA9k}lO)XKjE4ORQwB_1TZI5wjtv1CslF9NT z*DJ1#?n31%zH*lfn0u9U`=#t6(p<}x#azTB`kyk|mHdzC$+s}*4;fwzN_#EjSt=b-1LzGRRqIz1LHpq6#ObUFIEGp_L z&(Y7a_NBa_)mUw_@UA^0oJ~6+=$C!<3h;GRIN@vNe(UPu7l4pS;YRNyb_yZT1j3 z{>3xQf5cwHPbJ9_dyqTTJ=i@ww5M_46W;Fh89#oaUCJaA*!aHWc+|a|w>zDx7=^h) z%;UzN9|ze0D&^@W8Gd+ToMPc6MmeIftG% z??=k4>C4Jj(1j-#JS91o|LM9pD=18stjlS1ks+UQ$C`r-Cy>=J9_C?CAW(8RdF~ z8^5K>?vOV<@jmBDrJL44yWcUx^PPRN@`2i0J7*uHjnl?!+m&aO(Vj|WAwOp2b1Zfo zbiD46-&tA9J<n{ zicSJ&PS8jo?nD?SNnn{M7(riZpSpAKPXzoJpq_lfIQgYEKXgCtO`yVL{dJ3*lN7;mG-%B#W%D%UTgo&5`sGqEMkx7;P5>b_nHLGtNEBY?qm=T zoS^kuAD(x> zge0GtV9o2MJQg|IKVis27x}zbKK0!Z+~0L1_@iL?4rD!-uix9=wR!Ac*~ck1zV6tm z_R;F?&%0)LCM!AE>OSWi?%^JvYgkw}cY7X_$(JKtwde$7=9`ju0@@9CmcsphvM=BFd4U46s4w@cJIYUPfn)V80I98up?S7`T# zBq}ef$JFIK&7Ea<{;jq5$tNZ2+$&sBVMBSYG18S5mhM`@rzLW9-fYh}|9MHlX=ZS2 zv*t$@I}i_APBBA(D*UDYvT*Omz5fU74CH}S(E2@V5;zXlf^3k`jNiB3SiRv}MhI}8 zWJ>xU4u(x6)>QrazqQj2U-3`GCg+kCufFk4{)aDM5txa8F6hSmm<6YS6BvNw61og` z;HHPGwDY&;FW+t&T@hUiE;S-2H^3!m-g2?7Z9YXV~qY-@?vV@A0fw zxf6JvArFD3^FvCj`FcBB>FP|P51s0ZuB$v{?qYX6zimwD#vR`tql6Lv}^0{^cF0h^=Ih}+@)|TDEp0e z2F^3+{YnplJ)jH}f-H~*l0Y12{RJIx2$X{rARD9rFKGT5>i}gS^JgcS;7A1CpQ{hI zXx|4r%33)Y0B5W5?(f<`U-minD9FkmOs=?7K{7}L@xTktvKMf|t>^`M-s(Z~8J<$& zU+%Y6y=HA+{~zk!KCX`9fcxF^vgiE;2nmpoh9o2*2~m;|#du;)kR&9cVnjuQiV+nf zR*a~q*n<%jBW*FFi;5K$6(d?yEU2`_6ctn2QbnbT7E@GItQfIkM03A$W{yT~@AKUI z+~=Q%&*#f;ezUW)v$Hd^uV+_2z*PV9F}WuVCT=;Ih!9e z*7AJv`@Ssi@!kOMQ>yj8<`I{NE^|c=C{FW!@41yXD(TuIo^V&<^`IVBxzx<-Nul8o zJ89@AE*V6cAesj0Fw-^n^fPLs7idqNcK(p{NcX1A$G6+Rw=T1;8q}u;Dnt%KAqN7G z0cI>7V*a`tFeWHRUaD z$%tN+VELWWmqs$!FMWSx`b*N6tLZD>kbY22_n$2Nu=1bXApNNF?{cM9tiX6kMf_t( zMocPy?^DuS`MRPQXYT#E^d9Axy&!$8@=u&5eWLPru%i}Fe;!9w z5f5*W30jq3@VfLJ%6~i|eODxdI_Y~N{%+~}lz(`q^aByk9e=SxH55<`6yhgEtG&8i z+u&GXT6gL^tH<0tZJlN z`6Bj8q5u=hZ+=MnQ0n(G!!)amC{%t|uk>}wZyAujNBQ%vkbY8movtYskakGsckwCG z7b$P%>c5y?ul!uO$wOMNinz%k6Y#dq@Zfbem;c2K>B_&GA$_s(nX1t?DF1zdoZhGW zA683mHOc(e({)9D8OqJcGA?lPEn7C0q-YP->hVqyH(~!`8nm-@90+#+eT;mcCIH zMxP^nYou`0b`*u}QvT|%rSDh%8Af(7y-DTwXh`}IHT{i0N8n$}jqZ^o7dnPfFjR3h>hT(w9ZjUm|_AIV2aDM0JY=G^hlR zbx7Z;{MC<1->v*1(u(v0%73s)`cdWQqF zOl{*f<*l`HdXMr^snR=ckbCntuakaIP3K3{;RTKsA$J^2em4E*{>GPD=e%dyBZufa&g4ZITj~E~zQ;DfrMJ(ViJCaCJ;MDf9_{k;Q<8x8FV7uX zqV+VNIIESnvP{lf!#{UltW{ao_;szx`v^}Yi$6|ac+GwW%L#z+^|Pig31nmPnUD>! z&@+=T6skl~gi8o>k0?R^+~lkvO%d?q?kqhNDoLCk7{d;s1&{;$`aO^eiQs_)oPtEw z>qSb!xcY-4T|Zp4pJgmd)YtF{?n@H&`FY}& z$8FZg3B=9JAXd15Zw-u6pfM2Mik~Fh^)rS=D1}1sz}Rdy5@bO-B+qW&pQ!IMhbEIa z?q|mQxnxFo5PG2v8lVcwpa}9H3({dfwU8>}!pBGn;oljF%Q|8W7eHi<>6HJsH5LyZ zsp+Bc8jD1c8BBy33xDtr5Ux`TBKX6LY;M4`{1E@+3vR?F=>8#I{s2l8Y#kh)?_9ht zigx&dMd@c6zfaN^nDUK(CF%3mimE@#a~bF5k)QgDs!rrn4@J~iF$h02k6I#Jg%&|N z4CAZY*U#0zG#%4R`YK3C=93WU+tgk&+6eU^YSFyZ9zJ#D4T0f1GvXdtigEdTeU>S~ z_~m?kId2~L<9t1VrsfCKy7^=eYX847aG2ZxWp}vXw`mt#DQSbb) zC51gS+0}vYE%-*l1!w>~Fo_=p9=ceh|JpRSh)-(dLh_R70T&mS4=m@L1TPk?X~DH` z8VeTdrWjh$OBXN7jdSD-o zxSz0WxV>whFz!p&7x=}G1Pb|)z_Z-c6i=o8JzYPB#}fWWPo<`0Fszbe8Hg6pcQo6I za4wn#8jKyqCuP6`lT7P@4rp$_V3qE+L=TWhC!`<421HYg8#44bQ;TtThCVA~@F5PT zRlLaiY1b^@J3jHe({o%`oynLEEwH zrO7=DL@A5#xrD7~{c3t1WI;T15nloy-(>n({G5gDE058yF^5vt(6C57gvP^AfT01p zpcP)DMjO#usDx4|gj@(h8i%HQx>cz+qv zN>xPhV)@W`jq*ok$UELG$}eSKBQoq&KK@9#!yQpR;|}$Z`c7GZ+c+x{>64W||08*a zDu@?50uR%6rx<$z`VrCL+Z8VoVdA(yH7@YD@o_+3sb~2vx7=&YUBkxO<@=VGsXwU2 zxz6xaJ1fikqgMnO1dfv}BS<)la4K5AmiZwIQecw! zVJK>!dmICaw}g2INSBQAW9Fd#iqk`uE!bA$(slZ6&I)W0vJ6wEey+Ei1vg{UQBq{; zhn!;s+n~d^@_79sR}sZahLkMh!{hbsPAkQ($2YW}nWZ0Ta%Ql4eZ=(}x3AZ4bPi(+ zpwO7TL2q|eQwxcZw9$BPgML?Z0X5T!&p|clF>czZ|1r9dN~^)9qZ4R-`)S$wBJ(lh zn@Iv$C$OGq9~^#3cnHtNKP1}iX$NIHE}@w`Y&^SJpL4-IzFGc&OFW$XPfxdRlkYk2 zNxmxm#vk4xa-Xl-o#+$yjgzz^!@oE(Yk4QqMOa)Oi0$gZ7ZUEuVbM?qMKDZU8}Ngt z6ZAN9sQM)8gtQeWGmaB3hJ4t}DONU`0Vxm<4%kcg)X**LI>(rA2nImzKDD)CmDX&O zt5mIe!WEqDh_2d%7wIC8uIop0_3dX&=u!!*m&wQRhLm@5YCMPO+KsY{9jcHSB`F_8 z7n{Z8fbtWU%PyI(d@u8hE?KU8+WT_;I((Byyj>(T62A3zhV^)Bz?x;vwr;X+ww_?k zv7TuCy){-(;&kG1|Fizb{LlEeY6m@r>o?k?{-^xniOhFgF6UzRna%~y`<ZZJdJJwO?hlLNQd!L*^cY^*9$FB z2?dY}gIgGnArB@_p%FnPjOVgI=z>Pbhp624zn-kWX?Lblno&wHW;}6*eulFKn*+Iq zH(!7K?D8|o8hW4<3LzhIAqb)!{ja>Ese#RUnz80geb#y5cQpCr9xvD9Qs;g0k=pcPO#KNS-Gq1M%jXxx zk@h{|mL{HZa;gVIZgnqk_IclOj?q-IUFkF#@x%6${COUS?-tiQdDfdlPZ127U=_A(iQ2mPLqDHM*7@*>91*#zF@1m#`g_1EoLY_MdxVtUjq(hqIp?as8m#9O5=FO!e>%BE7?qzGR2= zv3E=V{cogCx>x$`*GZpx-y9hc#r{w%Ame`NU)msjmho`0e%rDp>aGH;+ouPfW?*X| zTn(aEQ}f~9tF1>*fjr~vi}jZQgfCHl4A zLBcK218v6Tm+B|P^fS8^nxGt_e%}7qOZC%Dp{!DNVV5!Sat6`kxyyl1hFGw|IMarq zAG)Cp#Or{Y(ElS|2fW)Y4wag1XZposO5$;)4*R+OR(=cdJJUt}&~1(i>&f1ae2?31 zcOU-7;9~z)>;LRk!Nz8U@r z?>F8n++Y828Ya&6#f7vxIMuq)m#KZgcNgAv-Dm!mFJhg2b>{D;Xq7T?Jz48TeYlqaj*8bp3)Bdp%W9L0@aX;5yx| zFCHdM2Lx`QMWYXjBOVdQu6@OreC0^6O6=M1tkjP=|2W?U-$vhizG3%`p6k>G6d$mY zl_Ng_VgBOHE?dn3m)WS#@UYxsP^13T%GPyp#LMqD#+JadEoTeCB*ifsyQ z#>Y46OPwe9`z#N8?{@q7g)rAZt~6Fv>5I-53$Aw`;+n=e>ZC@SKJ`UKDRd+VA3BD;8dEZY;Z1KS6hS-Cn10{jK_3Q-N{+t@_4O#Y(*I zdx~?BVEB@wn4cRczh+S^G8=@?#pe-r{EE8zCB=kv=&#{i7Fuqjc#sC14eruE*F(*< z)F-6fPM<*Q;b11eHDAM1kc7oX9{YnjiDDzm!B##7EzauRr|554?zCLuzrbJU7%+`F zn)!rmwDyp<+&P!uw59rgVJX*M_0;&R{(HF1d_?$R#@(9N27Kb>98++EDk4I*_RzK`%I47A^Q zhklDWRBF(=?&65Fp3)J{hl8hczY^Vh6d#JYP}72h(;x}NBe(m~xSX_Ra zyZ0|=&GCB)?`8U!$P=Ds^Yx)KkKnuGgwI+h55*Us6TajX(pp7_W!v7+Ca+obDWCa~ zJRzS{{_(fu33lR5GW}y@mdG*#%4c%ZL!59I;KjMY;Xf}E`9Dirn$7fbrpxXiesy9G zU-VzoVa(iGA>+7=hcvkyw^JMr;7Kh8r zldz{+eqq_AJz~Gl`LO+T-!+yc{$$f}rXk}4LqB%*RsJ&nOYUs{quv*NFMFyy_vkKP zuj5ltDfOAsM1zlJrB+ z(|*%K`ZSYMW4(X)a3(e5q1yPzqxu}n zHQol}+eh`|=fwHN1=3z`0(%xdtGkD>fmA`X6XhxUW_|u#4cmhqc#LRhhGNJD4{$2k z%x=_KNV**0qQ)Nm@pajcv+B?Z8IS_;@N^3AHUZHEwmu;rLQlI{cA)|KFgt23UwGr2 zJq+{L8nYhPXPcfdj(J>Pvo_AZkNu)3Y}AvKitKtp_^u}?A>kmJ2K6nhF62W7!~#E% zd0fBIysDFVt04WijQnT=?4?M1j;6Px3T z;p=jGol)jWEi?Sp^Ih6H&pXDePwESf-RBWso)tx^e2U_*h%6939iL0MsTB`Hg!`Zc zs)1WhztwLud&i$s2>GMNxU&}znAlOfIH?)b#PzO~|21SquqV!_CnfiO# z1=~d-cqnmF{@nE@&N{95+=t`|PXg!NjIUb0@)zAAr`J9dCx54W_-BE|0`_f_uac}+ zGmM-dzcSm*))Uj~xVT{=!`?4=U#ju&)A}5$@1>{p#p`eKHoDJs|I^#y+UMG?9q&2h zTxNN~cc-h%d4=m(&xq$j?Q|`~Ps{%8v1q^WRC?BXR$I=t7Fgf$9PPQ>^_X`ZA7yPe z4!xkyJ#n8$d`|4bZ3u#VQ}=uuQ&8wlUn!ET3ecRT)fbd_hR_%=K=LI56>L;B{#{+pSrQ8{!fY63@uG%aM;!gFYy1*#tIi$Z9MT! z=w6Ow-gOz*zM#9R6OHccsw~#xXKketq-VZ#(;l3W}>Cd^=c|P%o z*77ku{!`C3f4flCut2jq}8u`c8BHM`=5gu`|U8tL=zjBDkHXa4xEC0fNfN(=E zd+dF*B`AHBjtoJt!dMSy1K@$?S7=j^3UghtTPiG!knwu^ ze_qpLOrdVl=0W)z43KCO+{3Z&%u_Y(o-7^$!XL?h^3S&mzzPh+2cKGU<5Km3PbZ7%yfUY)tee6D{M@6|fhKM?+&<5}is z?Dtu(bZju6=l{-pvGG{HKI?=tegEL?s0%Drrq%q$Kh>4b=acfy)t)~0-`vsuD}C%) zT#MW$OO*Fi>sOW*-?P5t@Ow*MbN9QW{8#ucbQ!+OoJYI3LSp#e(5J6YhJzo8%U7LlYC8$`Ls z`lkL)bOm$PV~bEtdBPy#`SADVtdVDg`go6rkw z&;XTC47rdFWA8EkzQb5*-2JwGV{|9MB4~ta;32?w^w(|C`7A#NnjjZ=ap-=184usB z-LEIC6DRWW*{_?!rR8HPfmTwrfhg_7zi8KlThJOP01r$OHwrw6vtNJIG`E5IYG4F* zQQ>u{JiW?3{%Uq)ml)>_>(fFndgi&RxYe}A^#{vrde~DBozUwC=RtV6C#= zq;8VQpB0I_Pofz4A5mdsIRU~u@YW9~+J{soWJ5Y6!U*v_&;lip3JFnhb1P3}3>nrh zHLvSr?iTQjaGQ+6wh@k;3tkz%esFR4+%FV`qG3PwoF*~};U3Fd^#&!{@+fnvyo3`jBFZLq|d_{i*MT+~W2y!Tn+ zX4UcN>teIr@}=!4>MVz6K|XYS%DuFmrZi*gXZoDAk9bP__wkvgOTxWEl&$b{+CTXX zfbePfVZtN-rcBTZc@PWyw)ivsTxT`GLg1l|f3wRA)s4~Um~9l@K9_+LJ;()!oeZL9 zaWke2Uj%uO1v5#LjwV4AXfVe7L(m6eVBN{Z0dX?atOnA*lMmN6v_9qkakjj^FmVgN z+lp+d*I3|oPGLj_m(7x|M2)SMHzUQ7%8u)KPX-r-#NJV)dFzkzDrFXFgnwv07ciJs zuKaQA87QmPq5Rc!PVp4NpvqHh^4;PykJ~F`hBG)`7FRtcN$_jFeDkU$gKOle)}yR@ zJ(qg^&-!_Z)b;fwE;-?K4Pj|mDt z5|r18g3^ZqH@qTWhEu2#Y`9mxXsk;4U!}{7h@Hy+lML7l+JN#~7sv%n;>9u7B@E}B zscOl)q_=XRN^Fw?nAv*VGEai%>V(t|DmTr5;PNE z*M7=Z`bQ>b1Jf#jt1(~ehRK`!jp+3BQ1ol#g9&~4kstD-)H&`X_v7xnP4%W*`HaQ?wKzfe~Z zmH%6_oL;YdHivXcr0={fdS-Zr`I}^dArfq2uoRaTFEM`kt-dB?@^|UmeOKw4b%n2q z?^o71KQrI#c}dUH&iCKz{-yIbo(DW9YiZUat+!}LSiknXVYZs*__{qo%Lre+d_;fF zVR2rfed%j(&$a}$H+IZFFFWMm}Ue^2$h-@`rtoRCG{!Jl!#tm5h9k z^wFTaG@PSm_}}?`QZXW&OCu5;p@jTPd~@XoOIKSj_9ak^Q+cFnK99FX=|6nH)Nq?^ zb61Mbm8M(e2TLEIlWpW9rH6mA^uK+u^jxzoVY9sHX!AeddfW1@_YAf&w;t(}M>0C! zs(l>pA{CAqfnhdIoqa~2!ZIUJ40#ZQREP(wrG2m2c9%6Fo5YPIOhcn!h;T2owO?+x z%`q+ZIA;U~iO)bM(3$LPUdv>sLuWa_b%FisXbq5JJm;{@K60mjjc35US3hL_h0W&o zaWTo_jCbDWO5(=IwyGRp$qH{!Gz3r7fw3FGJ%c3eK~Ue|rDGr~#ZT}%V3 z%h>C*%{w-oa2nLZgXH%!(qHU0X>Xd|Fn#Rpw`{O{=>5q1iFefdsdt2T8|?C|vz%j@ z!x7R#V~)!<=ZvNwZjF}sFV^z8+Oa}AFZ^L)QL;|oj6f4vXQ7kc8G&R7cxcPSiRm7~ z-Gm3+6ah-12smJJ*)B09j59qOMqm)?p%i%4rpI=_IppxOD$oMr_K95;|5(Rj#|{1> zSCi{u*I&G;rki;Gxwx|Hp~5t>sCI#nQn>W*96?X;+1IgwD;Way614Ql8ZglsRRn$7ehONmZ%wl zSm-rw_1iv57>;H#b^z^!Ca4460~BR*n~xaf9h8I2)`xaM2Q)ze1YmU9j6gFKgLPW_ z-Wb~>=IMhhvkgX}6Lw!K+S&EfZE@3g6l>b*a^3>UFnX`6-L=&ESMQs~W7BO*=O)jX z5lDhUIJlC%6-h)3`2~-5yd&Ps9-`E?mP-@+fxZi{^e#};NSXEqy>49XK{1p31naa))0 zkSH3O3P}(P(bE$u} zZGnBZKf!d4BWT<`+cqooOCKe)?9i(G<@Dl{%=dEM6YbvRo8>ywv%`HCef(YbH1S}s z`Bcky-t(Qmu-s|7%e2Un@BG}t+W0E9A@gm%yBK5t;Je6qmd9}4Ztk)y@Lb|P!?Msn zmjnF^ooAR6)TbZg{eR)%^mDX_Tw+i-O3U9)HKll0YPHVewO{$F{VNz}Z}C)B07nVLN9bf8#F@^aHDLF?OXHQ9J0?L>vXhvKJ5U?pb%n#7q`!|ookLx zp-8=?iA6oYkdEQP|ejMS7FHhw?FTD31?~!J9lcq-$pLbG*v$b;GpSwscwD5^^JHIfzY{jjtk{j>bX{ z;Z|q{KF_k)w$eF9upjuq%3|9)2|25$1-w?Rk~1PspeV})RM44Jka6o0+eO~d?_vTY zkUti~5c%B_+eTBJv3{v-qgULL8RWI6RkhLl3gGUgwm+Lp6~+b2Y{#17+aFkFyU1cH zZFerW{n~8mYQKA>?F6%4{8>yO!}xfW?M9QQ{nDds(=4W(_8X3|ooh1nw7%H*Q@^ja3=Xt+l;kN;GZ=+RmTu`8ql<@LF`B+!Ygu z{d+W*Eu#aK#y3IR)us;P@^!XFre@>rb+)hP_1j_sbq9Dy)LYSkA}ED&sD?VI88e>F zv@MDDSYiU6foQHALOVF*TH;y{Q}x%ooo2y5g|HJl= z_p&fdH}t{)4AFUp&=DAeNpR38V<8DrAq#S$5K5o|YM>q(p#|EY`gQU~d!ZkOU=$|6 zI>GjjnqWIYDx^aYa-aZ8pbRRZ1{$CdTA%~Ep&y1}=phP=PJl*d^FS?|E*4FMWJreq zWI-;Jg!oql_0S9*&;tW73X|ZWx)LE3f{+I#PziO=3@y+B-OvjIFbw%46bhXL$G5C3 z#6vQqK&Y8UlTIKA*^mcCPy%HTMKx8RRZs(U&;ZTQ0-ewU!!QYsN!A#WAQdto3v!_V zilH1Tp?Z?--?E%cF-_14o#5ypQ?wrjUSS%ABJEQ#-Z#ZHWg|$#RQ@t7UChv6cY-h63BocWJ3<* zLLL-A5tKp&)WA3etwS5230j~Hx}X>OVGxF46vja_#{`lg3yPr(Dxt>APPd*wGqgc3 z48RCXfP+1EEF?iHWIz_=f97bU_~s!B~iY zRz^Dylm%!Y|DyX4PNrZ)ItL^K?}4&Cv-zE z48SnNa-1=Sdfum-)0I7t7~)?Fq(cC*ArA_n7|Ngms-OnypaEK-3%a2f24E0|VGJh0 z!2xg-Btbf4K`!J&5tKoQFG=#6K-L24p$Xa`WfluSd!P>nVHn0>0<3Pj7kj)YG!arD z4TdXD-Pz!a?2+hz2l|Bwc&}3%nMf+h8 zMqmsk!Rld6As#A@WgtUSAsvE{4N+?;1X=(^Pzn_uwtqE&T4;bKXn{89f*$CHK^TTk zcB3QcIA|QjdLSN>Aq|3%4S7%i#ZV3vPzlvg2Tjlh9U=a8K@ar701UwhjKMf$QOHTu z>SLQi6lBqz;?WdH7asDV7%HF|YGIs4U5D0-@P76WXg6bjBiaI?4iN$UFa#qo29sd* zvoMHLOnD<3siEP(1vzGH}u08Oh8mL%Y&5YGsu*N z5p@NvmWT`pLN4S(5tKj~R6rHfK?5{H2XsLn48aJD!9@F0XWDLYm}1&9w%ImX+AA-x zIik&H#kN;pWxLCEOVahW_N43WQ7N1QFMrrR%M==%L8%z~N6=9ihe;@xu5i zr#}}Ln3u?%XmlGFcXG(*+S&X_l9hQLFD~-DhBolX)hDR9;Bo+Ua7|} z+?g(5!h=jGLuax^m1J~~izVggK70>r`Wo6LY5?s(mvFnY6`e`Jo6*gzaqOQd5WW!~ z!@c0XJroRIhu@CYpgU0q>2{%$`{DvyLR7^Vf#-=BVutM$WB}cZ??U&XJ?Lv_6&b9U z!J3o7YP16XHu0@uI=&R|qGoDXk$Gqxx*9De{w%babUV-vbQ?8WKz!%`fm{L)G9eqi zhijBU^l5y-)l?;#fqxB6Mc+n~&=?9Dg|0xY=uUK$jQ61vsEe9PXB%^COv^~)>p^Jm zk+c!wo6#7w>d0xKz&rv?Bv^v>pexWq60AliXgrx{Jbnv0%Jj|X_z^TNG(h||v=6@> zZ9%U^gXm7Q8r_A)GT&~r2*1O}CdS``FG%C=_k#oynXm_qqQp<5{VaGUt-J<(9^Z=Y zMaNj6gN9o6pq450EHnwN|HKm3)t_22$H-&G0jYmQ2k?)eU8s#GsyC?cp+gq!wa^!G zf|Wjc`e#3ei^eSB1*}$j#Fui~p+hFE`STw$a}h5JGLJZ+S>z#f?68F-s`O%kGgP{> zD5xkk6Z{5{je0)~}#E8VTMQ0Zn=Ea3Y?y4FnXh%siE zb|S`ui^xwrra%68Tqryy&7=FgMwh8)hO_A7wdiWJu7$3G)}VW5(O}SR^q30NMZ+ya zW6%HE$ zhGGqP;*~AQD2IO@UCl!0i52)AU5p+SV33;0DrS>b%r~g!+elgmjH>yzgr;lS3T7^R zf<8(H`RIN$7hS^8osI5e4TI=jGy~oFGrA%ws#k29U0=(_w?paaO4F3iQ#wQG22>QP zlswjnwKD+D5Lbv7r9X>mn%bDQQ)Sgu*Ym7dC3-E}s2mlICh93# zp%~sAPs!G$q1$O?6Ron9P5hRPNv30X(b`7PoourqbPE{_pxanLAG)2rYY+Mf+J&0g zQFNf9Rkos{RW_q%k-ib#M!Nb|-XpM|KrImm&}#G`T8Zu_gK~5`8I+yp`w3P9+KUq`a7x3O82VxB+VKg48$l`uEK{H7+Ma>^r4zb z8K_s#J@&k>_)|FpF7aKG_F?kY0;=qGp)T@Oh+5h z9c;2%bQ_0F)umjn&CpW%3>89_1?V0s!hv2plip48rzy*JD)w3`vXyl` zi#9$=yo+*na$p>TiUVXb+JbJTtc4r@y!LtKA0l1Qvei<+{GzC$ZQtYgv5v|Ka}2sU zJS2*TZ?aZ!L6H4}*l&ofnMFa;!OPH_j4mVYD-a`{6~qB7NyCrs^_<8BLBsS6>m!b1 zNu}9AJftUv!${H;!d>y43{lpi>rLTmsU>SsEo+%3=4r%>ZLyk0axE>axQ+S{qcQqC z4QQO{`_K_o)W?uWPuc;L_7LK#hin*Ws915aEpl8xuK3GtIeh~v7JMXmi}jCZ0XxX3 z05#JB^Mq3IIp{W~i+COs)PktU*TJ6B=8@a@0F^2F?-tJqk%e-+!~*0_hWUDm#|hVAm2Ez&Hjv6B>5fDv<=Z_p0z(?au{zsYhQ|(erKOQ zT`uE?-4e-YMaD6|^>I zR;zr4T)llO!`1*JDXv*Sjx6ca6 z_{YuRh9OV=EFZ42W*(Pe&8%j5qMVDEUo^vd{A#l6LbnjnkG_repz|nS2P(?Z%lx98 z4<0RR-@)8@gvB%~`HE#GX)IGS8xOVHqZf+>W72S(Aq6axTuScIpYf+I!{2Hq~+74JV#o1gl@uJxE z#B-d|VPAB%D2S$=DXUVHjw0_k&YC$+Qn5$|3QhDbD`%C@(<@TNSth+98J)>-St2SH zHBOd7f5yB*vr&ifMMt>R%zlo3Dp$EGvZU~;XRNbk&IGZflUa)BzfI)0nW+vAs>Dyi z$Dd~#&=!Z#c?{Tn=w`GB-GX+ZD;SR&g{QbR=uY}qDr+Y4HOP})cu1QhzySXLsQ{u8cQD;dV`)Vr1zJtPn(b&>t+3&lr1$jQ|ez)vFVP=lD?05#Jqz_b5y#R4KluB(~o%;iEt{3 z#R9Ivh#57N;clf9DuYor2d(gV`y#!L3ZoOfU|+OslwdXW6QXwsolkYirb9%y8xp}^ z=80nNvtO{!O6Vq;gKG*ia;=$xldPG!OcF^P#_dcFP5hV1A|tWM&PBz(KAzb>p=OIX zKt6!xpa;<)8aZ%&kdZSUzk`~NLdAi!0~Osk4c&_`C7*5NCyo`wh?;!HG*`GI91ItC zRi}M^bfdWZ!5~=4ptyu)G}wM|r`@76id_1leb(l_7iE9Ah}p%d+7NypjiPifS+mzH zMz?U-QHY*}=A$m+bJ3V2_VB1!mEd0EwHNJ6LSkD!d4=2*lS+4$$!(md^kw2jx;?1a z0f_Te^HtW&R+c^C`}10g5&nyKQGJ4lrv}1fW5l!ga9_qR3}--F3=exELA+mPDE3S# zX0us*bjV>mu-86ojrC7*-RW%M{9^H9-P6!*bgg7mmQUASrhJjIUVAlRl}G80yh$sredoCt8VaPU4&xJqs;HcM%^zccW?O7UGjpRpJ=!P0AE0{(Dv7;{VCM zG$f+f`D&FFa?QkkwExFmqPs@D92ZE0{9UpakKHPB-bl{k z1U{8%qD?fQW(LnXRJ8YMRBWXRRBWX(bV(9dDA2d*Px*><_d8ri-#qqN42MLe(%58Ga(ePGlI03_ow1*tv`{!%XUU7=50mI%r(*ihbpB zQOq=!Cv-pSCA5=r2z?ukG_)Af#PS?Kukk9gQRCmeVvk!;z%i@n5A4swwN!%N$pBS` ziX6)BBq!sB9(&yK2BO9x)39c)hMxg*Y2Cz$wjxwiv``T*XA2Eu#cX>>zC+C>l8L28 z_Quv%IkROP%RwV`5vhYno!moj%3!FC)QK2+#ZbGAybc?30~L|QhmSdaVZ^;^pB^eB zW3j-aNi43pRN;3}`TeMw1C2p+8@?O;gu3lTW2lBsG?T%n4HebFSH!~mwJoS6)x-t$2BJhUTPTLm>IbEEsbal}Mn;(nfAeFw z;eMHJ5*3GV!{j5|jY;c&K&G>?ItBb8mNaxXn{89gdP}xQJ8?lRBr2R<(3T$6?1C`O@dSi zKn~dggwWtGaM4f0S>O%Wao($JUP!BqZdePVmSRTD0 z1vN!;Oc@{`E@|bXysAnoMfn+}R)g~3s@8<^1UnC!vOshQb)b`|6OF%+1)}LFKLXHl zP!C#+@{F`rh5FD&lou9hooEy~fJR4$ICCNpLqzOFF@b4l8XAk{pwrP3bOu_3#-Xif zJlcmQprfex_>qTAWkQosG4=&f3tEU;(F#;Y>rorphH4?&{r~|JI)aMpE0d@NjlY-~ z(R5Ttvrrpaf@(>u8EQi7Q8U^m;?wBgA|4$Q@#q9DJT^`LzyuLILYP<}$8X_rv7Xd)VeW}ws195fa!LZ_n@=nS+DjYC^6 ziP;c{C(uJg0y=`uL>(nDfmvt@nurF`m1rTFj+UdV&|0(zZ88$}+vkKjuoq*iABYZY zM|<&?pu=bhT1Nb(=p^1iqb{XGqRHspXaKzj%}2E$=}{9}jhfLW)Pi=RRO}KU7g~b4(JIt~Hlkj%1NEVOs2?3eqfpOfv{5t#jX|@}X=ouD zi0Zn$bzrg2rCKd}u1FquFT4MxdC09j!ziXdS9mk|AnBdr>nwj#|*fGBQH5 zQ5`KsZD>7eM>|mmI)Fx@6KFIVeC*ws7@l0hK0oHeec zicu4qD|{nsCOle&n$boP-%8Dhc(g~vqr<2LwO&Kbph>8X22dNChuYB+)PYu^S{F4I zB48rWiki_r)QXOyIvRg13Hzur)P&}vX0!seppB>%?Ll>P47H*0*Ren}19hPJXp+W) zQ4V9|H4nr{`_SIIzW1ZJKo4|77j!}gv_UJhKr=K!BQ!ug)IlxOK((>%Bm1Y(+9=6C z;mG&XxIi{EwXYem&#{==jI%$rZ#C5#&mq>ln;A`_YwSTIf7Bjj3K$oUa{VbgiJkmC zY(gV?#6HcdeI}0^MR5bh6QlN(dMYV$jSoicpPHK5|NfbMn#oks{=vWP_j^Lx5H+A% zH4A^PF8V*-uKav_u9)tW)0g7Q@w{n0oIV-fDAK#6PsR7(qm+LFKZZ|H>3@rleLw8Y zVtFlH3}hKZEK~`eBte1n;RMt0m3UpZgclf#Z^GM^Uxe=w(|J9#$nZ$~7~ZFR3O;_n zD4?94h7aPSl)sPVYsKLRQ#gYLjUgEC-LKd+>JUkHn9N=^U?!^sDfW ze~AK0e_t0hiceALAHZixA6~(R5D|q$EK~^^@fFgC6Zr7;cwKjf7vRTt;_b>W#t(_< zPC0!!-Z3mzK>8*4G`!s<{R(_OK1%tJ=rxr@=sMpG<4^RSCNYEZ3-CQ+x>HVHh9ATG zlwXLC|3EB2PCo)4#78NA3ceU0mGmwoW2Oss3 z$UyqD@frA_YSo+YMfjtYFTmI0k5i2}8{Zk8U-pV~@gw2+WeuHxj~Ws4<5Q@TbBM?w z;y6{MoAHJCRmyApRktrVWIumlsB3Y2z=H2Ut!OK%qs^!dZA9&8J?cPfQ72lBy3k5= zBU+ATqowF3v>0`xg{TM3N5yrWTy!&%f=EA_os$Z;=?Dq185Y!4_$~hpo`Et zGzG0e7o%0^60`zcik6`(&>*@J%|O%9G*tAW6!a)G2|XH(M>9lsjUsRi5e{@Us-eds z6N};lqPvcvqMMGO$DwWLTC@cXqD|;Jv=q%mi_zoJLNp7_N7tjd=ms9ZsRmXb^h2EIyEj5-ca;%K56t*Zhy;kV?Yo|9FmlJ(vE4DUo zjkQbYsqBb^ZaLOEBs6`sbxi2WW31XI=!y($l+fg(tw}=XA7xDwI&YOVh(^VxTXTg@ zTWKvcz9aj^rP$KCrOqm$cPw$%3*Eig*&?(m#n~bB#zoF<|eEae^V78}f*lJg*in^i+?QEOd)oOB0&4Nec))K3mHc znz>QS6PoVQiiECoYGp!KIJ7FE$#$()=zN>jAe74z&1h7tRcjME&7yS)jWKIxw!!e( zF5|Yvj%BA=KVuJ0M7&mMiXtpJMI6^&5($e2JcDowVKLKmZAeQeEE;$$;UHlX;b~fz zmP1%{j2OcChIff$QE1@EcqTiv4yAoNgg0sR%9kr;E@Ejh%4bZ8k5_);2$^3b{ebcv zQ{wBT4{7C7CgdxhF(p1;`H5vy7NC5`l=yn(%csQWE1wb8kQg`Qn#HRL6RA@cpnS)a z_h$IY+A3<$W~}mzCmeZ*;UGyOo`7^ zJ}@OdS$WTt`0-=H%MEFRG9dB~ceZZjTc*UvbCr*jCDnFVb3J|jW zu;Bi1giY&I8Yxhd@-Xi6cpxj) zWGmDtpQSWXrpc3Jx;CYe_!8xlr^FAQDAU&|jik?!KBQTvOz6y!Gn6Tf%#f=5@CkBy zB)&oUyeaV><-0fkG<}8g>0u4Uhf*rYTPU!Z*Kl=$9knZ8PCBz-{n@r^%S zaEtOqhsSf&p(Uz_{tZ8!p+@0(nx%P^08Cm zd)LbJRZ1i21Imvd_tOQpC|~qLeEZDf9A`}nRTqkc9xY#Kq!*+pKXI;{9$7$-^7T{V ziDe>9LryL&N{{A+{L)K8r zr7~}a(#TdADUtC#N+Y$`tbFy9_+sV%FSedLE{f~<+l9Tm-Mihp^+ZKQ0mY7D#V#nv zi4~2;7#oooHBrG96DtbKf!I->Mvd5e*Q_Qgs2pb(Ycy)qVExAAup-9to7vk1_4E5< znfGSq&3iL%-n_E!mX4p`YpHqTC-{foDe|YmdyJ2j+olJAR0lso};<-)RwJ zP?la-ONCl5Sk?Ti(O$Y%$89x#{1g06HNWH&e3F_U_6a`Ln}@^8PY8i(-uMZ=FwxtP zt18qQl%wW1euAH;=70DEAE)L!D)58VX_!i=@JRukntzz^u_f}={QghyS!zD*6MUkY z|KdZuEG8JA`M{@dn6buo=2@_lu6L1Z-wB>Y=iy(u4;yQ&Of4i55UC}^1wb~AGsYQ0 zwtBpK?)?C-!h;7`A@ICX@xF!dLqRfolCj#fEI{FYGzw6$@E~h{fQTCgaGaV>QQKfqjgaGQTg#oY$@7#=(lcmojmjZfgU2|Re5RSO{C8tIxqA_^XO`>N~Z zMe5=JCc=Zu(j*l(3*d5iY;a66ZK2xgt$^4Ik8)xM5L=%E@VJ`J2Z%M_0Qe9d)T&U$ zy}|rbFWsub$^dJ@gPMe?xYhtW!h@Q`dU4UZ{*V|352`ZGi_|3noCObRvP8wL1-KI) z)a0OwI}Y#?JgCWlS!(y(21I4BQxGsdgfzDFIY8fMWm;p`l?8~J1OluF4{F+6#YF*( zg$MUi{Z-sBfaA!nDaK0El2l{iNen)Cq*8gh_gE88ZScWUoFpiM)#3>cK4{eHDj%Kz z;e#ha^;Dd4LIgN$N)r|L1?2HT1Ge_!swl@ncqD`tj8Yl#=m;M(7@@^DXdx;$3tF%Q zkl4cIkTw8Z3ve$y*uq?ZSlelUm*DY1Ul^tqz6*#qhy(@{V1DiuS^;1fJXjF%5h}h5 zz^~y!l@b4gicbN!Tumc>r1`0=10jut z>jA7s-cB=CBl%N}zSERZQv^S3h6h!;3lMP+0ltC<%lf|Z;*0<*!-Ln`!c<%nfL-7T z1imC2_>}4zqun9aA^eefPWNbaH zKYV`-d%h5$qRKn3m|*~M?5zbDh++Xo0DKHE383$LuS)e0f`I-ALBK48(2k7=LBJ)1 zfe@N>a0fU7h7>{&kcd!6Rn#3+67Y{8C`9<`A`}Q`tMaDl#-Tm|li>q0aq#Jbjy(M2 z3?BTfMlXQAXW?@wa;Rkdow7F(;6fHWS%81z10RY3xEG!rHGf)7UsdsU0Tv<+9y64y z08e!}#%b(Ki-{RH&wy9Xtbi|abcOP|bmKXONt;)p^;+`dTw`6fKO_&%tpNYMZ`)jB z10`FiWbe&|`^!k(3eR3ynrGb8tWkt|4b7VGeXChkg%wm-S%rZrgn!2Nt=rg%9R_bf z3hV~}HqOrh2#mdtQj50?pms|X6jPa$M za`IDSU0*7d?09MX4nU{!UkZ7Q%$eQD!)d0b`oDpkgPD%=fK!ecWy6EmI8(PUs1wg%@uC5PBrXG+Xz zGN%gLI4IGlru)53pE^2VPNv~|>WdCXmNllHL~t`@!`XJ3l9VX_RfV0Zr`;}ja0uJq zK&R)+IrZ2sMoNj(H=qFS%y$9PFB%SHOb^svuWUB&b*pnRzU}aC%56rl) zC)75QdP@YAg;@QQZUiZ>PMWd~N{%qS>V^d=mB=R-xWmTU~Om{jk@)&U{i zdnqClda*%}o8OC_51?9awmX2ay;&!fOaAN4HiUXYKW7{JK=*ysmyP!UqqzFB{zmAp zTVJy`4Uj)H0*nLj<|uYP4g3kC**j>%9%I=U$Sxbp4%gF$mP9|1eG2H}iR?6}NVC}QVw`F5X%BqE!Mrwud!J2j^^H%`^3L7yGat}in#0egkMoV6 zq2&z~ZTdi8pzFMJCuuR8-9}}|4`#EI&@toZvc(7o%xCXWR439QldVZ}>*W!dY<=|W zWeeGT6eW=!i`gS!2OD8KGoa|8!f~Q@V;PhaxROFtPK6JGv5K#f-k`!To6A~s}{Pm-YPb%3UXLGlycNhiJx&_wKMQc z1Rk2XPPVRMQ^7!uSA(hy`)altfS@%nlAL7H8ukEy zrfb<&07kE6%k$2Rc)CbXy_+mr%YFwGY8~4Tz<_n&Q>i3<9h(Wcfc0#E4I3CZ-ZtTd z4z=bCFeFIV^$>rYWGK*~HPU*h*iP21XYGLedp+B|ykXmB=aM66>>Ed_tz~r8)-yWL zpY+(k_5hwW8`z-$OdHuyaO4&n+28#Q{o<#;G#Vp*m8M5~3J0ZEi0~TONosFmUBK+w z1gbk_aWf2E$kyD#9s}_A7B(Eby4qIuM~oXQw!wgNl5^YG5CAW>vCDWE%*G<6?U_yo zS+N~zmSkoJ%The}dkM)+D(z%%!bm9I$!@_y7AWM60A$xLa1b}~>|!GUG~CS&0x*9! zc$`Zx%=2k0JiJ{14R+nKDKEkus2m?3~vHs(Gc}pyk8OhNS2k6 zX(xWaK-h~SZGK@_Qg->~FD!hn6xuCAMRqxSKkJ}r<~>RJl`V&G$*=5~#)jkdrR7I1 z9a-W+qiWI6aD4d@$&uy)a|5=%G$Sce#7cs5A%K%MzkyFk_Vf*$q&jK@LPuuwf3{fHoW_XLHzx&`kLV zn@p8=p09kQPRew<$ar$v{epexn}e>>;~4uRt-nf6AA_OpB>x?Qz~CgCa@pT_yT_Ad z<+W}e?NZ!#zKhL(ssi%B1P}r8U`$G6LmtG96J)j<{002o&EDaiS@Av)qrG;NHyvlc zg8s~k_btJZ@+V<(bQAs*Ohir+c?$g8O}3p=D zy4?{Pa_kwlGxAYIv{vJ(GwekSX)DjM4CQBdP9omFeUKEmqM%3C8@Z;fb@DnVIgrnG z4{<)LlTt%c$xAn<(4F~gWboPSezr?iQfu8L^gIka2kCnrMsyTOKMxKUMcn6=P;~D+ zyAE<07hq0-sqv!H3DYlvA`aQ_5*P@5W8h`B9OTDeW`lfarXpE#mF#t0nR&TF5{2%8z;P zNt|buL$ujST7G2aT18={~rKM7rLGup^Po z```f*d2t^s2XXR&;zijHFzm_yJwUZ!G4hB#K!eimzu63&PkTLP`y<@_n4N*J**{<- zfQkRGiL{{~`RgCH8N!PHLJ&6ele_%OW>LT(|Lb9sFhLTZu)PrGJz=XOeEbBycMdT6 zDf<_dLTW#Q5$ybdjCsb6pba79_A~YygdLx=pMxSRpR*lkrVY9KoQ;Amsr`cOS^=_Q z;qM+KMeK;YRwre4b~yZS&gSbILgu_+b3n81FWJVlVE{>a$=0Bme)86r>^SVQpjT`H zfcdX*Q9us8QdSOzVi=krIpa0k*=A_zDV)2ePM!>rD9qT!2y0OC=rsh@nZ)!T`=EiL zWr6haUp3|}C?GE%f55rVljS+{WqLu?Wsk#SU@l|R<)An0TpA-K=baibydHW726vO< zcQBh|klydv9e&QVw}-l=1Y{S?*{lfv+-Z}Xi~PCnRPMgv+!W{+@_^!og0;HST(ux) zT8l%g9X^|!x=s=aL`&%WcRLDvUi=jv1@-!-kW8AJ4Rr+haBDzemk)>YzrQaBv!2|> zm$UowDQWT2eP4CXC3B4&`l#CoRi=>gEH@T%87$Whz$upN6C@49XbEe~#JLwKQGZr) zpi2J#JdFs4pkQMp(t+c;SCuj%sf63ve%0*(#Tdftipp)mWGgsi#OcT3Hrgu<%#TZ|5eK-(IoR>MG&W9B;gXJo{WA>6>Tax3_R z(baBO2A{4Svo9ty;}i+vxw;U_yYk#I_!6`za50uy8JisOsmmxW1P>Ru2B5)Gfg9qN zk_L^Nchu1+x{h;?^jsG($Ht@(n?=#0tA#5M$_%k^=fR}mRxZKf%&2XT*T2?jCfjG_ zKC9}?XexzqZG<>OJLvS(4Y3=Uh0nhWm4)0bKXz=HgOpL`5#O zsWYvy>A#4~@JhP2d5?an&|WRN0460h-Z{?~R4m#rIojsN99H#}YgXcV(_sB60bD5b z#g+hY!rA2S04@{yB7O#E4Ts+%^}J+bVXmtJeKC_9s=|%5xc9A=;`RUeYG!Lum1_+4 z;`eC{o=}xLz+_}(&N@w+26C;SzV>H>Q1T2{RVoL25mQsn9}0#v<(4wh zDd;H2nsRrTPARxG+SH6AbW93qAI|+iJ5tEOaBd9UDTRbJ=Ys1x7c7Z{bpss^zZ}an zbV@0ZUc4Em^Az5?Q#s=1Ezwbs`QVMWd)#D7b1no6u5Hc@gckX<;F{9T*`#F)?rM-d zC7ylGB|EB9V4jpio;rD%u*sN?n+$dJ*|;S)2|~t>mRvx2*PLpBn{>0YOU=qWK^HD) z2~o`{_i4plqfm6CHrz&l@{KlJGwf4aJ8pnQdfoGe#~K@_HEUWst}pGB$sg^wF0^4K zsTIL}4MJu|a3^rm=+mBiOWEb#9XJCntp`ML4gl+-xOgD4b`Ey7q?H|f!%0@yxu#T_ ze9_Kbhcyw|;eeh?C#MkD$pZ&;j+=bdkqc$gvoh1uNoGfGmFUdc?%bRnpHUj9?J-Ceyk=87H~ih1&=1$><6*2FwxNxas8`FM=hK^A6T(S%>3$FlMC$tkrgP<7%>w z7fN=UlicaXh5IA#m$OvvU*h{P6;*DzVRtYJZFoUi#&TmoxoxprB*uoqSS|&cJiZ6_ z%7@xQM)l@KfCaAi22Ego|D1ab$m)H#MF4*7!_}kGF zhw!u`d>H4%2hXvSLtk^* z0HzG#E&@xBZ@9jY+wzT4QLCX`XR~ub+dOZ~fThxcp4Rppz4 z3?0P!E)enclejtvzfAJ-O;q7eD*QExy8>38KOLqjyX-TA z8;-p@GMO6!;9@e@2SD8vg}5RG!diorbspWVo$?|Pyv7cuQ1Uy%tn1;7D`j1yJdbtm zOc~DqF$Y^nIo`>Ipvd$z7)uf|NQ8eIi8$Be`+0N(--0i&xblr(wD-*$4&bE z#7zKj@h6yQ+{AwwjN}vYj%6H+@$$fOWo=Wi99ExhxzY;7GDT$V&)j6jTnsBRIbKHBlqk=i#Ix7lw(O?8sGSnLA!&Qx{hN&h4Ma1^CjPx5&*;a$!CYLWiH> z`uNh(8#Ww0&(U9F3lIWVco8BUxKtvSGh{cF6}B8h0uJBn?XCSka^d*ceJ^s zJns*#3PU>%k)5}=asl@LDTgP0PPGfp^;zpo)#oueHIB;Tz|gQ`D!9d6F2}ruxI7-0 z{mh$^R53Ywn_CU4jJ^ZYpi}Pp7Z-%P&V&LSjFNoqE+-mkro8<4G4~G6%FC0-h1}P) z!zTB9!j%CV$U~lT7F=HyfZt|d#sepDYCZ{W#76Oz92bd~?jKySX z71J<;5387_A{0%rzeg=zBhU{gnh-nP1FFcMZ*H`PaY zp}Og7y(2x7aio*hA*RZ7$64gd5YtZDo=(g)OpSm?j;LX(k8f2H>Y#S=o;s#A=s$hx zna0uviBM56=E?c`rm9pjc~aj5CwcOL2Bw>6ani^%2w006nX;)ij{Tm9!zuQ4ypfAx^+Me~?)(r@7A)hW{a|+PqXH85?eapis zUf_3o=fk(>uRG(h1hLl`AvfOyw_I*g7{$XxT(uwR3@`Wqj@9yL6Q>C85pNnJO z?(XfK;iYw+*t6tWM^j&HRJRz@T5z{#F{Ulhww0YsUE!S#`KODi2bi~ASJSmlRG#d= z#MA&6Mlnml{ao^frKWXeI=ZdgZN2G&4{dKN2X8h-Gqk;#{Ou0YdLOz{J5pwksSDk! ztsJ+{MFPVaAM>`UI$yARvbe6|m zGMz-9Z+F%7TN!BW&M6D0l%4Mz4&R-z8Kh?+0CqrJGZ zJ3hd*_u}SkFU2tsG8K8-N^$lUs=TeGIHsK{Z?lb@|HI^0Td8nUDTCBOW!O-PbF~2+ zv0OL#`PuJ#lIE;0B}on>wYY8?jmt%I=@L`ke;tM=42a?zCJ)BmM}L~|d~@Y3Q%&er z_bnJ;5NJ(zAQrmGwL7Nk6%403>e?P{nMdb(b~25_i{MKyPM;9xQ*!z*Fs1t>`QKlr zSP;>wz;wh9+MRfqls3dZ3>zZeHQ9h8b2<>;{-`=xy65``99dSv48$g9@5wxkpC2i0xDiB;}Kn>V8ki+#+vKAPrh9t0K0w|&hW!)QlO zxlU8_>FTt*m;9=)dB3T=Jp`6zH$8>3-(JXw=Xh;bC%cE3f1~l-pI-5lse$xGA0M2yrH zS^H*~t5R6$#98L{2oKLPFJ$ZyNb57(Je;Dt4kbtDm`7FaI@A-P>zeE+tFy+&ClRJ& zth@ofmjz~Ve?z*=HJ@he5VKrzz&z+U#vX;0PhVgjj?I6(z`Qw#fiUN~;|Ux2YI)T0 zoFheimS$V%2c!`>(;NbZkpIjypQNFjym_%Xi)HQIyfcc6e3oS%9&YdQquf98&VQw) zT@au^a^TywOQJH1TIi1FT$}6qFL?v2Tb?^aMn3QW@+`|djgex3Ri3cQ+z{4+P{C^R zRhp4LL!@(^xsngV^ud;F*k}%6n9nhJextdjntZ#_d=1sPy2-o{;i%2#ir8^8H=C;? z+_~923!B|`i}^H)C+2PDMvPat4%^Jm4>Y;B&D?>qlk(fmb)g?SY&Wl@So=Ut&%bw= zJNvu(kC&5c#^|=a_i7;Z)yUmVl*1Qaj?tJ{xJuDDicW=j~U+}4fmLvmUT^1Mta<#KjD14j!DfF4iG%V?%0`S*!A7+NJhH8-W;ldAf&o~+gjWLPXgWEgCde4BgbE&tbh zl;Z5^{B<2hq_oH%tcs;0JleGjnyS!ikrjh`QbCq@0xCz&9eJ zl6PAVZ$l41H!mz>C?eK3u-(u3tOWn{3-c)2@Laz1!pzaMbVt5jWL|>XPc&sKOV`5#t2VX zz=HwB_{vQV!TxZ~fsGP0=JC?q4j6xsKJD<#Gp{Y}Eu@;4C>ttb=XkskGKu3|plYOv zhmE(LbT#vx%febH_Mh2sqy-0wks^g*s<*t=%nNYf^h!Qhhp*#9ogxoHd3Yfv*R0RC zfN}pd8Qg#mrloI4Y6Jd%IK;+;@#CO^2VwjahFOT#7~YT{pe9c>LJ*b2{r*Jhd_2Y zk`F*%dDfn9N*i{QIvw~0ylbr|qW?oLtDT(az&8-3b<9@@5tHxUyzWK22ph%6Fw%Oo zLZ2wUD;8cK#b2Rad&yKgpNB9yny-U!Of)~P@`=50BKmA|3e!2bQ|5%0y341U=%{Gi z#+}$pXa_&D$%(z2Q>e}bmZIk}bWNtyu)Dxo^xVt6>OY^FoG#OFV(;`$1*TFCImf|Q zhiJZ++>ha_2=2XbYr!{M=~=^WxlAYiPnat9lBZqxFF?!AUHQ5F9Ea+s#^aq2WuVzN zB}BBo=}j{mLB$*WBc)Sdc}0ff5Z>9!?=Z`uzD!F?*g5(B2l))h-wOvxcz_HGP*|b6YQmU-^)Ihg<3O>1dqV4f;la9)Cny!#~U-32QS%Tc_D}D|v zmT<0@9}MOx9|yAs(sw*@T`vA}05$Ut2WcC$@Rld;@%hWUO0h0DT}9qm`Nbb%w*#-- z;2Q`l*zRwJ^8Mkc?buMh4dnL`dN>dF(d6{ud|k}TzkJI#M=$bx#|Pn+hB71gmUz?5 zP^81%Hp=Qd0)_y%aK=b}OR(#Eyf@eGV#8u}>L07*FEo52GdOaYrR0lI5Gk3_9-BCv=KGX`jezoDHKN$hyOBAr{4j2O@NR136*CcYid_tWRrgf}zw$iVMmfC5YI_xuRx z(1sKE0Gc^WVkhurYuFEZ3LoEJXwQ#Sy)HW;a6~R8qQ})wo2;A9fQV2sa{@mVT#5aG z524+ma@Y_2pFWK12zr@qGT+ael*dknI0I};r|`X1>a!{QI@;NU{4|wMq2U-Ha2lUO zJEO>7)A;4!eAAM6%D0Tm<+)vXA^E_?Eq-&E6AJ^43osB-@Bc0WFOrw9;BNrpUotU^j|KlbmBrV_Lxq=F z{I>`Puj1PyT)&EMPCI@kw^xB@cgi9iSM#3(Ud~$0-xp|RH%Z&YH=>zmHZuau(s*9)fGKL^}@voe_s zWuZzc?ghmhGh?==brxXlO26bkCvAS^cL92JDim-QbyC^M`(ODjwBZfe`WrvOBE8BqBz?QS zL{`m%yg!D;$U}UFAM*}wJw^NnYvzctq31OpymN@Rg);9oQcfbTPFMC4Tv9^7d5oNR zX&XkF9CVl;=>sk~_XsRMT;$FXK3u6ehc9hy&7*u>1sNukAmy))^5ZGQI!Qz+_TDjm zk{3I{Sc*+>!7@|f9V(P6l%B^A@>Q^oOC`Ld=p;W|LH4;^ip)I4hx1t1&+%e5yF^{5V>FC4Rb0%SGi|CvR{*jh`dyy=nJJdCVXD zWDM4x>wE%4;z2j~&NR)vlehlK|EXBgpqpCSyrsAK7fQ8#oLaTZ?(jVrtnT0Yd|N!v z4}HXUwn)C7tY=+&tIc;2=OezFV(j1jN~FmL9`O=f1$ZY%{LLR!67L@KkCnvZe<8-| zPrlDgXWz*OpYVlLfSzh}GQ0*11$`dX=yZ5ZSVLgWV0dTK!!J&r!E{Cg^TQYXEO>$a zPX7KC|0RpIoEP75^}^#h#hUeeJo7p@G+RpK2_;O^MpW6-#!aV%bMPC7cXCfwh}MH? zmRbb3OX7kvHsOc?#-k_E){~7+C~Ry;RP;U7GP46iJ-0>-hGg(2{Bop;hIqC4{b0KDp*j4gmY+xQe>-Op&@b_V#k#fmnQ`a z2N-N{vs%JI1N4&DSW0{#?;8l=P}%(wxshSQchJ;rVZtgrDvfO@R1n-JH>b4C)!an> zzM;?>I)fp58wt;WcT-~_L1~}6M~Rt8%_hQI1^N4zB~2lXn+gRAQjRM@$|22!hBPa^ zg8pN09vjqLaM8}Ua*Y(GG~nO-0tyZn|qmtj4|^5*22#; zZG2C@XeSf`lsiQTM=2(c$0d~5UVy_*j*Mw945h}(f3z2BP>jO>)e$C2Xy;AJF;N0+ zM59S>yC5-6JyLJk1v>>RiD)2G!Px_1 zgvKgk?--$FOykagl>MW=*+Y|{3vYhSuffOCEI0TKQVK*B)gu^E$ixZ_t>BTb4GGD=EWf#j&8kt+50psp-4Y`*Giq*Wi1!hqzi zr;%#*6zphRf@d|eW83yjpsAlLf7sY6V+;E`%zij-74BoR3ITKL1Fj)da0- zqLpjcNBHrBCg%Xr-AE&z>m#hth+yK|V10K(jhOs}@Ow#PbRsk~Od}=q73>Ph*wtpV zendLaS2&=F1b>ULff5b0a!bDy2GA!ilUH8~OW2dqa80pCrgV}l?I-+ZLYo7k8&3Lz z`orf?Kadg^1S*ASQl8Z#4`hgZ5k2kj}3-)SJO()ANWzph>wW31`1BC z6>o5Kj2ol5uy+-9wM~V!W9mIzNT3aWlDy%FM+vRGS-6AeU+;Vli#uRm4@R_lzd1S)sc>Wm*N)Kv*_Dj{__mRvPf7@!%c3iNju zt%NvE7^D&+VE7n1YlP%+!X%Y2uOZao&@t>43u^2y8O^!LJ>3eLNqpOoP{ z*dm2kTo)D)o+LMNBFZ(>*Inf6)}Hcc)uXOc?r)=@B7_)b$f z7D}|!N_;h?q(r_-@RnFsO1Q0+$j0Vgo+511TGazYwbeu|npz^NP$hUpotrAuR!iu5 zswEUrrfDSvt4c^c3U$biX~GGwi39tC;;;qqx=YY>9OYNi~-HW4aXe-hDT zy4oSJD%#teGt*(Mmv;q2LbVwf5+Dh$cxMQWP4??JmE~Q>owsv_aGtU$7~^eNaX1D+ zD{kRC(C<<}Q7@rTBNQNEU5XG|9tp4nc>ocLS4+W?%}ySr2uwM| zy8@f4)PJ$E1CmgHl?CU(8UZFZ!xylCe1yezIE6)OWmXH=Vu03)K4~Sb2-FBlE9R$t z)QT{TsI=m8nvkK2%SS?gP2AY@5^=XRf+B8P`bXjlHKHQ!NxI-v#YNz1qMs%%V`hoC zSdE~FbItrnT%1N!#IYH|Qr3PQbcbKt!Hw+<7=Vy9>S}-``$EsWM|Ais!LFd=5d9^f zix53~mQb68tP=%9lk8bS)sk!;c`!?;>u0~N_DqOZ9!lSMITs3PS%{r;)k1OgGgCD*Ty&i)oL9}2 z69&EfnP#qI^GeK>uM+ZX*tWOxV2G$rs1j1kBca87p}_~fR;Y3qsfDhvzCP) zQNtGsyVSOZ!6w4cQ`7Fhg(ccWs06QeO&5LS47l}BN-0YGxJc-&ikk=97DEqB+?_=w z;<8kNS6rpVLfsE+g8Lz*lp=1xVnK!h&f=s|4OOj5ppVeI=HWsoR+Bz}K#W0jmWs~% z54j0&m-x?4t%M@^8WD~#hOc2Pla)(^;d)H!LuFy9PzO(1TKpu;rtP=L@t=fIddFa( zH6g8+2{XLumLzwXuz+^lB3~@W&bmcrEEi(2^DZqHT4LV1LTG~d=oLae%#T|k)W`f< zHGe_P(?1JvHS-o}_Oq9N#Lq%>gyWXrJ9wdw<7=v*?886eyZh*D3v27bVNugAlq4ga|z16}9um0iW=hZ@GEPimcFwu)^Lt3v9 znt9U^Fj*;G<~BW%-=F;DKh5e`h)yhPwizzO2a zCZTaj7T$?$7Fv{K?Q-YM!f+o>KhDd|6qCc-glJaF+X=s2s9BPQyN}z2;U!u4Wz}|} zacSYQy zij36AZFURGxV+)2utf6LZlMmVMV@xabc<V{RE}tPKjI<<`-FCpxuKa%ZYV4ad?2z<1M%$`JBh$e zP1Xi4%-N4id9^Xdon8?JD5KX$L0J<2ix5&GCKgT)+>=2;hbAUsl~+vM?hnL3ac{Lb znpWh*FTw=XN`V~2l^-?peI}QfFH9wP%{N~bx~e7eVUzEepp|%1TH>}!$m@w3H`p&E z=nZG!D&!fmcE3==-|;Ffr%pPFeGSLRfJ-j0Y@CKxnqd1?XsXCf9e`XteiZ^}!*x0FSK%cr z+_u2^fj=le3&ej7ba}!-*mT=mThOaezH_ZgA?pqaAu0iDPzXa&I=pjYUGyF=4t&uvUaR zh$bo{7uK5I5`}?a*+m+mu?rXKiYOf%+9-qxC@R4vq^pE^u%>b@)JmB0N?Mhr61+R? z4tYXVS}l@a3yNfFMaCZ&hG0Cuaa@3J9b6~E385qAzc>N&BIIYB@ScYpSMyI#03Xn+ zpY-y7eo~lf0dY>~1%0a1yJajmDcoc=WHdQ(3c`J9_Q^+C+5fb#iB>u>305MG1<*33 zQ!buW`%2ePMWa&_@tjc8+vO@cZziH+&f$mwPYBewmF`H^&|w<4(iw*|bcDu@-Y*xO z69TjWlL$w@hWVPAYMw8#Y?4Y)>Xiqb7ZS80w_zjco~sqPbD^XN?l2XC(tZ9Hg=En= zM=_aEhbv%3v27PYF%4}+w8DMwLv$dZQ)gpS11rR!zYJh2)&6U`%C zR?QQqp%vlTmjy|4i@spxnVOhBS4tXxTO(izdF~bAM~cPHj$Vp_#j7QZf&IW@>6(O? zQbL$UP$W#h3P$!yP)! z3Nl=Y47~?Of%=hF^6_uz#}D!F-2*Z`|F>Auhz4(k5JmDc44LPI5KmrV}^ zCkuJJ^; zN-KzHvw|=_7e;sydF7N6Q(p@8%?yRA>qP~#|D{kz#iYXC2&DY`QkV%pZr?&Cz7meY zJ4m=}(3P|=7QXSOqsjJSp&9MiBHu3-XkS*pAJ!qg@tonwTcJTo7S6HW;bKsw!u9cY zf|FuX4{O|y-UC_7x)%9c8kgjxMZGN(7!+z>bl!5x=IX7?sBjGJ$OdC5v)vBLvPN|E zhM5RLwc{xC%6RO#c-jJ|NeX`!1b2ln3JK?E%XbR@P8FRx8quA7EHF1J{9$lLYB&Uf z6#ipA78oT8Awng1E2excn^c0X9{AgDT8j?(S|Zsz$YR4?#K2g#sC-FqROa|qlk8$F zFaV(C^Hj7~E~B@!Vxxh}Ys?tErH@uk18CR*wHkSk-r@rR&}))v;E_3+;1dQ*1CP%J|Ep6bdF*l8t4)Ae|Al6b_u{C`2hP8y4PEVUH%kWP+ zGiS{r(^yM2RzE{iX$xy{F}aF%<2g%XF1Pn|@3;D9k=>l7k+;XlBhFF{#szP(^s~7# zvF9Rupqaa9&ZU{rDdQ81Sm7E!zly2$VtDtUoCpVhVW@Qb=< z8~?&WZWqHUH0ysp>u16W^&~k^*HTw+I-9({^I7u0x|S+T###8GHsR}8G8r$&x_XwH zAu5Nr@bx;W+f%zqt0h&~b)OnaDfvk~OKr*~y++&RgY6vuLJMHXOC+?uB}PO-?~Yz{ zDs0;&;;e6}si6C6=y!Z&7_qcORQwkK&WyRh{z*h&SQ(zi%T8ocSq) zFqM#M0D_#^$ihD8+rsOQ993ZrqoNR0freTx# zZ(~b03ceZC#L@?@N?H(%Av6d*fVLFs_>}i=uyT2p3 zJuN+HLxNo4Gs|Wl zIFX zpO%+2?VKu?yJHyxF?gyx^DoOnJ*}T22R^b4^us1 zPM80vZoR255qr3%n{K#UuTqn#r3S^Iwe`;iPFjcXo44Z5lYM|E`@6k4Wgs-R2 zv(5)D+aUgz=GF~9{7b08nW+!+g<&;a-rLIhjPe5<-laf$)+nVNY-9bK{*d-Txq}hb zDS8o=O=Xg8@O&#NYIky2FMcF1xKv)F7;8J<56j@)K`_;fuGZR0yFRFUf2_45+-XTA zbRTOyvmw=Hu|@=}c`=xm-}JE-(h5tI?oThvt1qpaKf=h{`&m;d8cH`C zV6F9G>0tw`gM84Lk~bKV<+E{Ce;#u_kR$(&wB7-K%O7Q(;YX*Z$h}g)SX3|4G1VFa z_ywuf5e(penPsiO(y1w=;v#E%+LpNOXk$sm~?*`IRs{FtG)+oGM z*5IIZ3N59P?FX%utM9@S9kScd zJ{-EMn(3~tS8lcH)qSu7D2N3QHUwj2osK3YBMw;u^}bH%&>XVhkhKm-BZm)JPvfn| zS%-mUaDs#7kllx^-#~Nxv#n44peB?YDJos6Neaxd&J6+*Zc3PB&+R`S?~VwLS`fu} zKPQXL!wU0rtbc+D>@|FRHpSB-E&`DgseJaZGrbFZ=A8lLSP6z zYqe5LFPr)FR=NE-s~PU7ZzZwkty6JSk#S{B}%J@AIeD_>wW0 z^VFK*qxdms{^LtD8puc{{a;$!lrUwzw4SBuYuiX-v9$?Zyp60cw#L$rwvkuG)-fEr zy{GiH2nOYLGVZl?0exwkZ2Zr6rB26&t4zipWr zfUii4!Ss!7q%AFeUC*#RV79HPAAHL)9K6yCO zN7FC1ktjwC1So&Qi139G&^T2uj=?zcS}&G`fRZ9xS+Nj4>#$v>E#gG{5$lvPVi0X` zlB_af1v<(}ek}tcI6b*hM*O^j!5JymII7RvoU-Uta4rVcPC4*nStsda6C-N5^zbW+ zu-HKuVqlb&@UCzN=XT0L?uNq^?%g(V0p%k0vSK(Vna~4ZooXSeWyN~c;fqB%mYkf@La^2!FAb#eHJ86tBDDi{){_IKf{GHM;^p|D7vO!^QLy@=kxT5t#fJ z`EEt=5)17*P+j~i)K$&1v%zAY5LPF_p2$!GCBuANqwS)gjh|v&q(z8W8%9igh!_-L zZw4hZ+hludlv;Rpc3&`G*6LpsBKkFSg?e_*&0vOrDym>tSnwh#J3Iv&nOoDdb4Pk< zC9t%TAB2cg1ln;>{-%kzo-Nm@1IaJKrBOP{&6LVVjA#FwY zrYl+5RxEGIZRMFa_rJ6VT&5jqD+ZXN+Ir?$iV+b-9sxqkjR209(ojG--FOr!mv1L- zW6Mi12}#+1Y<6CjBgNp{Iw`7Jn9Gf(k_=Qj1W69upH?-S`3G%FV7z**2a6MzkM&>1F&j>*apC@3F2oK*U<5b z?9WsGkic=|$REVfK9!@tw>hI=4-_??x0A#$yy(&$_3&8-zZE|_Nvy|usjvbjK9j}8 zEYQA)RA#c(lSMscvX57m$4SsEvS*42AKsCrsiK+ECOooanh3wbI7uE)6N7E@sr(EvPLWUpCdsKY#2d)hKUrK2k`||kDXe`wgjqOZ zfmfR;Vog=9egPt~Q^W&mvr-o$B3TkW8saBF$Wv0qB1#bvt+abenrJuWt*|+<5m@3( znz+tO-;CKw>0%pG-ZrH3NSBYLi+z1T2gU(utoIO|U`U&5Ixgxx( z9IxDIH|X?GuTs3hJh3Z1Glfi@Cx-q%>!E}5#9y%e*mZdqvA!vb#8AyfzawJbA~8rs zM8jUmF5g)sR-&LusG`zQ*AZ(XVmqUP1<$_-)!)X#eOHQep?dj$E5(WM$#imlwHQOT zuNH&BJ0J}oZE(weYsCHdL~C_c429ofzcJ!fWm* z^7lHiQV9OO)6u?8N(@{|L(k3nEqpP)PJz}rqu_-)%1$M9*Q%~xSt+02A zBFolmavx*XrDgGKB#L;}LqDMyy@1(D8&u|0xPA~t?2xUjP+vl}00xlKjN6$d18Bwu zv5vRZFl?j9zLN3`W^ZX(eIaJqjp8=mUI6ZM6)J?27dtt&5gkKCMZ-4CPKq{)F}(A4 z@I|y-MMQPoB!=LRRmW`-o15$f%6O~-1X>sbwX@dRjTKSEeZ%Aa+~QH(r=EK^p4qK$}4o<}?gL`3Wb* z08PGv(zho+ofNCEUN&Soa#E}fnxJFmHAGEboD{pNi0Jx==z2=5rs|p(jfhF7#0O@k zGZsnh1ru>+GU~J#tYV_OD46A^#Xtdm5t*i(8FW{0Cr^u~IR-9v<$3d2XT+9J3azUD zLgBc7Mog^EbiM$R_5Bf}shU&0cQ$`nPwx!+qBqCpY$J*mS+*jD)j`QMtlRZx9$L|nPa9(VuBBF;NBJ=_{y;2|n z9bxDNnA>cwu~5R8M8h`w4(L1%4<`aHi*R725ay|byva!DcUkPsy2gT!&B5$}%c9$2 zD6lyd)Kc#Ygt=G5hH7CvtZ{=!=E3g3MJ`?u>#`bmDlz;n28mG6IL`n}59CTit`@&T za6+^W-zcIxuR`>M-^GRsI!Bf1y>fTpcM;ww0C$+mow^RWpZqTVA7g(WA4T!}kK;R= z>@Ep}WM_9~Cx*a62uC0g&Ttcs?1uZ68-n4K8%1sigzR$4B@_y3xFx>iQXEBv1(RLm zP;LbUq6mn9AfSK<{GL726TtW9_jr8&NM`$4)z#J2-PP4SJu`)lTpWUf7~DGa--408 zWzGA|5B3~;Za(%xP$+|g+Zf#cti6sE zwZ|h<+&P{plV|c_w;3B?=Xj<}w)=sSJcSJQpM&pbvQjuVJM)IOsT$nuytBsr4TJwO zxJ?GUpTX6BM3jM7t^H_!tjS7axBIa3;=7>9`pMoz7bS~M>!-87XIUGFB z;5G(qDy4IK&Msv?5Vh1FS1vS@ZWU!VHdxT3-zu3EI(#PRer2ls`ZZwnr_!kTh){5C2wmKNx_!4h`r5x5(9Dm7v zG{S#PuV0Y7zhX9hmR$I&Jx-Ig6t|uM^LnYzb9wLvcYB-SOg`#x+1@kKkYR0vyAt+{ zVzP&xUbc^YE;;Fny;E`0N8eqs*Lf~k@~XY&bIDd$?VX|w(H`8@!#ka>+8gUuV8_m( zqGttzuV3X>*nxAl8oZFfRe!VBiptH`Azxbt4SOE))Me17-}v~5;hB9o48HXn>kHgg z9x8v$jvJpm>7zE+?A4xCyBW>AW-nW;t8X9^u=Sd~R&66k@QrU&GO?K~ZKk?O)b_bj zH*4oQO1RlQWG>lSmP-9@FI$|?H*)blo^Q&3^BsFWUkdd@zIw%SxL1LD+r6zB03_0RStgv z^}K0MC{=&}zF<`pn_AbB@235P;=eOH{g$a`-mC0h~+~e)%g=6mccQ& zCB(R`n28E$gaNxb?AgiS_y4pnVC`P#j63!foL@V!V1iAt z$S9pA)H$s5F?fz(HVIA}p zFfi)Ay_LqB!g+%s1`oQ=;sR8&GlzAx-!|ZJ27H)tA2;AULkOnELW+2RIgkmt&0)`J zz-osFb{B5vY(}#=Q58*%@el1)HP!$QB``Sn6O-`aLwi#l#%WUqThB81;Y0gwv0yW{ zADD(XN5dY%vlda{AA4Dcj3@nN3D0lg>odXYv}t3ZD|f#)#N9+IBIRTxPh zHGMuAq#;jv?}|x)1xlj`+)gf}4NvXubZg?kH-oJTgP%S{c%ij5hdp+{D~E~t_{!sG z(8Lz`amUvsm7aw#a2|q@9|50+Kr4EaIkt_W@@e z$5{7S#B!`THC7WlVggp{>vY>9CKcoCfR*h&@X1u&DwZwA-3I?O>Sq;eM1>ydqJ0gR zXtIixqaaRG%!7EOfDT(ly{l!{(Mt+qSyxCFn^?8D3T)k0K#dt>$g{R&(D)ai+6>zA zd`4d)gU&zC<*COYM+wOC{=;?CxZ0Eu6Cw=VaB881Sgx2On87lw(=u^ev6Dds^!@X4 zf{_f0ig;c$TtES}VvwP^uQ7wBJkRAB%AoBLVzuHDtyr5C(ADQN2AeS`KJq#7o=yzv z_B`b4%AonrL%|*l+7~G{eI~v)gCa^oR&hV6#-QdU#ahK&o_-9P!MF@t1rZw{-h3Xi zW-;hmNzoY7;}X%5Q5d|KoN-vOl-Q6Du{1o0=PwDu97dQ{N=)ShQyGlCzd*=kgu+rH zP9A9PL3>0n5O^F?t%H39T4=4P`j@B-RakOtcVwR>)=VrWEtZ#8tCZ5+jo5LP$qHGZ_e&e(})&j*+Fi0W{@)-L;kEv`~F-5dI z#&pAR?FQjv$}B5Z)Npr{&TkFZ_*WTt3dcP*hO0-)iZz7Np$ZOv_+!`rPB#28m2it? z9pNY_TrZl%wiQt{HFS$@ikX8^8uL=OSfv;v7MjmSa(QaRRS>4E72_m5OUGRuF4wwM;Q^Ok%J~*9zhV4bO}Oe|Zdr z8XDd*f$3A;;fKWx3(ias8$}ox_Wu&Z=De_R7)LC#ud`CGs+|4LnuD4<(B8 zG=38c74T{RHf5uP!Ii{D8h)E?t^oI8UIV_PlK6o=-HRvm~4=H|z}V_!SQ-?$2VArq5lz#SPpt%}%%^Dlh~<<^0X;5+e1mch@K zqZ-_W!R4y*Vv9Iz#UzTi%vBY;aWS`9lwS*CH2$xuVu)$lgI|MtG5$wY#iN{`tvy5a zP_3Gb@M99jUTZJ*#G&djR<*jQ0mWAn%N4_UJO_3us)^S$=}WOM$Q}@7aWVEtt7GCz z_p-Q{1C`t_ zY^T8icwq*!_%xl=WXzsSNE(M(dQ8|8w49845}rL4W?=R>4tpG%#VYC4zcFGJ*1vbKEp4_d z!(cU{2|kb!E;naO5+fJc)378lIDA_fN7FPu>N@k% z+3G2sUQ1&kyP@k+#|wO|Vl&J{%X-4& z)6VB1&qoZp`aBfe0Z5H+DSj?A*UbYC zD+OB%^h1(bi~XbU(~l;xT2Has&1$Xrh(q(Rr+^hT<7107UaIBsMCvxHxwIqk#>j_^zD zx7KjDrxe1YAwg2xiFJyZgBk-pXvYFEE&zcT6HueQm{N>+oEkQ&z4&VxizYCDyAh$@ z5QrHMD&(==6R1l&I*2mO!M_;Brn6XKS+IQ2LAg#<&uu+yy~wV z#pQy=9AHkMYccb@&YYQHT=3q`ETn^3Oo((C?)hCS@JVN}iH5Vt=sEuOUBt~sEm(Zo zsaU#Ji@e{db63$x6}mpF1z31t8C}IbPTd4~xRc`VjN<;#iu<&yIGt0{5L$(Lf`aKC zHTQHA>vIa*C-ZjE2ZrU+mZjZ9fm4p*mWr(}%6XvW+1OpI!YQ{o#q&s`6m=Kxma!>K zQu*jCe1e)|TD0Lg680cI_K1DA_G?ISgv080tAb?i^ z)-pg(P;cj^_Mk}NzTlGSz9UNvM z8ouPyQ(VUR$6+DipJr$~zn6$7Gj(kddU|uAt&`<&^cHJ@!2C%J49W=lR$R~C;yeGf zKqiYZvSD(B^VqNLBbF)qf{mCliV(Olo*;%zA$j|V75^)RZFn#aYdOZ@?<3;T3{A6R zERM*6W{He&w+}`$t6~v{*=AlL)#@vb<@|Z92TV6=@^RndnglpOugU$s;;g8`C*Z}I zB5QRfB&VNPHJTNwgL;8q^b_%vp{7YuWe~=pqO%xxyZ&M;T>yg+!eYtXUmV1FG28pS zV?jWuhEMVh;Jg~7@eUjyj^?~thJH=RO!Z#|Da`W*<{Eok`Dqcc8f6s0Ahn?og+dzriukn# zyCcw)Q#h=)$b!SyaJEU~9R`(}GxjeAa|3iX;8qNN2sjE{nx^ca25zwo5$i=1Lo|Mf z7^lf&k7_b`dXIc}h?p8_a9K0x!VnSf8hXOk2utA;LX)6A)(E&YGZbqC*0(Y_%+?h6 ze8f<(p$0Fl3b7NQrq+ptVOR_>?lcbT{i^>kOdt%_cF)1h76aJ98-}oi!ES@Q8-pJi za9$NIyAxow)^HXH9fGUyWZ|u1>V^?w4}@9+9Dasb5e^?B%Sg=2p+Ov4#Gra3#co<5 zG3-wBAk+)7Pa(ZM67fnXQ|Dw4Hy@(!Mq*WU=m~zZ3K-nlG`(hWQ~HHukv^*=ZNN4{ogHf0z$UW6x9fL-QesEL6{r6$k0P z-~AHsA;5_>R;TeI9?a5Q?+&)A1A&EdIJ+{Q?e(F#wEKO4gNV3sXJs%aus%dyn}Bu)mp-;MKmOqa?9m#KkA9vYj?lcFZ6-?Ad~VOz z#7uLfqJI9G*c0Dvn1c=9Ck|i947Pt8KauUUEbUg!C-l4AS6(i`IY*fWH;_WLj<5Y-gY{z>8pvt=_?pDec443LNTP9tOL z$2Vdo7yIo@+<{>P-+PQ;pQ6W+wWo+FTE3zNJRjo7LV9fq+ho-IJ$uSn6L^skKAghc zQXYq`KQj0l_%$(|jpDV|DmRtG>{WA`koAnahXHryg<7{Tc;Qs>8+#!ReV8y5y=!2$ z4;egU8WRGTjb{ey+q-KFn1w+M)@PsN2ApERIC)e^w&~(xO~^PFH@F=Hb*4dLNzUCP!u;%gf0 z#^l9dy$zCc&^ehw7~~5v!C5)tkO&B{dJ0(bcn-H@CeO%%VAy>w8?PuP&w#agzr|ck zV}?B4=F{ei&5I$u)X-e9v6h)_MzWH1PDidd-Y|g$=3M}l4zt22SIp%E7Ur z&(6u|{4@M7@OMU3?_J3FxBI#E*{L}Ou~@y3Zu-SXhN3d6wibjFjPPh)aqAWtghz~! zI-lLkI?c4nV|UU&Mh7qV^zF#&_W8esM4LUADa4{)})34IFj zk&M0RVsVNFXJSR5!CGetEoP3GakFj!ZoSl}i&>`u%=X(f_zV+L?@dHBfO*$??M>E) zz_o*C*1Oh61{}jR&=tOFz$sj&4wqlTCiPF@+#y$odN1K}*{0qzrB;A5!r%;2Xo>iR zVPJGB+ipYol}oXYsGBT}ZCMu+sxD*qPoQsr!+LQem+{ILy}-S088?l#@6CkZ2qJD? z8Ze9GnQZF?2HTg5?RcSVH4)kf{%;v!>~fJfVI12w-T~|V%m}e7xHimfF_@h(#~IfZ zBHqxUHTVu39Sm(Vs&(JsXU6~;tZU!!Ew+5pJBSk+ePr;Te~ZgcjaB^WW1|;%H5t zwjaL*wbKR|KAfd@tQfZB0<0V9V*^g%us$5G5pEiATd)P#255VS6_>MGtQU=>)@giy z>Fa_Jz=&dyEN_chJaZBDvO{^$0ZVAy$9`M9&Iy@`F#UTVXk&TGI|#)+_wm-aLo4QG zd`WxW5z{ifUuOBPn3OgxEJL0O>2tDc4O6jx#K`?J(Uui?*|fUde%p|zsh8P9MY&Js zWFKrbCp-Qd_83oUxY9&_JPeO{eW|uwBQ7c{ETHc`7aQW^T@ic4yI~T`p?~efve5X2 zk8SN0V{M(iHToS?{aRV&njB=MI{d;SC|rG4T7zTLkFn3xUgK=yMwS!YF@-qf!n3 zmMVcJM-pm;htJ-v!cvfRxo&~_GRyCAF|F+;mSUw?9rR>}LoVyVg4!R+<%0IivZ#4! zs=d>JPw0M1FYk1?-PWO<1J0jP(MJ1+r7|7xXR+m?4T3`;F_Tt-yR*}N$yP$;+v!%Z@*8;TXweZ>Lm0gYsHT-c#?Z)p^ zKV`KG&O`0Mje1UHwSx@}xs$ov36T5x{~x(;&=ttV2a43lj~(;E%pH@ry!EN0v^l*F zttxPo9h{yrCwr4OOZdy2IuYK)QdkRJU;hOP|5eBMm0o*J_EB$^Y;dR7ET%lmSBw>c zn|V~)JI09tS?H)@tCHSiPPW}Eq-U+UYSN{r*DaQjR{X1h`pyx@t5&=B%n$oh@8g*u zyhIzPNo^sLPCAkWuiEOQqlHB%RC9lDbg>EP>h~8N@0+b`O=LN*PXEQxU9eiQZnFGL zXD&JFTCA7Y#1Q?fqq4S+^ZB4!_jwD>w zT~{0% zI%k9Tw1$7+Kb`YINdLXrb_Q>XJEP%S{AY5ugs6Wh=aAmE?;!p=F8(`+*MD!f9fSB| zT>LSJ*MD!Y9f$biT>No}*MD!eoq+fgT>J@$SL33bUClykbxgE#ccd^%t@x5twzBHv z^XhCxb+-P0uZ}ttCV0L|TWn{-KJ=j~-ZMEL25E)cId&APlh3QO)sL$Ef3FS~|Ex+| zY$qTdRq>vH_!Eiy9N{}2j91wRN*)h?G=|2McgCS&3(7l%NMWqHsG76ThHKY4&Zsba ziz2hWb9;EyBu9yPehe0ZL*Js7Y3ytv2&y`uiSxV=g%gPLwtzMXG{2hB%sJ2s{&@@h zD{KqM;h(=n{iLr*r<3N5LQx?AbN8qy3Lmwzd`p3`&IXvuAC7g#zm$8dV=gVd z#~yL^W`$c6_BEj1Y&tqYDdU_nrh4x<=dwt%<+OTksxvtv#)%PjI<=&uNtv{7v18GW zTyvd0g`hfiuJeE>lvit$^H+SBlw5B+y_WXp@xB-}>uqPbFta6Iox9dKuLMS9)Fx+d z_TqzKTb&6|WZ_mcOfGHN>a2syk6WF;3l-F0zOw+CYN(60Ilql4S(uF1QEHFS6;kTw z&T=&OGpC!Q?3oH|r+f}e7JTL${$Jka9PnwYTd>V~fuq*f&hk`!Pq8##eI~8>K4%LKdw`&VBz;0af~c)cp7VvO&{0N(ndz|6h@Tz<)$) zyw?5yvH6t!&U8aTtxjN*=)!*Im={EXErF&U_)q-}UMn3q@PBn^@q%2fkyd~Gf7!}Y zm4g4Ms_~8~a8BS7^czpt3!EeIrcBntzVQ`ujANz43Z2zT=r9gZzfOWr{N8rC?03y z;91%ujO)M%KYrt!!U-ua5QZIcVz)%gp*>YroMY!9Cw65uLiP(e?jCX`7}|GavdbTK zrW>ja)m3}#u(PMpJBRDg_lKQhOY1eVj?|!JI(FRYq~S-LuNt-)P3Mjj+s4y{NgsRE z`OvTg_TmfG*S>W+4BPl#VJyqOb2hf=qJwnuJLf>oZ|%vb=)4kjJ?0#4D1_%p86G<3 zoc#i0x8u&S&zD3;k2^bYxjsrb;Y{TT4-GoutYzq&M(><(rWBKopK#VOq_k$`M4xmv zEY_~mNoR4FYs9E)P8Rp=;9v$^KlyC@w`IUco}prI#Z^i`31Uoarn7Cw+}##|ct5 zVX;~uNb%u9Mf$}e{fNt6s}vH(lg}oV$K?Z?G*Eb*N|caV36rRO2`S&|T?_-xRR1j@ z*#*?4bfnY;!ZIVJ@ez=p1oK*F)450~*+}|wD5j(|8*As~CBZw1el01T6eiPWrKEbo zH2R~IbQZ=u7$te}PM?_4(l^3#I#(JhzD@5%OJ^eHJy_wNi`)7>nh_(_f|%_w(q|E$ zDoxg-EZ-a&XGhNE>SuN-H(Yp^n#mFgo9PTLu5FvtAG#^6R>*!+*7sP!Y4!2WNR7Y4z&N5PtK(xAy z^r=pHm%7JGqlLNZfq1Db=iaDZDJ#u33tQCT<)y(o7+gaqDoERftu!Y=N)?vSo&;&U z@F7*N2s6B;zEV*dz;mxxgNf1%0buLO(qloGLM^LGf5B7@lB6VE-FInt5~}b99Y~TI z!z53VU@t!%sD^wCDXqHXN_fxW`3S2*Z7rC0dY?M!aB~dOtzn^5vu+2^OqyC<8X~Nx zqUut}c1GjOrftb+YaiW7mYNF-)!H?rvt}WWO4UNst)~I(vXOSwlCBDGs;g^Dt$F3v z(l2$S#ppld>Ppox8rIfDQ&psI>q_Nt`J*nhtVl`qq+c;iqw7nl;a2}r^rL-h`$kft zS@@VHG(m<>Xd}DqrZY{XM?wLeXe!MYzNUW7q&66xo0~}q!a+LJOd2L^qT0=+TCNZ0 zt5kFsL0x7T2Ki;)!#|>_&7~>A4!YM|dPOV9x?Am+CVeOfpHqpJQ1COV+furs>+m(X zTS2`b^=l=i>ChLnzLm5{`|aCJbz7s-pOUXN#*0elT1#(gl;D1KOu95w&=X(LIghkU z&+>`7+$&uagwNCoZKPi~!yf9>PCBSFe?e8+qh^WfuJ-5yLVzlEl*Z_!FKKm0sj0A9 zJ<|~!!aJ1N8Ops!YdcGyX&j!fs81KEyZ-x2`lO4rQ}`bZ?TTLX5v}bib=E0+=}uSa zS6${_`l%c2@io2NU2^NtKAPTLdP8Ros1LeJjkuZtYVfkuKqu^{H(usu2p*skJtY-Z z3iOn!>*NFKot|hBw5Z%$`h#69ebK?Kwl!$kL+YM>Qj2imNBTDt2Ct-686-_WXYpdN zt){$Jq-wG6*gfmg_iqe4Y^y)to3;F*S=IWWZw>wW3Oc%f8CchnGfS%MdT)rDwZJq|4fPTFv!lt$ApAmesZj zayQZcvY`7GI+i6Zw}uE_E1!lBmdaXft0DPAS~OUySTTg(zW?3)c>a=g-#vCkc(X?0 zd(Fi<;D)F#_z|5NEL9f1p??RX=dPm~L!`d0!x5ep7L%Fj^mOz1&$(YdMtMV|i7=r& z6z=dKtsW{R3)?9;6k}u;T^TBscd2&IGQBEGR(c=q(<@>9g31n)stWrkW0=%C?rWpE z@8=eJH6`S>cJ6Gx*!~)(jz6m z@PoQ)q_hby@l>0PhBFb8)%9bfc7pI&{bQ`uDNOjE+UzyyXF<3~?un?w5o$XTy5UQ_ z6X9n5Q1d5BHO+C!dnoLP&6HEQjn(2k?aCU1kB@7<+E+yPCczhfOKT@fM}-sg>J+%& zEA+<{ROvUWI2B|1w0dkRJc4jdZ7^Mu%)%ekaVAFUU0OdA6T@BleJ0HO7b&x(jaKhk zH1s(-FbjQ{{q~(x@6BTBZltu?(#tyiM_N1Ep#P|TJ6qam7Jj1axiIDh+QBZrP|;j8 z+SOILl1sQoN-h#N@I7cLzVfZD`|A6-ANuoiH7uc^>GuuD2k#KmmcM61?GZV*+S=X;&!zRu%XFX5B!TdC1{ zO#g+{d%Y%S%6ceQNbj-~UOB=pc*Fr0vt=7S(OKg+XvC)Mf}`CVn4F!Iy#Zz6g@{Pb zO5cT#z<+khWhqFN@Y(kgb(>oh!_QBQln8`G2K5%oecROstI!$_!v!U_|OJ_5CWnQ;U=#c3|;5S=v z>uHn3Ug>vflT_7g`HD(!)@0Y*tjX@OSu1~{etBC5zhD>GQ@=dbFXgvrU@QGHM8Ej; z%U1nzc#D)^wj83{TO_>V_Aog=kSd{-8h?PX(3*ODAiXM-r@#k@Hc}{ZD|(rWUfzlb zIDtOhijjdW^sQ37;G{D7($_+5wJ2YjBbY7kse}KAh*pTD2HQ}vx-@+oj1{M@-6p*h zhKi{>r3$XHY)Wv)U`pux^k?P=Dlk7FsJC}Y^}+?STIo~iAg17>@JXfBd#W^3Pgo<= z$)8Jg%^JlTt?v2)l@uzgr@oXf3qmCA*$a16pMKxVLJO8Tnm*eHN5+0zW5^jmbWlYN z1|+=FwZtizy_vLuER9S{MlCgB*cV{^z{n*5PoQGmhN_AoQjwhuW*3dDyNr~p1L>Qe) zdrrcGwO(}!ksc%X95nnCT4S5q224AEnAAZG2))SrVeMikyHK`bc|(F7)b8 zXsSBuf}f;_FnG+jF2d1WdjKYJnjY%Zn^NO2p)7rR8#8b+4fs<^jctJUkD4R&cq^vdmH4mp zsm|k~ZGR$fbvpB>REUwV_Kvh55*zBDG80*MQOaE@Rw`pLG9K=&vgiUgj84*kyOL7O z>e)@%cO_?Q+sUJ9mJngqxeP&`&!hDCDCTLwN^h598Q`@%$Ez)R@V1v9?n-51Y$vbn zyJU|z!DFNf6n+l@bxlgUhmlm1Ub%W%Lb~@COn!(e{*5tzghu_1 z>B6Nh|68gcXni9n)1Ld%NTCT;dVtX96*}@jS}0tnUJsG&Ce3?@x%4*edWc9RlIs5> zy@nn2{C}i|nD>7D2XXj58t@1KOMrrpq>oD0W7fPCv*fcGJt%W@DQD?hOOKUe%0?kn z_Pj)S|DveMRO&IBuMstSEFBmA#5;%4neNcgCsKcO(Sj$?a4-G-1gpiN^xIRZuQa@e zn&XYFfAs#pozI`ttL_=KvX}gZRs&z+%2RTpFn0GpayLO3Kpo9;Q=vC4GRrlEe)OeT z?k)5uIZVzG2GToWpk>kzVe(T1Q$K{uGdw z5xZ8ma!j(NH9Q#>8iwg#TU$P%Qx^FPVFE3+%KPJHChrvvt;pS2hfHh%mv=JxEbprm zX_QT_BaEgzo173k>CfFc-f-(R*NXf1qq8#a^HqXp8vSIG;{=oXz$On8Y*)0gIGZvf zCC5g0|CH9YVqFsNi1c{^cb?*2 z$oVMQgOy&z(lE;=np|4;3maEO%U;A=8PW3F!ddzy8g~1gO2o*Og*}uKBiD)lio2HE zGau$uju7nLgt=EmRny11g0f@eWmunyb~yoFq`qCQSMJVYuaV`#Z!8Pm`3!cJ4gM>K z7T6&?mv-6F8h-l44qMD4S%iQE)JT+DV1++jgy9#{dm^-1N(GFzjD8bQ^%W#L$1F#JcDEn;>DFIV3+5AU%p?fi=q;zb1q-Dnl3Wgp`hJqUU-(2VE6eeigQ$rM{c|r(b)ho^Xq8Kz z4Nt5n@_6hYEKp#kLi(SAh73~OSh*U8b!M!bXgh+5`1YGu*<6r9U&g}HRn!}?@~@b{ zPNL|l>X|sX3)U1=B_8dEStec{i^(#nEL7M}ZOh6l5F%VCD|f);TfLn8ozPVMx179E z!1!NY9`-M!5)~ly7B#3Kj}~sLn=8mJ0q%Eig4`UcJV}7`7Sy?-+*mlIE~+Sh7lzrO zUln$!fA|aDt{x~ zRU0*vZwZ!hX!)yDBTcSnnSkzbjfS(IW1!Bjv_4I)V;Kc`ztB1M^Hneuk=O!1hlAlq zYRi5O1H)OG!+s8iu+y}M{lt-v;0e0ZLat?b1q|O(m6mb>`x!h&o!QS!p!aAp{~7$7 z@>6*~ z4@6YhwKW>29SfddTVxkkwS!A>P)0lSTqpV3$sY@n+NeD`xzLAx=^+0p^jA-H zMClMvw=>M$p2l^C79D7BXAJ+6tGd8JbfGF;0fCG?;^UBT5$ zUE3A?9nrzTZt_(OlpWpWYsoeE%)g`T=6ZQ++hNaG>n*+}m({Q>{)m;HtmyBxfe#aO zqF@hHVgUWtL+)EoG;+>dGo$C7v_`p>L36TM?xY}iod)&2w`+Tks$8l}lV6t0wRle_ zj@{906)&VD3ehHoAm6+hyJO~CxTRg%P$(Gwr^-Ba3%sg6_<(+R8K%l0xhMQVJA58M z?kgy?s;4|04)SSFS*kJbtg}5UrG7#83`=_b1I~>40j@-uTRTcW4)YcWEWIur^4!$2 z7sf&Yt?q?E)SjO7!jR}n6??<6^r9=h<>dGzeMsP~{X05du-~ZAdRN-=)?8pUO6h~) zTb<_gfq|20TOU{{g^u-s@oSN@ue=cReqLX+n@9brFB%*!Ozw}#v>d(DAC6-*)fj*w zIi4;IKs)s&_drx2FhUqn)-j4sB%mCJyZTmn5q^HLIVqN^!F?1hIJ`3 zOHLK)tE;mxHy}bgGFWa{t{K~IdT;yMjIfYjTOA@v!GD%fcHP}sLIqZ_ zBj6#0nW{2UUSWxc&GZ(_x|KDWVCv39P{{g5+}fQ zEuf4Eu-78>^$BuQvrX$vzB%e=ugfI`_{D;Wuy6%>{S7%Q8Z@^1ZAmZBCbAs5@&-oO zV)|hcT;~$Xm<%z?==I4E`WEF+mT~5Qjj8VRWHJV(lXgv!KSV@3V5;0&qj-AI2UF#8 z(mTu2Z!H~j(h=F(q~FwoC{_ z?_?uaG`%?+Z5ucu^w&>$9^ZyS}w3*$MtnJ zd=8r+y}!abJ=8yPWPGY+1MT(6ixDif_d}`8RNzMp@&VoPqual%R-Y$7H46!9^@VbJ zc*HauC%KHg18C|Jxw4V84xs!ca+Zths5Fl>e#fICz&_ky)sKZcRCkyNq#>&Ng4|yahSSW87^@>Ga1pIEmabfc zXPH1rMX<*kG`vWzirZ()i!hEyll5oxx7VrJ&vMt2g}-SZ5Wa?vsIK{0o`jEK+`^#3 zL14=*Dsx$`U)pkOK;Rr6JP6*^u*}PH-BOlYJH0^Ip|4wN-etL>Il=#6Vjjg*!_&;} zJhlQ)l^yz5QXl`~$Bj5VtcE9MugY28LiW-dGm?1Gjh-PdH&NxkR;fMNqw@%?Z#65J zknxMx5QU@6k1HLh6u?8RR!>PLY}s!zj#NKx%btm_GGPC2a} z0&3zZ!-TiFA&-RcO8O_ylNhxBhFk~G{tU(yEYBd}rl!KH8keUMgX-Lr&qwFhi%4H# z%Vsa#u8-XewcH3eakTkc}&08_cEG^!cAv0r*coU7{rPuGt)uRiWR+xw5U3h$hy?zb5nD^ww z=fPGCymU{l0}!{xHBR>SnnFtaORo7G81ynQ>n}`G>2wP;Gm3EkEweqiHh;^nxeA-k zJT~>)H;zm=^wL4d!6PsFfrXQQ!_z`#@xI(Fs<0_Y?17-pOj`f@&y)c_dl4HN^}bxM zl_0#W zHVStkiZ+sjWKH!?i)&ptyR-jRq{|&=nM|fT>>lEt7CkC-ztiSK+u8UM2s#Uj|1Q#X z!G<@xvJWoMCna6m%ms&Na4A8QTa>T5{siamy9=~NajuzwDF7_Ov zWj38E<*E{CnGJ>U5F*mnDA)2*mf4%xA+H4tQ8z}pYLv#!vy*YIl4aoEE~dIZGNWl0 zH*yU`liY0N+5qaZ#;$}gPF4u=!Y52V549b*;gr>NwY5xRe|3>VeC|@vcY0 zJazm8mpuX})^et~CJ4eB_3!Dflt{C6HC6Gu`Y_z@>S7gq>gmNU8@^+xo?qfxjE`2m ztBzXbS}TAdVzujXNtAtSgX_B};h?&2r>l3E?0?YgkdP6-56eN7yx>ZY5Wc69zquM%RLm`(Q^s$umxU0$|C=ijm%`tm?DtgbcUL?$ zxaN8we6Qm7^wPpZb=w1%L%{XGL)XFxVHkA`Q!+%$26mDo;wbZ^?3jUXIDHVNd@AQ| zz){&m)?9^~5RsxG&@;p6^>8Htv*hY{CR@4 z4SKCWqD9FPEb1E;<-CBMgzh$Fd|0)pRQZ_%-!?Fo?2=?&d0f>?PXC~|9fI6{-iZeyUbq1H08%ye|J;d>8rHZFD_%)2#N-zKguGzA_C4N={YE zRMQ)1)%kGUSjQcXc4Z*wr1ZBM9AGo@LSQIpI-PU3vp z)J#b(AHj7Fe3_FN@hE?81ztp857&$CHd7K5@1w=7dF6H_&9&^-yKE?mYBX0Gp`}JN zS8Ac%*ECmJ!L?m%u3#+q>24a#=Y67QOj~70Y}`UA2j;#ll*C%Lr#iK0>H6Gv_vIUQ zTgof=G=DCqziH&&*+Pj$?!&nBwwZKl-onjB&ILN3AvZ9aOEM+RH~K`t&t;h?z|j594?N=g8@}s*ixyP0J~~}@GftyUHn4QTpe*wHw2#7 z1e$q?Q`hI}zltUs0`09dfz@#79pZeMqYXaO>pCC2gjST1_J(O~reT5cym-!&J;KQC z9%rcWF2u*#!gV2OLk)(aQHC1F!Qk?922+;7kT-&jA)&R_a^+hqj>a~NE+lVg{Ku*- zkd}4rp((4Kr4bVpw#k22_~KT~?Y{ZBN%PetM-yJ#SMqbiHZ7pBt(ADYmkV%ba<%E* z)=F%>5Qnn|7-bjr(-~}5E~TGAN$YEaCgMVTq@_zYpSRH#c3nAsY$VT4^+2B z@>(`B7y=ErC{779FevU+E|ikJFi?myWY^PSTghhzN~^<#&`7Yx`AhOrsv5FPDLMnD zOE7e{mEyImWH1D(a|xW1UD2SptLYSfsam`BT&4tA0u zbq4qny}|8VIN94MjyONhkQr@cFv*6*=53VNT88^@mogXvBA37&OLn9|aogGWn%_og z-Yw!@1+HOQltIo6$G}O9xYuL1YRhY$_3u69R?IlFT9wTLh7~d+b>YvvPg)5>pSZSc z*mJLvXEn@jvT%K<6Bv5?4Yw0!Fa!iH!Ejs;4T{^OQw)b>q@Q<4MUQnJKkbKj^z0us zHMn!hykp2RJv7vaZugw`ao;i+0)H{`+r>gE@GRBvMlo0mf5?Zo02 zTG&ZR$K`k@Wg#}g`*&6r2$mRpdntx)bWyrs52{&LrD}YPoLz+?RX!t_pVRw^AX0Oza0dCPt0BD~VRyS?o!l zrJ>!GZ5IDoJhr9A_CRcg7`NTaO3k>?!>ltlZRn!DQ8|gBhuG&q{ZR_7d|7E#)gSeY z!B#pa(I16R0NS#%FI#4~R?tLY%HmYUp6Df^r_uppJN1NkKh5rm(7;dYdLs1m)9#*1 zdD$DC^?tZhuXvj7`nTGm=|)c_#TX{u$G&YxfJE1r?Q>a7Jq=X)!YI-nXFM_yP? zV&uIx`>+|X@}8A*+R=M8YMPMM%VK6629o(OKesKX7HQ3aPC)DWVEs3r3i~KkS*)(* zH9cYj^idzB8z`OnDmV&7)K_VN%h|q49W&G}-4C@~K#luh5HFx1{glQ|KhIrsF=?)@ z4fsCkr=-Q(qA@dSlC#fZsiAAnmnmMd_gC6LM&JHQP01!2+PaT18LZ#>>HYpnHK#W^ zpSPN^NV(Q561N)@4D$Z?iuwK@O9Cp)b{i{@ik9Dzfw zCOuo`JG=1ZPq!KOGgMX(YNxKqR4NI{F)(>dSkgDVqZKXA&&AS9GnIQ`R(hT}Eb$wi zrz&`^3{nDC+c`Y6d5-?~iqhWr{p1y8s_}bfmhx6#+dY^*kGX-oVcaOre6}jlu*{*{ z98Nv$9)QVTqXY))6q{tE4T?KUr(k3ZW+Q_$WDhbJiUx9_v~IA{11)=hu#${R;t-{# z%?sm%C8D*5DBbGVWNm?@7ubP|l~b!Bbl0%#4#hIt=~O@cJVcwX9^q2X=F<5x(~=fs zt&BvxQi-dd?a4`OM|FlOxaVFXP z^Tz6V)5@GPO6DN~b`pjwjxr(6kQr-;FuA!1oN|GPdR|<$-4NN}2$az|{G5{QG$`&k zt{B}MuFW&GMkt3-`^O_N-T0~1tI8J+Z(I`ZBSjCm9I}tp%v=qZI2#U9vGOu+8pbl+ z)A_tK5DZyf-VW~H4TivNE~rcrTkPnqd5f#U#bvWlOSk<^onnjE(|MN-N*WKBy!0be z$WMQb#Ac13;zucX#+n+BQkqtV*V4^#E+;Yk9+yy*v#CRIwE`D&5*O3^qZBFmNE~Ol zU=(3GpOaXMt7Kw==x1b^)sELLjRifrzCU1{P)3Us^z`>RiHEod_YVeF z_L-bb5xhp(Ecns2Jk3qVDemGTvrl4&gx4kea8j^B?ycK6$w(7Nqpp6uRZdB)Y%AMl zH;c**zM`Yg>g+y}H22o+B|A`ax;R>K^Dn#RH&UD1O%n+yxMzcJA4&@&5U?=w($ z5Ed|6K4_qU0yeNZjZvg33(6!dtiT0l9(ZPfyyD_a`!x$J8lxyKuhF)}1(^1-9icDA zDAP*X;`B{AI7@0VR_Vrql2v1sy4Wl`JXYH?yE;}$L@H{WGR5xwN3Tsbk0LNRjZ=or z!p@vl$-uIl#0A`rfmN5<=l#PhxqS(Bu0BL$}G8Bs4S zo&7qdKJAx#no;J>3Hqql;I#1uL(wFo%<`{cFnXymE(84-2yMBD%-6VxGF*?>jJ(D^ z5o)3rJHntC`$XsjgtRug*0#9# z542xfF#AtbT zcwfUC+Wz+2Z?J9ZdlY;F0Ti|?-%xrZ$m%djX^P9jNlHyIf=$`FDUvZCVFgY{CMi`| zroSgC?ilzu-Gr6n-8q|(sx(zn7K|c^lo}#39{pHY&HKt4_Z;^6F8a+s(82bV? zHy0OaP~63P4vVK~?Yw1*l8PE!oT4OF!U)o`=S589!_OaWG)1OO-=phx5kH=a4^LRMwr|nZw3*7XWia8pQ!&EK6cTH1<3Ql$A zG-WQ^;tiXjv@(asQN|3V0lUtbp^O3i=M1G>4SyxWc!3bFc_m)IeV7w9)!jjzVyjHe zX0j={vW};HX>b%73r8A1lZAf?vH6JpDRI78Y_gP}<8KAUV+slqI!B5U%DSxO^zojXfgR_vUm)QPd(yTGfG{UQ8+ z9Nn9RMMQ|CY^7#o=$`?(@p&5DFN5qPUBvl%{p0m`Z8Nd z%J5b-97g6lTsDE2*-**E5tj?14boO|dP2+Y? z*2}Tgpt3p4ur+i%ZH&QD^t#UBr!F~q*Bu4MHlZ3?sIAv*92ZiP3mtA`4vgW|;FRp4 z2E{$v5PKA2<3gMvEz4ji8euR9bG6;l__<04hrc|AqptZYIz2=)=CawP0$03Ov48=* zY}yG1jOW9+lnHUZ%x(sssgKTQOIVewD3UipyYZ%%(bLc&IhSpxC-5@ZGD2f0>c;a{ z)YEzG3`$y8qx5OW>hg1j%nXCU)QRnuf0(PpvC()iS4pnm+=Fw{bNG!Nue}m4B(nu> zKVY_Ct814}iErxt+aRSiL!Z($X>Bmso@H!eP))52YKX@Bl**MC+N|I zf9?N_eX1?HU!~lve;<~fUm<^f81&nR@*K8A#PeDyrp89CZuwvkf1(a&HeAou2&8gN zIVHQML2=hNvNrWAv5jq&^sH&s4IPVWa|TYyOVZP}d(RpquNE`fGC#cd0@~?UMwo3W zRA!#i2V-H7TVi(V0vqHY$xYaODe^V#ynp~G$y9Eipcu=2WyyzD3N zp}JJQd+itVS+J&IMPZzq%gK9W$VoHn6hBQ{pfqG1=hFpBS5y~Edo61kUvOcHEVEGQ z4zrA3s5smRf1$RNt-44_G~4b| z=S7MFla5%V92NX(>S8RrJ78BvD=E*|`A9KLoz3?^ZMB}chO~gLaOiJsrqgnow0#X` z_z>-UQ}6%ZzKJ~#Kiz*5Ta$ijvqV_}ZO$%HdI>VsUaGL$`u&$G>m2@CMrlRHWI^_2 z%rDiZ>dWB3LjUUOWwMz;FOCP^SX+V-f~G7}dYGf^bZnVYiCrHoL;nd;x8+LBuC_XQ zra-o?x3^CIg0{JMfrNI8RrAmK?@4-O5|VzQMXhvt+8asp`*7a0DLUON)2Zc3uW0Y1 zTAydVbCq`kKQ&&V97mZ^Zz;7ztW7kTrXhNnwz|~$|5w(vM@4m zv#cm4K5DccV`;0RIkdzWjhe*mH}`=g{cHC3J!ZbSkJ)?Yevc;dSb`@SZ#$XOr7mT@ zXbt0CrRWr>I#zn3iLc*Qgnk^Y-H%NRFn4 zHd4xOrd4euD#V$JD}-`z@9-(pHhj)*q^H}6&FHZ_$2cvlo#b+bC)?$x(#Cc&PspLC z+DR=oIUOWBFn9X{)5pDyS-zaP^ra4RH{O%FbVJ6cvhCf*)Qoe=FW{at2zFyyr@GQErfo;bX;X~?4U5_Dju9iz7_x4F6rdaQg#p5^_wQLevk+&xUeU-Z zU|Wx)e-nDYiYLiN)z~7o^%VJBuVi_6m)4!d4YmXHqqDfPc95CRksu5V!6+F+ESq$m zm_@-$r(PhN1q*%a0+}xaw0wr|g+Z+FGZLp0ma=CDNr5PAWLN)1)?ji7erO6=(It|o zL*MrohDeF6AXs*;9kHg@scyAXHA;|Qq4Z7DD8t_=l&nOWaFz7f9?=-(s;9U+S)(lY zLKU5*QQ}9`?$T-0HMDXztG-6^0&x1Lu9HB?v;iX$htR-f?8+@XKZ2XBxJ~W~qOp{g z-X$NKyu;`}_6~Y~v7dcIrlb2Q#|JsC`W83)Wt`Q^@!{`qix}56@RJ7>@^K{7*?zK6 zfq&z$-A|?{(8rw4? z$$ejGjHD3gR~c5!IPJTE_WYQ46%q=?$dJo(VfHZ2=u6>@hETxTe#*pnSIAJtI2j7l zm5FKO8C*U%Y;*)W&r$uQCVwpqu+Ep{p z%eDbeKhz^>^|0>zqHp&W=0^-&*it$-5A;b$A_yx@OJR#B8eQ~iA-u}l*5AMzyj@TP$-JGs5`IMY z6@it5fg*?!rAzc`5fmY23yL9B)?Qiyo4LSn39R95Q7Lp<46ZluCFR|waQ(D#>pish zNtlQqK%jsNY4z7a1Afrp^PST?#Ih7DauT-Gz zD0{mCnt1zsB`ii)(4k7ePpK{zPz9JT$3egTEmR3u?PfJ#m?GP>8lEwj+~s(!R$zW@ z8d;5D2lt_?8fKU^C{@z8t08ri?VvZS!8QsTXv$hh9EDi;=lk&Gwea*9?vxrx8-xpmB#m+%?2}qJj%!JUgiyYT@a@;Wi3+L_fWaSd?RY`}soTvw`OW;eu|Om3`8khLC~j3@4s4%jI~7+$fZ9-D1jG(P=M3o2~H5#m{0 zCzyHCgH5}Dr_p##ZrJHv&|?&(B>HSOJSIxB*u`#mTqjECt^OCt!5nk{Wt;ayeR9m2 zaI~8)&150 delta 131448 zcmb@v4OkV``u{z9&w#MmFT9J2ii(Pgii$7Un24xUsA#CDsAQOAm}Zoujj_u@03Loy@4r=wxN3MrB6zeC|E7mHeIG|GA#$`g8g1yY98_^?t9{ znc1EEBfsX4{IbcOq`09;Lx;x=89F*?_~>E7?;8@iYx%R6^r-kYx8vfk(<7z~*z|VP zYe&KZt~|0T@`f*)hRzNt&Y$qtu?5eK8~bX?bANfeme>!!@nARGjEJNWqlb=AtiOqi z7LxFTci8&JO}XK_=FTgh{`KS6=k+R1sz3O4(Vh-pMgMEilqcf8d*bGmKN|0C?2uU( zXS3x_wI$W9&9u2I>K;33JE1xkF1vC?-hvwnuPj`o)ZNu;%Zaxo-FZC5UUxi3Z44L~ zIWR&WNq&J~U$+Q-w?|R5?h(2@!sNH273B>6;Q@+r()gmA8qrl78lhizxsqBxBtrk| zFI90*QBuY4GhrjFyV}K8Q#Y`?>eXzTv9p)j@tTHS5xQhV+KLS{A)oH1D9x~>qA7MI ze!7ynYMPQNdXJ(*{z@C+Qh=s-vj7L-?VTtnyaV0?J31;#HM}BBQ8pO^Q{^P70m_`-?GU#`%ivzCtSWRlM4L%yCL`0>lrG&_jEh zwJ}IM9K<2-g>UVuC>!A#WN|mZTcRkXF|N0IgEy9(wl6eOcPg6l&Ky$rm9$2cM)CdG z74_RiN@@#HTfz2OO6m?!oU5ctxHQg_!a(a|_EzGo2z@kl^)ZbQ(>FptK%+R}Iicvm z3&Rz!(nf^onxY((h_SRHd;s19ztu%i4#V%mhv3eX|0LWWJ`RV&N8!{MMX7}Ervx?d zx2mG#Qh?KNI(!z^;hvaF7A(ygNbioA={4IrFI!1%!tXWjkmAfSbw{QZ|l3ro6ZV6$}}xA|H(TiQ=i>`z>$r0O(@G-Y=@ zD6o=&EOxeBm@X}Xk5SV+*q?ChGBe?g#P|E%fjiFF&{rKFAck?&c&{(xLsA|~svW>d zQV`n+rz7?TD@w9qOHc=RMP()4ZZIk#LSIF20v0-l%wu6O>QMMwnmq_ULbtS`C*5}( zK0=jRVTW`Jypi}#A~R|l;rlVW2Dm4Kq(;J#>*4Uuic*yj;nl_LpP@!llfV87P>vRv zwYz_%*`(n&n(|iIuajWu^eHs`f-vH4H<|i#EWbefw%=^}9kbFGzo6^=>8MKX^&V4@ zVSlI?W#giLYL}&lXsZMYDUBm-Cx7`={wSlnim~^9m5u%V)QbarNgB5P>Rl7o(IT~@ zB6MNNSvZAGZ7*LKUOK=G*U*jLDiwLJzuJ*m@0xG-@h5jadH~UAa~L>m%$o5lukXF$XG^hfrnzs z`S5f&7d`+VhTno4;1w88BYYO#19xVOX2YwfZ3+|7F?bX_2TmFt(Z^>bLtipGbEd_s z;HH=`{U|sAG-GX|ugaSf)n4;VQ&E+D`^{M0VDS?Z*!b#s_mOt)EiWsn*%vWlDT-hB zY`q!3%HlU9ccarlbwI#jT0%1}#o0*=MMPm)zx;oiarZ#Adq6ebnz0LKNJSD(-&{Mw z_-mlrDZuAp{3dEKgG8&5=rfo*m*wQdlK(_PW{YyqXzpE zN-*R3Jd81e&*gU|&UW#7UYK88`~2QMAMcdJOFmb#A;!B&YG=nexm){a^ODYGw-#r+ z?BdPrlISI~zP-(OJ`dx2iDx>)hMaQ_$BC8B7^3#-mq|p{60gZ6KK{h>W{Sw4crNvE z)|r7Rnz7A{wSS1uUZ9A8KR=XyJ=M;q%IDK#sM>M3bSv{9lZ2wAF~WA>$c2w#zge&t zOOO(%-1M<&K>6ZlEFH@JLo+rEReOac<0IqOVWm=UyiCHrfwcgy5O9>>W6Y+ThM5Cw z9V`Q^7@iIn!uP|a@G&?a{ua)KWq@VDb_$dMcZSp8Rq!a-KN|LYXIgXkao+?mMGrl3 zegeD>PgxM3`Ns5=ySk&k9Zt_@VP^r?Ydh*^WfHj-ndQ&9l!Y9Q-`P=LLd)kN zk7gNMzmU4Jk~AW(Vg*TBhQ4eV;LG5W<*X<>*h#Fr-rV^Fv32Rp{;qsiM}03GS4bbk zDN5#z5&E+fkUW**WEz&jZC%ZbLZjpR6lyeu%)g6W2b@yM@o&InE@@P2ixsH0Ogrm2Ef}Wfy^FzPkYL`yt02yR%VhNJJhM%Pm<_%Xn_AX?? z7o+uWbJroue!3Kv?)#5Vl_eq~;F!<3YdGWRgz+Acz3W(e%oM4@kKunyD2uh>Z==DI z{~`i4QqnB>N8IcP6u_5GTa|I0Zzs0i{XvP%i-PcXT{Jr zjA9Lr$DTCf#Zl_uamhI2X;`excRKM;*b06!f5yUML7}juC~e>#Vy4&)W@KHY4hTMp zfz%z{r7)5%QakoD2ihjzVNp_+zcZuFSO+gPxdPUVhc8kWxFq2}DfZ|Q;uSnv?KNE5 z|Aos;%{yS3Vlyo{4qlfTp|@ZsvNZI=P?9c_DqTrb+wr>FN2~X0VGX~8>A8c#^!!s{ zdI6kk^d74Y3)s^oTn{qljb#;UFm4>H_UfJKh|r4%hv{u+!}N7<8K?l&U=L^jiN?!g z)w^uj#-%ChR9msJIfa}K8!xA*b8YoTr*Z0BS8GJLo;!^EK&`QMocdB&>`!5O!tgMC z6lkP4XN<|I>cvrMe}?HzcpU{NKr09}9!^#NWgBH&GhQ`pC5A0c9cimFE=nVx7GqwT zI?GmLJfEgsZYwfu6V#{eZNbJf6Vwr5he$-8t+Y0``VnwZ`0H(Y@x>F=`7N%#x>K`#kK_Fz3G%uF@Bz|jtnUMElkg;8*+vE zw8|>}=}cxuIa)2B^slj|L2AmaE6ri4-(>QpBEPX}N}T1EW8x2%p3~AxN0u~XG!@|I zPw((*(=DcXN%47|_wmO%>TZ~&J}g%mVL56SZ(@!)6^|rD_MAGh933lRxii@ccb4S| z-iy3W!r>zL09*k33vsCQd}d4TI`3Y7_j&g__nMWwWWCQX*mvWS@t`f$*ps8494Kv5 z#fm7a!vcyUTbez{dtq5Edt%@D3z!q(P~*dS>Ugi@F59M6kJx;dEsIfgg2egE-7K_D z)VIS5yn@xf760kf@Hl*c)uvgPRpk)8o8jI7AE9P@;O*#F!*iIjE8ta3;pM`t!=*5J zd)bWzDF?}1hUAogm{oP+cgZ%t+o42PneI@EHmcI^?^O0aVY=P;Pk+*MI~0dla{xv2}MZP*v4uVrA@dq#0MTP_o1;70A+zvIE)+ zwl;LscfgzA-Eb*9hxSNgzp;@ua5=n+dgsC6)H@6A3}?VAXulkh>5@_K4%#gdKE|3G zmq(i{qyb~__!bU@FC(Ed2iU$LZ@m)}q5=0whTIr5!VBT}*Vv}PRj(s+U@q8?3|A0u z3H{wjywmio6O%jUVk*9ybkJ{lgLK%IwEdHK6g)AnBRxuhvpcIXigGIM562mgU!{&^ zzWC}Yb(mLHz+axWrOG{)yV`74CUzxj=XtlIo%=d;ME5N#PNBsG7WZtI#u-aD)AIZ4 zFPm}}{k0bJ@5pl-&%x5&wksG&uFsH?oOgK%7M0 zOFOh~pj|Q0(7G@3)YUfMK#&R?ZCB_=a7(6zq$S2MmT|N<=9D2Bxq) zDH?ltDS+%;cT1-u?||3C<-2XE;m?`z@3D9f=}7#(5*MVQ=b-W>@M*YkF*_kSz!cyi z2berq7R`yf%!Fo=sDFk$WEJiiVdK8VYL|dm)Hz%)W`0h_IfN@rx<`?sHz7;b{wcBr zS&A-4kyQGL6+us>UdixfR3{PcOjsOzKW!EX`=`kN)S9J`O-aJ@X34g^U~!!H$1f0G??pPF`${Szfs(;N;h1(ME$k5WShcCseOBAB1^V%igIx0SYj-?R_*0A zYu&@V4V7wh*WB$5Tk28ND=tW)2Kj%x+V$TxFC>YE{t@~TIBr&ip7p+Oxm1$=X|fdU zjFm1{*xzS{K?P>n-kk$z+Ep4e; zj5aH+7Avi8A2PC~?vW@+`TZj>9@%FN41u09T_JadGvIJI4VL;mbJ*5I9tqhKwA6tp% z+yTl^+>%if`jXMJBu;lJEy$9QTm__J&T$<7M`PNXuH$eACm^52j5E9|DF89j;Jsv= z2s?-r56e^&D>9R4B-|f%!tY}Q8hjRRyNSt_1VwL$)ChSuTuMe;XsJ>7&mp~hcqn?g zaDOKJLXlx_$||#_OOBdL&^~J1^n6EMnyZaOPJm|62+_ zka=E~ZaCg9T+&P%dOjT4@GMh1`JVT@Wi_>vf=H8&BBS;;k&Y})Dz_?vVq`nZNg=$Q zmdl4_)XRGKhEL?^No z^e72QL8s!!6r!9&mV(N)kF2qymeVCPO%c3>E-ZkD5|#`1gtM1pgmxyNOgtn~I(!*@ zl>*DIApe+Y-DzK#U33Yu7-#sGrvDyfbAGieh4_ivS4;FouN9Vpt|z_rqoEvG3VNBB zOfRDV`|y~~%o2A!GmID=+!O0KsU>vG)e%Y~q)?!OdCsC;ZhU*K;M*fzj&4p$B--Hg^)$7%cLmDZU zRJzoPGL|T^JK2gXm6kg=LEZ{_1#@aLUc8=}U)uZX-^>z}C|AgKLjI&2_KB42jFsGA zJj9%Xh<;i+5ne@~Wx}HwZ|SfktHXAzGYR(hQ3C1voAZ$~=H~w2zxw(zT(7m7LhdUb z5=CR_3bmK-@KQz^Qu|4gFQ`D4s>sdVx9mX`t`4`biEA=mUZGy>ySnw;q;kXmzDW6> zKgx5kg>D;1~%%FKqC>B zkU#@`mgcU9kI){q@G-a=?i@#5U}+P1z_#K~GtpXD4nBWc^7_BbOx=pzXV>##|J1|w zPC3eeG%e>9`in`>_h(b=M`@^&fcuU@&ZW8JC8m);dr6^Jq9^f3AxnG8HSAlIS-FwE zrHsOz>C-b3PS{EK0DK&lL%~sa349n{0Uv^Q5PlHe4ex`uzXEvaLjyC2)SJKx zhdq@TzKgGsuvp0+!vD9eliw=OvWT6TdEP2*`9Vf*@I-m4#Lx6*?T0wviFFC#d2a`_7+|x6o-^@Rjl1NaM!@n0%t7VO2H(2 zO?T73-s01+4D_~crhk#;zXF!p%DR&fXHQ+u@?B`<;qGZqRW+tyhPuQJ?TxZDM~Uqt z^L$0kiKn*2+f%EFbi&wGByZ&SRL1`gm1dvH7pN>1Q&>!7x#?-c`$ALjzqql5c|Vy6 z(r+4e+Dt?Co5*(BEE0JIL){7cC)9~Of z;3sR*f2)P)@B1(MsQX5pze-2Zxu8nkb1$R(U#Syyl>#ctfBtrYdZNEQHFs5no(HBR zwzp9)YZsnkq$xb(5+fZ2i;*V6Vx&%3j5HP&Bh_Fr(l+9Wk;aRjG&n3q+KRsz=?Pej zv;~$8a5F46IJ1vwb4%b8IT+A-alp3@G>!DEB~MH;{Z9-qBQ#NR(Mv!U-U$1R^tz#@ zPURreSkoy?y)kXIdc{RDXH_D$pJ!^3WzLdkds62n`Nq? zf87r%Hf^j77Mm-FcQYLq!Dl-&zTx+2iUN2#Y30K50z(!&6geH15(hCndM2Bt7x%{D z=iQm-+?sN1gng>7in1pO9pP6BR2oo{wj6D7PvOyYyltpm#-*xgvPuLLlgUZyb_a2H zkFuwpSzY%|vHEWZ&+{I?QytvfG?vLWn`p})5n~S9Q{VcCcz3b^=Jw8Z-;j<*=z2A% zlN4PPOFur}@GCxH?lgw1R~P$QYB0glcoplJj93s_;La=@P4H=qq8XO=hYrHGVq~$f zBr8`ZCqFeS^>2&cfc^cO_PObnDS1hYRaqrZMx_7GZYwi7ZBQ?sAU!q*)?1QB|)v%Q3AS|;*ld*Y&+GUZyXpNF3?Y-CH7hr$U)*Ls(cKpX* zMBX<1`h0lRS7!JT!p-(J+85iFVRYK44!Fh)`r-VzWe#0_#-5tJ(KOvxsSO2J@{y%R zId_>g%7j<2OO6>T2J;qBMHjk7nr_EWY)-^CjQ% zvl;foiSspcet$lE$`9raXE{krqcfQ(w4G9dETc=FjK9SUkX*_IEAB-27#v?3(N{l! zBNmVM;Yj!h>=c%{TomCmcNy>8r4F^81_UYZ(;l+q#QkP2*l!`r!kvpO-BS$9%us3Z zG1%Wtac9lKrjxc5b|nRry=OMEZ~H?2-!e@pcT)zqRmuP#FO3+ipT=<%kM}9mVfa?g zYKPz@Vlwb)Hvge-cGT^x`upBAo+(v(UL*xtPNu${1uSym??B!rRWfhyFph z5q!7WrKf2R^?w_h{cUP$tfr=>P{zZr8x!wV=XjeEqV-%*-6vX40$E+7_2e$mdRfP4 zy(ubM&j)+l(Rxd8w7wOT1x4$XO0?d3HcCHyCQ6U{DN0ZIF-kvrB1&)iCQ8r!8o4D( zSB^#LMIT4$K}}Km*7pc|H%gChh|)9mM(MS?qV!SEMCp5WM0xc?Pe$pn4@Kz-Wl?&| zdJ?)VN-rph(#uz&w30~6qV$}CC_U+#C_Q;GdU+%~ADy}AW=H9nlcV(F%cAt^i=*`A zqoVYZWHKEVrEC47^mTnmqZeV_qx8xy$T3lRRycZ2`~su&(l&3TUUNE9-_#PRw|yR| zmo!J}@&At0GY&-RhhL7=<6Z(gBlX0mBK3sINWFDiq+VVTsULhaQa}1|q@Ge9saHG{ zsW(0lsmIxxLdDL+zAzdBMsz7Y59NWEw(dXppdlb1#6hbE$* zHz87Qxr9V6B4Ajgp4=Pd9+7%Zw@5v$3z^4Is3tj!xQeJ-d$0OffVc8N7C(^kP=vk-UIz+6 z9>@Z_Qxzo*mZO;qb56mUbFMY-PJX)FyzZ^AyL+avyVL?>9m3WEp8CVMR<_RVeau`(*rcZQr zPTi#?Fse)bOPPk~`dhWa1J8h22KTik;^mAuLv%gpwG{bT#Bw(Ux$ zEj?tg`(DqJOvuqnXJvzOk1IvFQkkz@>v>oyR#KJ14#xr-G_Pl(Vsp!KC=Icd9xbCx zn}Eof$Q9zQi0G!bK1wTqe2@T+K0+W!01b6-KCC`%3$Db!5ERwj@+c3=`^9W$79bJl zW9%q!pV-Eh71V$-kPBJ~r>Yg|wZYQMvLuc+uHU9cL|t}0S5I`ZA3byEaAWf}UiOJM zUNq_BZEBZ+5>M(7p3T+mTt#`G#YQ3xy^;uo$&O&f4E*OQ$_AsycJ|wd_+Gw3pn!xGI!Wj-Onuu7{MzjW4!y zO|Z)2RJ*AcdoGt2RSac<=P`RZGpw}Q;U^;W7%ChKL{3Idz#R#nd7K6S`#=q-0Gq&i zPyh~Ba!3Ig;1F?YK?%qQog51aO0Mr$6OkHOxB4;lls2L0DdulRV!{qIaA$*bP=cS- zn{A?!j2s7?;0*pP;1H+>RUqEjRi#FZ5p@|@0{@j4 znizud@y8(9$+Sp=m%$0u4BV$9^fY7%D}6emv!01ifM+B)gS!H(2l;hNckrHu%Sogr z!cKr@J3&Qszm_xF4xI>>=vqLBl;V^PW)rbMIZe zZ1q>bMEg_5{u;H*m_yF4?zX@gfwKaC56lXj8Msq@!SxSqiF(wfy5_rD0wX$13D5%; zx*iVvCv#**U}1+h+}Al*+Qob(8l85jT|+)_zUutZ-K6e!9Wci2QX>{U;WSOAH0Xzb z9UTgSW~%|rx>e3C%7f}iB}ZB0xI>XSW2q-YZ4QxZ0J~ECBHcoFmcpUWF%#ex|N7l@ z8}33l0mOh-@jY7cLf^IJ!XvPJ0?vXb{c9`o$< ztYboJa$Tz&a&=RO*|Y86xyRTaVNYNvdT32F=9Xqx7mNhHO#`fvnw^zcnnuv(B10^*PuE?YZD#G)OL;nouo;EAo z9+|Llgl+aY|8>c>5$f#JN#Uz{MJC&3PrK?%TjV8ES6^K=vUk6vDU!(I@I||lZ3`~% z`dUro;L7kB#;#Y?P80m!^MxTLJ{-;X9r;|ZV%$Qv@ z5o1bbhF`Ti*%n?Desh2Or)gJ*=NO(>)yq2N{f{yzmxf+EwXD0b;#GA(R3W+V-*wZB zT^ncobd^HT=&5C$jNPxQ$wQWeOW?gTHvXDyyGnV^=DcX?iW|zJYa&B;?H*xAS^2;g z8Y+HaiI;>g51(&z+^3GXeCmqpmX!qz>N6;*&)~%V{Uu=6t;zPa{QGJD?rEQWkTzfZ zcK0mFOSYFJ+YeCjyLO$v^>q04lz)VM_H&}M$d_RGK6Tp2sn;zlIooGYqA$5!5;(_~ zs6T=IB(Nd;ddf;!ZSeK8r2Q{jX!z7?mzJ~`zwK9h228!Spya3#cR=lyG<8;X{xu~> z68d&e2v;Kq)Q+&dUK81;M9d{Jao6tfCA*%(f8g^YY^|s1$0f#f2h{F?Q**CeTvBH| za6s+r7E9Tm*|2ND<~Q~cY12xvoFNUo13GoV ztdfU}r48y;KIgs0hYjk)4pSGD+|?hIp0BIDJ5HTDuVh_Z?_s0Erzb0~h0hPqksNZ2 z`LC<}e1W$RIO2l9M~LZ}I=AGexZeGTN!S5my#Kn|v+LA3vrAUQ)kMaWU}08Yy<~I8 zivM*+*c;rji*t#n?0T=nuY*cw@xR&_he{v~J-cLL-JCbn&9>;NStUc``V1W~JZX4l z-#!CJB*Z5Ur0s$ass%wadwJ;U@ae`a2i0Wn^wPTZzpOn?XE%gvJ=Y#DQC>J*n{1z5 zTi0KVeQ3C()jw`{;$;=#GpMH6O<>Owug`GOX5Q-atoZ5n*3$=ixpwcq{q!LFjH@sw zH+f(g2LocAQ>JE4D~XFwh#xX!NT1!iVqD?VOOtK8V%*Q|iZPPjRO4+|7&G2f;{yI+ z4_V*cSoNklCb~2@F8)>v{!KSWxX8Hm-h;Z&gkWgo?JtHV!~}D9TF20SCoVq zpWma!7@mKr104;G%%%TgiGJI-`d{iz-X`3QpaIl_T2Kut!B!yaPkmt*-{(aWUx@JW z)`lP-&)@rvZ>4@cZl8~LoZ9Z=@Y~E4{HsH$KKX|HFdt{${m~_oUXPmHJ|4MYt=H%9 zF428_{TPRjzyAHHF`{_&)%H~3VZ**0XYy-4-m>{|AHUtW-r^i9e1Ijl`3m@UW3`Wm z4ZFg}Y!ZA0dAl*gm(M!a<@fp=%D$@cl7W(PzsV&lExyd+t|lvA_zI*bcUoNQ%kads zJ!7^T0dK3*uD##0Q*Bav*jtswj{7{ia;^GG&`Uw@2A>Mv7F-!TIe3uUe{{%D&p11| ze{|oWY*u1I5dfrQn-C19Pg|7~?rcoo5i z5cA=5(EPU1`5pC7cPLShBDcQFrtO`&KJTgz*`iLqM?3OW&;>*6wOAE<+k&=1t09=-;R zZ=EFk+Rul_`?ogfq#X+4jcFgKBfa7++pCQvy#nk7+re(I1Iz&n!Dw(Rm=2^E6tD z3`O^>_VsDYVRpl`tuF0LKb9k>H+5k@B94zZ<$!hnW={j!P|B;@)}(%-b*=rFa1eWh zPJq{e0+0>lXL#&cPn@GRS{9^p~^E`2Z*5|9Leu&))uW z=)YYJ1%1Z8jPfM{sa*A^5rgzm2nnB3aB!lT%^S!C8ff?gYXd3ZAbM2xi29^0IEAoK z5NS+nR&NV##JLqz)P35__ZGb~TZlqlwZb3?#DP$tfRkTh^>t5urh07Ns?XWyf%TvW z_zh6rJ(Rt*U+#dQULdy*?}zYFyKsr$UY`d#zJ~_>^h9PHd(UOi^@0cz`4oQs2yy~$ zpWu(k1fL84{sQ?c*zX12*mb0~Az6+@8|ckuVi zqT62oZshg_kP3Jw^B;c%$z1xyFW-)gcutn*qf#h;_$l1u+sVJ;Zm<6{a#XwU2QLVJ zK>ELZhSJ3S+C`Xvdr>?2ZQSG974Tok?K6Dy0{Qg|J1PcH(Z|$B!cq zY?t9<7bLI^*#-RZr(O`g{{s1LPe9sck{GbjcK@D1% z@`Ukti#mRW>YlHpDA#)?NJ31|Y2R@L$b^{;AC$=xzlLwwZQ!nivp_sJ`VD%Z;A;-k z|6xN2j()|C04Q~1zEbZD^yZylZYQ0S@VDc+GKAAWGKdF}Km)Dlw16gX1ic3MGFYx{ zQn}+3Ye=_lP5#36#9Fc}`RsA-?~!vX+1q3ez~#%hHZM?b*{I-+iAFNKFolaZeOy#=(ySq<^ z1st+IclGG7C1gWDm@>rp>x9}VIK_3PC)*z2X*PO%uSWFFI>i=%7ArW({_J~JN>Bi@ zK^jN`v30Y*S7)i6;?ONZF9<#k?*WydwC>H5vJ9r5MkeeiJPIU$7!U-`NF2~IoLfEk zAdtqK#0{HVx|UgYR5w0vT3CzKIR9iml<;yZ{7EZ3hEEhF{*8<^39s-*o4pgT&}{80 zE5cViYLV8jw&X7KmUMp&@@!vg=X;(CtP0dTYwX+ThtVN5>R0aP?BVvG-M_j|xVnTa z@& zPqemGS*mPT=h)Y{bmP=%em3a|_g}8DYMJ|+kel2++#^F)Gf?D)QA&8`H?}S`)FF5u zID=dKGjVG_VajJ13ZM|=fdr8C3k?n8f%9i}=B@1M&`qwp{wMX%rqHLpFva;56*B%giopp(uKdDk*?a~`?elE37c zBjLI!d-b8$nNLoO@Q~hm*6Ka^&{X6*EV`)i(GHX(`uO{kz0K62UFq`f4`$0vEP*IEo=Chv3V;qTE*IEeTMPi@9N-=zq>cv z?{RK+{lm4zwbk{A>tWZUu5GRgIe4TW5UD#=9{1xf zI>mOLyyMP?^KFrObCkk!d$9a3EbC8(^B-7VTiu^+>h!=)n}{7l>=O8l#xr`b2RX6s z8kN~-OcFV?NLVm02Y?1p3r=<*XRr@cfijQ=ngS#BT#x{mPXe_EwCEB_T1z@XaE&uk zuMZ&|hhY!V{&ck9J_s5^>Ksn(TbsL>s?|%?+$g!~>~8It%~edjs|j$zwRNXF+G1Oe z0^S^m2aO;Di~>o(TrA^K&K+d#4%51GO|mmg8*F>W_%uxGG^@%PZXe+^Z=B~VtCViE zw%Nk#cqid7sWby=%_QXGxX(o352`>R$OWz8k$N^r2ZC-yrU!aN_Z2Hk@#zY zx#@FWZw{38JSs>anNi3ijGv>lzVkM55M62SdhS+0>Y8HRuHVnS`baC+mX5S1$%g`| zX*qH%?m{>V#Df#ahe18q1oXO_qqVPX^NM(bBM}?|%Rw&42ALoQNKxB8hxs3mVI+JU zxelf*c@$mxY|G}&mn73#S;osTT9<(5dED@!@hQ$rpKva7eCx1l_c-OL!cxy-o^Q!% zSV|ql`y|cecoc}-(3w(8Dd0HJ+=)_xQlQn1>!gjhU%s9=nV<=jfFiIQQ9`jMJtyxT?VI^%iwPL2p^1P@PRx)VPmzq_OM#?^FbRZ0KBWwO`GIR^5rjkvk5_L$(;8D-yPE3 zGhA(OCadE@g0(wCCMqAfKXxB>|Jyw&;J$$G9R6FPDq3+$$UaB5eV6M)w-lk4cXNWe zV+}y$Y~&c+iSWrd+7DELGEfZC;v(I8ERKUH6@j$6wcWKR?Xy#QGAM{t2`7OB5Cek1 z`$Noa*|*kGux_roRJ2&~zBf!Wc)PK2jC8`t|0v1;y7&;C5MiwCsdeWah+RQhN~EV+ zeMP-kxkcIJ{Kh@ivBtI5eZ;Y)gTH=LJoDVkJl8SCR$?Rk(wuU$2YYcD%5GPhX*0c< zhbU4l@Yzf}^BC@}a9b~|9h87{a2WsBY_Tytle*S*@1@PKUz*hi>mr5nzKjRl@xTdM z@oNSRpc-rf#h?Jl;wqK;?hl2nfTFZfsd(e%-de{_vZa@ejfd6g3m|4a4a6JY|F>Y) zF)O%hpLVe&rhtFSHec+??St2{Gx7(EO1yCk!BM}t#fZ1@#*i3NbHK>JEKk1iR3EMD z<<*`#&vWX>_UY=awtGTm*nbG#rGDww96Qz9-ETW5I3BPkvp*fK1~@u6f*ohnP4>6! zQ`EzbBJ~&hv(B^jAlH6J4@aL6owuRF`fAsP%yr-3Y<7&0rO&vtuhzp`>3PQUxaV1q z-Sr5)G|YaB=Vs?*R>>6gsQXi%0p7vW!4%d&c~&S-38kkhhhSW^djXsc(m*Y;&uWwC zMcmngvD!h5Zcqz0fkMzWkiG$>Aa`Ko2t5r)0yv&XmxCg3VgTk25BxD%pj|rK zt#nHHZ5DqgEJmlypN^Mi?ESQvP=33F7NJz@SNdOcu0rSV|BFs93V5!^Eh~^hi{G2T zV=j4}#-8!b7FouE5n8VfO@IV8ixOV}e4KU0s?*I&%g#4Y~0 zxbtua!F%B4bvsA1SqzIuZxeneKm({SKD}70>v3`nBbT5mH~~Zg1+?JT2#V^S*R^GK zZ$S!E5LvdsX&@G~jztGlf?|*b62TG{xp+7hNK5~cP-Q(@QhX0Uq$|Dv9%%w})(tgZ zSrh}!L{^S=_uUtX-hRL>hgZqJK(WZD=sBmj4aE>pc7a}nPp`u{y|w7bA$rdRdIx=a z>N&kD(UH5Aqdq-G46RP{@^zvpDn;iM$Ke+Mf@qQUHHkr%Go^n7^gu^ylyre!icc@* zoSqFGL3VpRdH9p>Qw-v#k9VeM%E@t*dY6zgUg4_QTtGOZ5)4rLg=FM`0<`h+iM~HJ&7UaW+f%$Ms|t1Yd+gqvk(;%F+w610x8sT z+ods+7$u?$FT{dEVFjEKJs=tLBD3$AV(TASzV%}|yKTAlE?^Ro@MYn*jczt(Ptv-0 zBU~-+Th*1pmpX#A>3So1Uy#}0C+a?Bm+8b&YM zl|7eX)MQ^G#XwF$F2&t;DFYdlf)tPp6wsQ^-~ch8X;NgMeh}sQy5A;gBUNwFi_>JSFRn3fSSl!n$Y13s$_TPg`-eA@#?=EIO>Xc;3ogOlO#39>~zqrS=*CI>) zg9eC2zuc6)`g81Wuzh8ZrI5d!mu!$*Ecs{l(Q=IyQ)p(`ZM=DSPP61!R`XIH;ma+# zkUL0`D=ayiSxC}9WXZFZn(^Cw@(f<{T4H9HaHE+)*=OdFHph}@)>AtYD7EC#=*y9J zpCu2U%o7vjlgN+JtKZw_8y8R0x(~6t-{p+6M7hzO@6J-5b{!8cb=(p1kn~I(i5)?rK_(|oUYOk!zsrfG0#oebmTPFR=9i? z>lP@RNymdtGuWYmby=7#$h?AeYC0AQ_7O+oC*W?x-3FS#c3Wud#VIB4^-deWt3zpN zH4$B|;*Bz6z;x|OR~5=xpakR?o2P3l-HD`m7*T_dPB*$;q21&)XA~pTy_^G9Y<)9<+b5~hIk$}qdB|1oe95^+d6Yd|w~zqs7UdtFrD}JjME$}Do~w1Ac9G{}$7JPS zY$v!NSV-SXq2`+QkcsTX-FziI1D5B~*q~|wZ8x83ZypT~PUc`+AO~Hpj^=95c8H3+ zirInqMQ|HDhY=QUjJZndXe&2nT&493p6t2Sxxf+R>0#V?mDY7ymGgkRyVG2;?{UrZ z_?OD#i!fReSr4R;<;a_GkAh=>0*>cVIFJjHKs?w}_w!ZS19orq)z~Re7GqlQ>190X zfr~&skk&u8#~iQ?R%5T6Wj1!JCEvJDQKr)PF)RPxgH^;=4s@(v&!FC658#mfIMemj zo_xW@mT(P6RXiF(sL+aBV{QeIPk41CaejVDEU(LTr+uvqI9R+3L6Q?@p+ z4#d>WSggHj^Cm9A`Uu+x$Aeffokom=HPCtu`&Q5bVn7g(x;*uWxrF3XR@r9BzU~w) zcZl$MPz5%D5>NoLK^kapnOWCFdiAnHs_#eE{d>H8l+usee13r>D$8dve(|lG0okqk z{mSrbVTx|=SBYQvs=xc~!7qiWyS-i`ekUpHx}kH=CwLUk3T{7r3uk=mfqB#Pj^M$_h~X-TcY*zF7>RncT=6}8rKo^O71JJ{Jg9Ud9T)3PW2{=LPGWrrUf(lRsvOw!~?599JNCV54(j=g{fJq5#1ufS`+V!Nm zrPpf9I(UO_paaRY9zFvf2lw-c<}iGKrZ@;Y`tUB)Aag1j%eF0+qH0BE^DO&>X$d(V zS!R(hdA5#<5*lTOC*5SO&FO@Xz^Kg|qoNKQc^*7Fc(O6~25oqce0P~+n|qtX<{9Un zV_&PdG@G&?lM5Cdvg(&!)) zq^yh#*F$mS--N=AOiP8#)pd&swOPU5qhz)oH#2-kulTBZ50B>y$r&{tOx!JjYnJM(Y&trR%I~jdAxHt>d_g+Zdh{a5<0` zNkA^f-FPbus@GCmpo8=hhOw6^031fA9#qwRwMLs7&@Xl!@j*4XOr{Um34DV{De>*9 z<%AGt%v-1R^-apTjv{9d@Qmg^O5Njnm{-)~k5kK?OtYj_4@8bZ zK8U;Y4$2O6kO*Rd2I6jKod60rxvp-|?OIROTfZI!kiUU0gsVX%NTslw;2mrSOW}2( z7!-gUkO8C@2Fx>`88%qGa09zL>6H_f?3!+V{TX_*IV14lm-R|!tuQ}#$`m09=?BfJ zWR#^SH`G=u`Ck5%I(MgAL-ff z=x}KA!1#Lgli=y@Eaw8}eCJf>0(*D+6z5gWz3y4gI`?}a)1AhY4caAqO7Uml(;b34 z_*;2CFL!QN9=3-vyaSH}hKRL2HySDsP7bFMJnyO;Z!NOzR)6cY0Qa~+AD0aE;?`!R?z z`uaXH0mpHdf^?7!xPC3uo>d)3AEb!Hjd{rEvq_udUA~D?3o=0pkSXjK&y0haMl!j@ z6L~{NQ_i`=lpi`_%J~~Cx!RNqOHFy|E>kYK*OaSSk|e#-`%QTm!(HU^2cyk562_*R z9+l;$Lf+G+T=Nf8u6@On>mM=Y+q;?a!EL4-JJXb#DouImC8m7zNmD+=PD3(0vBQ*i z-e}5ac3Ka)ub*prXuC{>Kz1||A+*+%7jerfa%`O`&u6@foUqrFgI_k~;|evnfJVF-)UTke#>>f*gI?x=rPaXC0Mw~vtBh{BdqsN8v7c}Nn>B5 z@7KRRUuYf~TTT6$dLNo#IK_@zWhU_FV)IOzZOMQ9U>*V2S#nxWbF!(mFhhvO+RML*vvXQ#@*9(pZomhgI@(cww7V$Yr=g;g+pz20wev=_0zm3(LMn(9$_z^!%l;* zB4>K!J)3OL(}6Rb92%IhHimR`7uwg@%N;K|_qa3cZqGKQyB6dA-hM;KOKJ+|)YZyo z?q!Z)A)6e!XS6-l`ixwjqONg$>Xi3rw)je2`Y3A}d1b+^k3>f6^$7Vus<0I<1YE>E zqFrH|)`XH&whexXg8kg#CwGSqVah39*f6h0B!efM@}PE^qoXs!V`frR!L$gRK+?^G zV?eAiyF&8@Z`y{nAl4YCD(DCeu@$ieGy$1y?mBIn`ug`x)7Sqr)v+5&I(c4`kQK^l+~QZgJ5B7qEuI<9?t(ZZpt zP5W+tB9id4LluQ-LP;k4Zzl=j%L(aOdS!`chuwcZ`bf3TN4Cd};KiCN>_xkrkd*E+h6K1TDCMmEfeZo77a&3mwtRRWB996z`}gS`qa2kXIGLpV0W`5+reKUG@C z@ggpfiml6G|s7dThLL-&0ydl>hQw z=G<{$E!fC6?%Ke1XYwDP(t6EpevVoOhxgVmnc>KGJmc6K@_a~w@$oZS*D?R!etBV~y+V1+o@@92`ogehwUNAe z@F|mL`(I!1|Mo)3i%fl#F%w9A8=hkk!d(XEfn*Q|oZ!rE>I)8oS`Z2#M-)Vp4C={bk$#?O+Xn4r~8s&Ya^O=i*d_KS`XV~D_Y+L za&D0G-#phG*IZYQD^9sYc}bOr`%;wF{n#z3uLB~NA(!DUfU`g{aDp?hGSPxckPk+I zAixuZSF{IIZ{BN+lLJfw4Ri+XERX@xfDV#DB8UMRXhZh|XaUWj2{eFXbNF@NI1Y8V zD}mJZ;{ZkJO=+vCt;h+@^1zK>$Fk(jFDRpxJMqXW_BThY?~^XPe8+{HADnY0NE~JNZ5+gMG0@OZ*+j%~XdCyUmySuwkmtp8}`m zG0n&%lkfRR4dL|;`AL{30@rI#2FlSy-li(^Xu*NO#ldTW1A=b}{vx=C=UDIp$Ctr3 zI#;OQtBbXZRfm>ueD|8>@y5HBJ3Jvf)ho4y+EuPKj;mdZUHPtSTuWTnyM7J%CFE^) zj%Q~`iQDG7*0t1iookt^z_r3v=(^E$lj{c8BG+G{FR!22Y&3FqTa#}%7kijLzcQnsU^x&%FWs;ZM9aU)fzW9XtTU2%#ZK8_P92? z3zW!_I2yJT9Ix~Z>gL$t0Z8qpxN8n^;vf@BZ_+KioV zYF&EQzr|nzTR|x(0hyqYX!Q~m@a55)TAe+(glIV+x9;IaZJ2FP90e|?z`2Jg(7U+7 zdQkQbmJ8xQGvSB8zPIcCd|UfP9Z}Xq!bFUNgFw{>lo2F@)Lj+}6dDX&^*4xfBvYwq$LrX3$WcCk5mWLSr5whdSK*2@sz zsd^(nKqRN?q3&VsWcQfh-iGZXUg%t74EadAhKeumLL|GMS39^)2BrmFqui!+asKQKckSVluSnS) zbifnqb*@!Tj+h;28s{OP-?8CGv+Enc+859H=(?an;ZumuQ=ov zO77z7Xft=GWy;s?=Uk<{4`y%)c(-d9FV5c(awW&U0LFQlwMb;P&|y?02(JE;P6B(5 z(MaI%7a^GB7YKk?X}{1ua!2Cdg4hO5d|~uIrY#9B#xDot8V?`S-VM$riDWR!xbaJE zb#RNM2i?nD$t>e*Rt?;-UA-##?Se3$G0&-WAlaV6=r z`;NjlJ~v;<|Kfr!KWdr4fH%z-irbJyKVTt?n{0^x+jkaXL&JGQ5>I%-8Z$!s?=B>K z8`myWQpqG-#EM(ZL)&ANc`%c$<&rBr? zTYb^_id*-rag7e?;f~?Sn0zeKW1CW`hAHj86{!n8rH)n4eJf&|`i~ZI`5yOG?s`{A z@G+-+($ih3QO(aq%&$dGxdw#v>JYDW(aIfVN^GS+nyUz5mb`C)tNxi3l*PBVjJn_GELrg2aS zmg6t|7lgYQckz$d8Hfd~KVYMv22_9y5DJcdhu?RR9rdj^azW!aOi4gF&cgF`-Jf4; zrybtppNLJ)DXlzdSi{etfh8ag{}|Adi6jU0ps(nYC!MHef_<|J}B@`o;6(Ry37@(>~=oqEK=nQ3wfjT zY0vY<=AX2_{a$qCyH`7k9lyA;-J2cn@M3DM^Lgj|ko%P*t|=aev!~nce8HhOI~m{n z#Jk2Xc#0fc-@Ka0q)K2pPWCt5?#@*6!poFyB(|D#qPb1ZJzZZ zt2__52YHr;Tu$Y9^QetMpFz9U|4whg;#qc<&cK}xxBkWq2Vy|uujqjaPzW+XA_xL! zeqj>;4ug770oH?Tpo36w@@LjQPz{PfCeVI%k_nl$fTq^E@Sn9G0v(xc90n*+{&-t7=bLPyPAM;?YT2A8rF|?pS0^n^Ob!+b1rJQ=GlQcr0ELh$!ZzLj z3TaT<@ubx_L3ft9c-1H+nJ|qQ?wT$Rd8Ql4<^nJ=NzfbzKXa;+w zABawWRr(AyedXKI52@+?)1)6!{)=0s9}BC9_qjSN)?h;U_lBjPQvSi`q}TcOq1ZwX z{z!U{^2=V9K0*0s&Xhh``Jb_)6Zr>K0q?w6`aoDEcwKFhkVY3zz)G4CPV3 zO8QFWAAD2#T(ttr-jTjqP51vy`uyk?Xp8u;R;VKU{OnRJpji3GPL#e>`GtRxzFhfF zC#A29&R;Kmb=3b{`dZ~5+b(^5)N_;H5I>x+rG#Rn5I-Y2j@`nEj^$>D%eZxR9`D7~ z+`Ky%MBfaev5?Sly4$$G;>?NVUAv^|H{b9W9pN%B@B4*3$O6$$Uj0Bm$JMA7x}Jf6 z<1wvY`MA%e*C*vg!p9P%&s2WH*V30N{~z{^V*V!OKjr{P_<_k;@@OycPZ{C(MrL^L z8tH?|FIp#knewkzOW&;g?Ket481zrF?0;m2yIQ3WDZk-b=_{1KonMrS1-2@GBv)31A69-N9Y^?t@RZE(!jEM{ zj`AB`lfF{Sab``PdQ5i9+ ze7Y`u@^>=ByZfZiQ-1TH^wr8=c#ZU(${X}dv4An|6Kue4?+HBQm3zYw^P)@H^{TJvUuk+L}-i zw=a?jQZ0!GdsZerYolYO`O{eAD$C=hCC->JCxe$y57CK+L3FU>xS7E*!sD?WN5vVJ zSezxZ=u#w_FrSGxejhHHLGOYrNC(lwHoPxiSy->enU5}$zK~^$>BbS#mnwfdTRWDO zuT=i}e@kDd{0ofiVtTX6?}@PTmPFaZ-u|78=u|VTNtC`%`Q~3sKdk&ls#9b*q5PXR z=^a*Cz(v26K3RF=S?N1f0badG`gChp&2YJl2&oxT*xF(N1W%6F?Z9#$EMVO>n0RMY>+ zDX{P!n_Qvy2c(}+>8t2rVtR_2o<)xoKAfQ>)7TEVC8r(5!W_lfrK|Mqd z(XT#-cVlef*+(*e%09`Zw=bN@nmDgL%Ka0b=JNCF5#EOH`I(li=ljH2t-O0>ao!dA zh5KTy+7|R1+N0jbcnDeiaRS4;>L*#o6bN51cjl6yWA@Bo5)&LSFo)w;a6k(2B2hn@ z2HX~!ZG35Q21yqH9@d>}gu`jcGlOl|CNvp5Fohq3A?SmBoPtEx>lI4EuzJu_q1wtr zJoOQ|I1x?n#8asU(~Bb;b~I7%iu^`}kwBYcUXg69wahS|PBs?gi@O~6=+P61JD4uk zC7BoYw~7LT@I8mm40aK&LW>|BQlRfJ(m(>}FhQD;&Fsiei#Sh-{JLi$8eL=hF zX*sTz?<<606v|)^TdxEyf&vgLXI&Z-Id$dTe~~*g;AfrhTerzFC6`&KM~?)R*B z$6GV~$-d>jhqOfheZD7L$7>5kTcMQID>&d_iRJ0^jicFkM==7Vu@*}iP?pFwNh6%F zWTq<^OQ42G9w%F3tg*~&Az=}5)o3xa5ay?VOBo{POfI7t5Z8|8LkLn}Dy?JnGUIrQ zcakM#!64+Aw;yG^>&>GO0Sb|dQd>tGr&;D@P{1mD=W><-!-V^x8(N{U2D2Pk?PnSwR z>Xkn6JLxB4rN8fw(raAv6Zv2Lr1YM|#I2EtGd_?JNpoa^y}y(`aG09mb?MVnq~9?n zeQ<&F&#sa_=Sb=Q-Yk9o;>6&u&2uu0OAl*gwQC`;YG!aZjkun$Y`A@ETg~?~jD>#j zyMQ8o7w{`?YKjL@<5n5R@g%~3_aN%%u?(x^m;s`d)Zw!T$D-rMu<@Y{8laE(E~tSD zDCu}?mEpFM9a10`G#F=I zadH0H#~DxQPstoo3I95WSaa~1%K!5l>GPGp^{vSMGOU%Uh?2$fIq_QMkIs}gxm%TA z%DzTq*r$Bb(Q=17s(j|p)N|?EWdZKttVpB}D1Xr>@(xuNUhD`wOxuxaeik&2ii?~l zyg~$fhN85@;8W(}wZ=;01m9J*2h0oCQdxKT_Va4;om!&nEMJYY(rWd$I5)VqxazzM zZI8Ks;=0ea)pw!qPu?QmN1pq6F5xE!zsm5r>vApLy57Ab^0I;~eg^rHx1KLL+{9(z zFMZ-B)(Y)8@A2B}935D-l9TAuR7EbDl|vP5q_3Yi^O9ifiS*zNv@OVmH1NP!2oHlN zFbxW`X>aQpl%O_?-2|D5j5Wgg@uXiz%YZb{VU)NoXof(?g~v0Hc+;4-f%GH5@0YWT z*PVStl|q^M%zEPU>P;b7u!MM%Y%-SXckC2~ebhvWZ3Paf86V1an8u!N~ zvt=rY^Pt^mjrrY_wdWCZH1vI_}Fc7FmyL=X*#spr6coqIGcSCE+GKm486A z+cWpec3es`X*R#!WE^qv&wX?JL6>+Q`EQ=z`*M7p-cx+l#%%{*8`9{janJRM`^G8S zQIQ`RS+#^y=prmG0mSC-%VlKsLqI-6uo7r`?p-s>La`&mN6RWg#qg?ZReG?pz|GPD=%2%7LO-Scll1| zEo>$3wMY1EQjwb_ertM34pTc`OjB zpa_zn|FjNYp7BnMbBvO-LYw);*~Zz|L8>+1y!jks?uC)pGWp~lFVEvr=Y8@i+W+b;O=6Q}ZDCWf_y$o7{M5OuE#X?U z6atV01H|zN*Ez-umeXsQrvk>{CAvp7y1hU?vM7$Ue;#RR;wdMmdNAZJ_d@5Nz3)25 zX(~Cc44RDiE&D0{d{2z;PS-s1+bzc2b6PxJcb1mIxP7JTRQFH3ez60gNP+X|l`LWk zgdaGM!^T2t9Zi8L!ecN5eb5HQkPji?O?-vMMr+t}0fQ2Gm7r7TXDOU^p+nFIUC;{6 zAbRbs_u1Bo{no%K@@{Awok;k*j*`9;A3fpmQBuL7-i{Zw>iJdV$1HZOTl7kE?FGi{ z8Jqo|vS~70;%A?GYApsh5iw#wd6N2;Yvc zCR~7K!uVENEesIX1MSe<@!C4ik-%eeK!`8}`(qDI}^fkvwf5V@ouRl)u_uHgz3QGTPE?S8BTh}G3tLQh# zh|X-8AiPNWo(I zYw3%wkiLowSR((@yfPW_#)UGX;u`7Ke=B|Ub<$tAMf$oMq(7AtYLP)>rS#parEf7G zxy1O3v!#R~>QaUy^T(GOYr>rbTc81IKveR{yP1OnmG4j|{r;mC9i6f5jC}PhNIq=zWyiD&tvx`7T8oL zeI+O0!nf{_e%F=Kch*b4qEz~x`=u|vTKfJ5>A(Ah^g|CEEhDzwBqK%}rH^HQC>AjB z3+Z1yQF_h%sKmHuS@C5Y7eEg@&%joQ=78wcqAksX4RAW-nGaoN9P8cWYx3Qqong&2 za=C&1;bq3`tlNA6-Wl?cxF$jFaQ*nY{;FjAlar6&=1G8E09- zdKtU0E18IjHvmr%9)ST72kp=d^-vAvAl?96jQ(Ho2H+iTaj4W{FYt@Ul*HpooiXS8 z+xYpzuPvAO!}mBU^;5kc`<}Mn>pt`)!I%2C=>My?1FvyE$s2;FKg$%So#{Nz{eIm>-bwE@?tdLT4HIYk;zHUEPPH!fWosYtMTI@ChphYg zzSOBa7c2`}d?RgyjCw(|#fcjz6ya{P1?r#>Vqv0!m4If*hbhv%SY2hA-?6^JFs%#w z$g3GLZepd-{T#wyox`Rt#GCLpI&2MisF0veDUU-v{xGbxRL6X!V5KEs7vuOyo zqBT%;3oZ6$HbEtQt>dwqcz$DXGxJoy6x72`am0g)UHgi0`I3>WYO!a3yUIB3qP4ya zz7u`#`$pWid2Uh_C|}JJy~-$m@pUXu*NY<@et~-%$1}Hbun59;Z|9JUa06Nj$uNO$ zgA(9)=2qjER_8eLjX}A&xY}6i+~n`KHG6;V_L=8Za}A{2ytdj{be^b{2KNE3X`HXF zy57Md*71=>Q&z(oSF^?-7Cdn$+n;a+S^%lwf!;ev1If^SJ7E|k9mj(#SU)Ln7snsu zHHjvJ4pVq}id1!iI1>~HM`8#~U>d?}JLU1BcoEWG7q3^b@g8&Yio1-H4X4-Tb(p`o z%a~``Vt#O!vGEMC62rddI2Xx^Tyhlia|7k4Eb4By9S9$bPaxd;W40Ak!$d8W29;2H z55YCOCs9c z?LON!f3d&FF=!cgwD4ipIBlo5!a0whu`TuAVyn=4J@@!*{s*|tye#rC;||U1@p(S< zTpaeSc67yDqTS_tRQs8Gt@fqoaUQVWrv1k6)V}qmYe#B3eASLS>@`M!SNuKd7gu4$ zo1WUe=V)hZe{&^qALnwOb(0&U;y$)Jg)T<(Aq&zW1t#yMQGwV{Lude+@3nE6!o2KW z<1efF>e-k(s8h5a%6~>L0SyL-uYv%G`SZ|p$S|+kVVvP?BUlS{<{x($pC6XP+*Qm~ zE#@Y53cikTD>QVx{WIfEYdGDcb=}VqX#=GroCN#N;szSJ>li)(a|vric$_rDARf8h zozCT?r99Yyw;ri!`{~_#mvb(S-$i&A)7uC)!ShsK9XjVIzUWQ(-1YKMeDV2_OI~5E zO>|i5_SSZJ&8lDd>`&wg`IPcczbj9$lW&*lpCq$n$`({Uo0}fugu4(g4zUjXMVZL| zSG1+Wm|nqj*&W0WO=2P!{nxge7n;V*@Fl#!zl8Q9PMF@dJ!8w)<`}<j|@ z1-~Gkum{b2h_=#5ONB0If|?Zml|de4LhwPFIK)0c6aP6gcAWHc<5=rqNleQjJ{LsB z6KDaH0sF}ZjhAhUTXs?y7G8m-!SEyG3%yP3uAql$1;E>OA2wq2wP_SMj{=WBMnRyy znf#y-av=kfK!Xv|^+OjlK~2Z2j~X*9&TghP0q;XT@i)?^C^q8^E;+kL)Loocf zdH55?KIbsoX$W%6*)7HqwhHfq=9(7cgd=A8#RbwocxQ9mYt{0fVr*z(!DuDQQ}!*! zf_dFfvRrHfS_vhP3J&Nao>R#dcB9S|X7d0SHJ&n_UhjCCRTnv-ljtZ6!t<%T&ICjk z*zyb~Rn%(w9kL4z(uajF5Z*lQX@>b5%q>qFhgn+98=f}SuAAk5gZ-i?Z2vQqimYov z_$qvZ2&3bzY;nkeB$yv`DWT0XYtY=a+ zltVG(LkKb;00|&UFUFhcKapLyO%#HC*OdH)>+PI%>Uhti@`PtLr`?RNT7vSI-YKW& zKAM;v8Nd$xsIFMR?yc&}9BPKqljR3mTc|xTy`GC37BcMpidUqXA3bjz!R9kwFcxp9 z_BOdMaR1HQ>Dukurk&t9;9O>F_1)*{c3$IJcvjoa z(+l-Io?|^%xmvvI`JU+$=DIFp-YIW*#K%ReZ2Nfi@ZsVpf_3caq(`yw%0c)dd==s9 z4mRws=qgaxj)x+cVp=!Ql3y^Mw#SvfO#69>on#j$C0yGrHXnM)IO1R>z6LMx{a1CE{omB$%Qo>+rXSR$_bE}E z3od%YBR?IR#i!H6gZh_ivRauJXqa^i`2f|OiLjNV4gl7DXQ3>?lG6wvH z%7AW2hY8X&10!gc@o-FB_p8MBaAE8`s2a_&eKw}S9l z_)fxweeAGz)080n4f-)?(9=s5Lo)Qe&dv@TFvdLdTnU@2K27OZ`MU9;W46{$4xaApE|3c82VWLxkhmEj*8( z!!<{-&wja3Ug+wk4GN$0tb8`hai{d@?9(rzR3YVm@WU`y%zWOK`IPm1|6E?Bwb?%y z`BLM#))!(P(yw)#Xf5)8Yb`N99WdseT;O|;7osk-Ra;i`v;H*K*?cjnz*^(!cmLTP z>o51QXK^iZTWo&s8T!|@r+w|d1(8>kyyYHn`~6q@E^*!OyV7~Aiz_7NX>S`dH!S66 zK3Up1K7)@@Jj{n$Qn`>WHs0tU!#NwH1ucf$chPs)0}v;s=MXL?oQ9T~Prhv&@CHay zhSgB+vA$#cH7>}U1=s-EEpq61jTD3 zsD*MUge*vfSeW=59R`yA%2;Z?x5v0Gu99E?iXaDg2=K4QU+i&7duf$W46%@Bp1#*u z#>02vy~gbI;zV9P`*la8v{Qd)86C=58~`Kp0La-9AP@N zz};-{d{mxZ<(zOmJF;!&BO}I)aJOf^tD0L)YhAy!4LZwgN4b6-(dX>Iizg4f+ zZ&x?T4qWaGj^V6^p=&K zRj0pcZ(GZ<1NbGk6oX0FKxT!X!F4@j3d_ZWUK!nzRYxaq*sWtrF=>I zC(i~De*7OadBQDd6O=&$3=qd}i@z`~aOPlBfQL5z!9FjXKTe|~n^tt&JO)2>KNldj zGl-tc&6o^)01`llIi#5&{V?=HH?%<$)PWdSw{vkooD8+7f%HxC;o64Qul#%G$?FS~ zck(-~XidGv0=IDrBQm&hu6zq>LXEr`DGpV(-OP1RE((d=qe%1a@8ng=5NU*ebbcXc2tz7QQRR1E9Okl2rOa>^$IIfX#}o;E!pCmjuw`j z&FS$icki)^S9HdEuH&Z;7gKgFRPCb=vL$P7wJ| z_?l6Sa3z#NA>=|3(qQ#^uHT>@m?Hfc3_%}s!Sh_tX+;~M7Aiq(vbR5!FDy*r`+>rb zX36VBS<;7tx4tgle^aCqocN%8w^+6EKgp065xbQCfDEVxZBY3wT*2b9wKjzp2VIvl zoO6t(1@4w!=R%dJlS1WhKOjH&SsC%X)xYd%*^-7;g1R4bYl|5&*2xThl_*c-9QR27 zm&arSiB*2{g&M!nWa}vZusSywzfY#$xlPmvEz=^mz}vTJS_(d$^!J$WPZ+c3wfG#i zpZLPsF5Y5%ulBg@VQrgrf%Qt?-P#O&r*EV72Q%?&w1msG1KzDJJC{1eu1zexV3I=`YB=NH3=mNJFM1jb z6ITNH9ru21d}47HGA#?Z8uM?%w0K9DPvnsC&CKAx%!S_=%a8tuAEh4QPH{i&{<)>W zau;8&n&%$#i1)-^r+M6BVLkiFgc<6AXGgy=&N!@ws3vSFS_FBZ!ys{7cld_Gx^VS> zSQcbVF$ANoi#08qUcHA-xr@t@Tj{vZ{|L{>QOxwc#OI?SF%O8=^)#(*KIP44+Y0~B zuhdmU<^S9wr#C2{!y#P?>AUWUn-iH~!AUZ~FbQ%PEXAe8ZRQ{UW2_Bp{%+$k-*twj zFZVU`$;w*i7uGvGuNwKej=3zxQO>MztF4 zapOgY&B+;?uhD&&ElV5li8py%=pW@7op-&3+FbwFw(GrbQ)l9jOU2r(U=~|q>;P*9 zg$eu{{Em(V4d2q~n8*?Fl(A7y8nw&{wlPD4byjeYa6BWSxW8!fJ9J|X@)L8Qu+wJY$G2gJ@hlB|J6rIAGX?OZ;F1T^byw{+mQEcs+oI_bjqU{p6}8= zjr5VAV^*-4+RBfa6%5*_8%O{R#zZYbkF~>Uv)`}Jc96J;gyYZ;O;8Kv9nZzskFYH6 zV|pV@LMOztw|Og@9z$>Wj0*#M*P{?Hzj4?PJNj1tTF;<+mvO*)i{0@1xSC{hCOIE+ zrEq8DKNcQG;*WDd=d7R(yl}*6H;-%~C?>R{r?cnsX%D&{a-AJXI!IhM^f*nc%RYb2 z1mSTgaLo$tB)`K*f0^5&y<>UXGU^?$ooM^W`?2>^@8{mnyr1xLgS$QJZRgvL;1Fq{ zd4bD*#MzG?yf=Ee|1zzB%N@KwBJvSoQL;+ktY9%&>u8sER&c~KD>&tz6|5jmOz$IH zO}GIqfOH4|M@%mJ<(Ap)q<26IG(rKS1FzTg*dMlrd&##4O8w-`{S&(?{u;+(N0q29`Wr?=@qODXt#!_YzHfbx+Bz*STNYU-tyj9gb0+(r zvCX!uvBt1Vf7TtxdtYv}zUkfK*~k~)0z3zC8l(TX#azWZ>lR&uq67e`i5=(>2?NgOK> zJ1aPVuQlKB+drAzOjHF?4QM44Lq6~#pjf-xdQ>a3H!^D-S|zfAVn~Lm8MA_|Py(sY z6W?K-VSn5@vvDTv5L%%U?!Hm9v)|0LC(hhfqG>BCcnJpM=!32f*HZnD-nY$9XWEy} z8zJQ|q|BNX+`p3V`;bJmkXv}R>t)+JmOIQ?;WyI7TZ^IZGv zEqC~bJ++!BMuoQCcA^&cpUqR9AJDu4z9SEw-d^f6Ik>QDp2Mg}GRRDx6|9eB#C=`D zO@wuH3>}66Xg9x_YrkjqFwr6Cg)XRrYT(6L$@T-YE6K443J#|wpg zUl^0@pKUqcvCe$&F#Ftat&bAguGVhzSI~=3wLZv+Pn`QM-(1%@o~zyW(Z}C+&k#@c zTFf`|f9q{f+NZ=eZu!eXq6Kw$O9A`)u1n z|2&TLFL9o2ovl9inCS20>GbopM_po2I7Tbj#%5aNU8&VMPtbnsyVJjdakkF)tY?e% zocp&{!&b~Ymt;+)E~J&PLP@9tssgMagg~1=D>yojArwL>v-rgsl?6kj?}tv{ne)T# zCoCR4f~43XvQX@8)rR$a`-IETtN-&kV5)I0iZJnuG% z59W`@^P1(gOYIvib>{7eSKN~s6t6n1i=ztOTWbG<#ZqBDw#>f9lF;$tGW(@AOKHbR z%k4k4TDm&kTWLSpY7~DF&u#t1$JlSPI69s=#y-Pl$?16IIQs<_OHaqVHTEr5i{5eb zT6?0!lH76M@j_e8XV%&0^1R6#>)2vd<~Qr?uk$OrSF-FE&2;>mYi4i71&EwYFueUUt&#kvFLf%_%|M&cUdwj5JANR=LjSCh-8B{=IJ4Z%P#ZYkbQYH)9v|%a zfKq%F7fd08KEeYq1pWN}!Tu+&96_gpI{j@kK1Jb+|p<+JlXz%CEql1?Teg^-!Kz&nX7W` zE93fv{gNgOUC?9RkZWHTPT3z9%p8vkWhalua9uzGHbat^`fn%D4ZSb` zLv)-WbOgp=5_B45EF?oJWI-+zLJ3qr4b(#;v_Kow{Dr*HUg(D*7=;PYCgXyh$uOlL zkP7J#gd8Y<5-5X8sDTD(gcfLrZs><$!J`xwoq#ED(Ag@fx>z&`QXm~NAq#S$1ggUP ztA}Q2haMP!QJ4e=n=1)YAqaU;0+mn)&Cmkv&<(vX0K-r)N}-y0Ln>rI7UV(!6hk>wLN&B5 zr~c~*GzkNp;OHe&v>ygw2t0FGFog*vv1Rb%FaZwMVB#OF6`Bkw5P*_5SvVSm9LR?v zD1|Dhg+^%omiq4`&uBtS9*pr?lgph3umA}EClsDc`35R9>< z&^E~UE6YM#tJpK3{V){f-xy4Sc7TOJ0t|l4CPXtJ2&vBaUB-1A>qT#ZU_6Pz`m^+(}iTEzkz- zki-Hz(QfF4ei(vL7>Dvts3KIeuoHz?NPuKWwZw;m83ck5f*i<&JSc!7D1{2Bfe8v) zhc-YHv_KnlK`->fAPmDOjKdV9SmT3PPz+^I2{lk}4YO7R+MpK(U<4*WXRjR#$&d;e zkOjHmFlbb0D+5dc+Big&prud&^_S5O&|0X2MreU9=z}2`11-#G=YaAcb^Uj`58)IF zm5f%ANd_8%Jjl3?x<^YPx01$&RzVHaK{K>M3PW@!+6}$X4}&lQV=w_F@6ZO&ux_xH zkPNAi0hthjJSc`TD2FVLfGg2zsDnmmg?8wKZWxSV4TZu8jKL&m9Bert0a73hhHs_+ zXAuZNF62WAltU%dKs_`;D|A6G48jPE!xVT}XcDACCWIg#il7W?paGhp9eQB^hGW>& zV+1C_;h=Po0;!M=K?p%E(o) z2x8Y!2($o-pcE>g+C%-<5@>)X;9haC4Z5HQ`e6`;p_AR{2s#c^;NVC$0a73hf)Ii{ zD1c%phYF~KYN&%IXoGg>3iGcA`d|QtUZ6 ztQM_@CTN9D=z#$khB24`EtV|@36LC1{g>WOePPld9Wo&cav%>1pb*+P8Y)IhpcKlX z5~`sV>Y)Kzpo-&!HnbDEp&!Oz0z7dn4+7A>?hJ<9YiPBY3??2`F@<0U-rj65p#4nz|~s)iNs*SvKc|{+Hui<2R899 zp?hK_fu(%MMzdMx6L%^)2ff#7vzGNH@}7Pg>ohEOyaM3iv#NDAOlo9 z(Xe_ZH;rE+BQZZe`q;|C8&}Q(RaVaddt%_vl{a z2bx>C&f|DFF?i!)+>T{!Uc!s(J#V26Jb(2WDz3fkLv=2XEaA3DMpt5Ri6}7fJBcqt z=deaW^4ZU2lMHk>zM3_E3#}Ae04+zCaOblWox}XaVFH_20h=@XbJoklb*+g6M zdH8K;4!RxfA>G|*C%Ty}(Tcu=ZzTOT3Q~{m!dIfZ(Q5Q9G>iFH%wo-VCk9uenfN`# zhf75QBGQO(v1w{pllf>Jx*81-e=b@~x~tK0bSs-SiTHh}2i-}$jy}NE$|*781W2ouKVxqY3!U=qS@Sq2ou! zT8-X~#xmm$vbvo@?Uwj`f z9=Amnuv+O+|CG}X9I$9DUw)sLi})w$ zHO~sAo7GCpR|OJjvc_b--!V<(Kcckfb6YqPu|q`^DcyvM1$=kF&|26!VvuQ~fr;_p zQZf{e?6={?AT^)f^A1ccs^`A=M zDf)g2dLx-7q1pIYRFw99Hj~i(O1Dl(Z~a>8cBT7JQGGf8lJUP*+JK4`C?Y?x0^-RF z+PPMSe~IO5t6AuL)*zoz?rOTwB%{|HRxw0kF=K<8aU*FR&?06;H!}jRVBX|s=%UP@ zfbK;-=n}?q9o@~EPLX~WI)QFKoSuM2t1o=_zh&dQTIpFz)0NIwI!oz^s3=q#nTxeK zmV$_@(LuZ@)IP?NX#d~CRpde9Z=~1MF(U4y^o8gHXesfGrsfOJ#LPUd7SjmKug#jY zWeXL5Vgb>eQY+KvGxX-4O~Yf&yF>=2<=L1-Lo7o#4FOJQCbyG zTK|&DBhywQ;?ZVwJC)RkZYG0zbSn#}MYpkktwujXD^V+ZhH_N2!ctVU!eaDX(ifsz zNtciAMRU=8Xb9bp21R@v%_)PxHZn*9Ya^JhRs6p z9;UBGbu=5DB0e7NM)y;Y33LwqsZn^AQ;*(A{#uC1)H?!k@#3t_+sKky4O^?F14Uur2|Tbm5xoR;cQYx=xWVkl_o1q zRhpqROKGms0;R=D%TQ5}w^TtY@uE==QAMJQTtGt>w^hg5IGho!`T=&d+4O-Pj(=XF zZfl>T)zTQNQ1Qy=a&#Ass}y}+G%D0eYcCel(L(fUsw@}X%5hQ%6$S9wpg`lgdEU`nZ>+EgBTgbT|N;n;$lEN!zbdS z^QIE+O5&u1!WZ9ciEO!C7A&^hI;M$v3h`pgt!As;7^WEp+Sx>6fEE*IWNqkfv>9a+ zX^kSD#Pz6XG`dqZo^(`f2~l0SuJ5FHL{uzT6ka@;G{F2W}v4g#*-6PwwLa#K5)JD;$are`wEe4p&&#PPc* zh4>q#;p^s`OKdZYnn;RyoiTGGV|&G#XdPV}X{j>3W_@cdjfAthLkpOOzncW5=q|Jn z-Oqt}KKc@xi;6-dF>mBJJE&)i6S-pI#WrjpUg%EZEt<`IxijXl^JLYXBe$Gfy7lVg z_3Sog5(^jIO?0Pju@HK}C_10kKa9@d;A{{T3!NZyp@%cC&>U1ZSG^c%Bp1FIlgQS; z;YHS3WO^DIioRL&B7=yib6no8{TrnY zDa}>s;!l+El_!0lXYnE7>j;a5a(WiYZ->xWGM-c!jI9@SH1Fk@MMfT5jP5~jSqs4s zN3~)4jnD;b(1RU3(!q$}FZ&cR_aiS;r&T2DfmwNacJNd^JC8{sNu&o_{%o;O2a!LU zrl*~zXTQbt_WxoYk-MnJ3s7+YFhH8m*xW@NBkx0V(EVr-jUGGiOy-Ro2}E4Y_V=LT zU|L5-Urs}J;nTRjv6T$P0fZPrQ-~Lvcz|x5LYNJfiUU?83mWnwgx($>58!# zG~4H1iJ7~p_7&M5E@f_Uy4Hx_O-o7JMb7Lv1L$TBMUv5T(FD{*ya$a>p+u-ym8nvei|Da)Sp{b3!&i2Oyp*nEPh z7h7Er^(;Qpm+`(x2DH$~&{t~yaaT;@IkJ|&&<<7?$$PHXv$sJvr%KvAb`&NmktX zw@6J_dj27c+kdm3-Aoxp9S9W_C6o%ZYP$JpPt07eD2K?e;STaK<6e!KyJ4Ip6L4yc zJbIv|M(R|5m3GEZn1(*ZaajP}i6*0>4Sg)K5Pcu*GOv0y<|bP97vvc3BgG&T+$}rp z_+2vRjpQs&&qtXiDyHBy3dvZRhl-XQLPdpSqM}05(IqJi#^@e;uV{%^qoUP`-BD_- z+)(59$c-mfY)=6B4GR`UEJnM`hhB>marWyJagr<@uO|jm>-Fqk)alu;0l7xT ziaSw;dM%0RqL`hiC}x{bH55e0km%SE9ZRBP$R5htLi#yu%_j6E+Ft|u76+8;IeK{E z^_a!WMbXk(u+Y7%i_k6#ByN#I6*uj%cLS;(cIZjN488V zemlcWIx2D~zmJ^En@PI7fT%XeHudb)a5ylRRz;j>B|^o<6)NK8Y(^8d&HS)8X2uWp zvE4*Jz(C}9<9|MuK0yD-U`UK^4>5F#p>iv^A39`aMwb{ls=Vd({WGqbS--9lDM6uSQp= zPz-cG@nz^fidTYe;_x^R-A=KK%&T@YbcrkF1w@IGwo($IH9Mtti;_{|chKlia>*~g z4>vw6(@mk`0Ii99Wb3hL1CPjbc1D4O7rqbs4hcJ6(0!4NJ#662=S0Jq_lKAn+>2TD zhnPii;readb~=~)Bv1^cP!5$)1NG1dEzky?&;tW73KNi=#yy)Y+>e2w67Jie$&d<} zkOTQp3f0gE?a;F&epzsUzz}qga61Vdg(-+FM>Xk1*Ft5F2viHN;4J~#tSLle*(bS7GY z&O&R@M6?x6Li^C!=qM__8s?zNENC(+M!_IzLkm$Itw0U59<`%ws1~N#4-l}RBdEB9 zGKt#Igv*!_O-Bth3$>#qs7AM`LM>=LYDL>bd^)GOd<{Ct8cT&?eN4wxb@j59Nmu+6d}Hr%*qdbU9lR%|K_MIcNe}gw8}O z&{=35nuxYu9)Dsmi9in#v(XWB4yu>N2j`*zG#L$|E73wU11(2ap|xl++GL)$H|B_N zJN7bc%_DKaZD=q4a&#CiMazl50-eO0sOJi9$)YLf&(Tcu0W=@gvKWt03tEj@(I(V} zcA`4kj~eJGYR{rA>px;c5|M&B&`i{c=AkaM1a+fTs0VFCy=Xh?L;FxaI)=ugjw@-S zXaJ2zv(Oo6A)0`eqchQZbXFE^xs^a75#4AKI)Khb$IvQ)R3fnvPo0eAI@P zqdMA%8fXt{N5{|@)NvInhNhuTG#_=L<)}MMppk$F?LxiiFscO-8L~25Lj| zP#rBp4YUrmqiv{GMirtKbO^Pglc)`iy@vVFRMbF2XxL7mm_Q6#i8|0aRI4IG)PnY+ zR&*S-p-JUrgoaQ9Ek*5UJsN{{q7HNbjYTKWI5go}sss(9GtlB|c_1NyKphb?(Qb4W zI*KNu3D;32XeK%vEkx&_Rp?x_1x-f#(BltKvI< zEGE{HX+AT?X;&zP9lrU;v6w_}*O)wT6vfRnzZ#2KX{0hW*IfKX%;%P-j+y`9V8T+; zvG~iFhdtq`57+{RuG#o=b<_Wc*#gQhz~|x(r<}eNUykQR>XGyTe4|M3l0FUJgO64I z8T=SNRi*zWKK8?iw~FPpb~BJ=5OJhR@GJ=mq>m(+fv?0HhApzd1bh=dM)^hf9xFM|&K34gMSiV*qiQtkMe~lVLFy6=Uh44XqGu}{sExrdI zqx{kM5iy0^pONUd_CSU zoRJ0i@tyb>ed|33FN+Jw{&w}wMdQX#> zLHULF9x>f1r!T{g;eE;{_3LnJBDt|h@7@x(Fn#g}Gz6O7+^kG{b5v@cV zueLxC-;ZCV{6+YQNCt8ZPQxdEEHaROD?WrjUaj$|_)`2TQ&c8%ZwS^NGkn`t$G^_$<|`Pr?`Bk5#@9UyDCpHR2q6XJmfaD=xr~MCO-U z=w!TSRLqZ0Ws{swLC3QGte9~4Lu1Bpl&o7^`Hr;xNhS?H=%>6Nx_qO07vU5AZ|f5 zqJFdq7n2MbO=2b z9Y8ZhckLr^91%U}YP1VogSMlhySAdDn>M4zqh;tiv;@sUi_rCG8k&s;&=b&PG=wIg z8&D5=BC4ZEH&O>Z}s_vn9@Yp*t2k zTZC4pI@^Wbw#eCSK1A}kK4FVv;|7IZB z5Ee7d)P}Wm!lH>M5DpTy5T2oRYdM5P*N7*aZ=Sxyu_#=BbP|&tTDj8NtA)2{`O0S~ zWv9in#eyaMh>}V1Ca=a)~+-fU$1=mwD^4GGp5BSC_k}u+6pM&erSBh*GnDu=;6jy zGHs>OXe|^fA5YzVv@WI5HEvYCa$0<$^1*5G$;wYHpSA+ZcO4qv@$GU) zSPwU?7HRETjnZf>lqp}JG+L%Cbb`c-x<#lR8#k3iUl+T$KpRRn;w0KSV(PMwO zV*Sc@9va{A&9RQlZQ;SwMA~?*PHD6ja+KGis><4Vs!U&|G`bF{$`79+r$^%(l+T+M z?~tAcUvqyrLxu9`)8a=@mg$<5Mi)?^eC)LN-c2%nmC|VXOy$Q<64S%+B0f?JEs=->t*^X zrP1`6%8zFyg(HnGI-w;?&QPQ@8lR+m|GFO*v_|=?Y4MZC%XDo@qxqC5pK>t1xZob;>!-yRE1xkfURQqL z+#lxCtbF;Q@uC-mR7Ap|6Nn!KBRoYwD^&;)Cwp)xB|-OpB3o^hg5-@FmdJ&7u=(K{j~UE&g%0|1h6s<;xGocRZi(_?IW#bBRdk(3+J-dqK7G#Y&@V5K=xcEnZiCbvn4^4{?D6db8AGuuR zuQZxZv-DxDdfJ3ykZ0OhNv#TP3dis&J=5Kt5JX)}ymrWT;| z-~yDdo)%xMd}vyHKzaSp_>K*iIew;xr>+vq;KemcqqWede7n-E#QWdKK>v4&q{jnfACY3^pOAHJ1OZV|G`&Q(mEM_G&_Bi=u_mP0#$_$ zD(UtA!Ov0B8U?6M@E~h%fQTCc zaJ2HCq`)}Z*zJAvOI0j(`Uzqf-=ID!^s%*cLV_KYf9s^=3e1!Gl{8zW_w-4+1={yq^Y$ zC0_w}7apwDBL(*gpzf)UZdPCgfYsr_n$%Npp8<@42W!&FhjVCp!^;qOuqvZ{NX-<0 zsqkP;7Av?+fIq{7HQA@&jswhx2Wv7QRcW3ZfT#d=3I@iz@Q#`m0n|Jz(+Zo;3J_~j z8DK4Vu%=BETok}g@Zbunw}Kl2a5Q-`)mUlz6vbG$|AG(BnQtWdwli_B1|QtJnF3j` zSlrja2aS4H;lq6&e9+4tDLC90!Ut7(uHbq=8Xq*^zdl?Qc@qdXg3yAx8NPyX!w4TU z7@_%S&=4z^3K}d1Bx<+}-VFdV0cOF28s-4R(oO)(hsO^xllUZ~ZaU^J0L&}I!aGVZ zKKDs23$PwMm=p1>6nuMt@$g`s5kF4BCjnfhyd(Z+<$WK(e0Z>Kh`+1gi=M+Vq49;U zen_Yc?^xJ>3$6}$tWrIItrQ+KXeW3_C3*uKp}ZqLNqL_GFcTiEB;tQj@Hqf4!ozCn z`Urn1gy#rfDh7uPmEj#T*8*6Jv`&J49}gy%drdL?WEmc;Q2{`?(E&b(2g}mD^5Jv< zE5L(y+3G2{Fo5mh2?DnM0I`U#0VctNCRzy)2j0RNQl@qA-LIhiFVLl+o{oE!lh<0SV2*nz437=EV#Pd(|K$2fta|4oG-jKFq#RrqZC@>50x`%f9WmMegKcj5U9 zo=5N$!Sno_R3*>Y-7he?Hk_`&0YyAKO=?zXwI1LP01E)-OLNZ}yVBY#(#;FTLW{PO zbfnNIvDzEb#D9#jI;~SW_S9Hcr*#nTOXIfy`V|`kwJFlXV&fAnm77aOyf!w2?_aKa zZHxeL{k1Uxm?Ga8S5dh~rCV=|EogEgCLn5W1tyEu>ZOx3v)0sYct-N^;R&w^d@uU= z@XAqwZYC)lx%hp=@d~XZcrpwzBV>+;$PqK5a@3fzz%lh>j^vRU$;pWcACMz?q;ybV z>S;mShh-SJ!tIjwmt_L9S_8S@&%D55%Q0giDYdS^G}Tcj@}+T=8Te?8D=)$WMZ#k< zxJG2STqDWADohR5l_!PTT4jjtJTk8e6COOmucqgNO`kF{a9)Ptdu{J_M^=PupG2{< zCBxas3{e~*{aJ;Xrl(v-q`{#~e*+bJTFR-%bTVq~64#Uod~1Qp{3kKEYxISSEi;mS=!%~ z=>rucwr)(L)~=<2bE5^(&WZY5uV(1*-BAJdXzk1-DFU>2`KU7#syOUFR5GI*(-9<{ z>Bh7JAarM{0%+8o83|x@cg7#gxVJkKsSPu9NzfGQGA8(IHWd0qJ8LDFiuIBci*cqG zmMi`@0)C{Ub*vR_w0jAu-h-(FLb~>lMJD!Of+4lA2eS}BwVq5@0AqVHE^RV-+mmSo z<<$Rz3HO8M`?3#{;0H!=_h$l(&|bHPFgFd5J~RT11Muc3W+4UqiDQ^MXv1z}nOI1! z7|RUTQ=aBTKZ$t?=+~2&=}^YR$xL0KZkWuNC@oEPO=YSD&^NvL3nqu_H$_SQLMzld zL!_J9Xj*zal@YXBTKX`J8N@NMi)`$v<{7g)kYRI}Ky54$=P=*KI#Ux;ALt^$yx=f< zZF;LNAxTX;cPGq#K>26}f15sDmoQUJdjf3wARW*(KDv`MpUZ65c9b5>WhSFzCd_AE zBOI`hxu?~#q+JG6lRC9Q8j-;?K)+tGnAxk<+DW&i%n`7IjW8W)sOX@TOiuuNS2B$# zcR2ZLCDT~jfmB+>3d(Co6&ih{Kg((WtD8pw*(OlvUU)zyp>JTW*E3}PUWnM}`?h64%4V%=J?w%wa$ z?G|v-Hle9T`*($CN%laXYKo~4(OZ=Zz45oMaf#K^t)+6iky18yPzw z|K7-SE${hxt83X2H1>@n)z;IRY8z<{)Sq9mb(@%B08E>i`rydTH#2_(c={&H zcxg07{U*+Ec#8(5RfzH#*-2_|Vcfv%-2zp2O2Ss?x{$27jX4J3?`=#3cy+a(nTZ%T zR&9q4=OpL0Gob)pY-d(*(3y?JvhEo!16j2LO14Y%PKMEP;O`|Q7pauR+=QO+I*Zwc znJkdW7XiqwUEm-t;@!nW18B6H83bVAZtyr!%G=G@u>0Nqh1m%=%;)cA@RxSm_JV(+hLp!c&gL+Gftu10W|p?R^L*tab&_Y;1=^bv`75@aE(cwu+c9P$ zmHP)deGIy~le|3!fx$_(9A^%2wAY(y<#RHQcKJ`!(70Sw)z}HYyCaX zNYsaS50Zjb6?V(~SE^}iHEV;D?9XSqhB}|sNv3QI4R1470Wby7{p=*V0K$u%Of6u>2FQb_)z_*9 ze+V@dly}11fsoWuN?(7$5ZA{Z49aX40^D09Qp1UGlKF2k%DK;R|wlb zXTE@ntbWe4qui~?-RDdUG)e6jOy>%a42yXGASr5R^wm1abF(AhM{qEY3?lPhFgZ}O zt}mHz%F~}Dzhr7q?!MB`FPU-JWWlePL;wq4;iP~ZdL_>s46mVUg5>l!Oh=oixwmNk zx;nWMM4~WbCnL--$-_4gR67vUTjoJSPxC_Y@cuaSBk9`>`ZNbXsy$4i%Zi%Btd8iO~7tvq2G%?BVwRj zT@1;f*tt+fuphe)D(v=Sar_U^u`udMt#zzj$Hk;3i1&5Mm`mmxS@cnl5sHi<FXf0)m2#wv%=&+qJ4aJzASskbMi0 zGwe26yyA_Es=rl?u=|*Hu`G6i$1FQYka>$fQmx&q^)fn?zT-TpoP7cI@8RjP!I8%&~PLly~OXV{k=P z;MrJ9r}Qn(gp?IpH3Sdm*@jSq>E}!Sxteh z4NciiUS<$X z=n7K5vLKbS4-7`TI-qg%4zkdn-2)oi%dyQt)dcGGU{v(S9@x5b%dx#oX8$%P)Z)G6 zfY~msE6=*IYYh)z#{jqgWQxanp)v0D{UX=|8dvSYJg(p;H_tPEIGv>@8O@r8$kYS^kFz=07 z%`iQPg=v>`K8XEWYjHjgIn%`hwFTFK5n9R%VfRu%oe|2u#p+J2$sT}uN-b)!C$M+= z)nUJc7&5dDn+{x0>ac!((5V|FH%|LC`M0zL{R>uU6~Z)NuLjzmc!T1G*ATt&*_U8e zTpHLPVPOBzfVE@GIvTQ%psesPHVuk66vl3W<;Q}X zP4^pKYh1jl*7QiW59QoLu0^t)D9=x%Runq~gv^a%PvW4_t1bHurguHtu?C!44~Su% z05-(12|#4*EUauvOFQ_6ldQ6{O||W%3wHK8%!$ZOC$wBF$wNSs2To`l7x}V1Tc3{2 z%t(tR8SU9Mf-`f6Yin9UdTF4x$Ffz?-e1MC?Lm*7vC#0az78N3fH9&AJEOee zMTkgp-osoi^Ke2p+AQaQx!SHSY)!`SLQZaXk~>}4hydj6J4fOEHK7+>QQ?*vbp@kP zp68@R9Qz$qZhIUXjj^F9j!g!Y$9H32`Dr(iQ9aoaV1esBp(ZfCf5E;1Wc6O`5&*yT zV(V#Rr3aX@xcL4zBJ6pQYSX0mVPEj>eYo2Z0iR}pZHIkiUSIYKXCMi4?`a~yHEagh zX6VO8aE7Ep-Q713{a~#x5~&}1jB;j?DgD_l5X18NL(js-{eB=@1zK~-Kx|D~S~UnF z5a^T_51|t#d|$GGmF#a|;dR9C@(_(=_f5x6rNH*VG<2|xFQJ0Y@5tpZL2J9@H<&eP z!6_{XFc8qBW&)cB-RM~Ycn(bt4PmnZOdZNz0G4iFv3(%5?JK#Umc!VNX6K?dxxSbI zQ>8`2z+|1J@?WzfDV%e{g1eOV4VzjKTE3{^rW(IXJ$*`rfKu++V3KR3$+v76=CKqT z)jZO7-?AYvBfdtKj$r?x+%HJVNH(as`;oVx>bs9chzmi4jD;Z_#)4=8MZzqgVD+0) z3@q$MvRx^6AqgAB*5O1N7W?mfW1L8ajba1q!}_>jby0@DzdZCs3mNzPHDIy7KvL1_ z*J(q2vNOa`7skI`qresH(uYxOZ609lsq74j@_bKzp3YW5cv^vv6lhLjgAm^!iLHaM zZ<3F1k^+BJ;BQInWw7$X88B4QlHW{rIJWM{S?o{%7iO`&0Mt#EiK~(!tTl|;;MLsD zl9mYIHFhwCoZcB`-3WVJF&i4^dad(kOK=8&Dd3P2Tx=+cOiP8nWGCg**cG%XZ&qkW zBBil`_*$c*bTy52q3xx?=@3fr<-{CtJ8X@==CbXDycZ-1yI#RzwcAC{V^30mHqU35 zRdHYY;%MI-Z_c1wYD3xdMYsdG3!6qdI-h-|Z36C)6M0Bw5FDr+lD#>%4+M^BkQy-z zK9(q+I?*hpPTFi&TM_0)hoyfOvV&nMeT{Tq%pMIx=G87$L;#3z|K<}BnWADpE}6tE zVS7{V9OqR0(x?+v~vZ^V94FS5@sPzQn(Uk zpH8XLDzuFFlC1xUokGufm66_23SA9D8a3x7>9K}A2=P)_%WlEs!L@7)$WpwPooWC$ zek=PJOlXyc{LEga%Q?TRe6;=1nMsv9SBAe5)HcKA`HsZxX4^u$Wb9@e`nx72%-f_< zYXbJmMc4adH(QMoCy{@5vzMvlAEb+WSQcCK_AlTaPAOt9`z^)UQxl`QUR7pI(oTt8 zLTN?G{u_jOsLZAV>?HtG53;aYBz}k3d!Y8iL+mq1-8{^8pCQh>RIE*q7 zj1g%kP2FrEICnrU8>pl5wo0F!V#EBjj5PcV+e=5~ZrpVAJWEk0HcH1Yu&Fv+hIP5Z z_JxdFuCSHlRoWFc2BG;X3+ug0WWiPTJ$1UdwBQE|14)zxcM~?G-s&z^(;#$J~Ko&?$BPlMTjI zXJR3CM!R(NE-M%*v7Gei5&Pbca+M>Gir68Pr;OD730nqiAPs%WT5!fS{ux^v>6y>i zQAoEwXLtC);y$~W-3gu$D2;y2*7JjsR{aZ|(oT;3%T5Q-?j4&Q;uxGkYpks3O&UI+ zun+7-DEq)HM$K~Q<)r$1u!=#N{+{*Vyw9mMfqo9Mi!#}<%f6yaER;t4^rkal?(=$6 zG-Y=8n4-}-8SE-Oq$-T*1ngIn2PV@Rs92iW6b!ySoczq0`r}>?%bVI$;y|efZ|bDA z#cXJiTWzyJ<4qcPL^uw6=wght$6~6463z)Ge*pIclZ&F)lYGHc7FvH+8B;sJddir3 z0jO#-9RM}2+e~>dl8ur!`U({#9rU4BO;<15;J4A9>Qi}qYh`xbQ+^1(blTXiAByC4y&=vskKfJaF{yXCV#h+ z`klH+U2b#MTc8;b=te$G)YfF6OV65^mg~yHE?&^i!!XlVhG+1Q4>0~o>zbPmz{#34 zsEz54&geS*&H*!))1-YnQ!CJ1Y-hp_exaS|TZpHTF{anrE>d&5=??h!OH$cs3WBiH z+G&c=PIp^V+j%vXr21}&~ z@wn{!m_Fm<)V!pV*&n5gR(;sr%h#rIIYmFcj(xYgr*DL}Z}7&QCC}QM`k+!>VomG8 zIiJOvwt;S|JD5772S4s)>IQuvva{)G2dHhpGE+nB!m-Q2{p`}F<)#g0Dz~-NWuxhL z*q3W9g={rBXv*DG`evtTqaU@R4Jot7)QP&-T8iIeT2PVlG?AX3F{Q$!AY7V~Z|dSl zf)(o7wRJ5J25tc zy)gtjQ)Pd9<1fFQ>5_)3J8bTTIH7BO)l`@AOd;O@3l5B_S4|y2?+aH!e^~QfGt~vq z@S3UGbo*c4q%ONZ%HIs9H{K+ES1Hc!@Zrwx{0P_9hnu&f6i4H{9p!B=#o3!H@_sJG z(UFS0tu}K0n#sSmT;P^c2C<#Ou&EU1ZVfnMxo-0Jr|)}{=4~t`iB2Rnzit|X(?xUX z6jR!F9l9rUh}SnvUTnCBw@kRdx%#%LCbXaDHgqtEg{C_Y3*k`nj_G;@Pi}ino1-mq zspH-(Iy|BnzVhSp3w8cOPX7s}bmfx&{b`B=5iJW%NBlwW(T7Q?BKEIQ5#g@M1{|Sx zp@%|fkbyMxuBkPiB&@q{>PWd)lcM{kdQfKI1Je;;y8Xc9U!T5T$6Rg<6B&yE-Z>n2^ybXs{kJ|$3!fEy@)lcN7N5v>2! zN2W-~6!6$I7l)ipMF?T+eQpZYyYgmj^yEqXpPSaA>wkD@!c&E6#imA-;U@W_7@QNT zKMCQydF3|5z<--}HnuwIdGAlAd#)f>}o+HiW-MyJ&Lt!bejHf`Lk|4HLj{}eN^ zO5V7i9+u+VKLJj9_TKbDEAziUQA(rN`uGofN^#iS3X&$HABEXPflpf^|13SIFnr3dBnchc>?S9mHSSqZW}-@ux?K}DScGh793Zl zE|hsIn((!s8K+0nb>=}JUnfMQ=F`LVAm%_d_cc-DTXN@$&Sq6+BiRPACy}JR_<^@?c+Ps!>hmlre z%)bDXo{llcQ+g590AlZPW?Wrv8fOmI!Ju;e2lFGS{L!pG&VMnSVBD^<=|LbA7E|x-irHLPygO0z`7gWlp5&mhdV?r<(n= zv>PW_BsLA2PaI6frI~|#C~0{bn25HwLDoL$=BipObkZDiTZD(_m>1J@6w-RlH4oQP zTmm^d&pfI!m*9=kbe`obtFgueQ7;(fq-msCcR>qvjIa18Q5A=O)0quY^B4wCE!4T4|4D%@p@=05l znll-O?&2FzMDls2d3XffX`<9W`p(vr|ogTDot2pZluMMwyrf_p=kT(h;(f*SMsCXU!W$NHk(6fcTaphzu8<< zd40Fpd=;y6Ws7++!ckkz6|v!FZ#7p(n6=eB2i0z~&3qcg6Z3X+W7=1@cH7Oak7{yZ zySbf~CgpdS>q0xW+hJaTa_i8kgMq1zH?n$X@dzt%K~{ zYfhlu322GHU(K^jv^W&JUD|L2RHNK`B*!uHBn!Ctk>4@DYa+?LXzqZp%q8o^I;Dw!m}7C$eC(<@k+L2yK9kqw?7-ZR zi!);3N>4Fqd&4}0a$S`+-!R|RLkF2#Xzqov@7_J=1$bEAIEp_}WY4HOyERYQ& zr8j?>pKG-pB=7&s9brdBYWc_vcX{k&=VNnIi^zN9Tfau5;ei9pxE`AWp(>!U*Ng{9 z!@cIFWyQ&IPme!z3yuT8q2UnWJF?qrz6=a$MP?6xZcofBD0g%6&l7V9XeB%~H`TT} z90b^U2p00J#0u907w=`G3vRA$}3^4nl#8Nbk(uv?jv5Hz#OK(#ZD^)S%K^KA2%S z=3J7;MdEp>S<7{Rn<%}sTrU7SwcHX;Ot#Un5Zqf4fTSD6;U?xtiknE&DL9<`O>vR5 z2s=--)XZ;RInh3^hEzOvO)G?)#v>%S$8m2HCH(=r!!Co1WEr_ul%qEJ z$H-No>}?6paP?qKPg*hDiD>nUPqIlK@undRJ2)o2q3>u#EKHgg@z!c-{k@m$!^f_=njK?@T#v77X> znd4!)~?ZUYu3YKZY^`tx_rT8XX6D?)`jx24;wWr*R zNkLPt4vZhBX50Y)o@QLT0CAZ&Z0@5jX|1J?RunVA=%iW%R~IwIMR5Ho$7Hf2f~yq_ zyTDd%Hg{xj%u~1?hDT{=KWq_*m@6?`aRj&D;-Z(eP0*|JJ}1fkjOzrBgPmoHRHiv6 z?}P-l;O^jlUeM#sc%MfVEwI z)+WZa+8YwHJF14bD8}bqc4=x9I6efjOVL~)`pUDmTvN)koz!W^E#k!W-l+b6`B-Uk zvK`k@uy3HhOpKax_vUpUS|m&i7fahWq7{0@aGf#p#u)B0C1#Onb}kp8!@<=-_??3r zS2-;UHbkFoO{P1BbjX;{LUSpviAL+dRa{yYp`6_8CTUq)leHZSEyd3zxKRq*TH6b) z#m{}*Yu@_RWHlLvw5%B&3QeUPQjU|W4$(Y|+>hm|@UASlw4jTC?6B{*T`JRoy9Gl< z7J1r<>kYN+*qNK(&#=Ei3T!iLl=^K+jB0h$_wL>VRlLzZTFe8>%Q6i6@yb?yyE#tf zEG;!LYs&qP(&>=C7XdDZ`^PX(?!tMYK|;H7(O}$RT{$?Bv`Zu7xHUQ$f{3*zR}O-F z&7NFCm_bXudT}s3z)?pZZkLXt-DL1U4z~Wts)5*{e#Vh(`XFw(w(RNLfgULjKBs!J z&4~z;Mw{WvJ5TC;$I!m(a@FqqT&Io-SA{f;-j(}lyNQJfLChx6@(Sk`>SDGf7shRHjHZx>0bynoP+CVQrd8? zE~celzu`VZFY=o|G9$Pac+t#Itii=L%IY%$x&XLv`bchDi1>NbgY)Dcz&V52Lsski2{pw^wT>T@$${RE$4qJDTf6+5O3a(GW-= zeQh-Nz0JO_ujmb0xv_hPKG{l~Bne}<>6FJ`x;uvZO-qaW&|TM!1)QrIsXh+63&8ks zTy@Y)9LH6|WX^c5EIB-mtIX2}yhT&y`J535e~sh5qMYSO+<2}cm0XRC7|(TAGPD8} z-;L+`>65F$Hb*To@O$W>z;gV1ZUi)FqX}FfCU9kI&0A!wj3R$d=T?IAO;6&qx-z2MTTpp1jIB`UY`l07 zMHVG<{5h}jFxTfwzr&Q-hnM&iuDTA251-97r(C_r zsM*~5%C65Fh;T(AWsO6BIpkuE-@Qe7*%ItYz^K-jG)U*xSG1q^7CibX0_1`8bKZh_ z>ib#pC>=tYNT$x=GAQR)Qkl8jDXNkE4{v_|TRwjAk~e?lP38THH~+>BMb1@ker4qy z?)of%0m}rH>(pMpvp9v!S;)0%NZ*8+iss*+D)(6KtsJwH|p^^JKmV3$v(!o8YB&>tW`F5;>Ic)W;fQw>Ul0e|Y^ zj#oPRtutt5ZFXw>HoG+W&Xrw#Ca{krT{5_Qz56~ImQ-KNo#U|K#VMNIcvvxQ=@RY> zoBN?ReqsC=xXycHk*|6%;x6I#!uF~Zw3JJRUiUv~BjK*Vsm9+@(vRF-czHy=TE#V? z=!MeCRoo3gJSLMexj68@yiBe(MXw|;Gr4aN4qn5xMYwSd_ZemQkrb=}&t_MW_G`H> z054^( z4kED6%MkO5t_BC*c== z;lgkmTECa;L4g+i_i`cO$HS+V1>vU)1FC-*pPfN>lEsK7Z~paDg-a&ArTRVXIJndA zov>-KP~70$wU_Is73{BQdxjxw_}UbkKKB(kg%l`p7C#@}bu{oq@2;5GF;IgR9sSG;CYOkcxM}WnG}4O8wm?&GXDrnKSXlp2p1ujoWqrB zTk|MaS4M{MB}nPZquh8cVqGMv6npO&H`#}sU@XNZx?!3r^A6)nE0mVY4bsV2=fx6U zQhbV=D7J z%H0}L?+h0L743S4!>h=N04Vo6vfvCCPkG*vr)RivN;_&MmzF=_EcYN-q`Wz^5^F4O zpK~Nz>1jG|PQs{nk}m}T^Bf182(nGes4g(~JhuTx^mnAmWo{Zk>6gn~re77q&52|5 zmlI}4lmz>Nvo<;ZNth?;eebSZ>AP#(6b#nh>s%s4;z2jKjudt3o%Hi9?v`vxgJxQ( zddmyA7jm(^Txzi^?r_~;_xPRk&wZ{9Zs*s3$aS>Xb>7TpoqH2nP=Dq^Q5SgYwJ!N8BU%<Q85DmGe&X;>>dx>EJ(y;>g@>yoBJ8p8M+`Qo;AmTS#*tXm@V?qA zu>t&J+=Yy&%(n!_v6cCu@ROZ)(zQUofRbxp^LmL_l9NIF1e5($DWYRAze(nrQ0bc5 z8HqN8m%D^(ScOt#%MiX1avI{sm1LJDhw%GpRJd6!{-6O`$!9D%K9CO$`3NZNeu>=Z zF#cOmb$b}U26sy18u1l)SMJv2Hpf*rk-l%lw}QsdkzX3~&w+PKIG-r%=jm2rCQ`Er z|4v5!(YHhu65f>g%Bwe)AEb9`Ax~q{ zqXVBw<9iBu-GOhdyteGf&!^>IJCSo8p)7pW6H_O?xq^-D#79%E^JGpZzKg%;$VhE( zw;AJ`WVl==;DmEAk$5}tEs>>OXFjfkB`X|Qc$H;gXCKSi&L2t90E>ZDSsHcmv5e~S zk(9W`z{0647rO9cN(vaw11VG`_36qdmXI_^s;-i5cIDH2q*$9ViGwSCHC58&I6l23 zmla5c8Y-z$w~xxoG{fSnwn|#_F)0j4u39RoW_R9>rWnrhf5>OsfgBYN+Om?8Q&~NaY+Lx*Dj&bG`UgDiKUv0M>Wa zSBbNF^M8~mqY*&SdMYWg4{w)ACpy`T)=x+$`|$f!k>GDpHmF2hHQ(~S`~WKLJbBfZ zU&hRKz%9jY8RBfRydQtSgf<667aa5l^@mTPek3J67^)PcN|`=@k5GxdZN|7yh-U`y z+f^cz9~T08S5H|wfRX=73L?>B^p?nO&r9=5v9~maU8MJi; zRp7&+d~^Q}U@vP^5aMq$q&aLUj5C8yBN1Qm!T#;RJK`~i?PJo&ulUGXm@5f#8OpE9 zCJVyhntRYL+$`Lhl3_$z5zstBbT--An{Q6IVf=&=lZ^fhvRPFfmJj>Lsggb+JsZZi z!#aHS^(S2`s|AQQs`=M_%{!6l(bs(Uk187964W-ROg)G5iInFm$sNwm5yZnbqoyIq zXa?l3vB?v@;cLritAciXi~hLk8-59l7l(1h8Zm+oR$d2;;D_79%iy=hth!*g81Uao z$bWSN-%wlDQ{c^*C0l$eM0G&c{+uXr(adxQN&9#N2}>@u4z0N}7RwAlMA^1d{o5t5xa%j3MIb>0$=_LfKLU0^~G9>48{-n>uLH(iPpFt6F z{|KIey&NsCqH|HDelwJA6Q!VYPa>MkP#PpoLHpD>GXv&&DVH%MRGWz*0bb#VcP1Zh zqOapnmU10e-maPad96*x7z<#=Vdw{1+{QD|Z-K0=X7C`7`BWWIiRB)}Bp0YoTH z$%R*$$irm5DaG_BK_WlfLSLWJzI*CrSX4Rw!NT^7d?6MVk^^%D7~DLc!vyj#%(m0T z!_U!BFQe50w&rY=- zS|-#d4=2-bb$l*=m2q@~OxJN;!OY|9mLx^edLCb2a6YgZvg&7~lyXg;$3J9J;?ztd z=R+nn39)m&k}1AHMv97td#>~O^NP80!l0GAsOCDhpu}AH3L(XYy1iQfT|{w0h2SWU zgyswRh9CJ_kt$BE(e#DfIrkeo{vH()6*K?i3r zURT4aRwd9z=tc{0qSH~8K7c@sL3E~qPI-&m1h`B5CriyCOTJ3@BeZ7_^kuSo89!W) zuetRkemP$UcUqeN$j_zd>*U0b{3yL)Ake}|s}=lA-+Oa%dRYMQJ#-T-(#g}G_^&D5b<%$| zln!wAYQ7G_Usv<5XsnHc?8)RsEV#uQzA?;lMy}yQVZoi@1N#v;$ZZ6$Fkj1uQn_tO zy|w%ZU;UerpVsn~G5f)_{3IW)6=}7OZ{~ZCBtNXtWZ${SEnf1D~YTOZ7MMurcoG5A8}4H^KVc_qt^h-KQrL>wT_Y~jO8l5i%nm2X~>q@|8q`Qd(SZlaId{fZpk z&N~=24VTJy@HI=4aP@HqKfELfKdjophnHrykw-iD#--`@eBVwBf>H?1=oV)?_c;Y zs=#_8!chj+6ku>UYZNTKT~mRlDe?^3%h##=2@kCN6pq}_kYmGMKIFd~NeYJ^&PPO2 zxR;NNPOhIpC)bCGfgeQn$sj%whW993)MRe*!JK`#xKWfbX8A-IAdfz`9pohmzw)6a zV&Y);!1V)E(5Z@vTH_NFzxyLGklj~oj#?{n@>hO>Vx=G!;>tMHe4k4t<_l8@KJzV< z_|8g>d|2cg#;Q4-X_B0t~NGbLym#xHqtEpHwL! zmZsDnw-oNfbqQ__#AD8y`}v_tSy8xSGX@A>AYt`>h^f97ic<(FeUNZAfg-&B_C7=T>ee&Yiv&t+-!Z~RM`xNU>|g8-;J%y0BVfG$lq2#ao;xDCAuca7!Z#@D@56k8 zl0##KGFGZNzRX5*$f6b?VTDS#T1p7Q8Oo0;p<53BLCKK?1jBNbkZ=S>6RfzkjDjAC zMXxym^DRYL*irEil|S;R!k?p}W&Wv0OEiiv3k5G#`ClC6r>b=*2Z9!>1o2o&t*t6y zG!}j67&fU~xgdp*G8PHN$M_iv!CDc@$WTS4ABVZ7FGo=jSazXG2zTQ|T^6N*O&ggo z0YxRc`80*F0OnNA1!@jcZi!Zz3cIse{Xe zKgqYpbnlZeE<$?dN#B0R2_^mXB=7;f`Y9j(7pM4X77*uxR?s_Kz9nPfDgGv-BK72C z9)$bS;T&Jn*W?O1Wj3N?&tZ=N zPY6=E<>r{BqQg{fxiJo@=qQyNy{|Ko=;S> z6u?5#m9A#F^Lt4aTw%%tx%mPv@UsNxY}sT+4NS1*-b%J#fQqSTE23rYdmp2N0PUEI zss>)Afxj(vYE0xAEzS{T{e%(22Bt&41;4x04;O`DT=1lXU+z zPwAN4JunY}B@7%nzT+E~Bw-)xJx&G{DqJ6b&%3mY<2RN2;RhhANpVSlCA=hMU((Yu zfkvV9lJk~4o7htxQDGa}Z~%-Uk9Iq?mUV*I6GkEk)rP~+D&w)`5-1DoCdvGn5Zqe&Z^Wd37*7U(51Axa_m3fAf@TNHw(9{8K2 zYII0viDptDiHeKFKwGvcd`YlXX82W=?4~Wy0YLKw3fd=^)>~RKdf@UIGgfcur54i= z6#GRfM%tsd_(1^lnWP$cha?c=BjFu3%ue;i4X|3%@ zZW=A^w4F#WW2r6M8a{c$SVB#6rq7im_y?UCb2^dfjHMcrJ43C~Hpb$nljYitXD#7u za?csQPxYmf-K?dtuf@ni)=~}n1!uDKvxynla#4PuW;VFoV$epKY_bf3UqG(FHEIfM zgTk*8IZJ)Uj?)qdPk6ajRnZV#;#&H^JB!pNBO`_)%&{NK# z&<`ONt(HkfhCgwh%T%{i@+I$KvVL_-H{eIV*Iz^dY1J(Q6h!VVL_7fmmHU?z7ix*e zU(@ZXZCRq_L}((<11RJL@_b&`(#>CY$2R_jg%rGoS!m|}{5G;@W^L?1_Sd!4)u+R2 z-Wl@0x|S-m=`8$Cn{f3k8MKdMLp@8)P=&*n`Ffp{9VuPJwW1>Ix?c@Bm-M8brMA{) ze}lHm2iqC`2O2<^x0Ct}EU^L-dbanW9d8lsYGA1;qx-1n_lV9`(E}88N*T0oaRWpve^8n4x^-^J(jz0F(6U8yw_6I&;KE?F(;?_|2qq=!$#bNlO8eqE}zUnwlYOvoDP6aBAg@m~)!8_dTn3lFzf(&p+YMM0dfMsbV{fQqkQcp~j zD*j=qLs7?mkQ`URyHFE|xYMLRuUT67QJ#rXm0OmV6y=;GmAhm44r1^mY4)F%#d<3D z2Px>GWgz_a`UffLvBe(Y58|AOwtvB^0Vh`7~4wdT;KeCuA z)d{nX0@s}N!SjtMSG$ALdf^j! zA*J#f$66zGALqflgJ7zeovpQHy*?^?U!1i)+-aFXs9x53X3q?p!LB)lbC{W=MK9|< z)`!8g^lvX~5hb(4Xm0sfUiGzZ{RAWJ=x0sQQjojZ0Bfy}bALU+I>-;5Y1SssH0f-- zHGspEAEd}XBdvG9-||OUXZlmINm7qwFqSrsv`?|d0)A17bp#FgU*}jWFq9*SR9s?h zOF5IIflI9GwLl;`Vtr59lO)|T>)jyAK2!SNK5GnKEo*qtI+d~~lN|@Gm96%T__>RL z=@Bo`ivfG>ptU;HF?s1BYeZAo#9w7rWAADzpWvL5$IvzcnyZ@WuBONFYSpXzVFPF( z7ChJ#0+G`(6-`P;9I^)KkI#e-a)2y4WUT|z$l*iQ(|D_K&S9W=W`ctqAiED+zXEjv zvaL`3p(KE=t_fyal%&?T!kGSrkM2z9x(6VS)KM)>~i#DeH)J z2mDB3BZ)r-rMZ%&2FI;!p(}1A-+8PxC~-ac(PRA#(-%F~pQ*XY(##XqIXck6a>hE< z-~IGAxFwojc8N1WEYoV8=D7|hA#2W9o8vvo8)vL>5E$y8wOX}woXtFEv()yS)eLvk zHdQ}Z@UCoWlkw80gpgojqAAM1V#Vewzk_$~S6k@Zir z`z;P1xf;YsYad%@>Y)8dji=V?X8Wk2lB8Dei>KCvl0KO8)SB)m`!Upf;!89d$e2d@ zzqGb4Vaj}IJxfu`w~*1Vtxc%?Tgb-O);Ma*7V_$~^*i?DmhR%aV(64x$hbGwMbzRg zlJTu|sh&NxC1dt)TWqFnTgYau5Js)oLf}_1%>WNSabO!EW#xG4eQi0LNMi-Nixd_6)4>-@>>}Yaf&84 z$_QUn@XU-BY8=(WrK}}+A;%-0mv7Y}$EE|W4mKgGmZ*ncQG~?}@?F;|0axp&)yMOu;A%L);!-Gm+hL7gWlWrcdxX|p%S^3#zacs2c9S^SZ{{ngNHNCVgF zvNWXKCUUu~Pz!YZP*xZQa)$W}s{qjDgfB5wPB;XcyP@TUdz9Osm@5b=S{=!#APkSu z1wc8Ky;<2e`$+z|C=ts(oB}c{`Y2Uz49Jdvk3nRJGH*F=)`x3bvSm&g>#j(m0)$!? zmwUIEpt-EW{5WBp5Fpeyi-A!8tktLCV!B((3J@BD$#+Y4D+(7G&})Bn;q&@pHE&kK zrGBA|Muatyp$1BZ@wi5tCBd8jixo-pPys&zk`O8c2hzR7D{UQ zYeEJ8Mq+($*8FrDf6u1~7Q;f8h}jXzsAO_YZ`RJV(n4TrB|Qigrt*|wpY&A|VIxzH zZAbEpacY!?ax+9`5Lm@dLfQxo;OAf6+6Xo<`p`B4eA1PyZX=X8CAai0nEy643a4pD z+6aLrT^sKL%WFjF$U{H~$x*=ZQXB>-mj|~ZrSg%&cBZ^NHZdvt+E&*kDOw0QUME?p z7P;PDSVwsdNlCFnW4z+Hr>n5a7~t;G27cu>=zb&TI{jVBZv&%|WCcZOcyD1AT!)ys zX4cKQN9iLo&YwW<1Jll0+7}$y-HlZ2EA*&F_c|uiSfm zY4|KqU*Snz`(W?rs=J1&hVAbio&AfCK^zG0yRh7K`sEZ(thVJh4X#{rcCt{9@ljz0O#G$@OBoosdPmD6+1e?BUTdPq%hTf| zP>bxDDx8PUYl+hYvsNAO$g=4I{0bwNJen?q0Jl6jPsU0FBneC4yCk_JYlhI5Lpey( zr=g_sGlh6rLJb%sr_B^@AYcDk!dj5DG+9Vy=R zmLg)7D0o%GkARS-rU=FGYgiDWm-U{SD%edat86Y*0&|>66*lC&+@p^pwkZp88M6tdKuCnO4(y+$gm?(!j8??&{dc|zzXX#H=9zBx~*=Bq+3CYkv{ zO)$VNr+h*52%=ig7osin_zZ)_T8f-IU+DZFz6bLKII0{k-)T2!^iZyxz2O3(Gu0u9 zOj{t-|9|E~2NwvxqW;))DHpK3sY`_Vs*V0Y#NH)Bu!7LTT8WnKED3^$*N$|yVa(=B4OLnXkLclxV9lqJ%lKj^Tp;|^) z2#o;4rH-`QAheW|j=Pw2Z4esC$&~w;JhDLu_9fw%TSxxhAXEy)-*-CO)=7@NMB>nM zGY>>8#p4vv&ZUC`b(HNObvG)49M3T4(2YWUU#YNm(UBD!Rk@Ea=~k1uuz=AK??z}R z6qCzgveG7n+3^sQc1Tv1sj$w|6+#D+)hNg)=|D3#33Ys0L$}qDy(Rf+Ox{+Lxn4{% zn}zKhT?p=T5eoFjMmV+^9YaCsVHrk~;>|)V=ez*Eh?c8}sLor2Q2ep#xGlnGCc04W zk5#a7q%Fe2DvUiC8o4@*W~AE*VXVm>j0}!ih&Xow`i>8w4?%?Xq|m6Uy`DF&I51*~ z@(mYAl@Ht=lH~mh_bmW=;@?`5Mq>P=vV*U!(lQQ$nCBUqa=j0b;G^16kj^?jL-sdp;dEx$sG632&1dJJNyokbNeAit!hs7 zp4rg?x(9x{3a*+@IxBpQ!SU`{!GTxL>zxx8VEXVmA&PRIT$(SmpbEg}lf3y}&!KNJ!5e+Q?RGr+bKEe-n}#x|Qc7IGMqC|G9SggTGI z&56KELS2QhKp~_|K|;SvLQh77^EUlFOzyuVcr2b6(%$UdiN;klOW{k|`c{ zKcFPN8`1yA*n7t}aWwzqI@yx2!Pq+KP6sXsj41|#sitF!C3+`xFflcR9(n+SEr}W+ z1cn5X7zi~_2#}CVNWt)6i5hxI0UQVr5?TU;4!`%_?HQ8i^LxF%f7qve&+P2%?C$LB z?v=og@cm3yD(CiNO2Erh4eoq{dq0Ek8QdlVh9l3QDnB902+*fL*`I2%(%EqzHd8#< zeuAu@?e#S{4`-kZW~b2^WIG27YE|d3{}_W?8?dQ_&TT!-;Q8n5wKVQA9QOan;3Ma_ z`s_?nEAkfxTh4QMi~+-4;|aX;_CBx>owxVUWVvzD=VcpEw;A>Md3#0PNO^Wn_>B?j zU$EoZW!R{Y!`2%No^runMT67180%dI@3>$X+K|qk_o5pHJch#_OelEBx6r;&$feH; z?P<9DQE0Cm;l1VvpftoX@xR#1L>tKTIQEkLaD?}=UOzv1f5mM2B02w8d#omFF^--A z^LnW-b6N2McYEuiOde`~+1?}4kP)npQwe*kBC?g9U$&2aDLLtiy<<_*Lr1RIYrT{# ze$`(6rDTh%_Ks18Xe&fc3C;BazrY6C+&6J z-kKARf)M(}AndqqUl!$AQEhL7{H4C!<&Hou^|)bAERl-+pK7F*ohbYTlc3L8W?$$)L7-L0t$mEiJKXxT#YSifMNH zO?y?lZ#j;m;i3aK(dRy7bIPro_GV^?ta(eHjrZQdItXl5&ss))c*}m(;akt9oW(d@ z3dkUAV1zrj;U;|RaeEwx{g^#`RO?TSSO&-7NQiLj0RE+!8**xRs;75tWonRb_p$>*>Y6B7c0yIf2mhxI~l8E_074HKdlnskqIry4LT zRPA%mUL42c&@mf_Vm1X0@I4bg>2G@=nps!}J$o4#b>H4X<4xtf{t$x)-e++EM0Db? zuJ*eIJjQ^rPQ%NV3^>maf~nC*5f3m2G9kA)Y&`{7ZU4aT!g0=eG#j4i(A60G(2iRe zz?zSn5*Y0NnMwHgp}nyV<8D(12hTG2;Y0flF?T(-ADD)?kA^*j7ra3EkL(E!9cTS0 zAEUv`_RHzdNA_Aq=i(qch4oR|WBU!QfJ_T|g&n5C630h%p4jVv-&YKAhE*r{v6Ml- zc)}H8cZ6yDe=_*s6W$Ug1HQ^&;i-K|lr0+Z-Fj&8kU<|lwTHMS`IVq}Gzgf6eKh46 zmQWfW=2_gJ_sm`=(#RS#(amS@97fto(sQ^9Bk7^WFDLyp_&M)gF^RB1B#MY-GS@!0 zx7Dp#PKSdo20wp}@PgT1djbmFRy*KjLq&aj<#A@elcDc(G}RD+HJoq932~AT6?y;< zgNpjG3WBFGi)HO-3m!xwFE+!^M7`oxEg<@ivA`X8mmT9$?iQ9_Z8I((BUY6sJWKdMZ%c9`|a;XJ_49z_a z88qc(F6$5meHtNFDJn78mO)ov&ggH#p!mp_#9OgC%cZU_L!K@Sn)@>3@6MoIkz(T) z;(IbEqBvv~^^+ZQN(5K%b@9u%dnLnu>s=Em!aUR47yfaG{*FpB(x-Zx(kyt zZdNQI*5^Yk9S`DpZ6M5MglQ$jG)^$ZVeI`0f{zgjN{E9wL3>2df}X0mhsIIjd~Il$ z;vwic1`;;XaEoG;$lL?-FnV5yci3=kb}eOa7m2TD>??T zYk)o1uL++ka}5j8ZVdKl_1PtJS7GAZdVL-m+$;cQ+bO+mIb(sth*ZR1SNv zH1*L+1MXzV)@pyuC4QyPjZskU1mh%y%T0HoIKcix3_fhYnH&xt0j!3V65H#utM(A6 zHV^eHEl$BY@=R$FZzQ`<)ndhJy3LxRwPR6^HZ_fmEoyD{xFjQZu$ILg(Ju)3oM6R1 zCGMDw6)W=oanvAOU<6m3s7Fb+IULlc)$Vb;f8;mT-M_?}t@Ze-^8 z{g@8Hyx1*PD#F;^UBH5Fv04$vCS+jdvSQT;qaZ(}l@;;u3oqA71CT7r;m2H!91F^d z<9O|3uvZW$S5$kkoLEh(WvYQ=5`$H`loQWucxEK{<1rLcG`x8t(L(M{}RQfys$ACM=Z0aqL$fNo|~GDFNXV*HT;$G+|*k+&P~0be39CV*+7khBuq!%7YIqVD+ki)PI zgful^Q;IGGwgEh)fp|hQFnb)wn~vUrSj9s98X{I<{d+6h(r(6KHKGx|j}c|7jAJ*{ z!GnFfaB?-qqRJS=W7ztoGDy_AvG`e(t&+~kZtcdoR})kXR4uc04Is6C6LC1s2AMEy z0O5PBO~sU`Pz9cA9fK}6WlItx7unOXBr!NVn;1vqbUx}j@zUAq$wK4PS;%hax|nfp zN*6o7$PAwtPPS%j!NIxw2>-*WX*03<3ob3=v}SCP!1ZFiIGnb<3|T*6(AAeA|5iY1 zd~@+Dp{Z^jSh683sUm>h$~sEkA^npU59TLePe{tqrPlm1%U?i`K_GDO!pB498LzBNTLfe%R1T#K+3-)4o;+4q0!^ZlIG{ zaA+Z0YXpb7gUROktO)h+hWplrLo&qSpaVzWtufs&G5Phm7>#>ZYwpW$8?a`_ifzPc zV!=iJ0ALrG7ZXCkMf$vrm|rr`(P7(rQNt{IFVgI`VmZfN+*!Q$qSkOYQwns3=}2uW z)+%E5Ut$dOpe+l;xBvuV46D{oOfAB!P7Qm#o%m~9fhI8D0fBhd1QM7Ed93&3*QTxQ zMVV&fUkqc@S%OzImW}PjyPEckF|7u=6=mJh0fiS_)G?h`{k4PmwxBWRGbhlYh#M4!*%PDN1%+_8X z7zGzMEbb}_oN^RLDxp_U&V4Pw3 z{$V3#j6wu%jK_~*<0EfxvHZWKuniB!5rn(O`n|W)&uaMs$P@N`V`e9pA+<&-0vgKjPgAL?^qNHSMQ^ozGCHQ)_6Lo z7x;BwaXOb=SP_KRQBi~)cp9Xi*g_Y;py~`-*-sqEc`@4uY$HHGsD>}{_2;}Ar11{u zFOKBATI7Rce!aj8{do-+vw#S&Uc>kSVosdiv(gdJ1n^w7rzT`Sqs5v7h^9`xF?5a& z5Jk;CrYbsA_Mhq0Ox68p`J!&-&{@qC9 z+3|s5LoTcn+rJ$G9TD4OQ)8g`p;q`&xDMMy*cI`Ek4C;K{#S$DSaWHQ|1wx@mIa5e z;cSz}mW2v6W$a%M;s)qsz%3a35O5T@G)=AT7*uPpSSO+gqOpU;SWO;#RFlcmd*u6r z#k5F+E9j;3gT={EpRExV!zToAw}ZZSK70t)2&`{qa+s|te54K$>ud0078;I%np!6o zhGH?mxYIeT_p5$GF@Z2x+dT)jwpmRD+HN&qx515FNgq8n;5@e1&SYc%(x=uK#v-A4 za23`pyj4tHJ6!CJP^-5iz_8#O>`h~q5tx?){WvtAL3KumUA3}f*hzCg)Jq#o?~Xvc z66mXQvWJ`J(UB2YRn2>bpR57~H$5ML_{ZS%^kST8uOqX!4=-i_gGRoNAj~M)O7Fgo z>HeRY3RosXT^7*KqsOl!x;5ljhcPH+B=)`yF4pZ-+Xe4~8?E^t<^$7l4&?2L=3B&?_}pl5px*nn)8c`^5%gk9bF5e$y_31# zt!z~X0t@AE@5)%V*N5iP&ierS5pm;WXDn7fT7SbbTjO5I;IMHVW{Y?YhM9cS(134q zSRW$e$D!T9rH?Jt7~7fSut#e^9{OdRI9&5~p(!X?^SM37i<#y}F7>PNVh{IkOvgQ;qRm)dckLN=iiRU|~uuVp724_zhYXUDY!pBp%Tgu~b5OJiBu7O_@)5$1a zYppUtj+t)axsk=@^qU|%N3gzL3*j7 zT(O~+nQcb0l66jpPaJEQzykC7pwdBB82LmWC$KPwy>&p3JFENIk&@PUdEu~qE~?A? z4^8olo$a}sF}j$FSfgmoLO=P%G7cTq7B85wy>nm-iVBDWiul=maytL?z(4pqA*#0p z82_gMZv9LSu~^+lHv-~gLs10RffcCQaYlGNr>J!c4Z>qaNSn*fvQ9B=^3bJhpCX4g z!e`DEmvKTTrq36svo`iB&J(-aeWx(JLy&D9V69s%oF^{Q;4y6J@i~;lt~_4WJYQ_j z#c20~fDjC0goX22w}O~_gTD%3_3(Ug0QwJbwzvswhxkaw-gu!nMT0Z3BG6#1vxF8h zN6ffcHvqR@>hp!H(*S1sZ5n)<390iIA{xNFYmI-4^&xO=<(c)a^@#z;a1C^YuNrVF zm#M>L7qLlwJDfY@>QJvmTrS(xd!f`)a7GxMehMuTzcvhvP8Hf}D8Fnm_7U|aNoQNu zMTE*r*!cd(3f<>r!zp=iiE32Ll+$dYjxg_}OiM z4A!-;{|;L|X&un*ghm?;{&Vke`RN?i`O7R5-`86lemI2t4Xm0UKDQoMi{wYCfTwgFPm1h-EABEJnb@js3_z4?CgClW@pFmXOHoug)5Ep z$HVZL*OzMZmEwW~p$#4RO018McSY7d57+Sh1bmYK|HEQc*rN!K@& ztWGTuD+$E{WoLO{j1#!_EFs6 zpPt+1t);W~JYBlzNMlFzk#E5{T`hDtYU4rU#;WXc{31BO`fnDBEaiAoa?cH9OF_0z zkZq*uEUjfrQQO2jt_c68HYwwXbeZ?ISKHKenB%K@d-iN$KM0fdER}b*MMUVG7OQQS zR;_>5z=x))h!Snyo+n$Z-h(fp^i(Hzbqq=~+g7UQ=Q+Aq@q=nEap3)KE7c)O9RG19 z6s#V7d)HO9j?yUJgL@#?jJ|#03QLtms$h+py52FWnCLmvEnl_SOzK3XkED(Pl%_)<-sHbafKz8lg%S8~Sh7Qh)FS{l3Lf!R(z(;-`+f9sFA% z%L5+2XKS~;s?BO*DJIprHEwUWeQ`g>9gRE5FxAVrFtrD4pXg<1DCAo(bA>8_wuP2| z3fXv|{ku;crJbINOixJUdIpo?_G+3YcyNjrD#xY#LrdsUo)We?63pHos0pqef&!$} z)yfu_hQ&-Q#WeH?FKGx&P1EY}7;W*C%Vy|H8hW17=Bt!)(#bx zg6@}V?^R!6`K=D7wcW&0tdw9$dbZUeCs)a&VUnRYIE}?H_=C-j9OY9OccSFuK0Ykt%vL zElQZwA-t|JRBb!7@W9sINUjBFFKgk6qF1*&%2o5ajM|OerhdU{7o3CIfg3iP$Z7{0 z8gk#@az{b#nExNSHgGa$ZAkyU(RK=-{W+!K z>jS6ora1lg2HR|z$u)lt#T9g)H?wR~x(Y-QEi%&W5r)!Fp_ULAD^Oz?7* zHUv(EeQZTlLZ@;*#@m71&e5-+T{q} z`e3ZeMo`LFc(vDPR9R;%DmJgIQ-~Bss0*q%3v9S{spX6c!?!3h>pDLTkHX_Ub8;{> zE=5OLtHw2SHWP%;)c%c}=Y*)GpsfXMJZL#;t0v9?R`Ac6m$TG1Z>b|Ncdhz)OJ{W< zYW&h-NY9zO7F$v|>g^2YnnWw^#S0HN)9u%srD^+cXBVrN0XL}db*DsSUUT-d+U^7R zP3KtknzMs71Yqya3>ak%Jiy16PwB)NBS5r0bcE-Ibm003XT$K2!)Bu@uR9xCLm-8J zt&`@wj-mpO!25-YqVQ3>g2R+Q+F1`%`NPr9_|h3iJNRhvUG|8xH!Iwtu&)92V$;zv zN*&{rG1Ys=IG0443r?y(PIab4#KfTTr_zc$8pWl5?{`>>lPlNRL-4DkbDeucAzrOX z&R_9iQgXfP^jb=sTWV>eX1(hygO8ZUsky71bBbX^My+%9VlO@zy2;7D1U-Kf8YY7_ zY;xAZ<)=-~--QG zW32MEbNc_vJNfm${||Y?zje0#2gj~&ox=^F9@Dkf zcg`LE$f8xrx$9plpi2Ko&42$l8#Ilj)O_cl{}q{^|1XgmuXXpoY(8bTGs93&s}tBH zI=|aF>K`J(mPk|g{Hy*3ua)-f`ClEH{X?$SNGtyPziefx(%yfms_~B6>m0`==m$@K z>~)U7n=)Aod&ZW_F>WgzTHvfwOowq3^?L=*c}BTinZc_Eodrf!CIV2O2c1>$t~tG@ zFof#tbFSm|ylIVLEi? zpmTIdZi3e|D20w5b2@3*A?Is`ZCT=XM%uoo=lQKMX)H&-Pj9rg8N55PW9X{sl$mMz{ z@whXMC#*E^xU+_#b5nZnxHGkgbnLjZmLa7jD<}Gdvwo3w9Zxumx?BTBU3sFYZ~F%^ z;Exk8#(x_Ij6dnj;0=+E1?!78J$TZY!U>)JK`4Hzh`>%NU*u?e%GrbG$o~gn$0?`R zFi$VtJQ1gz-8p2PqCx72)6TiTBQ9xvdeJ3kJmRQNE;;|ecLb-= zdzUfWjZ_a@b{?{t3#QVF>&|{c4*h-ISr(a;8_utU(RBOrqZ0-&KAO8_0VnS`(|Mpy>znr&-spnsPP>9dkl1(~_&IPMfI~ zd*F0fG3CcSbK*OyW0$p)UWp7WP}gg6CNKMs^j{P^Mv%G+bJe|q6dx|Q>7qsY377Az zQb-s{ew$PlmyI@QfG~!N6_Z*Bg#u65T8z{QzU`i;}#;T#6|v z?HAsnA4@{TW%NO`bULEdgQbC7Y?gXxdW=*9OYl!)q%R{-mo+HMKZC~Dk@GF}OS|L? z7v7~NvP8lfI*p5K^E&lxSEa>LIbg~0ncYbeqCLX=dFHo~bmosx(;mfC{ThA)96!&zrO*1#LZ>{z{RW zBG|84P5QwstfCS%&~zVAe|E{Etu>^p!aQ|FO{pcX+zPr_OInEjGp4pw1*2hAZ8Vje zzOOBn!R2OcXz8ZpI?}HgrqOk!v~a6;G5XQhYP$wfl3Dna#x+8Qt@IJQY@^eSq{l)& z9d9hn6?ReICQ@r*H?40XB?^1#Koe=Gu$pQ%m1?*)%vGuI4uZPOFbwj`yoYb1sZFIR z!hh&)Q|VQ$AnP`@Z@TocAnc%G&7t7uRJ*x!Mb}{$xm!TJJ=C{_l&(W6t!W`G(0=>3 zQSFwf^mg*M#CZ9PerzedrBQ<4s-rTbA%dRxihlG++x0A4)wjLU1wr^+9oJgA$Qiz% z-fg9QI3MXIM0zNLw;a5DtIqhdWI6;{gcAyw7M->HA~K#K^wRk@dR zlR02ZA9QeQ=smP-P~F*AY8Eb>p(mLzcsaGwKxrI0ix-3K9m;!Es#0pX-LpDl_eWs| zZFT2*v)+DaR!_6u>L>d3RdjUk60oiyXO>ja_1<7LYo%96bK&#vU_xmAHp*B@U9zO4 zI;)r*OUA9dru$~K^tJm|%_6)dNSBp&O7(fORz5Vn$QoJ(xvS|vSo4aWBk*BT*Z`KHWuenGE9EkdZo9N^qsiIIo zPX?jqzE9N#OMP6S2+vZB$;@{EYYj7XqornF1->~l@f+Zm4&aV)ljKd>@K6aANmTsYfIcMy?=+!7Yx!j zLs6*^6%LhRg#+|ts8n4zL{*2OZycvrhe?x!MEY@d~q2 z2*PEx-kXwS7JjD=GcZzb(V7{U7;e$;GhpUFNtr2qWVNkAL!YKSGtr0HZ~tla?o6g` z9;MHcUeW1iXw@u(en$O%mbA?*oTcns81qNk$}Z=rFc*z>X}M2w371LnA@Li&2Q9@{ z{A1Iux&iKo@Nx05#J$C@c^$U3&$Av}H8H$23qWqsn_!myDzz)DV$0&_q4#wn%zuZr z_@u8b$x!qjjq;<-?$Q-M<|gm^$hewf0+NJ&TOoil*O7-^*3*!Hv_!bCJ_tw|X5j%f znTNi3kH*YHZ@5G6%!8@#)7g2L(jU;Hc`)5|N}Vs25^hqP`Dn{Ww0J(+=3{l|d{`{% z6UnnF<5u>kpE@k=7`ojc!bz!-QaDvuh?2KbqlK6VAF5*(!cD)W4TwHW41FbyrAH0^ViY@?AK$67>DM(jd*|p2t-0 zJ?Q+HUVBf%GfDKNp8EYg%mY8um6f1fAZ3-b8jZhm6%t;-LzU;JKE89ZE+30`xsPy=7CO)i$r7(Qklm`3&^WLC@Fe-9Yzo`k$Z|F#2}T zztic1nntu*!sXw~aF{JVYVi>&f_FQ7r0E*?h$;C6ZT?6z$U!7QyumJbz2iEmY+}Jz zw{8zueJRGWMHlHb=|#?h%1bSs%uu9Mg+{VuJODw_+wp_1!0 z+11x;vOBNW%AcTL-qpdc*#-90FVFQ$*$o=lLca{wF9H3sNxvN2ASId$_S5YR5?*n8 zfSenp3TUN<8!;BbsryFhH6fnzHzL}oN|Bq;%N+E|CPctx=!;Dl8PW7?lN2w+P~2we zzd|*&aI-X9Fc-Y94*CxwT0x?ETTro7dUFem}H3~{uLM6%zN^NurQR?lW)SH)BQth-~dYk99&~FE&W(Zr74@n;in9~m&mOkQo zMyYQckrZBolJxdb_<_pQ=$O<}*Ckr@<2Ql?I(S?vQ@!B(0##*w+Lv+Uhg~_|4V9LJ z^tA8D51e8-I$;;*p;9NL+Aw^F6H+y6;3(Xroo1gv7+s5Yo`45SUw#si9wYdpY1m1$ z#%8tADJkA6n5g$pQpMt7d}2*q6ru!0PQ(j+q@8$&=xaZtsj92?HlgE3>EuelxasLZeT&v zS)F=AY8WPzrY~+|2Chu~|CG{7)ppqKnnKk0PtgkE*euw^~v ziCPW(WtW|llY|jF9?4w=p*M9f%Z-KZw7@J^7kbh+X1SNpi{vmlN9aTEg@M+W&W6d) z5lo#8m&+oUdK3I0iRP_Sv?esDTvM#w2bxcXLvj7aFQda}5TRa7VH zA0?NH?(_w%YQef>g*hN zXxWQ+t5vl8u5gMjM#FAbs920#QTT#VW8_-#UvbxRd&a|@iV=d{o0xl5RIg}#a1mw4 z$V;$36YX*$yhvTUT&K*T#`iy z@KXa(ZiW^9n<5N9mp%}o%>vrXXbb5#5mjGAvO}JLjfw>hx#G;FzwE*b0i&|w@0xIZ z%CuT*`P1wG1|Ry)NKm&vDMIf*iiQHzU0veMDt*_ah)6cub9A2py(v^bgbMNYYM6qkM_eX z6EBa(WSN`*6~3i53Gz~e2z_LzLDmXVJL_0=b3^*>Qr8CCez`m<{??l4lAR)t@WLSaBRu->M>K z3BpnOt13p#acs=U>x3VuTQ#{3qTYGca^O_LzfF{?JD>@$O-Es8M?@sBN{m<0xHRYO^ z_D`Yd>(lSG3VF#JqnGyEI`hBMTL{lv{3xDjMF`b0g=1NErib0y9>CwsjIr6zau)>*HylXfwHxm zd@UuJ&-_~x*4N2f)fRiknxpd9yR3$72t+LNWJRCR20l#CmV(_;iQe>EceziUl19!M zE2sDPE4_iwGH`Y_%bgqqZ;V0x;N6CiV$bAGSE$<-@L+W`CS*q6R z2WLB0O5MHPT3Isc?s2xNo6nU{Zf!03G|anKVCmHvkQYbIdtxkBBl1m@U29%d&9t$X-jWdsVW`q z4dbVfvyVI<^L}0*v|Dra=RRm~xG=dNCev7YuOA%8aH`fHLvkdY?~iusPVNDy&RBYL z0HjS&Hx7`)1T^)3GEwCw^n0d!Pnf6{4nzYBF8cdbbi-82%#zcDn(B%y%ngXp4h@p) zmubMZn?Cq-RjaU2KwRj}vSX@5jeTA%kZ4Th2ctA64H+ztheP{uFx;nw9t_6hS%-QL zK^4O2%^|RF8s!ZESf0#7VU}uCX{g*$n50e~${b=pIxq}2%cRuda#E?RYrD32vu=`k zlXrTLtZQV_Z{Z8QfvqAr-u1?I%JJJwS>4Z=*&&5)KI;&5&2V@~VXCT(ke6Db+_PHY z;|7@Aal@sXz8oW0lxFE22Jci~{K20*hAgh$9m70+6p7>Dy8P5?9PBkmePf*5*lg2# z@eK9LH{{|1{NmmTuy6vsF;UKn29520TQbVBiEJianTQcKm(EUt>zq%mCPU0ZdSfz# zE~d?sW!!VX##ASIHW>pmhPF?UKSo5`f2!P4qj);g#;I}{Y59_jTZ>1Xa74B=sXnDq zDRwh~n|_{(mWd_jG`Y4IJX?1k)4t~3Cf(XUl{@^sj8>Do$_BLfe+0&u7V% zD$O}l_FGlKT5L|SAL=96dMCEA_o*Ik4a0sX?zNm}L!>@N4WG>>NZYTlPG|LIj*L&W zd`RE<<%I~A+6AE08rmB`4Du2E6+pM|qE?+FKQ{|y)T;C4jPQs_xOea}^7f{wi{y$% z(%PFgFOsv2q`!|UFP0~mg|f8ZZH$1P>VdcA2)ockJ-HSYz>s=<9Xg=UQa!#NGpo=_ zP2VUVHsixcB|pa8++MBrv3yE^6Ab@EzH9Yffp5xGpM4^C4U5ihLSb!frZi$3$lh!< zbDMn0D)duZekuPX2z^!ePI)lW@U)s?@fQXb*d)M6GyDcHsMX zP{5B@fB4iEzoXUI>EIu7omeerDqyCUiB-hZj#Yx4B0m2^#+@xs&!Z;RI3~RHb$JAY zSI|Fsp3I=#*X3G(cDG_&{;~`bZfGjJrg2#-FsRlI`CN2HorsL3wrn#ruY=tTwaiUK z8_=WA9Zb@A_x&9V2n%gv7kmf+7n*%Xc9Q$9ESn1&QN6ozLPAFK3cg$EmCh&U*0^yi zW{IWQ#OX3K*6_E`C?0y_u3R%ZmkE??srN2h*2@zA&frT0M&9(mDk zSUB-FJS|if@5@c1e2qb34+M2$()!(hp$z!_0~omEzFepH+{SAHxMi#{v;499a$mUG zY7gXg5e)Iaw$wM5avsPPl!ZO>QSnmP3Afz~Peau^nS5*mlXgFlD{IWbF^u`n1M~}) zH#itcwc#y=fIpBHy+G3N$pPzhIg z^S)e~SHe{_Vc!fqIbv4fRMILSPoN+h9UjkivF8vAvgu?ASEa~;Y$zPi($*-~+a(IJ z*Rz|v<}pP5D9Tl>Bo5C`#JY;d;cJ5z(p;aI(KHJixCWp}ZZvSM1$9Y7S7I2bJDRxW zrXpr(I@;A9mxZHUD{-kj#&r*uGGkrcahWjI^%#zE>^PS_Lh!3O(_G`QC9eMcrYkkl zjC1Hp0atH^2V9-4f=4~I&}GAS4ApasTnq8hs#WUi%U!DkFhs0yT`rEYZ>@D5iNaL7 zYn!WAnCyMfgR&d^x5g`y2|IJm; z@)b4aySL_}vvx^{%-dKtud~v!rlO-SWWY5OCe|&^13o z$f6EmN-MEo4ZD*g;xO~1>^1}cAlewFd?9D7#jUbQths#a5RsxG&@-RY8{tYKX2})d zN-f9pG;4Ho6`IEFMnhnt&Ui%U!FYqZBx5-kckj5^VxoD+m_wVO>D8&)ME zO@1N4zXgo8&dKIw$5g#!%f_OTBh=fG%D7|%rdf5AifF+3b(Drkh3Y`8m#Wm&z^-)_ zugiM}-$g!p8(q)cIIEqd=)1_<>MGMlq%-X19~$}DJKQ);@eC<_B2E@ z0Yz4HG|E|LQ$I^nVg(34Qcn|pzn(GxsUG#U)Xe(I1*8TvP`v*~_OOq<^mPMeojveS zS0(QcU8>Wxr-OKRIl z=^@x?Z6l>hk+}SmhPVrjlr($mJG!XsvpO80ij9?q)x3|B=kel?bHZaioq6CmFWq!Z zr-UBU;>LapxK(spY>y4cAbUs6F{wyxZlswny6Zruy%S8FCCuh$za=ZOHB|wdv!>}RFkp8B@P&k{5 zqp@H>73Visswcv(njpN(TkG9kAvsq^+;18J&uIb$UgFd>KK)nWWJ936g(k2HF1-R~ zotin);4{6U^MyFYNZZ1+Hq(mFAIpmm@?+9Ptin-lq zvoCqBn(Sz#%PV|!voCC28yekGiMQJiYSa5Il~Q#A9M0}XV`3lcx+dQ`%ZwYrd9mC!HV6B5kqjej# zF=Q2X(iuXWlGnlR}#txlkN`yu3q zce?LTZFxjm z7i0L5>xO#AP%PB@1D9CC%j8`%N;myxs8^;Pvy$ONt{4pYzv>JDPRak(ptvvT6vOct zX`AhZ+b%3L)K~)XP~&4$7o{{a9S@D5K?|;q_Q>sdxvaR9wLDKp{hn5paYeD7}NC z^s;e3lDXI5$lt?jX}F+02F1Nwrx?D+NW=HAa6}t=h2L?NXd4v3_&=!WVYr~r3|S@~ zwuFi=@2Du%ZQRkgw;BxjUvM=_-1wT0>Maam^HPAk9a;QB^E)aTxE$-K%ol8GzfQ_L z!BPTIX9>FAS?P>Ds3u*M%JGI1n?0~H3x^nevoB{;cnN&jwglyNQIcXy+%j#QxY<`L zqqaa>S*VdeeOp;p6d3kGMnnmgGiM!K<=Zt%yp)(n(V7GoR6=;u)ZLpoiMl?0-rX*Pd_!&A&L%JzjEVdu;*p^zVJ7P1$ zxNTois>cQ%W}UWaLl^ap%1H`5#6Az|pR>+O%U)4hRQ5)_UBz)P!pAoTOnjvh)`*%qDkVYpMTc)ITTH-$>l z^&U#9`M@1Y=&6)T2}EN(p_`_>u16?ZPiMy+@aezYi8{qbBYU!mCx(kGWiS|CKR~N{ zDiSuL)t(C8_7_8Edn#3-qNSJ8v|ONM^4zE0`t9Jg<)!31He+9gO);T6G^Cf}2792F z5??9=c07Kisg_xC^V~Y$@{IItFD(c<*Grky9@Wq|^1^bG4%}(I3!4GU?pisg9lckh zrVCj;EoR1HAej$0``U17q1GHZ>!5vatp8e5L2sopi`BKfrpIi6KJKk_1*Kyj#R~7|S|J5l08rh#YJkF5*mBCQBOJ}grYA~QzeT|DbWT(^pl~zoL zdAi6#KBhw@)tUp8N<#gB;|HEKw&Tm6ZgVpnU9o~t zJ9TNMQb9;5k+W`YiLm7TCAj>Bn|)Y%X{K_|&&tR%V=C5pDud_BKqcQA_yG@X{y_hE zRcUAZe)g&|)%ZOlOL?bH=nhPu$J{{PP;M0GX0|HPu*@Oc98Nv$?vKe|qvQ|LDIreD zA7oJ6SvmzHV-On|lAa-Zputc$fD5J7gOu)Q+53Z(6kL)9!#UcVf2v_gXzjsD*IFS- zTOjELw&!Byv?>VQH7vV*k<7L_)l0t&*5<3nxReRuwhvad%=F}WS<503uT0fbze z=NsZoJXEyNt)WV(x?bE_#L9J-HT27`$m`50*<}ohyMj&$Db!?`qQu%t>3P%Rel$wv zAp&+1hAED?0B6W7Wr#4jxd>1oqK>UJFJ3k{^5b+4FQ;TX4T?LKD@HelY4c2t;mSeO z{^@W`H(qM-n)0>77MslbNZ|u6hwLLXGgrYSHWaIumwCf5mg%m}XQKgN$g;V(Lcbdf z`M0^Cxa7I;KYDB4;;O_MX@k4)hE54_O5SCIlFq{=8~wx-^3uH#*sSqV{Obyyv8INv zD~&6{Yw4}=V@}du{yVQQXI)fLwem0IB(z`an!^DA5B=^ zPdV#~(=W&}vpBC^ItzL z?eZQmOMbeD*{ujC-s23uWxQ2lG0A9B^4`%AuhIDze9!A@TB=h5MyFY-QE2*DrFb1< zthnbI?D>nhXl~2=MFz#q_m^z+?O5!#d122Eyo~huybSsSq*!BMWX>}3n&xn+RAwB) zk2X|ioYK+ZO`ye^L!82>Z1RL{#<96E7IULU%70VOh^Cs=X}{dlj52SG(?`7q zr;jxl3MUz5mK~45XrqR>4DezgwBaH$$8!;JT#xZaUSppKHPMS5ZcvPUB6JX4jWGr# zdlVXyJ{zwrLs_lgP^!e{^7`drPX}F3<1ZY@>X}Q6-cZIT*dAS0v)&Jyr#rLa&zSJI z%#DB+?nbgViACYr3g{h04JIgU;%#M`a0%(Hb*)3C<2P!*HemLjptv$#u$VlIzzPbL z=4!UTtcP_QLZxeHb2(z*gb4mCkZ@U#-8OjX=>%*u2dLjfZGZdSiENwt4h1J7fWmg= zM5PyktoDLr+DcG#Kr|UL;5y@p-}HW z>q3>N+)SlBYw}hzl?LpZJ5yU$Y@4aniV590&#RLCG5mjNx;qn#hyY31O7+OVqyE15 zJPq!Ut;ALG7BRcmGPEd6eKdp%$y=>)zn#rGnVY`JR+3xUDjN?JMfQ3%FucUbv=0W0Rh9=gl_cq|ep4ak4R+1+-NuTl1ka4F;2+i=(Eq zm5Q}ORe8JSZ1%lk45ry!M#{0T)D7qG2<5YRQ{Y!KY*Sn)}A;EJaUekA>MZZuexpoKOlSk12jFC%`RoR;ysH5^yg*MHZWj3AH*dtP)_H|>}v3tdh2|l za?5>+BH0qPgEzg59)=DnKDM2n$je~M2#ukzE6>X*d2J0!dKaVgX~^pGmgmK`G8jx9 z*>3sAJ|&io#(h2|rCiKT+$TMoAMDud6?h?;&2apH*#hlHF254r*!H(UN^gQbrEAjC zU<$<;)XYW()zreE2578bsaUbio%eTzZEAC8ipu`?)BaE2rP{LlR`6v#d0298xy^IK zpx-W(=LnTYJg=2vYG~BzmLCT3Ch=O;U&GbNPve?$N_KUF;;w6CZ5&WaH4Jfv^s0uA zg*7=t1zl)fvYrm1AmHJvZGFh$1ASGvJ0W9KUlcc^3+U#T5zx2@cv z3J2Qk>kwS(l1$4kF=+@vs?$gFl`deuKVMtQR$ibanL~e5rv-`vlMY{?92UH4+CnV5 z+k5YDrHq}ARKwKSd=E5~`ocA&=j#dw{?=wXO-GZqufYr-plxsI{r~&7u;<~W`)^@u z(o3xuDT|=Z4~vwZf=D$NE9_Xm-(qF8!&}2BtX+nh_4V<r54J>og*D#g}^ejCN?>jX*-`+mnk!0@uAC=vazjea~aJx`?UE^lbD^( z_VCs&S5m44YO_NduFC&c*0sk)RpoK+ow+m200RWt`Aur0Y$!tD#$zlDM_p!Q&0Q-A zNg)Kq%m?sM+u|`x>I|{6>oX3561JJz!_uTnJS9;$03#r(^(w2_#@^=UXm z$V~-Z<3py6xX#X^#~X=N?=bz7aa&{)d6XBJ*Cek>Yn#YaJim3UiBw@SV++X&nZ9vo ze9(Io36In1t6RwR1V>u_>WnYszVGm+W}H$!)!fSXQu(C6m7)AMvIFbw+Dg7aUir3W zT)a-FteHF->A2kG8dcl>PLjM6qInbd#9t`+r%oZfCJSK|lG3oVYWKW!mj5x*WRiV=^-Pj)o#0xt+z6BOymfss=o)xwu7W zQOK|^d(p2~Mb2;@+(Fx*a_(7d>;dvUj*QbzpJLIU;LIlj&r@t^JNa3_6Vh`!@K(pO zO&w&FaQD7Qye2j-6kr?nug-&hf;pp!UgAUYQsQBT)85i znY6Ks95+0tK;2CCY&X$!#Smu?$wL}+Uk{;oUW{=CI8vul!k)|49YKB*vR}ns@}j@9 z`E1=W@}pK!d3cXjpTrF|Mh~6DowfbUc#4GL!4NzpqZ`GBeMyWW@)}3?kvhRh_w|u! zg0}uNz840wg3}~UBRt9eafalH!fJN@Te2L*A&>!VpTi2jCrKLQzHc~3=38^aWO8l4 zWkR)|RvV*QLVb$G6RTP-{-#*$@ig%~X|*P*j>UeaxO<#xdE}BmYl><~==WDQo|-RU zFVk811(Fkt!#_4aLL@^q@|^j-o5y~*iuXrY$)5R@To**|Tv~jc95uKuB5iL!k{j8> zH%L6vPdWaGJ0-7J%~-T`OWToxmhy#%@);+ zG+&8MF+rT1yTEU@6K<|DLAJk99s|cafW46$J!^t=)q#TKHJ4OJayWGQ9TrrauIb1A z{E=4`9sxz@;4vNAP(6%0+(_G%s4D^<^q1h;=G>vQ(HjBr%D_}}0?!{78EC=AHL8(l zt>nKD2^i-~zCtrp2P$ge^6D-K4;H<>Y`hsxnFLfmjsvR+f9$fXz-2uDW(A*yr|FQ# z(-RpmAfnql38o=&KWZ{CMBS5t?@*nc3>5QJO~ImK$LS5`=-|G{@wP+Pf`V9ZCfqdP zI!T%dSsHu<|C$4{!L_{q($@!`zrr#jCsO)F`Qdgbk=!NzjeseK6d77{U5_vjj3A}=7 z{ZjY~hclMKPT5@yvD8umXF|PBr8Y^svWBiJ1v8B;#hzo{@ujedr$SR;P0EKcSYF!3pf{X522B;v$x|hKVI)nXbd`L@BSQ|rAz}!LbU^(1xRJ|P~^lCYz z1>6!%tpIBPX3`ZEkQ9I}`quB^*$P-O$Xiqi=>dq!l$DShfEawJ3Z@K#*;P29sQt*K z8>!Qc2AUWX0aE(qlf|E#zl!@mJf(tN&n_~fv52r4P4*VVN4YG*MW6;f0E`^Kctim=`DAAWz!6J!YB%DH412sq`m=RAdNOb#ZSYxmks^uPZ!RP?Y zqzhee(&)hmPP}YK3H!4fVhsj64@j^QuQ+>tEyM{1_rF#A#yUt944!QY#?T_`u{srI zGS~oDjCkY1x58E-+Oxx&);-aheb3&9H&fdyR+o7kBq9O#ATK Q+jYAgKW+bMZCZ=_f1?t*6#xJL diff --git a/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin b/boards/default/micropython_esp32c2/build/Mixgo_Mini_lib_ble-v1.23.0.bin index a8293fb04c55188183320cfc7c8c2917f0b900bc..6af728fb4f3b490b902b146d2132052b131881cc 100644 GIT binary patch delta 135810 zcmcG%3s_av`u087nv>IF9gwq%iHeE}ii%1$Q$$KMEmTr6JfopfYGIL43ro$6ij10Q zR%o`PqC%r!x2e!*Zz?M?E4NXZS&>WT zzhxJ{f7cgZKR03gE9uYu>Frf&tG>UNZC1ocau}^xe-|%V z6hC6b{TpqAVXyyJ5A~w(xkVR5 z>0>A?5X2`(>Bl{ak`FJ6FnM2$qU0in2PjH5Ji@6cHsa2JRX9IAN_S6HGUDJr|5TM1 zE>$wbZ{uZ3Mxn7RS?y^HtKX2UdNprhR+O$NOGzym`2OrQmn#_wBcgOsgOYtAsmS5+ zilW1kt)|$O{WFw|zChwVLOirn@(368Qb(HVCBiTEpc?Q#I2LxqDvDF&Ze-G7Y#5=g zuoW6Vj8G%aZx~}{FIp#Nn_7Q4-DHiT{6+tSivHTo$&p%JI8yC>VHTxN1!WVX^i`A~ zni*&n4oZ<lH;o4Gp`O<8-TGE$_J$KgnjPq=hf`O+wTtli{WyD3WXs3`pn>RkwL2_qi-B5LKq zGc-j>gb(zho#3NztZgvlHD=m&^pu9{O{0m;)*y@Fw8De2 zq(f2<>eUSUd%bO?navc~?{_ioQsc8x>cmmf>*=G#p3T24*PZR3@puJ+Y{JC~rqBob zLKLOKxMH+A#4DQIfVUe|5@ip;o3O<_bWsT`Cc8=)bqnBAbV(j8U6%zPX7uF1gQZ8{ zeWXu?ms67@cryl;0FPh@gu%BW$H9YpDoXGex>j23npJ+I4p1Jx(X48AvDuofYfO30 z^=IRJNtm?iu_AvjXi6L5l2bm;9!)?z%4SqL-D7CORM&wfu1pzGSAq z)#55jE;LqOpbiO0L+e6g2hMo0AQ6RSQS<+qtIu(p5vHrL0Zv^Kgy?GT0A;*5lg~P* z;|wj92)+d?)$r(Q_fTInpT{ttM?jM=iCh@DZ27PDS9=| zP@mJ6{g89h4d|NgV@YRbVH@|C@_L_}F3n6=F-{7(n#cjB^WMLv8|jPYJgfLYtBuT3 zewT#hzBcMJo&tSNpQ3|}%f_ia91`S{NBLyU7xgZpVzy6@SNjdB#RmiQnq2DRk36rZ zi~NyivX65*lhX^0U(8g))76N8OAkr!;*235pHK4#;j`FiQ*hX{sFp5%%16xFHk+M4)%w#4jnC56e%=bA$!K?2S;tKfBmUF7 zOi}G(R<|iODbcqe&xb=nI&qFNJ9oe`HjlwFHrwDC@IiPBd;&fSx4_5YCRoO19c)MK znhDI(J#g&8V=Y_>`$y4}C(KcxeQi!2_HWNls0;9u#kK0V=@-oGtKpW(CiWX^^blXB zsBp`_`J@@1fo%3;AyqT%8ERi|3g!BD8)+FV+Uzb08@lUj;mR9X-QcvVsT50B%S+vL zJ4;aHT9zO-2Q{yC*H5wZG~P@)I_S_XEM;)T%iZZdtjiss*c?(O_ z=~Dbz@^-DG5fxbbJ8(7==u*TgUr9VqAFbOKh zQ1-ZNh3;Z@qep5)X_O2`$r&iAq0}~%%zTJE;kbvH4M|wIk{&~81tk}Czl!dCrMte3 zuF2d7qhEVL9_Lg9{hv|mpGxQbdIh7WB-dluw|V*KGm*0e=%8uGPpT{DVEILbar zIXP^R3XMA^sy(}#jX$)@?pRUw{3Is-(nK|;e;dn>*t&n0d;(c^e;u%I$?-+?Ejg_| zXSYm-;8bIHCfmsq7oXj##UKAu-1L`nkoaQt zC9Hp9-9_*SI=b;941qSSxrmM&L8BkUV;d3bP^K?dT@A}H*bWayE{8K{>tpa{E~BiQwsW?EvPKutb2VIcS#p_ zk>#f11C)w*Gl6KclbZWmK{?Mni^qCG9H_zjtN-bD^hPWKAXm3S8n_=4V@F>=;C1! z`hFw%QqItw#^g)Ydu$2Dzb{oUv*j6sE+elRW7=ivm9|aB6GBZ!K(;#DR%*=6R{s%o zx`XZ5=m@{OS1{LK;>E(;r(J}o9swbdaP?TPBTZEn(5T&PvMd-Eo)fl}NsP9qy z4-3?hA!S;mo*EUYHyOzb)q%D)l7}6`n^lV3fPye z;Pg|z!kmJ~pp$Gas*vS?8eC{z#3=AurqT}ldoba&!-L^AxG&ra`^)|3U1xPzP3e|X9vhRe;+Ad4OB)o$`Hu8(GtovK=$d=`j zH7L=Td$o14eU@NZfvborC)+rp$jLSgmXmF;$V51O4OzkM@KLx8-UlCq55W83!*CNk zf)%*~9t=0Y8E_5U7p{VPz!lf9%8bRa36Eb%SOOo1SHY*?eAq#F9vlv5!*)0emht@Z zR2@d%rNZ(Tcb4UrO0IqWY}zE^Pfa%ttWxJNhLcw_8MW6>UdrRi2HKeool=M_%_#fbeZcuacYP16!7sw6-)C1ydxWvOe3BiH4j-W2Dez$G z9S@I?4GX-S_Dh6iKG5Jjv|HyI1_e8;6KiObeK?NcF-0Z_cncX79PF-d!M}JbgMtQ3 zq2SG2KP*nJ;JND%NvtM(-mXUi-+5+T7GPA*BWgx=-CRs#$({0?kR*k+$%C5H3 zk0Ij$=Pu73DR#k2Nr5hUGGYzEzmP(hv z{zgeXB;62DqW;`pigj`>?%LjQ$WpAFnZvolo@(^DnHxQG8R>g=8L=yB=BKud8lo4T zlSK*g|LGxt|Ea|yiby!0xeZ=#?6{eyGonqim6hM{4kC*-a;-3j%9nAaFau79w=j)% z5MF3}dozX*(ke@&;A|Bq*f*9`9&AwbE+Ed^DPKnn8j5Nna8Ai4Zm zgh`($W$umV7!U7+JK!0Za_k)}`t*1hyiXRpP3-tca}t)>rXB9fJbDD40w03Cr!b3F z96iXm1-_LGC8C3xl)>R}E(L6%$uu%vPKK%Q4B{ohiaI&`wU9>xs0Ni_6F5{FmEn7OK)BKm9LtV4BeQBNWi!vpGOGnoKPyY7%_ESFy`@}3 zmZWnGv|4xs&%Aqn?fYAG^E^~39^uT$h-_cNrR=rGTvn+JYm)0DD3w;B>8eg zmN~A7xcL$v8PV%AiLfsEiN3L2WHtv%d>45nauTvAT0=(CYWX(tC0-B0MbRAc>pBMVkwwu(UJBib0%ds2VTL&YKPk2bXNYOR zlBujOM*{4BSthIhOB%V>I(SZ62P@m*5WA(QraT#Jy5+3cZGr2ouoO2>S8nApF!DB2 zVXV`)Rwf`Hr6rSK8RXl4muWruHZ^8=CB;b{bFC!fNfHDKkfn}qP#rsnC>={j}%^0&@jq)8y^T=4bY7$Dwk+cw5s^LJ1 z9&BRvZ{W6=om!P~<9hW1-y<`>`Rym_|7j)iKdzR?+>vDAUzy~FRi3Z!q;V7QUnJHD z`=;hdyU&X1BFs9tkwvvJs3XHf-@tBMGN_btmulV@rZP z<67X?$-mAd5`L~u{&C|UFZsrVP3lBjoUvgOqffeK&Iq&Rqb>e*xY?ymu!QfjI1l#s z%z0hhl__Rd4@frSCm@@H#HRc-%=DX++~a&Reu5=eS-cIF z){q4#n>dFi@va0)NFJjjFW@Pj#&pe0Aah9CIGN9=}7?va}h~@8sg#r>N;$=JQ>LuW!2d>sN#K|4;gv z>Y=x3Xy5wnj1K1{^!7w%Qud4~;QEXHYG~>BiJ>{~G7U|G#n3wO7ehM)i=nl{VrZ?f z7+MP~hISJ6ZFXTXv?f^gxDD{~9+Y2;Lkz7N79+T2ylFUFU@@>-i=VvMG_=0yrvEjQ zO^!riv6a)X#Lvz&c@OM2v-_flUFPVe8dWoXT<5aoJPE8Bg5BmRFKZLX_407|~>EDZHB%6dNjn_aNuM;n>&$_!P~R z1=_5^x8ALO=-@f*>aFT9tais%ZansH z<&J>i4exIAjjS)WSv#lMC?*^HvJt#hYO? z9N|-OMo%;FmhOI4RpqGVmMWCQn&Hpjhx!kqexmWkgX$1ky4!X&W_l_YchZKhP%?@s znaI+HX%Cq-NrDeVU?{NEBok1Zy(jS{g_G-qM{e|Xfq`bS%!+dpKz2ZA?#r`S=fFsoFT`@ zhj|mLFOE(kj(|_XW8rrA0CU9=_%M9X*!mEct}L3F(VHDqI$iY&UyI}{FfIc>I2!SI z1D)#N%^aj^;6-97a9>uF(!<^L5v;^19~o;OR{LHq3T>xQQE>23Q^6{W_rX#rpWO~S z>z{PT~@m;i@)*h`dI2f&;cqdvaH4=3tylg| z51wRg`i2XaV^Mn8$L#3#v+>yrUc{33;QtJpsi&j#&iZLP)JFrnrH?b|fw*d3*M=8> zY>*C8z>^adB_5WulnZN4$6!jYG4Ex5yu`eOZMNhq+F7g!KY{GOIAIO&O>dIEZ9WqU zvU8=G{-Gs`vGQ@A5zRO5d|bUSq~86KeW|@tX*b?QoK)<&*>`fYD_JO?dLa(1-sG?9F3gx(h zl-KQ#+YZB>T7o>J_2NGVY=l>35gf$dtE=VHa} zmX$+VrkE}+MA211)3;|Yb|coU8T4}6}Qd( z0BSs4$GZi$dy>`hYL@2`T6BeCC^J0I+UvL=kyfi~;H*!DJAuey$lCMVIM!o3payIQ zWuOGC0{I{d)V;uSPLK#{NK+2-Kqlz!m|s}BdQfddMr8e@=hYvyD{}t9fu5nMH4+1N zDo6l%_({EGjt)aUjoc0nf+kP{D#3an@ni?l6=lY~FRBq2`h)zVP@?$#{Lv-M?o|#)K$)R)dxJs zoi=rr?PI%LTc+$(f*lJ(7KOa$-lY^f-*>Nd9&}f@-*&y}N>Dc1Z&LQV-g3R`de3#h zbzD24-J{*B-KX8JwYnHf*}lOvUabqg-Tks_Q7Fd7A4BIAW=y)F5Y}F1e80r;6IsFv za3|r;f=|K+K?%qQnf2#4^0tkuov>Qa0ve2`Us7lGN|P+f$_Y2ZrJx8*1&Q^&URHam z-c|dMnV@rDWs1R_4bnj(2m=aeB)ksPfbF0RlmO{~P2ZReo=yXcoP)`XqC&-%JTs2% zKXNUyyji^Ao9W|)-`Zc6PTwx~na)WvI|5pPbT|{3&zxjr`ek-fzOABPrsI9@J^E!a z5Py7`1^WQmx3P;<`hzl~&ptKga(U(QvFA-&+H^Pj1>}pCOCu8nS?Vx1OHs~8K8enk zGcW(9zHU!amj`EfWPU!O_-E*6)k_1;3!H9mFz(vNkp9Fu*xfUzDDe8g9zoXyt_gfs zebx1fc9;6CtDCFPr3Q@%S{*PyV3n&e@OVJGwj%Jpp!eJ*&fDx_J~KVdp~;R9Lw->+ z9J6dT^<(>QA$G06c9rdT$k!pCIp21kc6X|8yWVki*E$2c+ed|(hIWs$-1)rIH$@u* zUsXMq)jPK-e^@EpypQQ?fT!O3O|2nM`Dn%PsleY%)ZyD)*WZLfzl* zPVrpga5-`vkEuu9xgj$hZSK|Tr|wVON8BH~(_FeT#&y2yRrkn{9LHDgN9^Y_6F#Q~ zyEm#a>VEY~`y$6sZM$-{lB{h}=Q;PeU7@QyQ$3e>es(|X%m}G+KH}VAJo>iU$6N0V z3{6+IDdR(L;0=#j&x@XWnf*R81&4M)0@IGS%_X0n8*Bsg?CWnRE+04`alp{Q11}$t+%IvuWcNd9_)PSxjlFPp zZN!D8v%>TDpvR5jYX{pu&RiNk*Lb{DoznfkRAF-11=;2ChT~mzNYolM+PnMu%Xe?S z{6{J`Ic#ipc@JaCyK3t272y(i&*htcPPHvop0hd6&%UmxJf=1>Z1+CY++&I z7oIdOe0BJIQw9u68a!A6cHf$6U&ntx?%gx}llL;`iQk^S zrTMA$(p39C8spC0r*1tJel7ab7|%(ZCB6((4ye<|WUpLR`rCk^NxtlMOW+(|rv41} zlEEF}*P<(leFd0_8xE+K#ATOu)<(D@Q|>FTjd0VIz8=g78=XC)^pw&2JvD0X?0ylc zwk5l3V?E?^PgVGe&AU5NZQqjD^u-~;qq0lCuZ{3f+u_d0?9$`$NoIDp_X{I8>4wWp zkL}@0?(i9ll<=l4EIhmLn$j!PYD|4!9hF4}i%TDgA2@L6z^nnI`zI&*f{&Ee zMh+;&#KQB*G<-?;%pusxWwnugcjH+b88uqDBBR7-qI;jqoL+_jz5YILU1u-IEj5gQ z57fmzXSs3p2kON^*$Ya`1{3AQ57hoK*?IFyH^lcJIW~M|s`6_1{P4L_!d&C057a@v zz*`6$eNN!$57qvj?7Y$&;`0>B#s2BZiDh8I?V7 zK=SCsgrsEJbH~5c!r_B5g$Fiv>)HA57uUm>=T{d&mNuGj~Af&Y0($=3y7Z7FEBc*Ur_Yqe!YJ# zP_fxVpD<~D%#Qa{HXFEGKoe*HwV)bQfyz&e!)@yIz7NzIi+cJ#OuP7n2p?~64)*c9 z7r*wc@vp@<`S{5ncKSH{HgoO&qBX-OUsur0$Juv%I8Ii=KDB#%Jm!vdKK3rxeZ2ZY zhmXJd?THH|-qNLZZ-zKVj{JOr$*=l&+t$Z?{MP}Cfcvz2qq0>= z4ISnA&2`%Kt2}{Y5luN3r5At7dUupF;1O=fac=?=)(lsGO32o?BoW@;U zzvQU;x$UBgFDQxd^e@=~;&uWJwBXkSYQeT!xBy~DSWu}b1JON`{gT;vUyhe;kjuFD zm^#v^I;LuUd~KZ2F-iE<{~Vg=-zMdeX96fQzBs0i@rt)>)lQN1VbGWBU&cwjgAy^{yvV8|1pv zxg&I^GR<{G=u57-o)0_+JRfFAYmoE4?8)|99AC3F0+sC?5<%Ek zm_+@kFV&Br=G|=%M zHkP0b><5kY$tP8h&1ZXZER~lPW%uqk(I5o%9Jy=wAcPOQgiHFa@p-P~I~n`)6IsT( zU+!hb_nz^P#6RHak03|yt{HxhOz@fTZ_kmxK>oc;`p=QOrvD6CUPSZf{|;`Oyd>lI zxEGJKjKJhB1wMLC20M^lT{5`robbKp$kGLubcw$Xw~Q>m0!yU- zyY~5FY0*d0d3PwLoNVeWZKx^j!BKr&>e&i$Q( zG?Qi)+y;x^q0{V4a5umOAPscTOnTj7se;U_fmA^jSLrG$sw8*BDo zz#_9hVyy&U%r)gWOYTX3hL9j0d8w~I)_7V1{}tHHv)R6bo|+YUP(9^7VDE0Xdo<54 zt}&t4diuFLoXM`it|6`@S5L<-Wv;4gzlYqcyykw>-CLP$FY*l3bj7>YK1uoA)!#i& zz1P#zGuC$%_fK`Hz05V)Gb!{dH9=X!q-wC)^KbN@b35IO)Q8*w&fDBW-7`aPVsOdb zr>N}YIj$1GL*US8{UC7S7XN(QvAEkE(Rvfu1d4$k$Nvg~X=0ED;)9~~l0cqR6FI9s zAVB*$&|BcbO~&ipJUkXRNCSx=76gM%!rQ?iAl=mhH-KtT3Eo)BJ1ns5?Va6uP=~rs zx=ZBUE6u%rnqU5$kwN$ZQ|2cQt}&kqZ@2pQS*t(gBWLN)jh5VKg>Syr?7k*T-ce-A zh1<*mXRt2F2B_IAK!1#BbRhB(OP*e5K4lIr5_=kk#wY%IeLQ-vDJNO>@gK(XtxShu z_r>aqj6p7KSWK|zG5dDs-(1zM$6Zgjo^n0us&PHzdfHg&(z;KIb}itEicKj{F6ZWT zfHpDY6^BPzt;X@ySeyIo-K}|ZJKs6Xd1uHcU2bn*c2?QPJ5r2yD9QVZQyxE_uLOl| zV?VKzJJqvyvt4gy&0E=#&Trj|LX*{vN{r{Q;}`d@?)!NZEPrgF`|^qbom|%^T5s+h ztvALo-eNF{C^`~55?!olx?{#Z41G`s~IElm+ zuoJ9`CLB4v{`W}jIs3Rw3h0zDxT7c516qLAgMz!04`>9tKrU#Hjn<2R4pL(4zl+hf zXi*ht+Cm0#aPxUw)Ak}GZQw}#L%p``|OT4pQ56>ym#9 z*ZX6vVmk-XqGX={q^>o{DY!Sm1t1M5-~@iHpc-V?yArjpY;(&7Q)h4ttOrG)5afd# zAgXnFLiE2qAd>J2lsXJuHle!o+P1A*$4#KQ78=tBYdr(@@gU@=u^Q(T*{uYI4$!tc z<>AI!&t{&y$=O=8j!UMuD6s>Gd?*PXf);QpIEnihr~OUB)W!SyjNt6%TK?NuS z>p>9^)w=)Fe7MzMsm8v-ca0=1=T~(+s{W=fC;!g((bONc#>0ykrq4Wpb2JZ*OAa-c| z2g%wTd$$%6lz_0|(RwLdW=u%YCV4OPDJClA2g^>cCgh3GBu}pTo^!T3H#Av$H1uNS znEOlj7w*s9%LD2Hfd<5T6iHTj_l)s$c4yBxYJ<`92>!y z0J}gr$Q=>w)>Ck_5vdI1)<+H39=BhSlgfYr4ImTfAPK~QH%6FyyyMmyQ9aMxBOJ5j zs@F{ed29dv3#E6)e5oiy=!p(`C*Fuk)q3-u$2-9}N*_ z)A7D~(%qLQO0tr9?Z5N|Gr~s?L zRFDWFfdWpF-x1IXnm_}n1y$gjsc6RkHjVmrR`KReIUmCj`Pl8ITxiJw)+j2naFVZ4>S737RlMPlNhyrp<6~8q=M^EvS?5nKg#{#%`wBo#qB`qM1q?I`Qw4)M+ zyQ0E;FfRG*CC>UTaVBzLlQ`8CZ1DXV-ASbCE|H$H3X2UqTi6}M+21A3XIF|L@YR&m z$5QBa;+*Ufr@s}av`d@~#EGPX0_6%sw7!S&B^fn#(fT$brTHS6aTZt#t?!c2I^yIJ z$KOIW&Y@D{OMB3FQqyA4>2mCG>Eg??J{}5*}aZdaX zar&X4bl1JaWvY00k{01HSGMls1I(4p_;Hffujdw7hFQiYglw=MaV&Ps<{+EP`;EMZ zU<}XF22L=?I9btnt1e;kV^GurkzUT7Wzd4^9%+R=+h%`^Y|_iMWzW z&eUk#h6W2gvV=wO9b{y16bsqLkmo}l3Yi#EYTNI8%p*#5bBDXvh5l~;o9B79ILXHI zmuNH3|I>MwZS5NY7?}NS67RM(f+BF+OpNe-Z9t+;Q-JczykZscaOxr4g?h zKLtJn*BPs)Y4v?HvRQ>!<7G?%AQ41@PW+C5viixFYAfyD(iu!d)A5IMK?(>4NAPO^ z<)8qhgIkj@E;t29+y9hUZ9TM7d=FB@h&}@zX%*reOE+J;6eGX~>8i6a*=9lm(pvl?pD zn){hE5hoBS0L0LP{&+)A>GuVd9U3xhajfAfZzisT-#<#gz zPj4UB5AMg*`$MjBBy0DncW4(Xmxb&Nnd-VaWVdsu$KQ$-C~F=wXvfeI%J=TRu5p+t zKV6=O%~Naz5IG0A3U?UXb|r3*1F}FQ2nL;V*c*cOE20DSHX^sy-*tsHhF=$&OG2<8 zlz>8z2c`lYq=FCy`_WOl#OnsIBXqsS92xz3U^EV;pwvn{#Nl4m{7 z$3S9lO?b2$)8=Zu1EdKGjMa0snBnzedDQRNJf;m)XagcQAh+Y*1?PcC5Da)2J69WH z^OnpCRFU@En@)voEGFpnhK0<%d9i%*N+r@e0 zlHf-7EAA%u%kEeuK4iJlE2Nv!9wKje4R&v^o4vMDeabPfFQ<>wZqwQZ_;y=43o&X6 zFJ3@ff`i7r^R=g<67XJ+*a4bB6{s+#FVKGL5xkiDBZ4d7&P7xg90Dzij9Ck{0p2-0 zs7*wU1;L<`xb0vO{!#_m0n1fS8dVTE|4#F2C&!YzKVbe8XNe_$cDHG*+b#Kb>K{k? zMoWH<4bTweHdFTM1v`1m2an(z%mV(yCR#4HbW1*OqIsq+u;iC-;x$LYD=fK)yGoIp zEjgDdN($((Enyd{D0soS<0L0lP}_3&QHvfZmAVvR-^SQq$Q6fft-YoS@Ni9 zJcL1xypi!pr@GV?#yg9&-oriaA35MGS8jE$apx!vu0Y2Vj-8>8Ik!2chd$&u&l3>( z_fVHR-+r$$Su0U`d#*BiFJ{+$jVD1FK~FDJdbp}X|K^mlj~Hk5aypV;i-&8Lv8aJv z1@t?pzKT68s9cKCg8U^cV)+;-I7k{vuj4*~I}C1zciO_@E=VtZw}0jkUQNo(tc~co zn0MHWR~BmvU5!L402N@Bk({sH;7TXY6Ns^Jhp}6{I&iK6Euh#KwM2W=T}&-rXqF7M?j--<5d)}9%Uv3 zy=e267gCcI%(Pc?UctQz^u;_Dz+0~1(`r};NgxjNzz)UcllhKJY&er17x|M(=9tJw z?z&h`B@NNiCC*FZ%{Zl2nkjc;)$xRGw>)}P^Cksy6S7QsbF3-t81j?G^g^xIut}bG zLSJ{jz(hoFL0Vm_k*tG z9{*Z-`UdQl47LMNss_0l_f$9uM1s@TqZ}v#nIH}9ufJoBcAwqbRE(*D$Q!XPc+M&s z6)poMKwAH3gE?l~t;W7#w%ORRYt0^9)1)Yu(fB%Y*B)#ny|OQ+@qWhj>-^sCZ+wrF zs9xt;EQz4D@QQJv`(8(~603EC>b)=)8$UAWlGKo_N??MaocC&QP-P z`+=rAMtCb|1l6Ddl!8K#3%XXU;HGG=Uf!xIT|G;Pl+|wY`2~`xETHB1C3KKE+gZQg zF3F5(x~pFUe&K8X>bD=ibf)jF@s8kkQj|@<@@$43cvf*S>RUS#IxaD}XtLC{H!U&< zMVhUy`lijS{Yhkr=lHOnx%OHwE-9slCT=urCED=*C)|IyzX+YBM7U>rb~-Qh?Br^9 zkaoG!=IE|o=IO1-i$zC`*(KT_?^@4Y_VH@6TITvgHJ=W#tYC~q>zR+}gJaSc$cJu2 zecToBrdz2VhzG%-V;ylp9Vi0@AQ+UFVu&CYtoJfCf|Iu}ErD9ld2_U#PgZOdJS{r`A5LbSga>o<-@_6l%`={jTO6t;-eg+x%8wM^w33A^)5zz% zpgAx^0+0k+?x4{@KFGNv zIzmstQL>2$w=*woWU}5^|LX>AR*1KQ(zb)5a_;OFP#&#y4EfYheklw%kPjjs$Gwjo zO*3v8O43qdd&#R6h@6DnhP$c~-9a`;2Pq&Hq#Dd1AQEUs{k{jZzN)u%8xcUsgLEt01RB5` zl&yw$^4y~et_0JK4{T}xg0uHS7- zT=~}L9u?{@A@kjfoL4&wopYTl?1}a~=W6G_+)JFz#>d;ViG1$SE9i}|m0uHenm zoyrsT^H`dt9m}ieTbiQ`i0nkJ#J%YeHdi1QB!bR|X);g&)`LS2(eEG+#DTi)*gjYQ za=;1lIPze0{UZ-*(*rIn+`%vbr$G+L1kw)o(|WS6-$XmeNRY?*HWq-c=xrqL(0X^b zyY6vc?YhSG3op{n4|!Le8?uuR0)KIOjU_v@nPdC7`?`I0@fg$JPG&J6a{Dgq0e91* zlnPGct^#==3#9I>Kea=9M(y75I7*W^shW8g_d(DM>Wn8I)2{UW0|7^Qz#PKN(!}kb z%yM_cnDTzZlpi=@%7?aDa*Zh;d&rb8+il7xt4z6uRZ8+Z{irFAWC9R5_;FJnpJmFC zPg*ZHrY9KFyRH51Mk7Re_cdO}X+SGyGt}VbkM1wpmiZk&jLJ{1v8r;z+C>YdrtB_DcUl zbYK(Ep1@+^84Pa!EQ@LR_7{Q1)@p6w&?`Ohcrf8T$wrCjkwD}~JJa;g|G3ILtCm>u@86k6!)i;;>}yUo zhb(#T4Q9A@i#ba*oj6bb-uU`S*48QR6xYMJ$~5-Q&rRdk|1f3k zD^pI|V9H^~P5F;UO*!scQ(jhJ%84gU`PybvPW{o8|Fq=vpG>)$rxY^Srv4I};hXTn zSv15W_p})y`8QL}|I?KJX-yBS?A?9wdsx#$NkDgfpRw#YZN9g#j$sBGKrWDTQx=>C z5`m16`XKXXK~phMk-MIgME-SzqA*b?xrBE;NfeM?&P|PU%MG5_?fz5KZ>n`_vb}Ch z;@mV+&P`{}Oc!`$@14!F(=oh~FW)oDAO9NS^YjK;7Q!6+>a^=@-nJK5Ho(++{NM}* zekjpIic7 z;s=YJJw*xq(5aM;sxYEn(KZC7x-*=ggpM|LyrTW1+ZcCDXsGi#$Mudk9Up|g8#>Ck zx=HJG;s4$5QQT&)Ql7OJ+Wo&t@vkOr4DTxZ&dl2NH!1wTNKx@7^CCLt1F7$!*I1%( z?}Cd#7Dxs0zzI$_Q(w>m5OOM_h1_w6&mH*t*8kPiGs47-faB)9j#yJD%T|C0cEcHO7}b?s8t&{Uyd1agk0e&a4mB! zcf~8?luuQ8jX*RBK8RV9Yo+9lyz4!xkGm8u09ha&I1g~0`7X@~O2AYQ2Y3w8%0m!u z@%s!T^4k9a-GjRTEC9J68)SiWkOX2u7*IebX-X^k=A zeJv_V-qd=?(>Ej`WLwDgkbWT#hWr^a)L8L8i`)p;-Hsul@2VTLjoND0gN`EC8rSu% z8(hUMuPeeC?mX;X=6OBzF1N>Zqw6MDiR)(9T34y-R@ZH=^{#cU>s+_E2HLN*?^k!b zi=1nm*E^Rx4QHbL{-B92^M`!?6Zn;LwYr&~*h$5{*SfD%OO+>-hqQ;aN3`wQ0mJoy zHrqRmiSkp|Yp%b!3zaE+0xuUd8*#cNszmR9*4ed<3Aopu#2DmTNO*LEv zD#0dD3<|)`W#%=>Y7WtZG1Yj?SIoKjPOegsr&{vb_15o=SmuqL`wrQT48=U<;zfq*-)fZ06SO#Z8ULK*7^mur zcfH1iV6oB~{EjEh>s+T?tc}yE9VVQjU8SC^Ck3Xzzp+ zkw+GoYJ~hpyD6kovIMQhUH{QO@@99^?3A|P7uE;dDc~^s!{e+2@wlI4Em*#U(+6$^ zocx*b4qCy1Oul}lxu;}cF35Y3YvC$TE;6@UrSK|H0CGVVkQe>a;KZM~o%d}>Q_R=H z{@;9<;U8F%PnQogd;@grLO$1JfNJZ^0XyV%?g(W7BTM{%MJ!{oGyZQMaEK9&;((pYrFS=HEW+^$?W{dMp z_he6*YgXt`cYhw6nIE0BsNIyVpPalO5~VFt&wg_90l!0(;`r-_C#&4AyB-cX>68zN zdMgK2^Ai;F3zR=xlR`6svb6Eq^N!cmc~iT5j?$@qrB-QA1Scqm)j!mmc-ni7CtJD8 z@n+y(KTVMrUgYDHhun9#hJ}vdG03H^oX}~m+l+3%Xc1TI{2*c>)>)y(=-J?;ou6z3 z4PZU~(t~lh%W;?6_(esK0)j!S!VfBfIzSb ztN_wdZcbo~{_8E2fSnwGQ}Is%W0@f1U?(_?mG>RSr5f@5*FM~<(N^X}^ump%(N)le zVsu@l4iWwtAq-zeMb+~<5yl@B%KE!76k zJ|j6GVBnyCy4JWW9a|l$dx`r6$8lbEebw3QTpPMY`O0;rXMl5<`#k4+jyUH4X z-riR|_dA@f|Ha(f$5mA&eBb-L?8A9KD3AxmLPf>ILd7CIDiJ0b6&X#WSg2H#RAf|C z)Ip=7q9SA3R5X!Mkx?;4K}JPIMP4*R4iz~}F%HvE(F|i$WK7=Qb=Ep&T-S3ypZoqi ze>{Br`dh!X*Is+=^|Ig3-nV<(ov%4toip9_&S~yjeKGE6bwS~d&`IfHZ#?%q#7~GW z;4MqP<=5ib+H!Xy?YO}5hUYiFI&Zmm)Uwc5V48{@|e9#Jqe!8mbYEIoR!`? zyq`Fq^EJ3`_tkrs`R;I?PKEHml6OilkWanxO0+;BDk2-)ysDFM9%_dI7xfGS4$?sj zR6+ryK^(YY+&(2R3_Z{Sbx;J^kN{Q~is0>U;Zjq1ib*LdW|6A$1lwa_$ z^gYU-#%7&!8m&+HM~0-YQWr!bYNf9UdwyRl(hsQgzyD79q3!C2oVR}>BSut$g};@) zE}X%B>Bqv;-;usSO<(+x^ctVu6x#^jS<>5;|7M%?k;?z&4e9;2aKg=YP~AriBn~Qe&uKX zN%}$MzZ{c(IGjO^^rK<_p!DO)Ke1hUt3zI;dxFOU#0oW2K(XBrKTTTg(Ifbg&kE!8 zIDOmH0^TDW%_#AM7@OH>0whjv{UT1kz!aM|lg%KB2GJbIfD}kD&Ny0c4GpDtK9`Sy zxz$onW=p`)nU<#fq_3qf370Bb`bOnfeJ6dt@;}X&KGG@I;)@jNGn7yGR{BzBtUMOH zZ<&l}QVHg+lzu?@cPgZhcF7EHeleT(v|u91F7`CDV9kMpSc*GZqP{Az}dC{Ts+8^4ggEvO<^ zy(=Szm4Egw>EpdJ!)}-KIm!>rkiJs+gf!{fmA_5Z$cXXcPPKMPx?{iH(o7$Vx-JaXKacEWRnNAF%@yE zT_#AHBs1JFS^9kC|B@TL({?HUbDo?&uKepurB9wL^IOH(6$L6#{?@s|$FQ*= zB0RQEW%qlrJ#?^5|a6_h?&P5^YD>5ul{zIO_V)%6F(WwpPeptJvs@>4j?g2b>)X zU#9$DdZqWP^yLgUF}+$%Ph)rr-=O>@5z+_SRD|!KjObQ=fokIc<*n6n`l#}eNzx~& z1%7;^^!6B8Bm6Quw7@v!cV$SQto*J23i+Uxp(1AcWP)7f+xAIcr2JnuN?)$L{yXVw zlwZXbO{`&K*xx68yYl-D>3fvlIZ1fhZBRwbWM+}UnDXx&kluZi8m~pt$K%7pGlSu| z$o91RJKIghS#kQ7lve#^{Uu%A3l0A?R}587Ie5>0G-J>Y!snm~kT|dPi$r~^X+|3f z8bF)R!7Um-oL{?+*MF_owB^S2$LiA~M%?#nY1WO#Bgg7f&N$7dYt5b(o?8}woWk%z ze>d|-g78K7IKoLnVJL~y6NrNpm1Yo41MUgU*Z*a5W|J-z0t<|TN&3yfwBtB^#kZiz z5D$@{!3gmK;G{Q%%ljrJVOx6G({9@0BRusUx;zn1@4(Y`htrG03wADH?>u}_KG858 zr!P0f8!L~~XPqPNXgqHXpEcaZ3}S_o`Kmz&1?vbZiafOgks2rOh|=9@Pi!=&Zh{d>>RP7n}6cEj#$Cj z5ME)1-hW$R@m!Lc9t^FpNEDvIM3^n!VgDH6LbV`*hhLnt4O4zN{+Ac(h!&_l94~)D zB?@*j9GUM7ye^7%08!H;Dbxrx769Q} z@R@{jMLgJ{4WHK>(;Q>t5`EzoaoP7C+a0z_Tea<8+ugR$?Z4cK6QvB7QS=YS9N)gMpTH0S;WfOU zaN~)zF62Tc#6u($Gc6yof!97P(bt<7Y9}#FnJ*U|M7zLD_wPX4Al&*w#mg0Cc@Mwn z-=ykX^m5V0q0V8vnW~>gz5Y_(rzsr2ky*uI&+=KVxyI!L9Vhu#SQh)X zXrCDOF4JSqT;-eRUEzI%1GJsqPUi~kIMHJ$Lv02J7Xj)koe^>}^_9kEUN&}_oXPIVXQotH~_bDs`MhOo>FLXe2>*eYC zmFB5Qr&7pOoWi4V;D&Mh@G9er41G@M$mk-PNj&iy5lh??Wn4DU%_ zzfk%e!_qgUNdMdt>Dx|}{%;M^cP@<$ykmT`O21@!GwWFosjH_1_EX+Q!m_h=FMrjz z>QsHUPyCwTW`0fZsU^uGo>YC}RQ)8LM)==7sXBfd8&`771knW=@HvDNP%HFivcZKW z7$Cj}>YxhBT2ET7yDamX)^KJB_S0!WRBVPg3kW?Ixs8D{51xkI#^r1DX~D<&^v43L zc>VVuopZha@QR0`Zq%-@U2ePbi2Ly`yLC^2d9`Ja=UZMHeyJ-nbTKjfU_s>>?3G!Z zA4IWJ@d_BQGP!AAd%sS^8VxHe%O7hTwv<`Tq+~#-4ZLE!cBZ~KnC-2xJmnKDbh|~oqJ5I~xTDHB z&vBRYd7jPA(;o2JJvLq>y2QEJ`=q1N?DM_r*zCOC`G{w=kz~ zTlWJzukf&Xo#-9BFKCMvYu?~`H1xWJG@iS7&+`}`zqpZ$#^ZdVYNch7_Il8>Li?Lb zG;7&<#y$;{kLIkSVa{ipkV_*#?RoS-$cHqD2Tl0j(4gls4T^Km#3bmF`lpXCxi(2Qc)90E`>dGSt_&2bkXagL15xE6VpExAC^SK9Q_pYY*ylC8! zryq0Clis<$bx!eQ^RTAniC9GT^ zpX9UNCP$uw^W|fho}m1pGMQ0^@{x?ZX-v;oe(WkaQp=R@W_~eJ>y%IatDL_L|AJe* zj7N7{xm9P(&DW=2)arZF_mb}o-+C>=)8hP{_M-1KpLlF@%$ev|<+_d+3B2YQcVEoU zn!k1Iu&i^8I(m4e8~1+P{NBua4ex!caBZ?)?z+@k@qXbx-TS5c@9r$`S>7|e zTV3yQulil%>3n@j@MT|zuf_Me?{u5EStPIWi!u91=!ceH@YRJu_wU$d|Jl36{e~yo z(#|%8-vM1lThdO^Xv?J>3=kIaV}%Sr!kuU%)Ibh2U&3gB(u?UAV27@YXs-jme&NrN8;NE*B4O@kP1mKL>y0TZP8ye&8R0$6=+vX3GAic*Am`zzPx`Vj<_3* zjhE{&)A~K%IlNB#f^#i>Lj34`oo|yn+S}kf&baS#ecJi0?s={>EuL-g-OkHg4}0c| zJp^S)EoOX?cO(cubS3pcxDZW&NYG$}xB=*dQZXHJfmiump|3UvJ8Seth^$$4gd%BfSkT+Rgn^==Uu) zZBUFaC*qDS^CH`rT>Bc zAm)!dTl$3SrBBRJm+*pfWkkw(GQql&q)%HX{d6u+g^rXrNdNPr(&y$&e?gM;1)HT0 zaQRlGFTPm%{wnFqE|vcJCh04S)Fr$hscA7o&6P62fqzS1zg7BYua>^)8tIp)L-V#$ z>HpFtr+3~c{g2;C-*dC{@rTX63_8Zs=UC$N=ZGt+ef-+;$_4=|GL0!)8E}G=O0#nNuBg#kEm8Y?jspt zt(P;*U{53#7`apWGS0Jwk86_+Kx zpHnAPk?h*U0t%XCf_F}pzSy|_2K}xDr8lyRhd$WDrmPsv12L?rdTj=*g0rF7Sa_p; z;>G8ApY`6XU1+{iKcDxZ1b8x1UO~unU1<@o8cE~Mb-Y&X<$G5QX3hs0yn&l(CbAs@ z;m2>{5Q=a&S_T1#gw8UG1CeE|f4EU!WO5V|nF(2~j+^wkrWv(lR0h4Uouh(kv=YMS zW6j3dH|q=1PWSxsP7(P^3bCCPOYSLW+s6#uL3UX%OjyL{5*{O*ifTdQ^_%q@Jk5m5 zp$;mIRYCpqNsY|jhb=|3fW2K%KhG5OZ)Z2QjcKTOF|i#T!w-o#=z=zAgj%Qs@nYgq zG#wS2+5ca^nD{xDI4pY4c9Bm!!XzGL`XpkDua}=pw41K>1)sLpTk|~MdiU6#bshQc z;u79n{QvgS;`3ZD^Wx(F_TZCtwc}h@i}xlTd`j`%=S#Qt@nc`B>TL3r#U6`#X|Zw5 zc0G31wfsWkbe_}`fBaOxlIEcq@@{9RQNd2&me67Qc701s61D)Vp+jg7@W|^e`oAnO zCCpaHESabsItcUefZO#?OfkiGkPURhTa1=`lpn|5!I9fG?@XW7t9$QtS^nEYm5*{- zwbh%hncO?IADmB{BYdxW&g79{S#0~A97*kSZex)KyZ zB)n2lZkpNp(H**Bo;|?4ZIF34D}_#-qiH)B!!r|k-j8rP#2NQh>6=$A_ncq z7so{WjQ6)>M&|J#d~Xd$WrUm1a!3X{bP`tv90A?0KW}zeA0Rzc8n69UpYJ%&H){F4 z=OtGhzbw|Ln6?>?2lTlc#DZH~@fL$45P5<2HZ~S3LY=7MA=a1-YDGq(aqta*^Rzm_zR3|$6c7$zNuj1TDZt*50v%n=K?>qvw8Arj>2QTZw2EKnRyiEVBo@uF*J zLWz@<%8hSb;OaI{jaIuxuyw3D(CMBxn&F zIE7atQ$u-#MI(>Au1=t6WVtDp&rFLmy8lr0pDeFfuJc{x3)(+3c^!>>)^?KiyypSO zavohv^*v@O)jo08dLw*6I+Z+gzx&eIM$XLHAA3lHy#KeJZ# z6!p%El%j=@0~wG4?gly)(?q%vG!@z&w{Vfd_|H!LPfG@#q%uj zAQi;?1!x9j8hV3%j-!)cJv0~_8}zTI=P`E;bJc=Koq}&5+yPCkmp-B2ZVqNVP48;t z7Bb)^L&f`!9-F+etHeSqIeF$4&lyu_p+_x5Tg(->iX8cT!FQ>vjE@$`R_cQc& zGrd#f3A<>%26PcuwcaAUHeDXP&$}RW6^tij#DJx3x3#Eu6e*wn4|y^kUn!?Q^9eIj zxoOHjydf-Md|to?|@ywnLtqy|?)8@NM($vsL=`yFRg<>)UU8+4C3M zAH1L2K6an#d(fTXooSiloX?}O*IFL4+^M}2@v5UUVw1Pda)NKRX{G5KJ)Y}*8NR8$L%dh^ zO3PI5c?{SBbEL;$=oV>TyQX;$I)8ADx~e^Qd&Ex{L?20eh5jM>0vZp4ZS=mE7|y?E z_d&c!Q`Ag6;dnIbdHMznJx7m)7O0!Se-%&wS&;oKT^bUa=+e(H<1?+F?b1&$PfucE z9ux9G{QGM*>icWP5;(0DlFs~&%UA`W4X=KX#DXN{gh*7`NZYWKF>_EShvDocq3Cti7m~mYLrml6Gq35ln3q&{&>CQWlTAHZ4Ere3POf|}I*#|Y zsBHirS`QT`MSPUmIJtw{hZhl&F< z3zbj`M#tNFbWoI1Y)B^lV0Jc-c!)}h^U5F4-pUE6Ra9z=JoSm?6#N8yh4Po&E~mFE zf8$vcjnYWmRW9M@}no~xTy5(#R!&S4_MIt#B}HLmZ}kD;0#?9`86`L*XG z=Rcg6Y44h+JF_jXcwcaS=BReQYW~iBvGyD7E`C||lbaV`y6ez3zBvkif$ z{64e`LR<3}LdPjux2hz4O{kKz?3ZMvPi&-#ziOt@g1>6DcKY7QtZkmk;Qz9f{>MfN z6<9Tz_!ab*>`hKI^WBY~LOtLz zGcLM78#l`j-=?V_i*M0nOCIHG;gh(Q4M2% zq$ME(?9fI!wuyhxAB~vQ`w8(Mb1d1%K^@^1!||~`H?o0X4OBo07|9>&@u9&pNa9}T zgccCh@^{)%^s;(Y?Gp#j6aRkcnEem$ZWdJee%9U9f) zG5xW#)BJ;5yx8k|KE^!ezS5Z8r!Od)*gIsu5M%yrC&i{e41UfDAZ^+K!sp<-2^W9H zKDVE~0~vp2s6sUK?W0K{83sOOhXrwG zS@^I=F0=Y?9277)2gEY-@%e-Us1*hYcLT=&``O_-+ldo%S_h3A{-z&y!eo!dB{z6! zykl#N_D|2fPJ@d;J4GV$>;F4jr9pOz&;m6OKWKdRH+{b|nQ3-#|Gjn3pg!3Yto?#* z5M=#>O&(ebH(baIvT`)-POeH7;`g1);VXx{xndd{_=oTZxsWLKvajaJi&ukmG2t_x zlMh-Y-6?%Cd*RI#t5EqPf9Lg~Gh!xh%Y5Iw#h1Wav@Z007Wy3I#pb;cZ(3{YXPYng z9c{VBxakY-t6$_D<9(>BEq9t$@eBPm&H}!@RA7F7+QjphH)4|!5aQh|*| zxg$EH|9Mh2a~5G!(O!{5>yj_I1$a{T*X&6kbC|OQ4p2G?w?hjwfjC$X|48=Ux4sMc zCm+sO)@IKd%tk~#y#k|$Q9>3mzS~lJa>EFcU|h+X4 z_hswr)>o~&t?ky=tRJfzvEf%ihp#1w0!MyNwKHQS2;co3eV=eSnh(h^fbW40;F+6I z{VCJw#mtuv?XZ(JC`9E+QsyZ&?7glFz1n;i@5lSl@;JXmPUp8pe{`ogcXGdJy>q|i zd&m8jEazXvE0&E5zt>|zA3zCT3r+fw8YIJR5QXX=Vz14cEH`9BX zam|nVG3iJ41W}gypJ+w08Uf++@#BPt57H^25=x;EGQoea_2VD)y`~xVaW--!&O^u0 z@C_;(Lq;5|eQdn{lRnGztntlH`m~MLd&QXmpQ-n1o(@+UXJI5^aXmkiH92&k#i)oY zCR|212Tg@U@WaS|SbOM!7N~(-XeTWvCgb|)=GdG=P1n@k$=+F!N4&@paXJar`0un3XN=Qr{zd*=b8? zyokc4nEZi87SII3Tk&m#+ciJGtMmsdAQ6U$<447Z^b1{i*c3?B{H;G6;@l%xX!Zy4 znXv=Cb0!;E^Z?fr9%6&Lb{YFtd@3Y@AC{8Fj*c?VAoM~fv_J!hjqrBP^~I@9x7z4_ z$X%T|_)+CQ-5@U)#NEZOw8D+|6${+X35v+z%4za-si}9#yOC6rw)ZA3bQHWMU; zydf_-7LrEz$7jjk{MRYJf{Pq8n6F>?>u!?|6!1X&;bodHrX+jH+UPd;@zF}_$*yy);?)u5T7%^(ZOHYOtI}Gp_2|2O zD|5simP&|rl52A~HfNAu(*+6?tj4WfoV`m20rVSp7Beke^| z)N>T>u1Xa#NRDXp0==MKauH~ z%3Hb2B%bLgSN_&R^82FoAs>th6h9+7j`bdyLG|6-$zq0tlcj%Yiag*;Qq%wRgzOI~ z%CFrhKeL#o{G;kbAo@W$|4wy4Dn8p7s*zi0Zt~9|eXVho%@#Z3CGR}T!``6w1#dUL zPupX8RJ+!kWG?gGshwzj-n&}sGoG>8j#*#ieb=(x{D8JYd&svU;s<`I?eIO#7rUZ7 zxvpKh%QwTZ*0r5WJzF%lx7-=cg-WrP6Qi`q=?`Sl!kG?#AOY&_3@jKWt_%uWXGhrn zVR95REeE)?;;&lXuR~{pj*7c z>RK()B^K7_CKG081Rf7{+0L0>M^p>894&zY@WU{1Ttsl$R&rG4@du(I)9VjZqT4Uh zw54ne(r@MhBNr2IV4P09k}=7UDP{T^;tSDSF%O8keTLq~wn8hVZiWB$-|8Bm@_%fU z)7zEL%#dv{a8K0K&G|*88BIU|r#D;JcW+ z93D%Jdq~gGuJpCKo^dp}pLd_7bDM)TirBm)bY zd<;4!ab)< zN@ShI3CsV<{X#K+=K(o?rkelJx8?PZLgkP6(5c9uAYX9KgnEJX8gDGcxR9r$l6YWsv3~f=sK)0}wi%|)hAG+>MYI3% z`P2XDSDjgoIXf5N&~asBB#oYdgj?Z-Dq_a8IMr(Hq#s>^TLl zV5iE@oc6H=-w##B-BWGTlkf4J;~sVWU5~dsVw>#qa`|Y6;{?ZUXFPW|%;sFGOO!B& z%={2H&Db~9_Q33R!eUAndI9?@uh!<=?c|agX@`mH1wNZN%{D7&kE5(m1l#G>$CCV3 zmr3h4{n_-LXUuY`<$&i~&-b1&&kvqaUS?41F0gE~9K)f~B3~)Hxpn5xEm7KHSFE<# ze3SW9v&THubcg#+_i3)?!%v@<`YzRSxe&5Q+Zg(yu_#7$ygyJH=U)`?6X-d{9~e8D zT^3YP5RqVDx<61$xCt$S3`hlzsp4!~OjEl^8wc&s3`LLu$w#;TbGq$!=3qY=_d)p# zwyNA7iBfB}&Yo$%+qd2Mrt>Z5r=A6-`*>NpxR3p=&YK%z>Y_aR__x;mdrHLh$ zY6X^4wJP6c9@#uZM_TBebNHmU#QV5e6d?Y1nv4vxj$24?&l4 z>jK+dv7D7Km$OQ0y3K7*#`F`O@Fqivjgylr;GJl|B)P4+X4 z%a6BB3qI&AU}$gEsu{!u=5^+WISX3gdcb><^Ah(xuAL0@A6-#Ao*QAl*5dGPb3A5w z*i>ga&2p_H%DT|I$Xm|!Lc{w2JJ>zmTOEb&7hR8-2Q4SNZ+G2bS>&6+F@A+(v-w1) z+|DNWKII|v3$zZW*Z`cM;$NEn;K)i1#)3dhG+(U(9nXEb2gVn(9fjOQ9A7{hjF5g1x`7ABlWnIQJHC*l*b%e` zI-nkEp%Tg<72+4RewJ)IXr38Q{_*5*N6VJb4CQ)?_=YTGi&zKjki(xPK% zmGR0_+ceXF@zGM-`~`&pW@Jhhh<1v@=MuJ~LuegTKpF6rmSwiZj!uG&z;{-b+5Q~c zoEZ~XXw}Na^-l3LO#F4U>=v5C*buN?;%WEsg?LCb$M9hNhXLDaeoz;?+_u^yZn!k@ zR@27&`C@wO<;!jVWir(oC#|$CGo`d%v(mQNVoGcMG~E_7oBCVNUu8SptfwA|4&)e5 zueRM{N^D(_X^XO$3R_P;-FBhL#4}u3w)4!Ugw`L=v`sOYhFd3P3oSF|oz3c|8LQ5w zaw3!kNZPYi-w=s*MHb*yfswjdRbj z{h-&`qZyrN=h&v13l11pW*+ zI#Bpo6qk9K1eFkHO#hATEK^_W<-eg8rq?Wp4pi)q3gmywks!HM5w3wcXfQrJ&-S<} z$G9e!GlNmXb3Uc+F+MtCo0f{wm>^{K@ar9APj@XD%v3$5+MaLpx+xENI4W0$o`hg1bIXh zKrxg<71TmKG|%8pp-||6F6e=N7y@lHD&Ph`Bta@VY zWC%cJkpJ?is$$3`oDYRi45d)VT9%_#Py@Bl2u;ue9nb|iRA&#`2Lmt+qc9HEAIRf@ zXx=eNK?uh|BBVetjsG$sABv$ADxeB#pbi?K8QP!|vR1JmbPz^BV?enf4&osZk|6+@ zkPSJI2hroyAX)-`5A9z;pc-nS0UB-5fhM#C+Mx@2VE~3<3?k{EagYS5kO{d^07Xy= z<&gg|d84&Z4^7YpozMgQKhpj~1jax+$Xb9O5+N1RAPaJ#5Q?A_Dxezbp&7cKq_Aiw zbVDB$(sTpp5R8DvNVAL4262!I*+Kp*fD)*H8fbtv=z=~Nf-!JYb@7l2S&$DUPzn`L z4Ykk!&EWr!2PQ!9JC$q=xDzqQMVwkN`=L3K@_C-4rwrEr22@fikFs8mNN?Xo41Khb|ZfH~ZOS2tX#} zKt2>(gJeRW2I`?1I-m#oVF*S+)5!$D1c%phZ?AdCTMfe{+$GRVE~3<6vn|Wh8_4J9ugr1(jW_R zp#X}Y1j?WSs-Onyp$P`#I21;^|Hd{2?Gpcv$|Li#6cn?LjW=$3vwV23ZMik zp$clC9vYwt+MpA9pbv&%9NZk|`XL^YAOM+=4Z&Rg%ZDN;gONBEfL22-G(Z!yK?ih0 zFMGQ_bPz^h4B9xP97nAlY7Qcy`!cbQXTgvFgKS+(8OBM3Qz6Ym`)3o#g*+&PVkm=h zFUM`@I5X9tbiIpajY|PAEewpbF}s4LYC? zMqvaR=ocy1o<*<4Xi=;o_#qyWAO!-D0a=g-1yBs-Pzklr2+hz29j&vs*sijhCbvFt zwQZH9wf|aMf24U`bZgt~wjH+Hv+l9AX5AAJnP`e@-SBe6G*hs_PutQy&1eg>Lnq|Z zn^QPw=qB6;{V)JSFal$s#WJLpvAyS{v;Qe-4?nzw%_n^^ex$uWT)Xx970$Fd-i zA-)*De;W5m_MrHDG<`ZxrJSF9F{-UCp9y|ip)gE(4}Y%@$1lD(rrZt(aWgWO5%eD36v4o z$%GR0g{f4LP<;FyR3%z~-;3s=`_L?OG6fBwi_m0rJL*UGpb4mxnyRLaxznZ9tl$$s zXd)`Enpx4w=)iJrZOtU0k?>eF0bPW)FQ?>aPJnxBXbFBTn#uGvXf}QwT8nN%lhDgh zJ9-0J$9&t-LG(_vm<8@YJMcTb)ENFDeA|j35d=z^unR3>0WYA*__g%yh7VYO?f}CJw zjBbzrC0sqr8d|``O4rSi(+(XnX}vRl$?OE;MM2IaPG~WC2#q_O-lAoy^kRYOD&1`q zR1_#k|Iyx3GhLwcX0;Y);zc5nrsx=%@v%xHm5z{BEbw)uRZ6c##k@Zs(zRY{M{Hvv zUz3}pOURD_rp3R;Z*#>q=>~?+B1Xa})xVW7K8&tKJD6c7+J^3nV+5dYk**P)OvkN9 zr=qp!9>#t(x{tgn(M|YrR21$lRZDZ`%EI2G^ti;JjCd|l>e2ILyOp3~#{Eh=QLzR+ zWGJ?1+%2Xh>A`rh0y|jfcE)_?dyH*HP$3(uHDVh=S}~vfbvfT^((>TC=EsZq)&!5@ z0ZL}B5)oujfu^&DW$3YfdOo_BH7r8+patkoZU*O~;ih@{SlRi0r*ym0Jf&wUO;@@V z6@{uJkDyqa6DbK-r?n;`M5zw2F$s@^(=(MeIX{g9O$P7(_+S?MFq=?L}{3hHmsBX6QtZC0#qZ6m3D% z(I(-UuL0eI)}ebTSPi9nC^_v7iieC-VnT(WFg_iJTBfkrS$!AQB!>35V2zMwM!64ctooN)wbOE9DwRs6d%YbCl*QEfN}JL8U69 zLTRkoiSfMc;l`l~ru48bo+?%$m?vQao?d$#v8W_90^5BAT<94D!Ll<~bY9CN7qV zPUd!jILIYw=<&Y6Y_9Vg3pzQd55F@af=S}RJh43tCru<=IhFGdQP!JHp?Ya2Yf&#N znI`7x#*4PtN-x<(7pr-PjzLFBLif>w;?b|rXjIgP8#S{vvZ8c|U?4dldqy5AR$Mej z>2etsD}G>woW2zm3qGDWvHlrku#1IOqEqRC<*1X2FGV*oUBvTnpjL#6eC_N_7p;_y zd^F1vz4PXkzVJdhreXoy^m`{FYF-NSh)&RgieK6G}i6E9ZwPF7?GR2X-^6Y-)) zBzc)=R-1k3fA z)D!o+q(ObZpJTzf3E1Ek#KNuv~6(_g+MR1G8vwveeP%v>=EI`Kw=A{e{fKD}kwwE5qJ#_HkC<|96(u;bgmw5knYAB%3++Z1iR~A9fP?gQRAiA+ ztPZxXw5E%bxnAN$i93leFdlqAVlLJ6CQDcq&pD%50z)?RQ>$eB3p8}DIH#mvXQMZ; zlgmU!&hb~t^<1O01T8YA?+JAV)+9>*EEKbG4;3sjK8uXS!0RD{HPlCnIAS8hcyuot z7&khT&Nu#FOh-r2wdk-=O4W^Sjpx7!-Oj+MrgBBT26?hQ(h`Z^O%-I2&m!^&1r)c97{E_;3M5O?hwR zh+2%ypE=n`DV5cB!;MnYu912W6%DiLI_bx6kZM=yN>#cQ*UR|EvS0G7J|eu6uvlo4 z%I|fdkwhe1D<}AgC^8(~5p&%gw1hl-tkR6g?uhspKSgh$8g8Yt3Y|s078zG{hep#K z-4WAbM~F?~m^b|vYkJ`}wpiuzP_)Q+jmg0TCQY0yI=*PA3sJFe&LGWK)MqD0xChWC z^dMS~hL3#TVnbJo-$DHrqvA-o5EY}c8r@CLtRtUIB4gtR z5wj+BlSXXBn%JPNiDwzDzx^P>qSNUg+#50NwDG;N(_g~u;_S=)Cx#PUp$^@}R;UIQ z?|G|2x1ts3TH?#lMKf3}RIEyo@t?gB^Mj%R_dO}=Iq@l}FQXzpQ|SSw3;!`HI)yj` zJ??31dOt<6U-e%rDMjcn>_zPf!k!8UZNtKzrH95VeoiO@vAq(A1c@p`u^(AzHk-vK zfQpO{{uD87d2+8@b=EeNUm9MldLFu)@sy3q^6Ax{le-8TvwK71{OsO{X?hze z`;4o4BW8uh`ITfSey=yAG93Ac4F}CRgzlhV1LzBAA1a!^8x_soDW+4$ZRkU26M7kS zT#w#>)}T9yFGP2tdFWQ+vr$#J$(s4aUrOq13zhUE8b(aFvz={vUQQO_jF*22x2f4g z{Mr`Ta9Jv?*iUyqCmZd~-%HI?dglwjEN%{Q(I3m>6rrM_gwl9CI&XaVQN%QlD2K?e z^A*uUetpu5p3RP>+8yJb-l&^Y7#k0Wlp zT#n^GnZ##_Lw^>{n)13eedcS{^uQ;vflR0%ET+YwVo%!7 zy9E`k)QE~!sz=vQ>$S$opF~706c=)G-jEd*hlW@1xg)|Y?XslRXdFLXjkuBFXX>Np z6!ygiN{tzP5m6V2vfNHN*nn%5M2oT{ayTZ+5-(J30KyxN@CGBi0SRw7_EFt_(l3oC zFLWP0&;F^gqc397LQ!pbZ_C1XJERW1C)L*VOG~aGO(Zwv>x}REA{H-~)q3EUGi(|( zj^veOFN)3XHZ($O@%!1<)T3fi^`zlw=T1wM(eY`7bzv9r@%v%}SM0H-Ukq!2S+x=3 zMT-fg^dS}TN6Z_HWIi$P$ISCPHLpl3mLJ}+CNup28>dno28RfCbRB+# zcqe`g-AaWFp%1Z189+tF6#h|mn43}2fd-WBRPp&eGCmRgU1;N^X>KUDxeB#pbi?L z1=^ttdY}&mVHE6_asvtqlDN;0Cc^l&++srmkO{d^2qjPj4bTp~FnDS7v4K$n<52TG z_hl|4Q;36P$beiZf{NC&BkhJc=-jPgl4Edw=8;-*S20dYcBg7ShVtqSG$ zidrM8qa7#@hHC>TF9X%aQ9J4{VS#80D$Y!@Q68<=3Q;#&f$}`ER*!noc9hrrXnklT zI*Lx36l7;`O>|%~5y@y2nuSKAg=h>~i5`VEqEpar)Q=9Mv8bIU5+4*wL``S_HKTc` z1ua9ZXf3LvEvOCcK{atvb(DY!wO+@Js2{bUDX10AMs+kFwV{=$7SEcYCbR`Lqdg)% znK32e(Qy%vM$;!PXfkR=vrrw)LxVN~#RMYI3e=9)q7JkPb)p@p3++YS=rHO*t=Chv zXdLQ8Q_;z24jP3PqS0tM8iUrNN1@H=6tw&L=u-oJ0)s@vqShOt15?oibQ+q0#-VxW zVzdlRL2J+@XcJn1b{J2`*pCVJVlNfZ4N-y1&>{R5RJ)NrkJb`@IqJt7XcAhBrlAj_ zx#&Y^396-WM2nix2Gopppcb?bwW1@aj@rv;m^Auw0)Yr3(oj2^i#pI^)QMK2F0>wX zqwS~%?M1!lFzQ3yH_=DYM066GflfyA(I~VGjYezG7_o9UVk%sGG+XBG5$Cj%J|_v;=jcHK;2{pq+pl z?MFSRR?Y(RnGrRi0o07fD z25kf?2t=TDs2y!awQ@2!%pqYpmbO1dHwO7z2XbS2_bJ19|44sPBqtnnXG!7j`7oyR(Mh6z5 z0dz51gr=ai=n}L8Jpmm;Pek3fQRS%wl5b;;tEpntgcb>3&zcF3)}v;$UBow2Ga?=x z6!EBbJ2ivGqgFJ4>S!)%LyOS}v=X(W^{CcCjRgsq2y~-nbQrawk(FeCrl496Rfd|- z64Z>=q879rwW5Qlj=Jw)foKXEf##rgv;>XUSTM?AjJ$k-w06YWn@p<$aZ>}SkOIk& z1c{IU@el`oh=xdTgB`4(!T7YPfidIv)9hbQE{-SpF;fGz&<4@*tBIhJCS~Ns4&m+!^+-O(m@-&$LIGOo7&OXW1Wh2YdcaJ?K`=!k@E)<2HPR^0V;q z2bk`V)92$e@m}Q<@WuEDr<|UIuf<0y|17=(pQzG5j~|rYESA^Q!RE~VZFFFcO7I*B zlB5qMh{9*%b=?vwU^Ko2AEEqQe65(y%a}!m$KyNjUgZ<1j*0?G{|L+1 zQbQ4@PzH4xT@df(C_`i@DzX%>E596Hi;qzLczm0f&QXgA9F?FRpCx@Lffrwh*L6o|0X}>cK0^6<_+~NPA*V0I_u;+DAB)$% z7d0TKFTy9{Bb5(|v6D@NuJd&+{=^t65i=-18(%A?JLL2Q_zt{R`8oI@k=`k%ABT_p zK`cP}v+=3;G>+Fq{>$-s_!FfMTC#~KCt`)FfdIY%zeM@X_^wa}at+SHkAyOieiPn5 zCgzv^One%CiSirqh4?hp=4arm@h66S&|=9aqAiqx>=aq}flvn0Z@}As6dA}~ei}Xn zf1>hv_!Ux;rD%`a=@bo@YQetaTTasd(cgCYZ&U=2PQzeIVBzueZ} zF1Bx;6HLBfYQTa|M6GB%s-u3?hDM?hs2#PV8tOpCHcSmT(GhetI)rAT1L$dJAL>GT zP&e9ziVHa%=o+*NJzadAwt|4TRg{hT&`dNEO+)9PZgehcMHA8Sys3eC=qP$DI*iUo z2hl}nGrAaUL{rduRE(lp^aQjTJrS)$Q^jyCCvXxGrRY+$7+r=IqGGt_qhgrmqASn@ zbR`;xrlHa3$>_lPseyE~4?P9#K{L=UbQRixo{F}iNa(LGk!C5bIn^^F^!`;I`%mbO z3{Sk!ic>tvLT^d;q#2K_w=bTQEi9*z`9e3Zj43w$O7!{V*y^0+)@q^W1g!N!*DkX* z3r$&S?GU>7Bx{e*MXA;Sp$R8iM}*Eg!K#g;GnZH+(a7i&YrN2?#nxow@;v+Ed1=_< zn)!|#q4yu_C=|M5o})}?MWUlp=q+;{HOBiSpHwewLFA++p__e^+6>PIqC2tGji>v2 zgf^`4o9|mV#VFjsL(TmnCdZ=<2|dTHjS5{$@A(g!ahm29dP=6|7n;6WOAwmk)KY{l zc4!$w7umHOp$QRMzR+1Vtw<;rCrZ)CXscEsG|Hk?3!QA%%(TJ9EpFqd4fX}+_WsO% zoCv>GZW$jiBW!Nvz*Rc#L{DwZ=4WcseIvt_)O&!C&b&O4{Af3CM-bt z#tHG2$`?+E&s08fLcCr1p^X#rSH3Z%!O(Uiv}ToRLg9oNGL=u95N}t0D1X8Nly966 zU#WcIk@2lF^6ht7gV~qKJd%}$TOm^UkxPHQj2`8iC&X7PUpyf`TlwS(@sZL8wUNRJ z3sAm!LVUII#S`MQl~0}!AF2GvB@^;jzB!~vv_iF-P&{FVY~_Bja1=U2G3pgE?16O-#WXZ-=CrpU%zh0)VQ5sI4rMz`Qe0%BCKv1-O2?3$u8IqJAyzbZWb;{>Vh<7XB zdF`*$mnokzA%6H8nXciQsli_@I8RN8RvIo)cZr;#LTNZYp#137zg}>Y@&yy(RQb#a@qXop z?wzm#%2!T^&s9G0$apad#_myTpftSTTICBT#HT86pAg@7w^{+E;e1M!&zunN$1@7t z+ECSmHBi2CLVT|Bi4)?-?ounDG`!$iMp@Xo5S{8Ym5CRH}UDgm}O5 zLw8JA0p%+v#OErXcsRcGv&#QP*muB1aYT*ZEw^{Kd$)JH9E2j$6csBfiUkFg zx$&6_-_IDYS4ss)u%ZA7U-21zvV`~fjNVMbeLthWULolh;YaJDeG+4Z1m%J!OL(8p z=*=YD_cQuyBo!b*SO+;3$SRp~V6;dU9 zxCCXJ5+%IZXY^nR*M3GX+vwJRS%R{jTsJ;bvH3H`5(%ID89hnD+kZxnkZ|A6=n4sc zu)%GBTyTkm?-SuitJ6%0G550!<0QP#XY^PJuk{(7m+;r?KP|Xa!cTlm$FtUJUwDuY zx@2i%^aEfgJ-0U3b`w0y&nSJ-7{xFyU_jHQB6IGlg35JJ=)&)pt%>c$p=^heH0yqjDa^^K% zqRj=k3?5SC28osf@E|$RKKNTKrZh9B>HN5eZuLpeDrX93VV~bO@yPL7G^a2k<;Rr0MPeB-WGxdArCoHS+K`_tVvF7$U{zX5+MsImYndAhd6baBu7qw z$U{zqR!cN;LPQ>7$_9y63v`i(IB=Vr7APJEks~4E!QUl8a&$xVg(7zdE(n*eYLJfxDFCE7OD+dujQAf#POCE^``D)@P^ z6518T?a@ZhtP39jBNDj)#i{@#YMSxxzBd72FyNa3#sWMDFcsi=fTT+A2m}Rn1%RMn z0D+)jGJ()}HxL*MLlc3q(4{;9f`V8A6-s}_0x#i9)$*eDGl&W34A33ui3A?q%^C7;Sb}&GY;tQJmB}`0Mp=EBH^p0^k#|v zJHT9cis88q&jWZ~;{6A-BjK*i5i)OpfrtIciyTENZgNO_npXSf!SVia#2(kyW*#5+ zkM0Cd9BOr3+dxE9MRekEEfUdakdDLNdD@s}@MW-`@3bu&j*>2=WqP=e<2Oifvjn$E zFh_#L=;%9bN9J;fe{=~vrP%wub`nKj{u$aFW~ZPq9$#0Otq{`bA5G$x=quZmG{THRG5{==>(8O&KB_0xqxGe#( zDPABk<70`m?2NRuZOI>qL|Qh^6_~n8r5!)W*5nPw{G2|O);xuW#6?~Kwwq41bA_AME9dp7zekg37gcj6}A(HT|;S{}$mhHUYu z>HJ_)+p?=J%FukT?9=Y(s>aG^vFtpoITe#(wQj+G2QstOl=DA4CX5-Sq0$+Ay)H9A ztF+?gO_+%WfWNh44tP)+Z#>GvXq8GQn%JIctTf{-?U`vR_+wCEotYq@nmaRlD0_AM zt}`=AsdS)kyE3OKO%Q64$kb4#;lYVaU#K8D(2Z#b;7K>8Dga$~5rlVVIs!JaJJSxp z{_ddAj;?fPM*G+UmdCfX);O!a=nCeW;wbp3u?1?22Y$)KC>v-ZlNIHvj7i>#jkmD{ z>TS0el6B>3ciNe9`-}2-QQ!|{{5q?NcA%mjOdZf%-a{BJ12Je|=|6nz|x`+*7dr;ocz zB4##LXT@S~Q*@M>v?ATaMAOIdwjUT?34-|WOlA;QvtY7`Eey(-*8zLf;FK9wUFRBB zmm+6^M~#Jws065OCsu7@3Q)U+%*X`inB=+lRZ-v^2$WSOHLprem2u08 zm#QY*M zm;b_i2{I3VVVVP|_A7$`9Qak_37JgIP|e%hp5^ac5sL7kN4(m&O@y{jzbBcid5ijG zGSS4lD>9jQO0yP~W-CG2Q6sIdN+0TdL|I42i7yyfO>O1^dt*v zzJb{f;Kc@}CGZ+-WPCVhN-|Y$a96>JzTC)+1kRC-On;E8vI$}?9$7Xq8Gv2e#8fpA z19K;vCcRRSEUX5457K2ZezBHC>(J_U9v6lwTsgt?Ck_}%901e_0kIBD9MtvN$9(f} z(LqD9m^dh9OBU1B$N6KneZ^7ILf4O0+dwO-ZK4$>4fK%BOgE4jyqOsWpkOmo4|+!V zX66!Lr?)UZ0Pb&L98iPp+0aid_;fboO}f_It;}%%TedM#6n!86wT+of2A2NtDO(^f z+`)ta*u8^UWq^RtmW!3kutPu$_>K97qL1Oc-(Vc$pkq`pVX(A-0vz4T3b6k0~Q;3 zu^Hu&ilz5g#AawzYtfj!j4uUn?p`J`0Gdi!u8oR=UJkru?{exP#_m497G2)U)Bwq! zF!Kv2$C;S%Clx=ik7+~j|MoHcC_l%Y?!~6%2Dz508<45&gUS+k{PuW0siVB_?x0Hpvi}z2V2muhnOh<{0_sgY(Ya0 z!>H8>-95}W!F_1Q5oQ;lgL9cIl7&6WjG{E#(d45{eQ2z#qs&7f;~$SPvz0y;9B{OD z+AOm`yK-m#PHa%+k}#{22Lu z^GR8+^O;ycn>!f`j4QL8%w39^h=!klIn;@kpI~kooVH{S82{a#e1p>pm?R}3sw#=- zc_B=#nu+K^5sW-eRHc|1Nzl2)%#Q>;2_re6J5Dn3Bqs?HNgbk2G0{BG*mA|L*a~Ww zQ%naUsVt{t8s2n@ISYg1TRgRd(JQ^3S5WMS_xDp3i*J9G`7fEq=4`Z}RcBzzv7kq1 z7(bo;%34h59vke)c$TRHc~SIPraq;5i$$KXF$xjbP80$BfqnFFBaQ}Bxu z4Svd`Kq=>*LVaLZbdkXYw{kISVFiS5mNB!)N@(zNn2}&we-2}g6Ww?Y)qs)x1uOy5 zkk3oTLRsdcq?gb?oKfi1OBj6sHhsnP0;z?sV6EdoXI_EbR^;;!)7jS%iXx)^yPq1o zsm+zzX$y};!LN>Cp&5my|HI^xp4Yk@0@i|3%9)x_jg{rhL}G;T4Ko(N%s1lNX6qYq z;qmGXREEqbQ{OTjOwJ%z+3EGQ^D&G!5!y~#Sc0NUZ(&p|L~q_Q_Zv8aZd?C(Dh&~n zZ=-)6eutf=Al*|Y&EFGU=KD3uvs4L zLeOPYvFm}jTg83}0IsBg2(Cl3W)+t=CfRyVTGu$y42F#YU3(Z%orh?a9S_(PmW=_h zpJjUk5Oko~fg0-Au0f8JHp;Q3NB)e0jy=n4qOFHriKX?jtpq0{=&w4qCCFaWv0n+I zY}tpR3R%=q&yonS>e-#pbWt1|4zhze)>PG*vcuNM3JWZ0nzyfl#g{_Xx|Cz9K=W>LL@Jhm<_q+|N1Y&7ROxRq;=8 zZ}9E3t&d6eL1Ghp$+Ks`PhkQ(*62(LHz%wAt*~;vz~8RNV;{CTSei_|`I?yUa}Ux=(|p+8 zI{n+$C*;y^_<*njFZE>|WX$UA&!#}$0)J8p>RW}i19qzl>m39GnTI?KS@3QD@_klI z>%4@+QuVNR0NaxS?~e>*>p@$r41_>BiLL~)8PFEVvss>Wgzo1}Ogfqt1Z`1>wg$1I zjrLXRtjX%PD%ndlgW1O59&V3p;Lu=pKV6iPv0wqJ7Q(iK44bUUi~iNi8AgY&-M|q? zLfA)2qvdMo$u3U0b{4$98oP%A?${daThi}G)?yDpZEJ?J1u&|iXSLbEWRC1nhlN26 z->k!Wct8)VpVlaSZ`vQ}$?8|E)C#D)K1;^xGY!}(WQcg$fF-N7#u4ljP#e;aO(%oR zwubCxN;MJnYQ#;OQs zBH1YbLYlDcg7YT3ctvcRGafY(6kSfu*%GJNwK91*qasTnlM3>rHDTjA=1pd4SJH1~ z)k2#niDd1x(O8z)Uy*u$NVw~E89i}!Y8#=(u?$t1A~bKFs(u=V@aT|BHo&H)>`GdV zNEGdC%HE<`lrgUmp(qwn3_=mj*vYW1M%m5S?`<7drnP~PAT1l;j(rCZ z$HlQ~SdG|FCo>CsAsbp|X1^u^ugz=(!E48}Nzlmikt8Hy{ zmEO$#x74%Gu)9 z7sbU=mK}}m3``3;-kIG`X|ACky08lX)pcd9KALNxR+Rf6tgm8!OYTPN<@HroSGFdj zxhA69E$C8LHi~5B6WK4oOEnW&4e3V>x`F5IXni-f4U~Pi8*2qqMs{akdniw!A-&j9 z6kUwY_F_8`7~GqE17!a`>~a7(eIWW1@C}0T_Ll>$N9`$!arZJ(5>`*k>d!yen^1r=w8=Soi}b=(g(4zj!Fw_B+sT1K8t~#fc^iWV^sr ze|#Xjg#^Lquh<~co{PRB?FosWlE47cHhF`=9ZuBkYql!%?6F_7egM+HX4_DfbX5E` zNSX1QuUVba-}*oCUC+x>{$q3 z%P_XD0XBbSU7xxl#-0vn+cyP`8|~wZ@`te_z_^CP*^WBrPoXQwL7 zvr{uPWt!y2SqeN%?4A;z`#<>1|H1dG;F~~ywmo@tmLh7HHw_0mn$f8GEVecUFmVdLE|Fl)EcPO)!ra;HIDq)y+3awLm|`>}4gNq4z```P7lENxx4<$h`xDh5ZoW(L z)poqx1mS2sZlXneTLixe&e7uLH_CVMMmwg-YAJ3$NZ`J6*)UOUYC5}sOdp1M?9cT4 zqjSQF(Dr$3Rg$bxgip_dNf;)r-V0!$0(fX4EXtr^ZY*LGgraLGm2~3N-{cM)wHOAn zBBWfxt^uK6m%wo3zz3E<7xZ!Dx^jaK$-yARL$A3&76nB=!eFJ@gCG0|BOGMvxE$6| z4rKg^_4X6<*yKDWbr~Fi(j_EUtDo4u6pitUpV$t{fTFh@tc=s8XizZ68K-#fGi&iC zu|8(~$U zY>!rLV(;s~_hn;F?}c@099o#g)&%iAS?n8@(i%|CF1Ccy7|`t9?DquzyPJ(8F!pzL z8O0dz#ot*ilxIMtd)Qh8vU}O40CC&BtW8OoO{fsF)7724Gv@0IxYItiE=6@Rp{akc z2O&FZb^vA}!2deHwjj9z53D0vZdjLH$`wK(GZSHy-=W`shEAxh(x<9~};RtzKcDTqqVN<8Qk zJA&dIW5x#GydbR!@r4q0IXQD3d5(oo-#O9A^Xvrx>o2fYO0xykzR2EzS<85deF0RD z%WOvu*5R{YS^~RF8Yk|58OA|i4ZFgwAsN(H*;oh>%T;k9pK_JW0xI^u#x5dKTds>k zRpT452Z1&B4OsU;o{Klg#JL4&|75#E9sB>u-lph3aqLYtKm~`S18=hpJ(LA_@jbS; zN@>IQ|AuNQ=i-Nt*>n{s9si8&57|yXgNSybN6%O@fQHZ6IS?s(p0gj6#dyyPHi-7q zl(a4h(6&D7DvR0tJW*U3TS>38q9?B*&{fM21j6|*%ziM(hzzrDMamn!e8aATks199 z^SK3&f6IoD{qOR3?6=}R_&qCVDRX1&sn-4HL0K9jPgXYsqH7YXgI|a_@qC@mNS2nX z^ty1u&e!Y40J{mN`wdVS%ZYD+dM< zxQ~u(yb^qL{XyqOADxo|V@CVyzz7?-oSyQGf zlokehw>5>FHqN}JL=D4ygYbw@-8wjVn~Mx#x=f0;;+!yDFvPPBovoo8q|8SRYw8jx z^E5oYrmmCH6gR&`ezkQPg=^f7KZHDZ8DNdW*J|miP`>oCITpKOf#O=r+;a2JoVZZaFAOZ>p<86l{zF9|5zOj=VKk z+)M|r6wsAsx+a9!Tm4JHT%X4+P+a4XVL^~OzLqOlSis1 z!w{>;}~6IP&O<^*FZ&S&Y~6VbZr6R>+N*wNEppD>&8ZF?n7U5N$buJEUncrV`59zn^J6P8Zz>C4U`v9(eEn+~d zg4!qRN`VwUL^lioWF^PB&xYt`02n(|M^=IjztIIFk8hyW#56bxt@=h613=X9&o{bd zke)vb8VU9|!$@>v=P=z$l@A&I2;Ox~{X(09*Z~%krT54?y?sLI+%i8{g9{^;g>WIP~e{Jy}-| zeOC{q4gIRt_XKCYQtPV$@YCq)QI_Gjy+&UMqrnQ~rPKf6X`b&&Gcf&Tp~O(^5FE< zW|~jA5*ID|DEGIJ8)#iJDrwfqZkpl8k7yIzv{OqeY34C*+M>mkG%LI+5%n#qq?uDB zeG5%!Bd7QNQWTh9Dd3nW3Cydc(c|2-Q*$A(Dl0pUOrWmBQ*$e6jwv9CID96+&#jpJJMU>_UK2}8^Nh$MCc~xlnH0&LyN2IRXgY+?!CKo>q(l3CR zx{jw;g9I>`n)(p6=GdG~mSZ@grhXj>_jBP8hh|hBu5UvW6QA%xn zV@eZ(H`UhXQ9kA`U9mHbyJAD*{LJDW54s>RYgRq|P1+86op@+{{Zfx`a7*wn&PwYY zXF&{TgYqkB^ckSxpho&v%2tGTcw;5ceBLep!-h(ljNiSKVzb|`C#*rDoJQ^XEc(SD9gpb%tlTq(dG z6>|+%%y>!@{Z``MuqZvOx?Z4dQTjp9uXWAz39v94ihB*$7gwk3!*KP5`h7ZIM;mCz zd90a;U#`&qp&UTBca>~ETKS^Y48tZ7uXhl8!!K=NZZlnM3F~ib zjGMmwkI(4fc~O49Odn)}*^tcSaOq?fM5-0{U#0&N-aq5tGWGD8EDN5qPTx{VTRW2V z|MB(u^$?81HbB3y;;I|dF%>AO<&SNMFEzL5$@yHf_6p24$U!{@t#xML9>{>O1t?G|GH*W{O-J-?3HrYMt>a0SbJz4?wDmiZe1A<}Q%Z(k*Iyx4t8VC*5%}{By+3JKoDSDvT}F+dne+Ln(}U4%F@zObPjT>@EGTO2#o&u8z-beMdj@l!>2v52Qj6Pv6VzX}9%NJ?V)Lj}Z3G7ZQ6C%D%17C&hkuNB^3@QFry<(DV#ai%WO) z;qD}+@98~=6A}9W+7V!v2l^i=^-T2F1O3;uHI?`x;h}zxPHmnI5nPPVzSRGsq#T9# zyMOdkjj&95LUW+Oz63qja2*J2t>qTMyFYYF%l*Pwu0)YHi8U=~BEzjDWS-@|fsMc< z7XGHN1#e`z1hNKq>AA6#G0ppAQI}JL@H*$B>u*AlHe8Kf1 zTWP_Mn?W(t@De|+z7j^*BmP{HQUl*^h2y|9TqA&csf61fRRXz=Ffia@LELz9`{PJ?T(8t`HiaV-ws zuHg^0IJm20eu?#UxD{mWxv?&{oOm|69@mAy1@*W%FUK!%_7vNB(G<~s_`53_%RlH& zJuZz%jHu6LQkok`-++T1_*ER&fcrriV!7ciF?aQ@Sa>OwS-hr=07{bHy>?pwi{1#X z8>PF7nl|LV28e%d$hCmj&cqiRaltT0hwnnUWld$vB!er6ipci}MiGzUAReWWo^^^x2@qy5o}w#jOF9S1iBMnWi9GH~lr z;4AQY!f5VReVF&kwpqz799f0cJsXyFO8bN=&Yh^w7%rBk50GlF83SF^iG;D-9MT8J za^x-cfw3ICgF@Umt|3%1W*kSZ7fl<-HSjhcbd|lk^^v8Ah>|1YI3JL>G>!`a`8VUZ z{gmYw^m__7gmP|1{@-y+DEbK6_8r$28r$_9*OH<)p}OO_IIuruJQw2Y$c4BM9yL4y02phJ;q38TFS37BPUNaW^Ikx~-*b_aGY|Fpp8JtAA9eB5kGh2&=+*aJ z1A#t94<5^}K6K-nn`}l+CUFUB8qO~vciJSb6Ulvc5_gfZI#KpyE}y{frf{_h{ACI^ zAt2r9D*N?Cb{gF=v_rsj1W3Sjry9Ne?P z8M8SW9Ph+G&*3sv{*J=gseTR*iy3N|>5&YVVBBiyiMYpHu0Bi=c+NZy{#>yIUt7TK zR8jPGv}h>|R&c#*Dd}qkWMbR;BezoNReWQR6T`O_`xUf45v5ZoGwekVP@iR74XRTJ zPF=<=f+Z1|{ITgLPU&H>o`$s36;XG`ll`Q&q+p1VLI^;IE24PYg`JgD^C`FNsI6~4 zrWS!L?!OYo9GFPak3Vw*;C#;YGuMhtL-kg3c8WfS_pXM{3M;@{Yq;iwUgcMaYB(PL zm1{|E*J+^2Fv$?RtiMA402a>Vwze^6ki)5%a}D3Pn}S{<;%6H^!``Bydqw<=_Zxgy zJW*GPc!~Ejx4adtUn>^mSj+8Ec0$wEanGo@x@gRL2w8JobZ|Y_p5W>Y-1jE>LO&>M z>xb?g`W}%+RT?=Bm>QBGxrT;sfVU-=KQI&7HGw0t~-%^yqSxJ%7$;@`m57gK%~Z? zd0U`|gGkvHZWOfez-+E+P3u)xZZQl;^N(d)XY@)r5(P~Ki|EU)+y%#%nM>NpwOyOd znJ9ZK+M5j)(l=1ktSIJ>uye|@-+YD%Gp*1voUmsd3KnMd!xgcgEywV zk?%f^Y(JCtarfnpDHz7%Yi z`W@yr_|Z>YnXBKr>u7!K%Dn!sltw;BxTWCfEl0Qv$}$7D&gBZJM)XTp=DR=KA}|4D zM$73}uFUECrL6zBG7s)^r|H+Y#c^&rybaDk`|`Nf{*E`WVkyzR4(PGc6%e=6g~7Wu ztYoM}yo2+iXbRPEaIqBafrdM{)`Ei)<)5^Hm(65IgEq7y3nB zhZ$a=dE;%r>K`T^$)Fdwb>u$aeCfOn(0usD1Fo-9pJyO1IG4aKE)QPg{LSfs#1j$^ zyU;uy_j|-Gs!A1m;=i?q9+aN;-eiYg0C+>3c;gN_!wNNJ_r`Yw!!8>3>&VBTfpu+f zl<8-fK;RethSdcA?r&&I;A?+FeSo-D6+l%g|sI+!?R|`X$ftuG6HA^u3MWx5!fDVRY$kPu0ooHA@Q`Y8aKyO2R zw7HjI7iEpYfOvXPswgzBpW%DGs_9^i??9WTr8ULR`x#&^OlyM94m6}uswSwK`h zH;aV@>^2lbtUTOp*ho3QL`!}*w5IGmamnw79eSy(e24;Q#Cb;z7vXFi4?bz^U&`S+dyKIkT~ZK%zC zLzu|U|6XK|yKe{vI~h{pZ$vv+-#659E0`)uoVstQ&eEV;JwoKayKkuLHguuLZ}h;> z-YuUh;%N_{t%)tRIU=6(z_8%c652mB*d&T=iKz4H!_Tcy|84j~ELF0q@NYv>h;Lj9vKFP z(7%49piQL$by5ah5=_KeJ~m7X5fw<~q(*%tHavqK_XQEV^w==-6K$#WD#dJrGiXH+ z5u5bH0PhRYmro7VTGBsNmYrIqQd-?VgU+c9yk+i+<@)&@!B8zyHE<5eg?2uLx`=|c z2zv6VAxjyLCb|q6G`)dPxH5wu6F(t?F4GdUL7Bn(6K`eyS6Ltt%N50jmKk6xGp&u% z$Mo;}VTyLGMR&rqjmr%1-qM1Ko*80bywyE7bOx;Nb3+1P>z^CoGCOuXH^2{eU{CnU z06#6konIM-dBAH!y!W-?7jnC<=Uc=3U`msNdIT8ByU_gs#$jsecsdHLX8f6Q*znb&Y?+Q3{9NH8KWJ<{j9- zvGEIXNYXIUIFd|{YnmFLK`&bzWrSPI_(GI%Jmgz~J2W?@l0{}w3u6-i%9h5)T zzBksV99waXNyfvl$|^+nrWvaP#QN#RK!!4(#C5I4E^uq%GMa8Peg}=>vKbi_m46TY zJI{EG>;wvyy38sT4)B`zXp%2k%nx)0KkxDs9ftM0~r>21D@G467N(sClD@ zn{Icus-UB<7=9;^*V!P0y}W}YjzU;|E2U|IPODdRx8uuT-K2%lQgf?3u6zcF}VNo@!4&RZ2qvn(K_?x10HHsf9Z9C9_ec*W@PHd&y+ixSEXI+yYZ*Va(sLr-l7JV z92msIm0c@FN&Hcb396Rr(VmGPTh`#7yJf6+a<*M9EQMD9z@30T^tt1Xi;TsZ3P2z-#?08KI zzn=zkdr#sIX`pf3juIOOh0NrmpsafpYLjR3Bf-$qGx@c(EVZJVYue6=H>neTdfyYa zSGiZ?<*>+3Yn>;D3to}R!=ILLq6@S5SCF}AHa}Lh*V(PYX((Y1|6U|s>Q`YJ>Y2vh z7Ku2if`~0vz9Ge!ufie?c6jhk*UmdAdsEzgE`LxdSf7%yFPM=vTe0^%e!o&bf4{4& zO=7FN8JhX~@zweKFBGM1hNdp!%K+k0i}_X~7d}B#&(h9!6l)SWpZz3gymHbzhJXKs#3PUA(QeGUm3gY0@S|!Z~Ss z5DkaL0uom9Es02%)qG-wNKRuA=_rfrmPE={f22hLA{L7*^5q)0mL+RG(vsK+L|}?> z7xZckpHfl4I0LZ0mRZw&;m2066ofTcW_|dDPj|EGn6#-J++-Xgv)25|&#%bE1Iv;u zvsz_-R92=QUWpBpS;s$SMF7h=RAwct<;}zuOV;u|e5|z~tVDm6sUZJ&S?KLre(Oif zU^OtmlbMIs@x6(LFV=seArXGf>l`Nw&07D7hEy$7YOKV>?KbeVvZ7Ww4Ag3joN?er zzMja^)-!2yKVkj4@e`fA4y+n2=Nr637Z?Pt*#Be#^fi3(%s=$E!v-uUwyjt!( z`#f|Yn?Il($;=ieZQ>_P*EW8;%!Kk2L&5F= za?ah`Kgk*U2~)X)w@X&o-jUvsv4d|esnW)PcdA2G`b(?d6tT}>W8^RGoW(n57 zB_&&imhj4er|H_}2rACvo1+GM`AHQn8P^Q5b(U>7u=k^&O8tc8jrn$@4*l>aT`Q*r zsD=s2J;pdNZy`d4eSG(iDw@<1%#M?VChg*kv5<`)pe+MGJz z#90u`14!n#2Vlte(geCPr?#%9Rw+1)A&qv|wi4p$;$$9)3KTu-i1VZCm*&qX4j z%M%gxQlfNL0q_60M64uXTSg>s0pFNd|G0pkC)qWw6L@I`l(L2hq!;oQiBU!v(`Cl( zLcXuWDD47;PLUa1i}-J4Rh^+lr^(h76;(JqRbsfypo{sDQjXk2$T3;YF{ij9M~TF6 z=Qvc!D3x=pCFYhF^V?;sx`C=mvMPMCLRFc>aI1QDk`I@1D7s5IL{;@pRWNvo5x)V- zz~7$Y3t*E?I?w>9_(Ui|>{snd$WQ^~2${T@m^7nA>Ta^8?$ z0_(;27i3&9pCRK4B&}%V8NRWeK1Ak2+o23AeF$ft;Y*ZWB1v1S2fJ5*8Ak~VEjq{7 zkT_*B$02e~oa5{Il02}KDS(lVlk&mR5Ax~H^O01-O4Rl|KaZym&1&C$?nM|h;!DH= zub=1tA_a!#!fFGiNzGDNiWZ6)&tBx0Nd@vo@W@XUrcAw5VM?&fahvk{rB6(WkhyMC zUSHzpNg7KCXL*IjpDtHuER{KKjU|^q(O4#P-5R~F@HR{7jdic`D_Hsvc;TVwg;Q7gsh)sq6*a)EKSE3066yV}@o^$OiO@5Eenq6` zT;pps1l&$^sE^*=gLpDmD#l^6S2URrq^_^cb>|c1Y>2te*ZG1zB(-3eyC^c>K?`=c z&R=G2i$EP*|Dcbex;OaRjEq~+S2y^2o|XcWCZ}G8O(xUf=$9M(12%tQMYbh>LN*zP zYrua>*^=sK*km$fqi*sgl1p5oZIRi@h z`X9w+nXJ)WvvsBX12UB_xW(6^ELG9oTYRR$x!CPI+cQzakiYn*?gj{lkXa1Yycg-) z{^IL0vTQuM^%oz+%BcD%VsG<-jVf?QD=f9c+t1sf#I4rdUP{#OHlHI^B?7iKn)wyg z54=-R{aA@3Rlm=jPa=wJiNt*FO0K@c_mDI$f&G+bUWG>0-3pDF5=YY5`YvDlBe#*Q znwZb6G4(FL7sd_pE=Em@&S-m&uPZuf30Z}uSCo)?kFO=tGbOt1hA96B$XA40j-1D> z{oOr2m)5L-Ap#w}&wnc>^KpX*d>wKi)c+xzrkH)v-w*jQv;{tIm5&Dg&CijNcmL+$ z{kt!k`iL~BFWT^kPb3Ze&m+DC!5ck>!3gl-kNLU;|LHMbpWyit{!+rLKj9k@exE09 z`9)9o_*jdtLG|@A56ckcZLbGcle>B-Ov}O*QP8KlEHmk4?gZs+?_rmd3)ImvcQ+lW zBz)xclpjvT`Jx}5Lg@gvJ>_c?c=;*+TC6}ky5Qoiq~HN%d?Q$OEiU83D0M@$w~Vh& zsq3NZ0D-K0#)m24+<<_5)cF}dTB`q%XM9zX{m*CoRM|Vv;e5dDsFlz85W+q9oL@#I z_@eGF_-KMJdBOV=FKm0kwsP98MRAIvbu=4hKI>{uapIjm$`{ z*L>p&)Qsx9;hVEEmyX6`-tfac81;6yxC7mM$6Ht#r5~V(_k4{Cwi$i(p8vK2wW2fc zLAfmLK-_eGa}Sspjtt;vI5b>yLZjZlNq{E41w1o*)}qP0Rx(Oc@aL^44u43)h_4uE!m>CFh^s8*;c zF%l()ttDZ+)e7OFzmjCKSY#7MXi|%`LOl7TqLDG9vIz3d+xiA)_;@R_kxjD;k%0kz zu!RKUoA5US1T!$|}(OH?1g>=8>iBPAjSdFV{=yAbCaROrV}BvAQ3am-Y7Z(Q;aoZ$ z)6$x;m$+Tj@~~E^koyKlR}nT-V*8Q--ckfci|zHQs?>~%h7y^?J8B##)O1IKM7E70 zsQU2|?0u&>P&DFKZcFU2;#NOrA*GlT}@EPm)X)mEWo^SmlW63tm1htC`aQ`P?aN+2CNAe&M9@)6XbPC{EtNRZfzk!jNdxK61RrMqJ}y`LpM5?pdNLlx<({} z+jC`uTGf?26DyHzsYH5WU7>*(IEfNDK8=v~)D;@K!)%yaN&X5#F0U)p5y`OA~E9Ek<3Hu3t>=AaRa@H5SG^$rbvYN zY(nsBAT*S8W{v?D9h6-(uz^rb<)b-FmP%3Ictsb^tufbRcl_2GY8{VIV*$g}u&$9p zJ6PalL<%hdoQ@P4z~b*iq>x3aOYr6Mppc&m(W0BBuR|?fuxf4dc%n6Kx=vn)hJyu zI@Vi=hTr6T=nX;I3AO7ZgwyUuOz8vNV!_~r7>|OR8w)z2wS9zYOg_9hb64qPAHhMV ziM2z0p~=#sW=WrGJ_o3~$;KglKOvOTOh6I+gnlOLMACGz9$@D?h`H~<9K5EV@D-&q z&mj9yn|Q{m87S0a%rl@Ox>twxKSrTyN(ySfjkL(^v&{>b&ffkIy#Vknh;3OcfeP4P=jeg2JMz`P7`W|NfPeN4{O_Y*t%HPStVr;J!*)# zuxYvwt~8mi6W5i1>nt_F0_g5$)OCiCAP`2+_HJ_g4MN^B0|r_`?kkf^3Hg>x9w?D* zFNu5oeh|8Pc+n4t`c!yRXs-?GpTPe90h&HbfWtzO6CrWpVPK&j;Jvd1tJ^TtI*333ZK* zqR_cuBiRSS4Jf!!?-0U1CY~Y0&JLk55Miw)O4^DEaj`>a@DVZp0wJDsz#wTwee;C| zq=0^A@*yYq$dK8~UvN~WIrzWBRB{}Z4m8{+XU$# zKDjRVQ^{6KvgVa43cQf0u);5)tf)?b5H3o`e<0EW3t&G>GRH$C6yT)=!ZoR? zLTNpv8FzgnOoFfI??Wg46LwIxy?F8m;WVXOh}%=1TKHs0A?mL7>_ct>Zc}^az~z*I z8c&l4HE%!uj`f63i)#+xK6=mU9z0X%{caBY!YZmdY^GGILbSl>8A`E*ILGMOjPhj) zZzJXo4)>4FNM{Pu_h1mqNK+N=_4NFyidvhOF<0xrtLu5zrYMg*e4>Hp&v31-5D#hS z*#f={;J}%Yp8vqFY8`k*lqY<29}@cJp3BsfIuEal@f@Tg2`bLBN0eISgj?w+@PKKa zf5E-ZLL58WbA*brpTOH}o?}48ejJeQ*@^aN3QfZ_)Ozh*%A}4}xyoD{JvORpzy;$% zJbRJnE)U9f0yq89^PN(!DXd}7P)Des)11JqmwCRVfYjw967rm_*3*S18(lcU3jL%I z7q9WWPBMm8O8x$;XPios5`P*}h*cXrBgJxBWO=q%Q<{?~ZM$b(z2>AzV^$QxlFW7z z9o+7@k9AWBj(^zUSq9~UNSxwNx5(6;p4p#JaKtW8_<|JV-nZMc*2lU3-t9RA{8@+- zv1cGhns;2D=PhXN?hen{-c))KzIfI1g;Kc?6<+sD0J_%=&rvj?&;HBPm!WJ$X!Rq{ zwv@dHmp<~`pac%GJ@NdHvKC?6Q_nlWl=UPYWi-W+uQ=@VG{KMVPooHvDS)>=gWo}v z4VoVn2Jt}yb%4oKotl3d%{H0(dD4YS7_l^bC>h>Q5Er7SCR4Clbqc5&!m=&NkvLWlWSZqD^T**y^RV$9l25Gs<_#CMd%>&T8; zLlL)PpXOt_X@_jzX*Jy;HbVt}OwYo^vZm}@Dpp*q%fg=&7r!^1Jgo+l5N8A+#kmpU z_z-iEJ-FcijI_YT8sTccX927cMwAxonaoA#v(h3i;!wAh7K;exnPR~cPt~k4VnLHB z`zf6(C;rD|k=2gn#UK4)aBF3;sp-^HwPj^-iHLslP7~3EQwVl+1$Jm`r#j8Wn+45w zZA2^15VdrSI0;qzIBjSlmM)mGyPukuy~{1cfvom7ixcPgqt=am5mgq3w^)wR_10oD zMk>`tJY_Onc}7p#iM33xo>BSsVtdp5XY@^baYX*W=N(htzC?3)PA}Sv^GxTTsna@$ z3oZHcKTn7jei5(?k()Bj(3rnc`Ueq}N}e@5OOVmO}a?>)rg zXzs@;UoUY4YrNm~5+$_aytyNlVeU%!$A<5KY~6RBz~e;PqEucE#6I&7aT8@#k#GQnfNluDLOGo zj4q!Yfs?P1?R)E+*go(s_m#?OnaQ}T57M}64HoBNu){8ysQfAAStWpPUzzd^5i6ID zt&p2pc*ViK>?q({iQTc364EaNVQ{^Y%n0K(O4lJG8%rh*5eGod{UPFVJUm~BeOTxV zaX)4T>%SE5V81WT8Y;Sl7z!CC4vLAXgLLZWre|F1riOT#M3(jeH)Ph;DJ6dGl@S%f z&NMRKY+G*n`(HL@Xq*~~6ETN|iRBCXitI>9@VlsuBFy=JHB78hFuOkTpT6=0Hc1vy zYb1&_PzZ0;{=>!dfzYeLII$BRv&V@ca%}U)3rcSAFB9mOg87=YEK7h5a(l;#70^oV zj1x;H;69f0YN?Gfn2Km0pX8>un>Sb0L)o2k(}&Hit)>iEMagS@l{wlnH+}YWb3bIo zkl3cwf|QJ?`AkAqOm6zNsUOlzHD{@Vz7@w8GP(TK-=~S|0&OkhDe*b;*h(^isVP&F zAS!{@%onSM7_{iH4>TNLn=j(lbt<_)lxt>n&7Cv*^^|A`?pmtzj`s69o4T>=`KmNt z5Zh;1WKIKJk(eI2a|*v=d@(d+ffyE?)e8|{qznKAW~SHT1>%-KIi>%wq>NuSc`m3; zgG*&qoUG>(cU-O%SDUPXswqvZVL_{}y-r-7&u;#ru{Srd_ucBQ)t1{P|FwaBs%};F z!B#O@sA@g+UGlY=hs*~jo;|{9D15Y2CDW4E_}-t*^uH9~H`jX0p}y18Fb|_;>0;-I z*sl(xY;q9coq8CPy6xiQN+}a^6H9FGXB5xa+{BC@b%yM5_`h9+ zDyuDvP0X{bwnOZV!wLn}IfulS>~5*6J`rDK!L3xs#R|+9Y;;n*gGajg0wzR59iTogO9TY`pO6ib1T z%`V*EF~yf&6c^xdMKIO4EOrlKA{fnywSib#d|B*=$P2HCzcP;NSHx9J#-v}w$$_zW zvFpYB1h*?)70YpvmTe4ZdR5%bm2u|+h1)#qFReULEB6MxvUl(Hwc=w1N zmOhKo?uNKlr~6p&?G3R}0q-$J4`OsRHb?9h0Fm0UL2dWz#@phsU>3bB++ANNI`}gz zW`#Q%SVjnp@k23VK#ig7*J1-L=oVNo@Qqkq3wr%ou=yLYq#i8B zf?vK7F}bKp)82> z7z>U##?W$u>b9_;55Zy@RYcGajp9)iG>Z5}d5t3Aomf%Vump<`^^PazF2#atS8Ma9+<*5BsXQVub+!cBMYQ7W^^~|D&F>#kjimDd-+1iC8X*lQsQ#k z`v$Y-pMvR%xn*wqdxLgF8{usFxr8*T*5t;R!8cy)f~bzj_!*Y*Xjy;8mycSft#Mm* zF4R;w@Rlz0ZMftp@KH?qE?f#N_yMqVrz7D~u^=AJV;#r}@Nu{lR_J5M(wmBvl!^!H z7-MN(QmTNAuo~!X%W^iRq|}B3P8=#qq0=R$2%c4M0t4QblXOkkm{pEaS^jHqLE4+r(m>X2^)Dki*@bCa%SdxrIJ&G9ZSqJosjSr4 zk(#vuHG*%tu~3-a}Xn6 zk_pq?^2qdD<^im%Bvs;sIh^2K%m~*iNnHZ7=b(yVD-^tm%95|JwW8?Jpk1sh#EnK( zr0P5}TTJp{$-=vW5xP{7Dg_$cZkk#}DjAH3`Q}*ReK4-IjB9Tdsfq^su~(mfod+2F z3Q{#Vlgo7PW^jY5QaKHd4{CGtoXOmuKNSELk%NXv~#@jR0IJfog9 zBE_@S8KmUA$>6~1QW;HFB?W^j}0JPEcRT;s+PGAgXW?PtK(8N8*s#4eYqUPF4T z$%-xn3)V&Hz1C#al7y?5oRcyS{w zT9Iy?_918pHH=il>Pa2+g2BsGPjwV}WtQrMdT2JxI7u9~L^61PJzidOIIOGww4QV_ z&=aZW+e=65OAS5>1~rgEHCc1;G96qzzx5h?#O0*%4WzidNNzgaK>9SlA=2_GMK+XL zsX-YJL=)*+{DPQ82ra)Go*nt-paP*;s0zTY+uYhl_F`IqPbs<38W~&!@2MEK1*1gvTgAs<{R$NRDhxJ5<8*mYHB20*$=z0T=G+>sfdaadIK+tqd z!kapF0?he<34hgE@)Twk)$T!@f1gQkphB$frM(>>rH@R-K>KuS~QV zPdg+{BRfbnjY`KsFQx_fCRYdPFD>DCGipmOm=LoaywvF^)dqh`KI}Wgt}#aN1~S6? zj$Bc;Q%&P9#NalaczOC6Z~%joJ4thcT-`+vjAL=z7*w*eco=#sj^TSalCu;NRr34^iuuv(y-RKY*U)r7OoWUNhlN+pUKtbVn0R?A!( z(Nn6JhqIkxR?NXH3utRksdye9ZtyRn>pi8aLB3|XXtsqai|oCmazRL0Q_T4}gWB}s zwJ^z03X?pnLjumr0-MHV(S8OQ@+`d>^z>g)I|fzw?4yY8W(?}hAS0r)BZC$&$kmkV zrg0trOo|9JbaT_o&!iH09NvB`QbcbSiQCFKjX~Wsh|BSoW69X3 z^!j5iXEKAT$4iy+QnUd5*G>$gn)Stzcn(`mFz)Gtcn^|j2+@Y_g9bdu z;6BH=Um9>ahn*J~TxBp9^2iYKD}xgTOUJb&wPV2S%xn&Wn+%bbYVaJ)39am;DudMr zL!`obMib$_`dXl*HQ@!m786x1OJI1~>D88Mjx<&vpY2H)P*p zs@yZ+NDjL(Yt5#xp*+dD?-7`s>aN`xgYbsMSUiG{M~^sc!BjV!E{)*zBeRh%-;$5P_K{M8 zrce9EJlP-y&m76~oy1`_mBkjZkEok;>;`7L2YC&|-{KH4kIsGqA~H;3^vld1?0;4Dv=0 zXL%6Ji{Y)M#VGW(G=k^82$m6iU*_e0{?}4fEtio7jsXq1KmWCKUBlzC$m1J`+_%#3 ztg%d=fuaW%;}%@_jZ{C-fUq?9jnssvm564<;<{tBxM0*R&6*d(y)F&E{0+BgI>))C z3ysUudJbDyVUjRHLA&|mq)47dIHx$<>axa3ILm|5Of+J2&~V$gJdGp+@2ugizm=wF z{C>=97>0ae^hOGIzm@81_#?LL0^E%u4tS06(uQE%5}(hHEudhz&VunbmL80UC(PjJ zf58#|k-jY+g@p)x;PJ%vWfd?QoAo@&5IK-V-Txn{bg_T&peh<1Lm0=~|41D~J?b0> zwD|^>Lx&nmeI}qoWvQMq;GqouZUR>(hr-y{j`PRkSc zHFy-`AD<+h-!e`SkaHAUK7zEWBOtVoh8jOJPw(ml@p~Bd2kw!fz^wN(tS<( z9IPXHrlH^PV?vHj!mt&O!|Cos4$P;79{TCxr{L zlcma<_4JhjSQt}4^o_1bPzlW?maZjB(f`eni4L1_FwZuY>P?nf|2Ic8=U`4QEIL_o zbYx|8S92h=RMHF?6TyLUr9^G<>2w8^|I1M?!0q_2k`3pvyyKbNpcLur|E(X1n0xq= zU?_MXv9vk`9tf{E7{pvStj#=-SjtU-2ci?$M9`B60z44p#|;leCq%-du;N^{UU1vp z(nL;}gU-$~6Ba;chu0n+sVOJ0u99m zVT3+Ycx6iCuzNa#S5A?7bN+ZXnH_`T(Fnm)Ie!v|y|Wm9yQ$K|pxC}J1kTjD=K)f$ zO_dJgj4=v02~&U9RHUdGX!~?t-Oq5?`5lvR-+&)+*u93qC1-H%$O>G@0tR<8;CK#O z7PBt5#ac)R8$5GfUsSFFc;WHuFY8KYrS#bJ(7Mw6kx>tb(J-Z(7r+97h ziHi;S8dlj<>x@*<%7l3rF!tHA;g7K({4oS~&X&pq85~F+(7oAG#0TgH2FY{K4t%rF zYASy$tIZrZ9SoksVO@a7fO9wu+d#-c1NN(;3xRC_zn&xgthX_A`kv{i9q@nf;hMQ{ ziAY(HwbDF6W6op^e{mjj{`H)hVO((Zdgd|05`OTc81A%c2_~(V8frN6yguSTwO(3h zD9+s9g?ZAaY>;XgiUZ~Hk8O~;bN)2Ep79V;D4?ZKccb(zr$obB^Q`~{z5z0OWTRAv zQ`kZryZC`sf3x5EqMIb#(4d*^j13KA719aO;*{Mi;n=-KdBiDBMWcMaS$Y?o9f}-c z$g^Ufu(ueSLJa?2S}kUWvLbziHskvdiG(vkxh+!7!U%d0$D+U6%BDd80}aqgYqu~b zo%6WqMX{BZR}lfDC-f5z*vl+uj5_WCau*{h-bb5dpQS>A1lA5i zhbwnV$(%nLE{ArU8S8%8RC||U!Ad%;^N-pk9W?YtpY3ArKD7E2r=mU~sMRNLN8}bl zrmJkFmxGp1@Eu&X(#yk6daOzfxUlwYHFrC-f)|f9ji02IT5+5~({>$%B{8PsQ=mUd zhc!4Hb1rKpht-z zlkpi8$^4+4q3Rv(4RarwRgp*VbXg*L6)dq&ipp<9we+L-ebU#+6PqH;L96y1K%Ou~ zz+0VtYH6E~*RvPDaW4-gEw5n75r;=U0bU=y~0*|3z za3-au98=3=N?qVHtra~Cv%s%CMxKKhUws=mw2?vTL8+6LXc6{;dIRzeUnQGD55bx6 zt=Bo7BN=ChLzr|O3&mfSA%mMH9)iDOaJok`&fP4sXB|%l(~o16dkE{wM#@eKJ&a-d z-;rF05y?=OdFIDx{9(AMh8$-KgSH*U+PT5S8s#y%^)Id|3<}Bmh>KO0V-%MKS$Ppx zF=*V!kQ2W7G1~Gmjvb>>|ANrYkJ0*UsdkL4=@d#TVL~&`a5&?VRI^*Tg5ll?9`p3n%e`0Wo0kb*2CIn{6ru_!|h{Jjl zdVU1u4lcbxY8`u(qgdB9AU7o(l?G{@qBR>S!*bc`m80-JgIXTNT5+i8F3^vy^{zb5 z)_PG#*}1SRI(i)21{hUeD;7?$wPFPIwc@A~s3knUMPDoa@`N5AQz5oiOedt3SYJeE z?m3CJ02c+HvO6UWV%LLjJtf6x8Bc?MrjaqIXOsVFX?!hxK#Iqk8%A*N1tFBewTV@P z5F3^er50$0?b!S3d!sH%4Na$TWkCr2cv_0o1m@J`0=1RO=cn0%q&C8_L)KbKZ&*rI z&hXAHjl;}A%%&k{c*}2Z=mnP|o4zyPcmvL0@FfFo&l9y|F*xX~bTl{{n@9Z6HeEMi z&m#=Jcb3Tp%o;d@^)=$Ka~x)#4}F-rY0njIfOZe>~cSIA!j(O z3+eTGgw1YM8n=cUaWuk{+F{=#_gpU>k>NBw66 zxAqD=;(|1xFcSg+zd$m&CA>DdAPv$~OJ~c9mw8uAl`cxVHTaQ#s>gHDfS+HKDsVm0 zOgh1$y#TL%iH)2v6Wf}`_}Qu`Jh4lxzyPyzfeeO^jC#E7k~9P@kr^8&uO4MpKk`)(m?xr{LW zMqcUW7zBk8cHdxczMe2`(om&b{~(6e^o1O00VlL)`UuFg*7i2$NL_-npTKw!-*S+82v?r^vW*FaZzkO4<>nL51s4jbj)qPK@!9lC08vgNuDN`>6T^xNR{ zQrul>uVG+RD(f3VdHEhz2=yY-c0T42Hs50}VW4j&TMq}UC->Jqp4l7@>o$n^ots8m zJ!e8*G8^hDr3o+z7o_#S}&0V6#AT_R3MWXsGiVZC>Zu=GCHhILyE zX4}=VhxR^pNa@B7p0UJ2ByCQg4UK_ zKZ5V>Y>Yefj^P?Ue`@#`JE~p&^qsKr$j5S()6B<%p$mjcFq7&Kwf+~lFH2V-59TrmYLuf--NJ}A>o`!|6 zFHn{#9>VS}?@~OZ5{~{%EFN+LH==J+KMxPVYN;Fh2O(~k#;PYqYBByz%^VeyUp56SR!__bF@;t3tnS)8_&ChF+Maf~d7y88^Y5&; zmaThNKLrId04B70R-bSF-64E=Z?*c*#*o3dF5|A+|F;l)tHpJf_S_4>1$B4ThxbB~ zLW-OJ8ulpTp4yLnkR&xF1)&>vS*RpJ=7;Kxw;@CG6?K>DoT*x^e(E|$!xSs-TnxuY zf^AY+H!8g=tn=lbXPOR(vII3_balN}h+mnlXmeLm-MI1HX|a_xc@EQ1i>*#E?`y~! z4Ia1qb>}SAYVl(sCe`_xGA%Z#xc3F5{;f-8G$zrEk;wWLQhr5Gm^9y3a#(GSqV5q) zGsxhYS%y=g{5D&0Ob9*Jp!?{-rNal{6c4guY$4z6||HUw2nJ5NIn^)$_Tb@9^y^ z^o8Z#)yiTeg?|T`U0`X1G)rgja@!5Ld;fpRZ9g^3Z!2Z;^iligw@vXkwf$=Sqaa(M z39;WyN;>LF@PBSexV=8$pew=j+?4G~2zhRaT8o~=96M%G(pp!7@Z6+_v%f||(J0xV z@PClOxyMdQI_XNV8Qig>^C%zU2tYpL+Gt@QOC})$NrPZB5xnNPeqk>tGdP)tXVZ zl_m?D8kzr5FW0km7AzJ_pUm&5Mgv@PL2-7q^b!o||KhPLGv zXF)I*qT-EghfJ>NbhDAIBA#lY#rseDR$NCR{%DyDF(Cc#;VK&`s|-gsu=7BcTF%rY)$?hy z#y1!$T2tuS*S37f>)o$yLVjVF`uikXwiVB<(`-Th!X9IJQse4jw*My+!pgjcb0BEPwH4ALLE#RLr?Nq9D+I7)0^`Tm1nXQ@-bRab! z!c(R`6g|^UsjZjWRz+A`BCa}ULz#zc4k~oe*3sf&KwWB>1t965t*gZ)0jQ~S{C&{Y z)?y721G38LK>tIw&K4hlm~aLRw76_yz~rJjvBhCqgMgy=04sS8+ZtJ{G6Y$4((S`Y z$_HSwpdu-J<};CyxF&k3@*^aWSK`A^HRZ#Z?+#x;YQb2cHs ztQfdC*TCb?B;>zuPy2`thBZSzS~Xh_3i(Wmf&uoaEGYWr01 zs>iR|4iyy!s$biyK0x7c~-wIxWqyrp2XD%05M+97&G+7k6lgJjejLFy&{5$U8Z}PDx_-olX89 zbsV(Q_P<(}B&YnpruaWBR!sR{wov+9kq7=OhHQ-#pEHuy3yUUN+lZ`Tn`tM zE9KK+?D&3BOrB=sM_Z7e9wuiS>ZQWgYLDV_CE;U)=9ZAx@?v*?tyiPw;c_<)ImfZ{ zEsJ%=i3Is$r;QDQ6=TEoDlgh!r_uKR$^G2$fuo%%Zm|IO2!hfMo9Ws zjCQ5u2t)fJO!oLva;%|RvaZ_cQu3!pB~8(xni29a4q2w?(6$J9f?<_uRHt;FRh&ba z+~cL?SB4F+z*Xr(Cp3Torz^>^yeOhE9sW?NsLkY!Xf8E z4N`qonykdj;br-ps zN!UsoK9xVo@7t)}WvY62QogS8VaPwxRqlj=FT9%^79b3v#=YdLcsM?jeG!`)A4+!J zE7mwOxy7Yo{w;jPl3i*sf7kkAakxW`NwI9AfZlR%VGH%`4W-j*LvMML#kC3ZA64xd zFXR3^l?L~bJ0P8XedMvi9;)-XTwB;jUwkf46f)@H=b)uibb|b|u$`p7p#4ZK`^r~@ zOe)<^cHyeaFZ#(xh2vDGKeRnZ|MZtH22Q~eP!?V`yXndRxjNPX3JjDpg}roQAYvR> zr9pB^fN+tPd?}M~gK7+wNxrvMz1&G@o@(>>C0xSvQY$a-JvC>j+)WVvp!$jOb&HEl zqOMW#;c{v1zwOdfD9%%qI8sg)&d{@w@-Cfnk9>`8iB9f1+GbSN9@iO+*&9QSnJ~16Z{CB-kmFiYLqC z%VY&Pb8~X{E{?^g;G>7PxU)mO$V$z5$?V*+lmEX$naOepis@pq+)ubl4JXSdQNQx1 zpgc3EZHnAP$Wmve$oRnf6&g4N#dVeTu*WqjI90xfxyG}patzPd1!_E9o{8#nVmgM4 z@9FR9D4royafVz1kCro_;Sh4qkZ+@%4w)%O1z0>=pwHjxhPiSXlkg{LN!o%i(95;kLb+L zX!2@gB%D=itYf{{&-mahl)FTKua|$)IGitN*9N(> z{{J}@*@&Lx4jtNv8grNa-YB=%DKDw*Ci%85^Ci{YERQYsM(b!y=GbBBP4>*ZlhQA$ zTu4J!_)W3eYbMMUPz2t;>GEcIv@Yb8+WC9AKF`1_n!iP^s}ugAb6dE9ysxS6R#}Dp zifxlC>*UvJ+ik3H-l-$f<%g^_P%}DRQ4&PB2l|eW`ano7}Yb>xS>< zU3Vb8*(Z;JX-DiwCn?ag{c@FVzXv<#YMJVtn(bO$@R?)#fz+1)MHZjt8GDdNpZlFg zpXpkg0S?nd&S80Ea5R~{!1XFak7vPUYzO2D!r!#!0J@Pk^zHygOMg-_V2uE3m?4J> zR_dC8;SisP%RqH2Ob0ULF~U%)lPUME{VTKewF5z}TTNd+`^cs+p!c_pJ7&6W9gBMP z0rzZ&(XP_5Or%vvEqzdq6_D8AL$XH*R-YV_*9t;2bx{_2BH=6bUAEjx5bCHceR4a0 z;f}iGnEaa{DD>?Kxk8xP?7Wge?H^-;m=>tCV7Zy-@^^WPB7w4W=mfg2a;oJdhQ83R z_K^Pxt6y@tIE&eJK~5O@lK1~^JGDQJ{@qG{pGL1&fV^kWrI(O(WtZhobh<=;UpDBHTJeg!-6Vw2uUBDVnF{`jM<_M?RW6Yb9-HxXPh36|UB2fR zJrge7^V555Z>c^R$z=ob&3))!E+${9^^w15dHFu!jnAah-DTEhB&@Uv{^ce!D%J`? zee2_~E#)_6)bVgh73sjQDDBF0`BynCq?$bg5(}Vtyv$20lJZ}Z_nJo`Up461HI#dG zYIa>N-P5xNcD^3uOks60DPtD%2PV40Twu&G(B3nX%T3L{^Fh>05iQiUT=yBAH}mMz z;Sc8Do%?UP_ZA(xF3%Neshw}gu_mE5E%^;CrUsq(4OKFd9{q-*twptN!nLYRpWH-I zRiGI+k&jBW?j|Z!6#aPsU06;P!yun zdAV|sAhe*gN9eQTsN!R}uU5p)x-|bWRIW?j$8ZB%lJrCiIiFxWvs1ID2o##TN4=6 z;;n3UO?3u3*W$*cY;e54d@Ia+Tc>A%KG$V-r8ouWMn*pj`bE%h>h$x0<`yZOz6JD@ zEYQz`o}<%m2MR4Fx&+7%b8Zg+LoAJaC6_dry|nNZ{3L90d!=c6;T24Plk_Z~GWRPGHVr%)Vw#L^HvOy)~8ODAr7 zg9?c^RvLPRY;R?D+hUWqas`w57aIIllQ8|QCSl84hxxr0q1<~p!eqWjt>4SIB>8trd@q*`&Hf$NDn6S1C^cWeH8ToM&1^ty)Li+_fl-@#5Dk>;0+}qtZ^tGTI7RIU#P0A#} zWZtW0`YS&RLPwf!R+cyO1L;6ky;EeH!!pXlsylqf6Pg+6L2MZxX78a<9GJCu{c=juNW1+%9FS`?-v z2>s|yn9@?`XsNa?u5{-qwo<DueUTsESH07=BYlrK-jE7lzKZbiJYyCH#kMm6TXvI`yoie6CU4ttqP#isPQT zsIn4f5gO618cI1Kny%MS?g@*?TN8!zg?hK966lXU^HCk8w8i%jWzmitQA&jHoEk?d zgc0vzl+px4x~;BKq41EY&Re!iFVwQk-SS%0wsn;hLHLKx*He}XFDS9TQXSpss`^SJ zp{1HrU)d&Lten$O=~AL#2!{XM@FwdqxEAuyR`d5#e+c}_pP{Lif`uud5$aknwPg>P z7By1(2qOK{2=YRxa$^*Yo#r%Fh6%+MHbF_3pvWdl4~)DsngHuUZ_vaP}ZZE_q0%=?89-dtSL}e zp-73lVLWkXd&(b&xc#U`oRW=3@^_pvEx+p#pC3P<87&q2gf3k7A|;M@Q<*n}7j=*B ztIM4Ub1zxMG1eksz62o<7uGV05!v}LNO$>)Wca>w#by}sPOAS0?-PUfebxe3hrBev zYYsFu%oD85|16)Hx!@*;ZV7>VQe3z0M`iRmU?gxq<5qCsIo*EV9u(h7X&?-wWv$RQ z2hxF7%5tGC^=z%o#N&_FN+P6XJ`BPFGbR%Xu(ncvGv{xUtQA!C~<@2^9TRUZl zFp4I%Q`QPgaSyOET_{aIwnwzGbi2J$0b_Wf4oWiG{Jahd`^c=Nqf!rJYjj6tES%Fl z9hCu?FqP`0Y=P%_rjt@h=tOTiL1sJ+?2PgqNlQ8_XN8LNMHi(DJb^=9lwPRp;h#X2 zm*o6Jd5eXYm`{}+A>VaTlU?>YCttp4f9+?z0yx*wkDn@|HC^4GQDj#{+Ms^YRp|up zn>KYry`M+FcZ0GENa?P06Bg2l?of6Sz32|wVye|cc@HD%1<1D2nW*>=icCpS_fWm~(IaOtE8S=E!GCO<^6q`3wy-ox*!7a@dc$vtB7$`$6&eI9W>Vuph@p5NNc79t}aS@H;K~0zK`0`soXlN^%f%hUX^=mjgNrf(EkK*#AAhmqnv zbsq=m-_ZBtP@QoF@;K$RKYI3`CMXkx5^CKf1=E;7^^ZyD(}f^vI~moyFjkS!+-;Pe zf|?-F-4t{dL#VYIdWF$Gw^FIFQp)pof3K^$ZM+V8;a0|B?RJERjWHvs)KoO)s`T|# z)QB3iVk*Scrt?#ka=02+>%xYeIdDOb>~5eInx@piSpEd%J(`>|lvUb)%SiR%4CpMZ zP%F+-zOx8vbYi}8RH&>jT%hC%W))MGaGFL+Z8N59&Qg@c{$fJ!4WoCY)HGvxz#U3; z7U3_Oz1nFg`-}AkuSDzEU#v^Gi_&%WcQb?)BHLp8#UiM;0JUALR5xz~gOw&PRwCG6 zZyw4oOs^@=KHk<~0yjfd(#tI;#+^EUjXHzeBXr^y?BN zkq!o#q@_Tya_KBWZI{BG8&6x8qLBYXZ9gfY~A8G6#Ol(r0wdK^7lhDtVGwJlf5 znk?355H^9DtyHd6&=+)*O2zDmo)=?^(?={+;mn~=;4QxjzQc#KiPR!ZNwsoz^=2As z2WCH|Rw0#E)N_^QNv>Iiez6VRT&4UVv{e_bMvDtE+NZfc&M5}(XRC$S9nnpNNlAE*U&tK${I$;ECW_etH>DM&ZBfEHwK4ctEUtk~ z5?pdS18uxWa6ML84-P3S=RV+l_$8e_EWPnUu0a7q1Md|ovQ?3T8X+32jAc5vw>s6@ zs?-j|A_rb}xV;l;#8&i0lWE~rDAIwRY*hxzo{-Kl$*#$M{w?PFB}}t8)bemZr%a*Y z+Z2b`B{#j$TYp!U!1RN2=Js}@728k_J?YstG|Lp~o{mN~os!bgpUtIa+tKYNP~vuU z?0sp*cC`I|bbUKa+n@69KouH9m3P4GgDG(b#`5O$W(SIJf?D?nR0ClKjrbAcV^@0d zBYK^6G;Jr^^Cqgl3ness50Zo`IGV-uS^>5Rzd`! zGj-g9I{YQ=+oMDk7#8eYz&yaT#$L)PV0Wm>UZt=AKdt;erCy0KjIv_evKIb6PtlpK zgy5GZme&+l5C#C}H1w`;i!(F zUHg&IXu7-~w*HFVFt87Ob^vx7LX!_D?SvoI^9NX;yM)SS!idXhMy686o_0TDyDQ-# znKrt{f0}Tg{8S%?V2>{Y>t0HjoUwzF-B!PZE|*N~t&LtGEUVRbndpQCRsHIal4=eb zGO-0dSn={@VQdW;LedeXT*v{v&Y(@sS@D?b+CpuAgpE8cY3Nb(j)!T@QCKxwJ#$oP zZW8vY(g~%20CmGpq6B)-nUl(J493k)p&@#y)@k&_M`+DyL^(!hPD8*+vYb)cTD0~y zle(Wl`)xyo&MKSX+U_~4#MEaL=d8SzIH%ABv_!O=t)7aWV5d2D>txiepXbKr&Kdf% zm_No(#a1ah+HLj_s(TJony!?1PN`MY@}kZWmW3Kw6%SQKCt&GDyUr<}!|}8KtZWi4 zP}a}NU$Fg-^RRtQx_BP7t2q_D02R}z#RZg0CJnxzv=g;{$UVvI?4#rcwd-eoT_iW@KW~#=YeEBE_hn|{gn=&|Q7EHnR`}(6 znd{`AFD^e*uV)dc)_`_h!ko!TZ7)M$3;N?SYCs$nxuTRWf8<%o{dz-d@uJ?&WY_%A zMy|JpP(MScZ?77Eg^koM0oIwNw!Es~6F9$;<2t

$KrI^u0mhH_+yOqqaBDgl4N# zZYb|fLQi$dO(ixUkZt}nAuiFyyGl7DXd$xPQxc4zdyzWgo-)cLd`7?DM{8Q3miLfG|wY%;1&nIa5QY@LB=MkRo`K#$IjYi@0F7#VG0d4*-K!H@HCVCf`BeH zKEVFW;_*j`FIT&p?VbD!A8$ zA!rY675iafrCQW(M=e}J#T|B8SfVB&%8tyTE8P&--67FscCRUP}xizI<~Oe-m$r$i5+{}9W4P^A{Y=BZLg$@ zVMlhTL$tk2P_|>JcHy_X3LrH(+Aazj3%k51TV2@{<-*>WHn-Of)f8w07}qILdUpo_hl+OM;{mXL?3z|I69_U!Jc131ys-EKFT zd(w&S_M7ZO4e34XTTNNP6yMWc8l7HBPkWWHBk?#`Vq)DhH~8n+sf=SemcC5!(>?7K z0<%9y)^NNsn}lBW)B@R`uft|7?RcuXvX{MDAvB)TL+k~Lnc!#s>al;19c*9Gv}yLw zke&O}?5jbaIo%%NZ?cS0cg(U+i9{=FkYR6w$J7k_Qas9J+MnYQdJuIMqxC`iYhjA| zUB@S=$V=-w%HVOZuA>X+Rq8v!s8&74-vX)l z|7{_mhPtVRLlp2l5a*a42w%HpCr68-*^?(x#mRvuS&L>Z)%_i<>EzgDi)B09Yon^0 zQ?Qp-A1190DY3I70{!>=&W%3=k}j2j%xzu#XUcDr1)2IM)m(7fnC3x9n+zrX~9`lPuV;zFJ-4%u!mz^DPV~T@S)#NFT1_)(LaU|doF;xRwO?6;X$CZjxDd{15BNdd; z+H6vzLK-HobA+#|?x&o#}9e{BL|*&rd(hbgT{b+|U&Y-)AT@ zXcpqf(cD=`KaSSULS}sQ+bl!uX{GWc4>Y{#c2YYr`& z?WmY1HhQfg_R?%eRB#-Z;I~nSJyc?jqk-u9t>QGU#%hD`Buyg+_Wg^SLF{HWsc@-np}z}8a>?*{a~&m z!esr8ip+C_zPO_O!@_}*OH9V3j=)e|xVaY|+{ zgA(4;5O!_8!(PV6Q;P1W!`8bMryANscje+KbOE#FU7ku?LzZ6`LsmP+V7;d^gtsyn zGO=Q*x0U1tj%tlyY+bvy9KKhP=OnGQj(E6;_?T5ZCw{GrG;)zfZ7W`fFiVCvH5f8o zTo|Whx(rIVlMAIr3t3h#nl%$#lCA@y}+BkZ(&`~19^GEh}Jz{huV@DHQ>!T{<2t!S2MUGJT`vVZF zWPPBsrD<&FZ1Tc}RKIF^dLG(FtjTeP_$mfNW+k1$`ll``vywpxugF!Uw}{%!!x@sw z8w@#Rbp{`&7-8#Qo2HiH<&svK3;9bIA79Lf?H8d_JTz<((~L8O+YN@y5;}wRp&m6! zHYnl6xlr1VsG%Ot5G@%DIS!q{M~@ew?X@K9Vn+ouy6TG^!$VtM8T12}oU2O?FO(;5 zF_XvPq=I?!^5@9|gUR}c3NCRd-CU3K_-R&y(a)kYdN{=h`yPETNv1zf{V~tiYa@1e z-k33d3Dbi!ME`9tN~ltr^#zuUa7L1vH7n>-}7#Xqb@2< z)KZ5F{r!Zc4!iiFV~Ebx#kpuR2%#R{3#9#JG)%ugjr4ASA+Hw*zp2CM1*Vnd1s(po zAuDVdlf`?1=<9~8oZE)14q%XtUcm3F!I1VFYXB3MIhqJZ=^%JI9lg?Jr)o`WlJMr4 zl3OIvq}F4-gwZ|Z{K8Yr>mD*M>xj`kB%Lt~7kny`hv7GI`!keApR7O!8?I)uOTb*gibNKhomfn5`J8#_~MHW_L>*3~GGh8pGL-9Y?GgU@drvrdCFt?l#cQtNCAfIA&s=Q8H@pN7g?-1mD5GCkXfPOF0y+e3xXGDsP@+=} z6^9^dH={pDo6EEI=pz%&<{I(l9_}%OWX|M5jGlsh*;yagX6O_TU4!^IpV3oHG8l5E zaG_812x&!9(360D3OCP-{rDkj` zL1&I`yS*e!3k>@pBQTD|OkV42K@ZnD7Q!1%S?3sA+j`1>o$C}{k&j_b-h+_u)Ob}7 zSx?ER(`U95|?Y;u$gu|7{&86fGz%r{yZ8+~+Z6STn%KARm8qUSm0 z3|b*XKi75eQLD|Y(!bE*w5M=zH3q*YhLRJ&AbU7N{3C-Q^C7G4+crB&z=)?eJF1wh zFX`Q8N8^&7XBDTu?c8f87x0{?c-v6dN4>tsBoL+s_>J7nZ<=l781p$p$T z##B3YMUNGJKDo@XD{&dvC$``jAMIQ(4HIOZP3USifrG|vfw$tJ#apzlY5x{S1?EI+ zIY~Os6n(nI(Fyg)wbkKbCY`g@5zUI|+*U^oXkgyvsDg33<~Fq5megw-n@8~I@#z&O z8@AfK&CwLxe{FMwGWGMPJ6eFfQ@W#Ch%Zm6G_819opTYTJ1U9R=bO0I)0P>ME~Go^ zLEpmL9Ti0D-+867z%Y8N?I;z`-+B(>ryEB1n`a1^0EXJuSKLZd42H~ETmq*gxeZD< zZ{0pRx!n=Rl$yq+^A_q;E9^k_i+NsM$>6EHdW_F|;yXtNSy&t3hyH*PbE(sRaFoT} zs>y4o#`#w~8b^D6bcFI?1q84E=*YBK&*GrvSz5Ex(c1X`VyEL9A4wYLqVr(MvqeP!_DYl(6ST1M!jjPd+KYH)YaJzV+S0nNaJ0tT($xm9;kyHm!wwz4QZ}%3o{o(qUwUK=%S=Eh(4~|B15*I_^!@dsSBla zyXf8?G7Fe9bs%9%&PZneMWNonG2T-W0W-^>`M9l0Uvh-Mcvjfp-&o zO6FzJsB}K9J+KYs%!cuYA-wC#l6Q&U_Rq>{A_6{fY$!`E6jnRdNL~I<%4!x$FMTR= zT_2YvH;7zUjm)*LFRKX?b`-6bxjxVs2Cw*AwxO8r1tvE4v!WEODNCL&$h`rDhSg;? z^(4(l!(?e#K!f1}x&$%Whti==7x++eKi!b&Nb$_>=YSu?+w zx!ORL!y7cF-uD*ROPYPC>uhPDmqtGfX;|K2pkcAh^;UNn=%;}YqjkIq28ud&ERwnY zDtH<(r7lPkRQ{zM*4nEim1_xDn<1N0h0L}u7EMWbz#b@q>kaCGFSess!*#gzo07p$ z=qHctK*OM`FWP}J>1vjP_8;G@=9cd$Cxg5*Xmfa+9NPiwn2!_7PV`C_U}QMMbfGVZ zEZ&JGjfAx`mhYHQmRumDIVS%;(0en<-Q4nNCG~h9|9Q@ zE;^AIdA6%$zbKl&Sco8VfWQP@YvnE!pRcrY!lI`op+T(KKu20YzjkI;j^@lBlY}L; z{aGot9mLY+#28%9NCN-UU>@mJiw4IygE-QkPkE@Pz&DF)QIBXCHH00GLN3oq_SW8J zhxbXC)tF>MfmC=42D$W$Fz<`IvMUZ!i8Z92lZU=?hFIxSNJNP64nDQpXBaAIgpg?LFrNTbi!sX_O`>sm0VAD?t!2IVxm1LF%pJ3UMtsa z_OhB?#I_gx6gTigvTy+ONrthXv zVb3v1=%}ab8Jx+nzhtb}z;!vBB!yj1oi}yMoX6k%hECew?1R`E;tY@i?uy)xCK(I0 zf9^-~=o)M5cQ7sPBK;a6(%VH|X+$qU=GjKnE!r6_o#+q?!ybYU&^bJu>n?f&CR^@F z5fLg8WXJ*Npw0-MZ(krOeDWDDm}6WOvXROm%@e^wD((sqAL`^YP-s#*kp>Wpot=c@ zGAY(DpPTL>w}22TIN=}+Vmj$}kgegrdXNVEN6ET_=>AB(=~p+&pd*9fHJA&?`GY7C z>Lub3N-y;I$GL4@$Tf@;G_Dy&`eN14?2l|LWbG0n<$wh5%ak?{f%+#2F8e>IdZ)v^-czd@Y2a~vNLgfPXnUP>*hnxXE=L_ zw09~nXX>4KwqulJ_K)WTN)*TV$4iW3oK(LBSo1wmY&>C7i^NC?cPVl$!zGh%ln~d2 zV|)Qc_P_$S?J%<@>oB}T(aHG32*)YW2R3V~e}Th1W)_#+$}&cE4!^p&b8{#;JPPYAs?n^5C8YZ5(;?YjImLjP9QK=QO zP?1gW%mRJ*z9u#nJ_#W7ohePId-sB-x3`(s7Bs!0(f?!F|5@8K#Wg0yUD9@=Q$^Cc z3Uf^X(SWCy9tuG|FHe}TCyc`m^D3z~MA$=&Ke0xQA;B=ZGd{0X(itq$iormTsDyI@ zd#lK9>hQbW1df0MJz?xEAZvd@Q=pGT|BOb{$NFhMqrT8)KK&W>?+;J9qIkZuLdxY1 zDXufrg>(4)SmXIE;Lg*Omd&iB_feF?pW<0*{V*TX^&6ecISQ+$9zu?yLZ@;aW-{&t zu~H0=?+kVvgt?1ziWOscZfCH!QDPiNq|CHmP(r%%`Z^kIF`}aH1xkpsH%KPmL5^{f zmw$mtMkgQtf`&su;e{mQ^zD{HqklysV0}m;9PGI%wSw9(>sP3Dovip34X2)K`4wfD zlvt8<4BdnEqg;^dOF3+L*GrYf$Iw1l2}t)ts89%tB}}7TyvOv!N}mT-EMhyx0-uPr zJxAHZ#5i4SS(5tOL)IRL9?z<|7uG@n4Dq4u9ViPF31l4~fZRT9X;lh85;k@YkgOd3w2XCjs3y*HP< zb=oTBJ#Y#g011}UsCSeOTe7GLu1rx-;yewt>9j!SVhDRWM|jA`r%^&5-6G1F41I?Y z_~pAbtAr)Skt#~nPTEexf|rM+pFxAceY4N7K=0!-5XU&lu`_74NkOFOEV4tuH|H$$ zR9NRfi+V+Q5PcgW3KBt|7n{yPCDoHFXHhqtk2t2tu+GgUKkjmcF1)3mLvf>SXE(G1 zJA%2JTh(?ui_1)LunrrSKLBFn>m{d%+U(oL zkpEsllhX7iP1(@Dq~&rrjDNkU8%i!+HVKESFkUcaE(jgrTA)85I?5+||3F!a^YS8% z=7n5@_N$Z87g4fFQOVqk@NTSv?74_$LGna1$`6}g6`N-G3OuzLca!VqJoHRpe$QJ}W`%GIF6a&Xi!?GLjmF(U{?$$(ovvprS@Sg{=;aTOqRvtEI1mgAs&~(DF#;4o`LT*!^Wi@58$yT z<9C|951s*M6;S*CqrH`d)6K@EWX~gbVpcVLusjhCYO%kzL+rXOk~w3x^PIX8nUn3~ zIeE{MNsr=~9}BZI;I&|Dm5 z3E2z#Q-h#@?`d}x&`Q{+t$GsQG@6um$vcI3e@HEXJyLJM4kxX25KaT%Q}`VUuN{o@ zIc%jT-fOKx@CYMxvZ2GUjgeVDg={i&7#_|+IB33>92$o2=HOZi-WmoihROV#f?30H zA_M7}{DW%=`paSujcB=Ylavixt0@l!%Gy(LCThca=^DHHG`5(9^G>%9V)858hsfw9AZ z9C}YERWy?}qy$d@47-I2&by+R@;HX6E5Q#59xs&!7@?=jb2yb-DD&Y6aIj?1a{(<5 zdT4W6fFpGxP8G6-NQ_E(wC5+{PQgZ9n>iJqrP~~fU&C3QOv--p)_mL(Qf>Eq{9iNs z@dh5lexxkLEhb75|0XUlh3qHKy@|h~uv(4dY1*e6S5uDt)wrk8RJ(I2im_%)-`np? zI4A8^@MAWU!C)}M-wrK-4M#6~t^ER9oWXvPVF8pFQx(m?aN^$qfF+N_u z%{?*2os*L~Z^V_XKClkS<)@fICd?*Io zQ-2ian_+Z`_T$ke_X0A_k7Hq*pvRAIby8YO4A<e0eWCPdbcHS^No2SDwS4({#vr{9v$BN}n+-L8NmFwvm@^U@Q6bJcfI|N=f5+j6lWt^SA^+ zZO8@O*%YRfhANaJI_O~%Nm>4V5l^DjEf?_&noerQ@0hHm#M*-AQFvhszDn8W{fSqC z38h-nB|O1+ms0B3X?6w~-V3q>afx$1%N^QeW_KxBbs0BM?rB%>>oje-g72fL{VHBX z(_L5bAezQp!)qA+B8IO*uVFt0>aODlY1(!jFQe(w8~7O`+!1<%*`3!r?z4ER9~xX!*i@5Bgjp&+9!a9 zDI=+KmT$?PaJ4$r0{3iN4=}keM5yya%Hhg0>PR?b zAwumQ0CP#NPU?{mE8HDMu`q^50ydQxLwPMSMN23)WK~U9DXT5%`}Es>75yX zcax71&`S_5r9|qLP^i5_$?Ds1O~J{m>b?E4CdOocTMZ0rse-cZDtt-cCY3$ZyP*|) z!4mCA4|Ssgt$R_1I@}0{>}IH=&5-6isKPF3n2H`zAInVqI6Bm`{tLLOeEW)|h6jSK zIQlOy*gdH3{)$g3`j%H&JnOZ;UQ*c(yNE?9Y_!wT7O57;U7?lHmLUmq$rP<@b^QhH zN<#LWyt36w6oh7OOQkkwpZYf#$(Ctb_p4s`QBB4*s!5P)a~suFMw5FvNja#VqG_i? zYBr?Wz(XoDS@(xp_F*-{Y;x=5??0*!(R9s^>fa&N;+xbNK%r}I{G{%HAA7Z7N7WO- zCd+r)Lnqa7pr%nl%PHk13h_SZ$#s+ioZ+RZEKhrr#c zt-7YJfwS<8+Q6IY2S!t_S^KM1JqkZ!Nn^X}gH&7kU$q?MrffvE^=4CUI@xWuEre8i zI>^?jm~wk-J;H4>V0U{7d8dNwo0fe0!Fwq8>{ay-%&9YRT6l$5kb+VT@` zm*~?vB<78(vScJvvdNuoGw&#$i-Xi>;LGR%hG8#1RRn-nmImlr7FuH{Zq9o*KJsw_hyDA~3s+r5do%R9)tZ{JDQ7*5GTy4YSxbg$?jGc4;M zE1wFMMN+c&yVz#kL1v%dL6-L-oUIW>$@)jzezq-G5$&E|RpOdyCSKFq0o@mK~_Evj7_4_%HnM4iI#V7 zBkO-B*$_r{D9$#;!m5(=kGDnls~b~g@!kVm!cK3WiP~*;-Yze*LmuU7xf{5&s(4$r rF>!(YA4~qsXn6gw_o2IfNGi^)J}_xc-&5mX&pT3S*kOFV|Jwft#RuXJ delta 136021 zcmcG%3s_av+V?%znv=s?tb=k^F;P)bK~eG8Oc5!`Fww}&JfNbXX<}iKVQX1xc&Ny% zX+~`_D=aHC3M(o#+M9|B&C1M*%Gy*`W>!>G@9$o7E+zMVp7;9R>-xC*`ycl>-eZh= z9Os;?>YCycPZyU@^rj^aP8&QlanRsVX(L7r9dhTO=v_rmjqd)${DBE+OY_z~J0fG~ z!}rV^d1XzH8M~fbH)~DYZy!EA;Jwd3eR}MemouLJ%h%O!E4;g_ZE957$WiHo73=SU z`E$wl?zOgliNhNwB)OirVg9p+=Y{<-@y-oz-8<{^%zxeSX|F!EK|}6(d$wV#2+OTa zwAuVqY-zO*USj*_1GP7vv^A@)xl892fGx-M%*c|3g>6U=$;%UGamly zFI9Q=VkJ}j)=p9~3ymeIY8RWUc3rCK(|m>5F}k8GAhl!=__Oc4RLM*n9HWaGlpF|2 zLyk;Tlo7CGt0{J+af*`J14z7o5D)E?X@rYE>|70~zMO2bM!7*fen#J5Rj21k6~_)yyPcPXD%qfH zT#UY$;zUh@%p*Z5^7HVva};Gg>`IT(#hnOmibYN1{vqnMgG#9B^m%6PE=5yTTtV)E z7CWS#X)i^6WPy^ILDF1fY`Pldlad}K*JzNBxAfn}1u^<4swaGNM@1F%+vr&A(08Dw*PvV#dH> zAct_VgbDP)eutuz8#9Ng{R3TiJ>DL$nJBvnUX4BOri)5ovEjwSs9OM^q)Vp3(sfzz z5zHeO?k8OW?o|>Y|`whbRx+U{*D^ z#B9x`<)%FSx-)UUBurZMSh49Bj>#S+T=I%1zS+&1lE1?A+h*k-O1y?;!F*ID@fx2g z$SA*kWzgnF*a9{$V^meN_h`%Ok?={KXI4;CE?u%Y$HMf zxf(M^s2k32mfDSv(S@aO;qCN%d-?3}mXT(7K5-9Khz+KWRO4)g#`z=Fo?WM9#pqA& zU=pk{+cWeDlN0ePG}eq%2Zj_9rOdycyo44 z?||{R>da0~vp5fKijUHdf)-F{d^9Rh<)22WJ!gt($UM7sznQ9a-x+f$*n7rZ)6QM| zl9E|R!{?z=(6kP{Xr{l};z~*_G?t&M_76!%<3i(MoSnp0L==`qF8Ehye08qcEhJo* zm~I_s+h}nP!s!Y)1Cwtb#W-=U8t*EWcmbbu)5nT_zoe`SWU}w?DbuW!XYxw@Tgue) zPM0|ur)%?h!4i_KlxKYU|1IT)pHR_FXj z${~MC`H`eFTgWzslpDtcwe4l4Jmb^PN*VAmmJmI}bl!;*!`(GT?b&xH88E~8O!f!( zL+@)DB7f+;Fu-}OsTqaFA7-kq8ERZ7>4JQv24gra^BnaHNyFQ#fnXr|i3mqNM0Jx6*bOE-Ir#|ttZ{JK5-P<4w)(|R zx}Al{wSt9+Ekfa|o%E9|Ks75#M_)AE#DWIrzSK!y#6p+si_tS#dUJ|d*jTX2kvFkW zo$}+)!dJ11Mwp8u>t-e`HY?e;nA@oW)__s0koEgJ=||vWYgpmBGl|_Aqd!G2Fb^ut zDEl?a72U=JM~@VW(kNM9*GZp(l5M3i`c{#7VTMK?ywsC5gfW<4yfc6Hj?EYCSe&0AXuGe8!A2I9T=D7t~_JAkgz={)y z`Ug=l;g~G7n@@Uue=94F!|9G-7w@&Umn|2Z*}df1{+{a|)}8i)r^=H5LRYG-1m*8> z(GnP6V-~b<6+D<8Xo9yAUX3z6F!AlMjEOC9 zKje*YCJo;VuSY%v?`PlB0FOehgSWzdcm?T-B^0U`q9{EMV0> z9MT27|2#85OJZ%-hRLoZM4WN!ZkxHGBCd3%)8e*2O!+&Dn=O9+H`9M7EM=VNU<>fq zusOGBif_+f!C4?w8D=vBWH~PFZ$@q)u|$>)SxclDF7A)pxer-x+07|Eg9>X(VUIHf zZ45c%UVX+rS}8pvD8-grP6V41%><&%Hfk&!Du#n?&^E}-(KXmcj<=0h`#bUou5I3>Fs#O_aed7x zZ*#jz*G%>71e0%v3k_SgI@>K7|B2ek!^LY!w%T*3wEy;t%$UWnOu(Zp*#jS& z&E^^PWF?u1p=4hkqqiEblGIjR`&G93xE5318l_hah|={*QF;x$7bF`yCaS}``nyK! zhr7h+IRm5gX`lcUf?}}I_+uh9N=(225F3m^7qft!GA3TE-eF5LKDt<)WXm>ECs9(B zF?o`Dg>AL*gixK~$W<@1l^Sz$)fZw~PO*6#7NxfW*YGHP3)<{822EDawYiKXlbKKs z8*3)3Z`%~((kbeFwhH5iDe7=rkJIH@nD`hyyJFq zQpQB-;UEzx##edj)3#jW{!7&%wwl@lm#Tf7eTxcW^o{e_@-Y_)s>Vj?r@~_N(p#eR zv=BCR9isGV{Hl!Z`RY3q|5Ls?#8IY2>uE93dYv(7j@kzmFQ21cVmoR)F^4wjV7xX* zy^^LFG#3>cjZ5dMePW7xM(d>)MCq$RN-53xdz7A3d*@vBag{0ayaj5UPY!qf9dC>= zEmBiTO3ZON_c%(AQ0F20RdnRD@QLS)NPfh>ntZLxW4(}ui)DfI;0nVIJp+z&ns_kbJW zpc4PQ?Mz|$8_&2G+%(~T2?yE8 z&%?44*n~&6ETF7PiN^dT)`|Bif@MwKLR2~NMiWI&yy38%comU}aO!HZf}7#b;6w0! zxDh@G*TYBPJ@8=G=;LrdxEjucx5GW)EpTUeF|c@Yir5d=j1kI|%;qbqA|fg3w^ObR;<w* z9&YZem}nx2cYB#?`i>2RsBaJf3hrW-q! zt3!OU@kw~qmRSO)!(v>trLy9mXWVJ++?%bqC+f{KTP@yXadx{r&LN%Td!6O?*Izaz z9JknfF6~CYOweDZV`Q?;$3r?sHvC^RQzfx^pH2hE!|U;Hqu!5EzYZ1bJQyYQTWLSc zzTrM5W~}yD?ZelpH`)TDLn;vZuQL^>N0GopN?u|NV+f~7m26}w^L5IU&aFaT!N{nT zGT|-ol_p)aH?RTU z&weKj4>{E)!=mBh*UgMd$yB;nrp%u$(ONpH;|GLpi;UqB|ANY;zMacl>Xr)+gY(gdKxV(zJ(R zQBY<~*ITBtGQD1mTUvDQ+ZH#OVG{2x+){Wnd3Tq>r5v$=Bs`>WIU=8=uykZL9V^&$ zbitC6K> zIj73OS>y1#f??TuBR$-KM;9k>L{i~q*bcYUez8JTZM~$o>fSN!X)`R9E`@`Ql73j0 z5qGKjOD`!`yC)v`H|#kL-c8k#VQHCu-!M@?4a zh=g+~U=vN%hP;RjQz&2x5tHD#ECVCpMX5WaBkI*Oet1oB^#C9!&Ytl5ONK zJr*>=r$BsjmLE6lVk8>Vry`w*cL3A$`a8WV*lI1S@~bm z$c&vo(=kg(ooXTvoOUY{yXQiZgQ+^T_3s3K4@@hCZCsBP_ysd??p8hhPU!yu5+o^aBC^X(&!!<<` z#fVuPhehA(NhL|!kfkZ*j($Jt)~{vVL_OhtbY~qbVKwk)@J?7x3)|uKa0R>x-VDD^ z_(u33yc&KUE`@h@Q+&!|9Q*MohNU5&>}J+2zpFj4=g+Zt6aFQHUk6K_XIXrK#htBi zr^SWmnDP9uw4=-jE67VKdziA!nZRcnZ3`ZO+9t9jQoH|cktic0$t2-cGZWSp<^|Fq zOCItxL!cv@1G$$*>zjXeMNR2x&zwQnVxSoFZ&kek!wecqDc=7#!~Bghr!6>Rm^Nfl zX%A_oUNon9DnJ&MVqcal9*A+Q5*CfhSNAzveY{7J^a z#VC>Rvy}{vn&4>3H!dtw$JyeI+sYVw(q+>Jn_UuX@o$67uHFkv_;!nDz`-s%r=5FC znrQ;PQ_c8E$mS5SDL)T1{ide`{X&%b0l}&CxG{d6+R-n#h!XFu7%Ev73JklEYmRxD^R#;j=uygI1s>YN|56h%6V)PJe7Poz5p0lJ^F-X^FT7yK@;Jx!0A>e1-o+(CKX#DU& zSd>qqRQ{JJl7raAm9X3#?Iq6Hb`gBDXg90uW{fsyCv({(6|^(r{WM@P@+KN?F&vz2 z=d%6%+nGTL3F%q=JGI=)~G|GD}GUGIkH;vOpWr9O?<2dOYqsMLP)R8iKl@Qi` zk|{%eo}Q6M!7?hVL}n){Tad3=?q#_&vxgaxb8PO)W8%hYEcs<-=&^z;R`%!W{DB9RlPFM3Ihq2hAG}kt(o%oz@1sQ ztKdlKeeuUyD&Q4jO_XDHh^o|gPy-4-X7N^7!en-dk2KwKyciv)T3ggbrx!MgwA%`d zZ?~%Fo-e&|86I+KNW0I}qYjpr8LMH@XCo~7Y?g5R{jlg$0n5m*GM3z@c9|bkt&$?8 zEpNAYJsebRN*6QircOZ>Rpm3wEvlEso8eF5XRdnpw^y5IZQtIf_FrfQ{bXwwX3y%c zW~OjYC^dSS+MuAKBTLJs-EYD;$=ZDzMb>6zKvjZmg7 z%6(K*4^z7>7Ee9rOwF!NHpBLJJ5#e}%PlqQ(OnJfXR;_lRP<3AZKvcR%gEWv`S&x1 zdiVou+T=_MXTq)b^F~+?94Cl47;b?_!OieN=8(hi5tt`|_j9)^EiKPX{-il%#OI`7 zbMVi|!W)sLcdB5S37RbSq@Jlu4(`CV2^~b&>rqEGnkmSl>o#$<_FXsBSoPK3Ka$W4KNj~ zw0J)(l?qt%z%%YyX~Z)=dLZy7(XUWQ^gpnFqtidsD|}U>;(0|aUiXiP*ENtlFkTN& zjn@nM#_Lsm;&mNtOpMp}bcxrCKtbnty(BVTZ*axyJDu_RDJ@=)w#Dl;f5z!mzsKq6 zzsBj&Kga2ZevH#|zKPS1ei5e^eNNb?aeC{!ae887oL=@yobK8ir*Eu_^Xc24i_=d$ z8mG5C7^m;q8mHIX9j9k(iqjWwB+@z(`Q!Aoo8ols#yCCv2I4Iz<09fLA?~6$J!y8F zo;xE>_fL$|vnIspc^6PWA&;Pv3f#DtX@})`>I$yXAbdZ z#p?AlV)gCQi0_*ktMADrlZyz*iq*r16M0Cio|YD?$EQ+wUzF-YfxTn(<2_I!0tM7q zecB%w?+Ny_-*CVn&F?E}wqsk564ohP|=e1c1uM`HB(*A`v9^!fosHz*4h z&$+g6Zo&NPL|9l`^q^W6;wyQS6_04qRqUa0PXpOt1V{#tjbl}U5tB44~pBh)J%W>e8sr_QH*nzao3~jd5&j2 zFWMK_wa!~u)FlxGlYs2;j_u?M5O)<^0QAQ=zku=`)EWPJumu!@ zX|*$})GI@V93_tipwKpruqgD}an?%|nt?)>xWkm!?2p4HOnZu#@Zbhe4JtsH(eVW}%2sBq`i3_X%8Ua~256T^j~TY7)EM7-PoJ=Lo^!q1 zd09Sz>Fgi&R(qLkn=;i_5OJ>OKJTNQ#fJTV);Gx{Pb|xo2>4mZCg{ zU%&h_u+QWeXDoS|w=c_#+e~`mX}Y`2cnyjRn#lC2Y=}sIH$8Ab{oR=JvUY>7qw=tt z<+$8=z|-Uz@En+3MmSG z$GGhU?se|=e&w>MQ*9sF?b=-IB6xDI(%xZd&H<$2Tnx;sf(Yrj!> z!`gZnDC8a6m=S;*{=rS7`WuR~h2t3vMzJLoBO z-C`FLnqqvrU+wB^cD?EP-P5YR>3+-INox)5WFHz~TGbt{a#xMZw4uks-J!3AZ3r(_ zLzuarb!}CiQ->=vlv|u@6`5Ra@GezbBhIHs52IqqWI*>D?t z95iVBQ&xN1E9yMkpoZ63&Irtb%U+AoU7);ywHj3alO_ID3>9ny=^&xD`>X1;VZNld znD5yVB)yFvZWm~KlLEj|&N*;%m6t+2Pq%{L<1LSBhTYNIw`7>XQ*^i z$}-dN7GY@8X~oN;d;v>in-H)x`~tn+{blAh+&NY+cl@0*2XeKQLD(ING7$L~vRH+S zwfQq9oN1Po+)G=sEmrh$(`qgxvdB4>`~f=)k!O_q%m@*0njVX-2q6?G5lSuj{I^Uw z`WmyqS9v@w;YpUf<~>tRx8(DmGv$p|`jx4sTw%$-_Auq033vpDh0K@&bIj$8nPQ~A zrFI*7q4y%E+d0kou==TIn&T4Zhn{8X$DWTopLmXXhP!oTn0thKzh{Ue&-tb2ANG;1 z1M1Uin6c_DH7;tO#~rcMdy#j7_h-)ou1v>2T$RQXZ>imV&$>b*GL)^#n276napWoQ zbKY{MxMufN%2D?ib+o;}{);Eu{s0>bL#c`Q-Sda*ag24L=LYWs?py3n*;Cb781Ocw zT=~tD=XyxJUsYA zn+odRPKwcgSnanZjG0ur@}}#{$Mo*jr)Toy>Zqu!{r>7GcXZlam5~L;FK?@9zJk^1 zwqfe!nd2i@^o&loT|Rl<=eFq4lWts4KD<}ow2LLpm67vzrQ2p-)b*9>=z-fKFMT@Q z)?=0L`(gIWBkj@2n|GfaX1hGId%GOCz*=MLtxsBh-Sy?YdnflE(67&>y;Cg>e(*<5 zq0H*|^LAB7ofqk!8aZ!wx-GIK@`ir)kFpj-&M-c2QYUo!PrZ~2JDfYIyqj^s0kwZj zF&gdLb={@A)?fPLJcXc9lgc|8YY(XDgBC?f;2oE)|0UfvPkGwr8ae5jYs+J+qdV-{ zJIo-aB|9;%J zd-BKcWX%%4-97vT>2`m*eLsz{Vb{rP53B`F}Axs=PYNL;p+`y)!!un>5+~!=OG% zJv;8Y?2027g!GI&l9@UE@^RxMr}m6Wx6R*G9q%REJ1Qd=t>1Mj-S#b6PoC!pA3DkZ zU3HX~Oa{54C;7iJ9(YIX5?!z^(D#z}8@3LSldf9gKW4o74&Rqdx@xh%InmT$*Y4;+ zt2zuGW)G^dYO~)K-*3`o(+U^*k0kf$mK>=@_pcddd$l^cw;x-mj!xONJ95#kr}0mH zW|-~NN&0uuZV?BF_+z?l)vyqv#SBxVVtY2*a{5lnpL3^ntf61tC5!)6^B&6ZHCeHUG=i)N%;%>PbBv4-K$S(??BTojht_ky{it*CZDcn0{Mnz6ZS6+#n z6*)snm|+ZlU+o(RTuI=tvjVSqU+v|cbcO%A#9sY|NZ5W-Jo3KUW5J~9m;0|ttd5TN zW35)dzhLtui2v25|AAlt{$0d>k@)XA;BV*OS^O6S{7-u;l`+}zblc_r3u*@(R`0dN zPRjESPV7Cn|IoCdxqW)44ogl-Nu{Mf`aoSAKDDP8gNmGDOg^Hf+ol+6kEq@ANYF2F zXv&1j$V;iEm|$oRzb{~eSyOKgcvk+n=G4jkJ>9!^uQ@rue(5|c(?dq|b3;gi>*7hd zll_TF$w`9-4eGsnSG=17em|n7+AcBreyApf+-Hv{>t*sy<@U1zSKlC~$6nK2{p7WkG zKKNLj?0dj_Ky6iJ)4IlazgJgoSC58&5dN*h>wMX<-*J^=lqYyfS*nJ(dwG8MtX1w+ z(j(Hnzqx;R|0>V-Sa?r-&N<-|wrZcT_%_o$xU+$Tt%mc!G_XgD>~h`(W$=B%hg*x0P-m+8snye3k&Ri7RK_qa3=kePQ zwt~;VZXjyx^oA*ZyIcKd*lN$e?X$d>a0c~i$?CJ=5#ElE^b(xt2axsZa~-@nH{!4sgHio$YS&W@*Xp4Xy_x zwkbL8%OmRCGraG54|tDwKle6!Kl6U-ecyZ7`;PZR?;-C++Wpo!R89`>s~aO~I6XX| zjJB`kG9ppAD8f*(y*CDWdC%8Wl(y{vq-Pf+Cw$q3t&cdq;?&kc=YT}eM5Gb5%fD1V z)Vh{&IhX)WfFdvrWPlX#zuZ~*s%W7m^>=l!Jz0$m>!>VM?GbLbTw&emUgrsSpX)U* zuY#9ZF1N$|5Bq<+%35e|f0^~)uCk7P&lV7Ul;dXQ{NKk6VAqf5cPI|_f&!2Z4u6Y{ zgFFxoDu_pAkE@T`oY90I!>{FAqxW~}&5lasB2Zkr>pLvCSJKah1i z)PtJZl_ylM%~$#ZdrB|^D$NWu~XpDMle5- z8QQ+n1#~?tfh7I`zhDA6f49%@dt`!7hktvP`~~tK?b3ga+&=xM$PUUsox$5@WpF3* zWDr!~4%~9G56T;Gk8LNf!`)t?`;Z;&!tcc`cW%M-2JR@zKkac9ZpkDVVIl6YcJi&b zSGAL+aJl*j#^;$;;MyT5OWgMHZ$oacfK;O1F6saF1xge5ZI|GD-1FPXZ{i-?PQf>j+ZXuSS@NrA$*-Ix zKPCM?2hU)Qp1|F{j~_-(ZCBt!XJzmpvKs``PdY1n-&yi)$QQMXze@UFhE^~Gscri{ zpNH&dmtY5OqMwdG2RF|y|0a)ZC*O&?ef)3El6|60`!2W;Sp`9bdY+Y_`&qIS-oAh( z2n#_l{r!Yr4ubMOtoVVIPx1Rk2Lo&*YM+rP)m|2Nd&NXrwd z0w;sk-OWvEC6@eK3!4H|_gk{>kU0W3U&AGpWU#6m zZ$S}ZrxjrxS6GS2^_INNx|(dVnRi697fPKKWyD5Pervt?T0n~xe>rzVGGI<2Uq#Da z<9$D@*mEbZOxl#kTu-=cUY~Z*US~U``YyBg(Oy=!D>l*zHw)SJsYtzq@!}4=RswI{bI*W5i6A+RkwPMYVH|J z)rsyU-U53^Z;N|);NeCZQ)q}w=2p9s%+tdrS~tTUs~2|qi^UXVfD{l9G;re2+5vy5 zQ`JtVh?N75f;zAflz{x&`|TPlWrBuGjy13gwBbGuj)F!|2ePv`AixzsntMDKesq~q zXI+^sf5tSz@N3QH{1;QEgx6c)k6Pg^8umc?+mE!K} z?&t3B?&938%v5#l564QS-t)Srn{t``T5lgsS9~k%2c;l874_Tyg^{DmU_UcQ38D9o`HY zaf^Qv?!&mNoUyteWP=f)Ex{41Cx_GYpfxO3Zw`&sb&wdsqvYE2L$qH)eaUXzu2?(On|%T54|TM+D{1 z85xAy>z52~d<*III&6~6u&v-|d1@`J^uym+fw;1t#e+4$6( z1?UemefB|aw&ck*<^$&NVzH-z|9Oc#Y@d0l++x|sPmJfAnFbp-#p`p7g>G$NT$uM^ zdxh&^_oMDd+*R(!+&kQlyPt6HG@f#6oyNzw^Ld>W}8|Qf0=~b4g3CgFQ z4?SmYaLxPM*{*@E4UUi7-Qm9Is!C*5e1qC1;RK>^Y>7b1?C*o=c#A}XMwIzeaaSQ{dnhe=Iv!3L&>!Y9l^UFhluNfkM=e?_t91iEyJBJ{-6XD0vU+E zEH*caY1qBUWjxAACZ8F|nZ|2}-TrUl-ha4N>>ge_X(roa zKC*bcHlI!FOYAR35j?Vc0;$73Q1 zA4{nN(WMO4rPsFJd++EBnk(P9v!B)_WFL=1J~ejXoKWMs%^4ceTdQ!%Q;!?G>v;et zM`+RdXbQbWi8VmvEy#OC3;0xj!oYTr4-WUMjqR^x+I=&4>m~_Qfjp1{vOqcz)jIvt ze8jcKQjL8@;I>FwE~x5gRQ+Ae_dd#7B(klVAO0unb(w9cx=k79@YzBm#ya+S4ye?^ zv%q;!on<{wDUp`-#bk`=(si`&QN%~i0{e^ZPd%bT8LufFCF^D&atiWsal`e4X<1MT3P3K19~|q^ zPYgm~kOSgtFCC;kYQH=>odH9l5?BLmk`XuxULS1k@xHd!h^krU9^sfJSH5N%$eWFg z=SlAj|58!<(-WuYoo>dZ=~_46TJPK8c}k+UN&QScS6QiSbN%F5;@sfA&GU=%xv*gU zrh6B9ZuG8T_+5|n%;Ndj8t-srliN^Ua%Y*=G>i!f^~ylNnvgf+E`pneG7dlvcas`;WG-^WN&3$ig^JJ?{B~=aOsLMrE+<$@5Ejaw&aKG7ht$MKj#1~$CEgV+_IT9aW{cFumu!@T#y37!LbX-7*v1~kO$I$3$&ci z#18g?YETKvfghBBB9ITxnu@0U$21z)StXh~LqC<4!<#}bikdv z*?c@MarO}>t6iLN9M~jI!Dcr2!NN8Wsjyw7$F0JmL(depjyN0J#rgCKF$5m=OMNV* zZzWE3yEwh9IR18V))41VAP!qi(fSU?mt<7ZPU~BU)Y>kid`qF#?J`W z7T6`sj0lSe^k**nL$XY|I98uAk?|?nqgp!d5x9?njUcObRSp})j;;6?g1ul1C^mLY z)M~rePh$9zMJe0{w}3-n52yq=wd*d{mfC$8Q<#V-at|C2PE2O{2bG`%6F``d_S6YSm%^Bt!nPQ|#l1Fp5)5CNheq4$86#cA-If01Y z(-9veA`PPyoE5J)5HIX>yj8@J^Yq5E;#CCVsi))3A&%VJ)db@C&S+RK5tWkD5yuiK z1ROmp!{dQ?BTmQbP8_MZM(ee&aWpbZ<>`1f;s{dO$CGD8dLUxB(q^ohqK)-Mc~ZUG zovI_$5$=K$Ocu&chuJ*TY=aT&9h;U3eV1 zTH;`vyBQLPVOko=?cj)CzG!niv@|IC8M(X8S7hj_L zgy&)PZpW3*RP8Qxopzow$+6FIk$Z`w+Lh`Jw&G@#HIEsIY#;|K-+8*bM`NaTW#bHN z9#!&y$kE98xSOtE9jT21CA4?>hjo7y#hyh?VFct!&P6-OcIj8Mpy?a zAOW~Q8~&%jaUgY=vS(o6IqiZ4=Vr?6euXvTR#Qij$60cXC1+al9!t)(Rnu1rWIexe9jyoB$5tZU8)Uov97C z`SjVSj(;hf0un$paDhNqH8!4aah7ZcN~_I_mwL1i`HLBfGE9oTE=qsS6Q(?B+s=99 zqVN|yFL_?}yy%Hn5*>?_u8xjMi$h-h>g!o!H+yZV`nYpe4^AJydrWKV71(V>&%vlE zd_+EN32!zI%+?-{Ifj@8YQSoc5AuvV^R?fd4Rg6aB30fzU9Z(lNUJO~G^_)p<^ zYzurCG=M#z3QWges_^;(^QvbARS>yggL$=+XUU!JF@FQJ)RI5F-L%#UOa6oUC(r_Q zrtH(7W(U+CkE2$E!fm`5gdBdoS-?+hqUCZ+x8!rinP=)kOMdA_W);FWTXHdXl_J+$ z@-(I>$^VokU$(?dpI9RKU&`BQ+$BqaIROveruf)A>G~~sYMu2$q$Q6czMO=QS@O_{ zJbXcpz9C9~icWQ_iwy5Pt=k}v=SL1Wikf79aBhp(?%L{{9C5$1t2ZR# zxd@l1z<#H4p;oG#<6U6Pp2x0xi8o0ZOiwRVI=QPN9(KvuM~t&@5gj>?X?7vYHfSlt zP{HvlSp&hb1@tU9G@tboR2E>MU^8hXeH&Z}nm`rUX6uk}ZifFrudM#Omz0%N9o1zX zufZ9A&C}+%OG%gv@<5ugq(Hmgt&rzV#KWM*_(8mC@Ja(^V1%)JzV?u31R69WM#C-h zjou5i>)iFY3&3Wu*x0c^^LesR_yl4C+`7ORb|ujoa2JD0P-;APB?V+rzgENqSTW8k z)UI;Z<17Ldpu~8lP`lofO>3M&OoZDCjZq89Y%lH-PyzhLiwm_Yow+pNal{h~YX>aS zp11jO7gLj~m}%h*kOn$q9*OX#%h~b5ZG;~OM?q)oP;5Sx56Q%av*>Y=KOS$6i2~&I zi=d12M9YvkFOD(e_^mV(Hel6>gjQG{U902+WM(X6newJvQ`#})9mbuDwXOp%@V*_< z;A(WW+EeX|)aC5$W=3ptzwUa?b(8WqyS`BoeYKU!quz40oAQwQt?|)ft=r`Dy+1oA zD(}0+1j>r(ev~>CP>fq_l&JS8LbaWikSD7()6JIYRqd14FtGUTB1D_ z7Slr729UFyJmG5?bZkwRbC}(3^j)s?bzJVf!L`yE?M*eVSgv)Q{H*IO&$%vh>E7yI z=nbxwb=PCJWHJMYl8ccGal7E-*P$$^16d#)XrPtwjkT{W*Y2|W{3VzwI0P1hDMehc z!8t$&()yq6F~@9+)!5fxW;S;G3bO~7?^TpZG`^19z6VQ5uk4Sj+swFrjUW2`olkX= z)oZ-P-sjy1?T6IwmFJB$HJUf(UC(@boHtMTx9SOd$hF*?p&Yi4GX5&jIz{HKppnU^ z=?3Zvj+fN-yFq)&=2J>BKLR(ytv6zqU=gj@0v`qqU@zDMjuY=Fkjm_Mz+6Q(qO6>u zWaIY(O}CwR<)9Q4f;^A`Qb0UtU$NvHV|{vglN$Jc7C6a(^1i#1?fA`ynUk1~6`*@Z3oj}>fRssyDmDF5rF~{dcnjN%M@M;}TFc`9{-{mww3n zg`ABn)5zyMs+Yd)5Mzd?U1zS(iwV!fs?F%Ky{DdHg>(LG|US)=vz$({TxWt4kn#CoN`K2063UZw2vJm!hB zKjls2zE0j#|5#23XrSG}TuhxRfyhO-vzp+pzl~7=PHn{KK^@57z<^lKi~w>#A~?Q| zWd>w}BoMtWHcCHMM$3Z4TbY;EGFh*w9ko`Q>hRT2+6<6h&V^+@<R8~hslV74sJhZe?WD<6rdJP-YY`SDI#hExSJHs1E#OvxK{+ zn4iF=Bb${@w_XIT5grhjHYB3nU`{VHtcY@LZMD+rhY035I-j#e=JfEgeWM1!5=QF&i%?I-tXlS9r+d5~d3Np)~E(15hV-Lzg8^eCepWF*L? zq|NqsoMS9`Q0vyo=Dyvt*uBL4EAPwBb{tS=I<_eX)mGO{#={S4myAmEboT`8Vms3x zxi|kao<@QhHb#bO#W|;Cl$4z*H07F?Ou6MLQ(kk9DWBSH$_Z0VS$Wo!my9-L*K?-a z#O^~1jIT50CzhLX(#zIYQ_HR}J<|4@5ki-mvi_}?GE-q|N}&7)-e%D^NuRqst33`OrO(?kFBO7pB*YRP|mXC4i! zEIF%(IoTYx7FZ2v_-|so|ZKM|Vyr=GOPl$X*xEN9 z*ZOL{dQ$BLiPf?CD5l&)eD*olEAQzPcwY~l=hE2{Y*QYI=;`s>*V~_Q{>xSGxy;_# z`=ByTOY*qYJ0d<&GdREAsC@0Y%{eJzmowYT&-hrc-pGsA8{A(9Uc1>E&^mt?YZ_%G z!wuE3bRU8aqzXlFHsJQQTD!zHrHV*W*(Ug3C>9<5m!~%`NB_y|9pdClln);_<%NZ&eC&HuzNX%kPn z0;_mTA)_t)S2IE+i-yS2ZKj<1yD2CBWy=4wriT=Jr$GA7*7PtUq?5kS*zvSB+m}+q zFq5jn@j%W^;czQ{EkH&{ZJ7C~a5@Gma{F_V$iEHd|HnZWOe6en#|!e2bJGiS%XQw@ z?7>sh@2Yibvb|>9%DHKXoSV*^nMQeK@14uD)8V{%FCRL}pIxbWhTb5{6qsXQjdrcg zSMe;%25{Bl2WK+)OX0;}2H1~kIj{~=fOOk->r9=^gB+22bCn}oz7o_IdAucOg`2I` z{=tugKV+pZy(wxyAi*P+hi1J9_pl|)C)9fapGeDN5qDUs@zt~1z$m-tsB@;W*317> z#QJTC=|=xrt=HJY&(q#iBmsy@1<1*`Q{cnTF>`?|5DgSiw};UUT8UE$@@ns_)t*u( z=Da|IfI2V&B!L7ln8uM^4I9tX4=Zfp%)l)3Hd;VtWvnSMBaekwfqVGEUrTLwihtz= zt>+c(Pw@}9&3)lQ=22dDdWmsDS&cyCB;>=mTVBK;YyoAU2uuTYbu9Cs6chnYKy})W z_U_RylO9Cx!w(iadz=z_qLZJFy34rqWo=E^5KpG-St>%7kS zhV#9M0}<)Q6MMC;=ly^Ck&0XFmC950#dhn5DvYpw+Hl@g_=B0X{clnPe~}{Z4dz93 zOafBhEw8df;VytjfN*fCo@oX&f;zAhl!0TfFz$d3^7j)LY$k0H=-6S^v{l#oZ|U8y zI%-wzi~F?eBf55YlQKX7=tp0M!`3b}YrQe~O|AQtmwQ(_e~f4fJs5f*^qtT{q3>Eh zvmtl==C#WM?i;*v@p6^DkNtzdOH|CMZ&N6l6$7b63bG&fv9~zSg3VwxSPa4e&;Q=k zqU@=MiMI!2H?dyBdx3P+(8tUba626(3d(kRozbaD>lv}sJzlv-nc@gCiSI~gQ`c+dfa0|gu>&SB65_JTd28dQNTU_TqMt=$4mmU)K=u=qw-LX=Y*Dg@3YFq%B^^m_=3%m5cuv4ufXYI#`lkmlZ5ZG zUdS^Y#c#&@bin+;uPDoyY!CB2xj+_M@9h-$1P%^lB}t^koh@b&Lx$WEh&N=2YJKvy zB6As2l1xa&#;SL79etHRsEk>uFwsBrXj+~@eqk!n2tE{onE_wCO95eL*Y+FGs1 zeV_AMcd>i9`#Sga?wj0Eu1MDho5Z}429`js8Z{n`WC zKeP(%pfT}1?J{2u6XnP5diTSg#mWS}jh73WwaP{Ik?bh4+&3!Mu~;Mp9#h(t)-UNM zx_I^HjHplO+7IbEuQpu21CDre>RUjE5lYJ0w~ z4br;q{g@c!wi+%5Ngx~?{|I9-R(+^-=~aG|Q3HxVKF9+}pps~4q>|>xJP;3#60ZsD{k-vTnLsZP2q2ONBCT;lnb=cT9tE=*R4+F+lPtTIqGHFHQKe>4&_lL z*IT75<@d8HoOd}taenBOUt%%1Qo5I&Ub*t4=VkX6UNJM+@7?R3#QXPmL@ePv7{V~G zuvUYlpXo5Efyq%$?8Nk9#ku29=;39L(Z}25IgInV1XmZsa03ALNS6?N$by29iNM2nX__e=B9S z{LJlqU_+W_z8?1f@?l1BU`amhKF|mZ(0k|bbuN9btuhB}|JTeHlM|68e#l&wG1(da zw+}ePh=%e&B}qoOm7x6x9TNT^7cxBQRf??wCUMg3g1pm`$Nk&<391H5KKm)~xf62C zPtcT`O$~Eu&3o+}OWymEDHkEn2+SDrR7SoUmM@533q9BUW9Z3H`KII_#?n?T&i9;q zk$0++hi(4L^|~k9yTLs*BGr?`V>9!klLmgasQo7=?>b_%x$2ouPTq6;s-`*r{^7|| zPlNjb$M-Jzkf@t-NHsq}F~30h!#zGCGb~#hqdnt%O`Vm~?sJq@_1|ixwj(@AIimil z-pJG5CEi@+Hs>3mfB!V4R9&aY$0-$_GWWoU;XDSJ=+2ACao=oA{#A=w(x%4gDOhJ7 z+yPYE`5{M80A|Bmev1)zE}RTbC~@3)#_8o?H7Ev&;MiX*k$Q&of4c#_1<-Vp0LGgH!k&2cwuEkHU@M2v*)>AdmWS2d{m& zS37;V{_G8=(QT#+#pv39g<=|S(( z|HItdhgDT2e&74N?8A9KsE0f#CMqf_7Ahv{F^MqAm?EQzlp0bhQYtd0$f$#cMMgzN zZ7M1jv!aI4=d;dQr!nr|{d?~FzMelGuIs~h zeb-)l@3q(4-eiXPyZ+J?)way2eW^aM_CFd91?7H9mJNI_i z9_=&F2Hza_N!}CPe{#mTXB)5T`t;C#-+fM(=T>jK^Hpc7bEdoAIn`a^i*fta35DCk zKS~#SRsl2!mD{q-sPTI zp3Rouxt@03=B@O8;C#l{!29kV^{(*U?mCM?;f5veIB}3 z8qG^fp^bQvrWfsmE|}t+@$(C+C(PD&dP&*PY%vHCkV2U0TeNqFG9^P#8FY za)owigk%_tAq+X7L0aoge*JW-BO{I%w(`!@F5|<1{z9lMma2g~$O6%&UcN=%#@C^` z*n+R6?^1r@L(=yse zApMB)i|&&?H?n|Fr5}w=Kf3-vU=v(-OB@%qhIb4yW zfJ*S;fb{XoKg5}TF+DNjuaZ7l`Gv1YpQ`*b=S!ca{Jre;#QcRSgSTBOeP&1{cuN&Y zu}W|a7th5E*=qVCmE+vV0@ujt`N}^&N3B44UxD<+%3pcE^rgx_!-;*d{7`u$LM5nF zzHGKkP_6t%t_+A7Y9oHB^!3U=^se-!Y6BL&FMXq$?z>m|@<<6Zhds~9st6yKtHlbc zm4D(4>1&mr{U_<`mH&KH`o_roHPSan`~%XrDgVSy={q8x+XHlQ8+$x2h6p zQoeval*mA6Kt-&3Tt@hPa)HTK=`)qz-7S5Y^6UGgZ&v=2Yo#AlUZ-n{6$GN?@~+^r zqwrbEo4G824{7BpVuq^o7Ug$w&Q{DYr2It_rH`8+7x;0i^x4X%t43R){Lwr)y-oSo zR!Bdr{2ID$vN)v`KT$4l*Ibz(2OsHLYv@{+*;gBzXX@9SB%k(M628dtAUPA=%bvi& z06nS&gdagWpmS!cd6s^e$q`JXf03xm*pa|NMapct8u-BqqPwm6SiZHfO^rH#yF&U( zl`(y~^tF+UQuNWRy;1q=zmvXQ`4<@H#q=(zsq?#;Zu~K`)+8#%AgBCPlj2RvA&OW{9Wg#R4mo zf2vLTTIH{QO8O?{kC9fS?@<14XG-6z{LF0WM^pwf{wn=YNF~T9l@VjgKgO<3EHK(H zx41)Xv9&_(YQ-QgrYETB@9^tb_*CUT?v*~E(wEcS#PlpRJ&o=ud?;Tr#PLe)Jt?>ODrSDYJc``e^!an7n&ItREHmo9c{X-_uV&oRj z_DSzozU`3oiOT=w66u4=>yJpEt^68BG_i#R5r2>LrOJP52!A2>7paK76J&yV+0{1P8KYqgSn*VO*?E&GF@co2`lTc`cJP}?nIe0{+X&|ft*Mt`6 z|1deDnP-$VV@bw}h5F4Q?IeD_5?6wbpaakY9ncK*;G{J~^7}eDVJQ94Q*YXm<2=P4 zK0Ogh@4!=cKc*LlGwfU<-udH6`MJhvC+Vw9(~Zzc`mFQB6^-YtkzWnBGK1LQkz{^n zi424AwfJhnIcN%4;mFBk8Y*CjX?@TIZLQy&r2pO=s$R^oKHp3jM$4fX@*xwFApmw5 zCCw1@K^Oe6fB^xOjUzUE@lTxB5gW)bAK4&{p7%d(u(&Tt6-X$&!6H$lgiM4P@qYA= z5l$onVnqahd|%EEOxlm}?grsImQj0z3(-snfE@--p@~B>#6vXj+J{s0jpjui zETaGd%Q=KaE5S_jFGouuQu{*1I}~Mpr->pJE!za5%tct#u_)dI!?avKlX6}E<4N|X zs2`q@;VT{qtS1qKPs67W9)TXHhiWJX?$lVW-))*PN}54vTS>m?cVBRBbObLOOWNvB zjpZx#^G%l-cdyiA^|O6e>jlO$1RbfqQ!R^qTebI%Kd#hc&d%^9dRKWL)@J!0^L9E< z)lL#EhCJkEaB#u0Gt=oIX_OZ0V7^Ag&Tkga91D_ng}5U9F#L@^rH%KQuv{abcSNfhU1XjAF-5 z3s=x-`Z=ZQn**2dts-&Ke@-I~-zqX)`pHM7kDn?1eeX!0G+X*@ zPf4Ge7`rLF!t*|n5g7|)f={25KKmp!!&}nlEs}oEu=Ir~(m%UY`jTbR|FuE-@)fbc zPGjL2`sLG#&tN!%QTUYn7NWATcCXrJ{N@aOwog1wa5GO6d}v9sh&xsPc80#3yAl4o zJ5}4yWN=+ea{$o<3h;iygPAlJsDTP7f_mbsArG=3*m}cS-DR0qw2ohf&;>al`V7AU z!uLk*pySMgr{HDdnRWWq&|ba@B4305N9P>xXWrf16m_F^mF-H~)yG|rf6;CA6qwgq z-u8TLnQXbjl^H&n7`d?^^JnapSydm1Y>#GY<7V2^^NiQd)=!!s`ilNK5!6oAs@Pzg@$a+s zC82Y?HI`rb#2vf0Sr%INaMu5EN0oD);|}L@+?$=J-RF(+*mz&)Qs*Y`uN;+TukTIA zX6FsgI?r0m>#korU$$K3z0!NgQ{+ADzMuOQ9{lm^6;ZCOTCDjZ*CXNAC8TlR#hadb zzI<^bCyoEbH>y@!7HhADJf~`Zb%|;XZlv#1LGh@60~K>2V?r*KZ~sOgQ z8gmyhcN_5Z^m_d*M?Fz#kYVgNPrt(%&3byVedie`&>4_v7KcES-#EFQX`3X)o{*r3lfFR#oa3G_iJ6u|K( zkxTHjiDRNUpZ|kw-qp08=Z&}X^y!yA;hp2#;1qW@f9d|CH^Kql}6)kXSbb0{vKGWiAm z5(a$2V}yrc3!S1L?S^(}f;u=vudPAXu?MX{OP~nkUQ}BxHfhybxk*i`gIvo`Akl-n z@FJafT1KSPmvNTiL?#TXgp~{BoqX0?WzTc)dwDw36O=zzCKr^Ud^A08D%10oAH7EQ z)H3C}nP2qOI^~o9BIj?z|Hds|#-qEfT&goJ&)272`jW51*W!E4w^6fsTAYt)&->ba z;v~=!@T%iq?#p%Ld00M-Q)bGievNOROh&f605_DqNeaSGumS z7P&65p6C6Wd!2X4J?K8md$u>ryUq0`*Q(zzKF`;ehFVD0WZFz+;h39~_P?ywG?-i6gBoY?!ZH06|!WC#CSeTxOKGN12}K$F%ZD`Z!$<)=6^bDNhBnilp%na3xrr4*4y3>^D{E-|%O&~; zQH~BWQVtcy>sRO(IOECV0Cw;SW9An9AP*t1XyWovD;yy_41>@Mq8x{(@;n zKJ#Qj2OOl`=c1eVp&U6Vc+z<6Nk&MmG7JqyGhf;@~~P5)w!7`K2jOo&N&0@g z*pZ0?Td(4HZzE3BoBPG^^DQ=QQ1mZj!ZmvAq>Fua?tWhH6px1B?A%}&jR5q@wtSPP&agz&@Q2oxLT-$($*KR(QmUl zQcEd>>%>0e{Ok11p+FkMpWemB)QYZ_X|Mae^v* zqIWTV+Zly!V8k&lxj|nUsv=kh zMUV%gmd`rCEHu}Fd*vdoyhHlo`=rlfnwUOnNI$SizCPOep!B8r(pM{g{@c>WJtU{U zxmV8L_>ijQrFAl*BpXu{^%pp+nY|75nFDQ5&mbTk7m~t>W%E;p%xA> zlqI8aAi6b0ug!opa4s|%*W9QtyX@!QChyJKFU(i#xx5c0$eoe$3__mkYKwT)NE%nJ zogsadXjFmA$K?OvM@QtnBGJUbhk;p_lxLeP> zNuO()k$W>UKn?8Vs3057gvij_WZZMJzA$Z_=RfZhk*}l>1RzSWcFHYD(VLIb|L)&Q>bqTyD_NU$)ONu zZo3G#L8FL+N+^Xw$c0Q0FD6b!(^1h_)A{K}lh^)#`C{T{UE;9lEn9(4+`=SoW%?j$ zi?5eQCfZHge4(f8_12A^!`=h7XI#g>yZBn(UHt#{(&7tTFY@Bz@i#tA(5`iy?|Q*| z6E{9B@m2fMt$jS~YgLU+zOvY3Q76*#CSNqQSl-cHc)pItt49k3`R?$RQ zP#uVTcilmz2-l!xPyop=xSI??3zR}4^pNi5igMG;)|lP8VV+&jvP!{zCmV%MnZrjc z=)*G;x!;d)Is}Y&tMtulR`Bk^xt8zw@L{&)2Ft}i7Mp($qbjopKxC);9?FVvIhqGK z)wJNdDU-YCiLE!>sYmJaN|`4MdY};YQ8u}#I2c$wBHv(AaGN+5cxsQneDj&!bG_@m zpL;d;J?`6}PzJEe1y*@&xUz z3>K$`8&SrCZ1MeUF^Cm+JwSyJ&O(!5td>kc9pu7@AzB1sXd)eljQ8sctY?n0oKEO| zh%{&)^ne(*I2C%j_!TG)sl=E&M7(GkT6yG_q^|U%&M0kymG`Y1r#+;frJvxL?C~4- zJfzPsU2eSakiIs2c7NFW2Y#NUaXfi(cz&*-JjSY6Wj~1Q57x6^BwY6>Wd*s=^$3*) z*^u@y*{dU~z%Ri%{U3TLxR>&TPDp_yID9&at)*cY<@+2nOJ^0|-++OwYf9jmx?ZJF;eOR4t0+wl5)uW}K3dH7DqJ=#3? zeE0uwUmJ2?X#XhcGERLwu07{krH#3N#V%)y_O{QVIlRf*9PJVBUi%ZaU+d!K+0XgJ z!|UQDQXQTPwF|T#oC#d<*~-nk;?JyQJxRHf=~Ofk{9uJ6zoKp)r%^FYq-!QTO1SiK z3lYYu$MrugttU+%@zrP{WIn;hLvI5e7II*e>0wYZ~nH*nEfkT|muEBpw*WbtV3c@AuG}TvtF6OM(e!}b1<-z;Bi^FHZ zLRzoru+;627WIxI<oN+Q~s${(&sCmK1u%AF2{@A-0_d0iRHh@ zilHy1jpL?{UAX$9TW6$2v}MobSEQ zIQMCNVW^rfEAH{$=_&P{?u+#uDCi}t)F6^Hq3-LhzGIcE;I=;fIa0i`YV=sWi8}}HD;k2w7kHA zq3(HhSWx>L<^f*Z`x`xq_q~zh1ajQjN=~5gC6))t5D#`3W_mBQK?77n3FNgt@S;A+ zfWqrD3m*+{tw@*KP z`b?iV9r}T1CdJAp4%!(D_Oaeq7z9!7z~86Ono)zz!xo8X2*Mb?AL@Z0oBQ<5Cg&02 z2Vn3OV`jVl^lAMpt`@RiWk^BWp$QJm;9vXqiXI|BB zF)z*Tpf;cj(jXZQk)^$y`Cfby?`@$gitO=?^>B7l#5b9Z9UWXgyx4fSLthZn=KZr{ zfn&0{Tzez@)%D$4r}^*3#~u2~i~PSM6D+U~!cAsBWkNU=t$Celg91o{IN-rsL zPh}_5nK$(fQLXR&PM>98%#WCK#yTUqQ}>4gB(TFMiH1PrQVb;HADErZEgqtf0$%w5 z?Jj<70+t8(Av?lNCw*xVsI$1{U7iFQ3ucYx$ zHB)J!pVV4AZSOR;HlP;pzgbKFTa^^fu&Oli6!hopO_rJY?#92u4|It$z7M>kpFCGo z-!|`mRe^6DUxmg$-qB-xKdCv-OQP;(TzauKW|m*XO;ZnxZ`EW?#`s$J)~=|%j9$h) zY9axI@A(rwlJM|Bs^DD)njVV(kMwG2gBq|x7img?G4T)jqfrxTJ|O;m&W81IP)E4L zIP-mdu2KHJ9v>Pcz85;71w{2VpfykdB_K-WZ&agbWO=I8$M>Bl{tv79a@iL{TA%7G zyHw}wSN>Mz2b3S*dG&WR?J+Wx|9{yGM!6%7%B6?DBpc#?*Llaci%R2-55k@KZy)H3 z&iU_J!wZg|cIaf!KiwnYP95pe?>jrq-@3(ny}sd#%-^}MGA`}Y7Z#0g9I{!6F8@0x zn@w|Q_=MkoRB1T~@5fgWPX05y+lb2<_ZQkNb z;3ZlY`~DpM=;LMPgFJX&V?Wnifrqr47vt!1}q4G-wAb8hC-O9kfp z-NUXgU2(p0uSq-6dAe(+CC+obHP+hd?eLx)ej~~MaE-X8`fm1CIQM$*be!)L=QPCI zHD9)_wJ-beXYnrQGM?c{(=PSue6ivcKIW3av5P3o_AeN&|2}z6u#7+|#D9(sF~n0~ zB0(JCR1rqgjGO+hAM=b7%z$3tg6NR`(S&H`Ok&Pas1ZwO{pIIe0bE}7B|8$Z5A$Pz z02=iEldS!7@=3vJ0;P}-nUD;A7#rcZ1iGLChFMUt@yxJ(%Y^K&CoxtGgL8=aq8zIEJd$#VWhykXgR^jke9{QZ;2snFq3N{|Is zfyh)HzLszfngIRZQAp4XWsnDHph3sCtw+DruQQ*P{XLOT4-b;VOf>QjeSPYA52I1rJ?PAeC&?q4j zQXvuS(D!}o2|wruO*6Vk*aC55>@?BH^(h-&MjWfXXE?_6S*9jq;g~-4l2WhuA+VRT z)yLc&t~7pxk%ZM%A7#-jp&U&{MO-przC{%Dqoe<3Xo5ayhI*)m63Br7l#!O-C1d(o z=2-tRij4X4&@prnx`FSkd}*2drck0e5R5kkg5~J$nT)CEVa_Hz$auScC5L(VQKk<;AFLov z7uo_1Py-cE0tFz(;GO)^7e92m)tLJ(*L3FKk0}4)Me<}p+#Ni#6{))~Sm927o`?lp zJypIeHT4d8Es|2w4&1~qt0MVPJ(1>v-^x>tg`^Sw@mcbT|2pMQ&j9OUcRpGP%+d*lKaVKs*T^lxq!^YqTNPepjWnUhC0c_N|V3m@~9bSniM7s?Tr)jOWa@m>JF10N=<9 z1Z#yt79@cN#g>40(9vu=#~doQ5vM~`Aec`$8`2;d;vpI|Se(x7N~9Zr9_WB(sE2Bp z=;vr1Erxu^22n!q{YAd9Fvtc9Ka?iV@f1iO3hsDIzT>7sB{<_D`Es#Fe`s{8)wTE#NR1@I&EcO=ip4sRNl%-CUHkcx$?V?$&ZTGhkb}|^Zr^k9P3?j z0o8ZPizNxCN&n(xd3$J*n*OIJWP361j!y zCPO)-H;mudY_T(1yz?v%dPCZ0yxaI5?SSP`?K*Rk`9|+|4%(?9=)<=_5E5H2jk5jSPcU(?zcE3{I|R`{>~sm=f@|Hno-yL)hsRRm9@2BPt9-4lUps#7e%5`CmSa87dYiW1 zYVjN~yUg>w@47czhWM7|+xiFg8IG;mQE!{;R7;vR;1#dzxYB3ky$^r&H;j>D7{t}VezY4zA$@g*ETlxXS^Qr4Ke<{c=I=Z#=g(C0Kl(d)_M=ex zQ1H0#oQ790{xhdfrpfcV#cBcnUw-y<=!``%!C$a15M7~~6KuX7PbRzs<15_LC?DI-vnd zARjVYcg5PKo95NCuwv+jD%i#@=D_LfYOdl69nUx&Vg&ybDvfuh*rp}l={wJT#Pv5l z-tw?*g3rszqZy7<9Q&N{T-z|4b44p8hyJN_R2J4h#h5bHcK_@$yqHpnUc~;&tF<}z zIWGvOZ6dA)_-Nu(+pJI*!A?ku3j}x4tmlz@m&?Sv89p){@r+uou>8|=*z=9&JI}YC zuX&Y0t-HXo!!n&CrA59{c5@rdpI9boOI)$qX7f$vGt3_I6w~eQ-R?78&;5As>Gi%V zv|LVuEY>awf5%v4IXgZOOpOaH4)#r_mq6Qz?6Rh@3nU{VK|SGI!bNBjSYcH7)~DiZ zTTN3cN#9Rg8CncUV1bj`WgG07_A1{_=j+b>&OXmV z(>=T@U0lU}({ceHbp0K}rTE6~jpk<^i@XlsTb9>MubYz1v6eeran3~FyOt@YGt86N z#UF4@;0-Xhnm_hj;a#FDS+-k7JR9x2;2``;y~o`y zu2?N|^*C?m1D+RHX7U8VR$e{xpl7D`gX??Oe9l<%V_^=ZK&A^4XhO5tfSDW!;PZ`# zXW0H8TS`GulYm0!QF52LMw@ zBH9j3m3xo-O?wPSqHXR{u~lNbGUidUiPRDZ@5e_I9)l5RhD=BWc6EvDZq}BNrWm?m zH_dZ3xA%!v@N#&^E#7FpFL(wG?oQuljyqhN&3m;~+D-PmsHF4UpIFMZn`n+ZEKh0o z7+=n_#V()4m7>qt`H7WxCedYBXem0pfG{+|FmX&b70#!*5spJSQ$64IoXOF_^cLW` zrv7x#kG@plff_?xqtLm^YXo;z!Uz*L~jQ z&dc3*xgMjVfA5;a&ACzL>nwKf4##7bhfH;*GcDISCRvlci@fEWF1+7+KRejBy}KNR z?iXASn+GkYxo>lAw=D9_;26KcvDv)LDck)lUmv%aU#xXF#Q<=Mmb-;wO7Sewo^_nA zJ>b39x0u1U&fD(ZsJ-L**gVHl&i+>Xap%w}Gzd0m8107~NP+$2V$b=w_GJPPq^~6QCAIvicmSR|L7aD{(u)~oQ zsszTCw5~|8U2LAvPDb*f5$b{Q=@i>Trs>hCvT-D$X%6v)hN;#*XOjD87Mu2l`+Z|` zs_mjs8xyNw1R7xjM^d$@*kNC0rPG--t&QEG@Gl<{?ULjB>Pf*j=>~FfXSj};t1UtI zzbw~k-tcQhzB7Mi%CH37!zQsR%_V-0hc$MS%UhoRW4)-}s*-1?rz z1d%4!xM_uL>x3?Bi%1J?P-%R>!Zy|Pi4n8XwqRjmkQrCfd_mMxKN^58XoNh-fFSUV zmX)?8jtYW>z*kmQ+CGYH%8UsvvTEhxbmt57%Kq!<_FI|DcsOXg+|%ac`|proj$vOl zVU=yIDc`sd@rcVUjl9#e@!m;X{Cj4V?e`{Ajd8x-*xn=PhbYwYQ^klEDN z`oJ37S!O-um_L|pe7@Fpiz%V?%1qlNi>aV>$62;tm`nq$f61~j^2fI>KgTxNWEyHc zH(O|_amBf8ZqV3uE``HsigRsmnTCv;*4sA6^o~vnHorG17JJVcniOpOYEp0nEpGih z$2QAkN;Et_x2=q+IKdw*{4>!|0+kRjF8aCc98+)WGe4&krd2QW2P;0E6wLaXBSDr{ zMYsm)px&5}YkS<3X1tioFM|=|XBU#|ZX;#`#~x+I(hay|AycYx(?;6@HuI^C zw$n|G##b9{Uy|()^K4I=;*A{_+2%S5|1~LC3Y>a|G8%a2Sq&#+LaZ9+IKY z>klR$qr3@cLN??<5tKp&R6)}WzL130i7>Q4J9I%W48tf`kC0tRfE36$!r6u#0{Kt~ zB~Ss?Pzw#v4DFCOEhgBF4!{Ulzo96oB|jPm36KIo$bf9fg90dq3aEhwXohy^`i3{e z^b#0^VHgGLx08Zy@IxFVLJDL+9;K8c6bhgSN}!UhD-#OUPy-Fn2+hzAosdmwcB8$} z4?`jTjld{q-?5PU{lONt%1$@{36Kmy$bdX3f)Xf)N~nffsD~zKfey%8!-~)W7=|&h z(}e;M2MG{L;$JFcKo(>}E<}$}Eod38E&!O)6F@rD+V_>Coxgh{4kOlcr4CPP__0R&H&1Yhqah9wAq6ra2MVAB%Ap48p$Upu zU<=v_UC;x)&<}$!3{7vb0@SMcgMLVa6i9J_RAErwDkgCSN}j#ff7)ItL^L#T~^ zDPK@mXczQCAN0c@jKCOJEo>b`gC7DA4~dWhX^;)wWHcAehe9ZZQmBAxsD*lHgl3CB z6l^2V2}59Kx0(d0kOA3{2Src{)ldgb&<@?u2ZJyIV_?_GAlP-<6k5U95|0*sLSsf# zAPw4zXlFY0pM%MT0w{(GsDTD(fiCEQf>Y_=f1~>l9;s%fXafrwL*0yq0m!|9K?zNP z;t;JI&4g^og(4_{VTSv1v@*oMYN&;JXo41KhqMoA;b=GX!61yl7-&(f6atV0sStz$ zj#@L&EXWleN}vqNp%UsHY@kpGHSwJYN&&HXoME%fNtmw@ox}D!Omf=AL1YpQXvDfAP4fG5K3VSJ9HfOtsqQU5^#X^;U~kPC%S z3T03MRZs(U&;U))0&Ng|4_k?LK{xb*UGyS!7)FJUrgR|*(jW_Rpe;lT&LxlsEetOC zXr&nM(PAhQ9%`WhnxF+bpbL7TABJEQtP|Keh=)W-g$!^rNadh;PzWVZ4xuXk)j=b) zKs$6n5A?$z+LM^mFJM_W`3_}C$BIP<-E#Wb+PNJ7U93(nlJn_IVSwH4Z1Kf2bohG!#NMBrlF6xA2B)l9j9EKX7K_Q%)4NwZ{f0@>Z!lZrhqE-Y$hd%(S89oWW)J z;?jp1ZNWc1k=LxP;A^CKk%cW>-3)Za2AwgyK>}TeihB_rjNu+bdp8Rrp?K0_6DuD* zEhe}JwZBb#Ecq4-#3$iDoyvoVy2k^~o=|Qv+J%rYy z+bG0ZbP5@-M)$JCV;@m6_)0OId+Xa?A!GP5{1&tX-HDEnZZ|rJJ|CiJ`UvbJqKg@} zkdY2_KfVz?fHtEC(IOTwpX!Y3j}0zH3-E`CuNCR=xp*ffGt7p}M30~=&}`y2pw*{S_xGpFZAGn>OMC0)XQ9pVJwWAZs=qL+Xj1HqaMG2w@ z&;is*NmWtDT;0;DPvxUOXaXwElxgThw0~7hC^(bA7!mW)cxG6Pwyh%PXm*h6X=pKi zJ(|Jvb!ZlT16qS_LKD#~s1@Cg)-vBtbO7Cr7P0(2XghwdmlDT6h;KPHLZ|>{UEJ(AKs4Nk7hDsJ`Hv8<664V09uN6PP2yfvJa@w(DCarhoe-?HM@ggH<6DPEo zWeAP?F}+30RO!VE(^a}#$*9Osi1wrHS2JC#^k%gcXX8a8k)~+6T=0CQ(Mm^1D^~cL z(ki9bp<>>n$8@ci(h*}!H|<7@2bZ%vI+)hq&eOSKOxjNOSxiqDq4>Aa$A{4MXxXbY zOtb_&6h|h|{iG{EC(>~9&?#sRdVs#4g&tyA8R#Z_5EYr*uS#joT$$Osl%A9rk`d1) zN3`6$=zwz!hR@l4oP^VgvTD(w+4A^0(;Q^q>R=sda2(J!!>! zooc?dq!o9n_p15Ug-+m}NoLM`jRmoQG&G$pOhxAh=#uC`wlEPrfX1VHxgo=kMylqe z`LgjnqI9RyJf&wVO;@@N6`9Iq8K;S@Sw@aHBdrw@A-3i)gGr?SJ2?Yv{cUXUX}V22 zBjVF!zY^Vx){?%^`1rM`$;;aab^&v1=?kpsLdBn0JWHc>)9aW%laaUOGI}k$fFXRo zvGBL-g~S@fz|74hCc2sYV;(Du8X?(Ui$yF!n_#w>#dMMVROS(jzn%zgZqPFEBKMmp zrtytwH$^re`Zjs#L-$ZeJ*a3jqp#Bn#qc)rx@=uT=mF|r02Qrlpo4s)eR$E@deBd) zvo3TS3+O<1vVt~rFT2KObTK=KMsyuokBU}Vi;7lRjczA>CHf%g%U=&s*(59_Vg*`^ zrlW)N}WcRb@Jx<{$p zd+@R8m61J(MeAN6!(u<$zD#Dg9u+H1W8Uz1z={~Gv~1&^-!Zi0cG78BWCpsIf*292 zV4pI8I?2lx3U((2Y3I0eA8ovs`1$0sfdk{ks5n5LiPoSS$ZPRazh8Zj`MXHB*>bZb z#QY+wqHVvavMR=^1`%Exvo1U&irZ&8IZ>*ye-Qf(QJYC*C=NUfy>2v{xL77SncD^8 z0G6cT+w}&s#nql`_y9vl9LJJUivkCT;V_akk#NNney@qV-fRjNODT&M#j=`dVxCI8 zsEchhlBa25*>BJ=XedL(AEE*EqhFvsA|2(?g_;?RI#Aj}D3~0S4I>W~8!qaibd?N? z4L^LUoW2beD?XVxvHcn=dYYAHpi^jpLDWgXr=XjdEaJJ@PfJ9_a_#IX7q6Ced?M=- zjq~Q!XGK=Z@e(VLJB@fzAdx@Q2ssrEqL>AV47|k@TE13}7hArYt=a==#=CDsz2Ff^ zULu+@5N+nos25Cy#+tXH79iKW6*VhHuH(nu63G~vji=t?7hj?A1}Q>~RO|7Z+J^sB z%piXBPU|;uY5PEnBG$@+0y&mq^hJ%ke8n(TJ`m zq8&YiHj8-jSC5K(j26oL{b7qNeLHiP6Bg5wS*}=Tye59Dn2kwqM@^U~4&+&W_%DkF zD>KETb@DHqwH7g>@w2z1raHuO8myi!Y_Vh(i`09cJ_=`RIDnVd4#T0T7niDmmCPUnmZ5BPvs^zM%E~ zP3Pc6|E*$)>zF$7d&Vc$(2pKuoa#bn(rnw%b!aoX9&Hp#HY?F>@f;hYJLz9lY?)ZD z!7>@vLfRk;-bX2E9IY*81*0U4tmptM8p20b_%yx;A6fAsGSGqlUu8fv;(Df=X)Lv9 zBtsj>ST%lId`RZ(2NIMK5y_z_Gw+SE6&>aGNJ^IkE@r`BwS!T5eCo!{F!Cs75aFSZ!Yf2NYlkovOt*|?4u3kog(TNBy>?K%C zx$UB*3Y|qU%BDkv>{!HT+EwLZ?svMQrp7jrYy{G8A!>&;y^KjBNugnShi*CWUrZJY z5>@sKRP5_DPDy-0$#!snd>Cy+e?aTd$bs{IM$Qua9!k0h6$jD59n7*WeFi*bfK!W{C&3l!gpnl+)4G-4nuWKdiePc8C|&M1q{DDv^asHtbR9hCjy za%LAl)w=NeX%xACVi0FU%SOd(;4;x|Xd1en_*8W94EFG-*px)$v_C~H2#KmZ^eb87 ziBC#>2^H~~N)Iz#`1esU{)?Zhe6l;emQ~xY`Tc5g5&nyKQF?-irvSo3W5l!ea9769 z2`_-A$hakENK^|HJElcuvsrv0sL+_u8#Q&+Fj*J1!q$eDH-;CR9_Xb%(X-sB%%83u zCV!E<{_1JM#udF$3uefsa?oTFc@lpX&3fwd*7T-kYkCQ@*BCGMvfB`AxtgisA-@Kq z#af!)W1yjq8_+%EwhnzBtwBYbs6<6uC>PTy_!9I%v=H4w!RMjd(QI@t@d@bDXaL|S({lZtvDL!epc4x z?%znwQ@WcXh?LeG;(Ex7s1Tu|q=ZtV^Ho<{YLQ({7UBl-w?*WU%!!qBzAW1Es`sO& zu8Dg;HW&}vUy(yAT_arc$;3^hta8!)9J*zr`_N2Ow6ux)Wd0J+fbsDAQ8&{3V?Us` zj*`OqL2R(%RoRK-P*GcJS+e;3?q`~)tqOD#V`mvEntL%SYN-GfwUmdhqttUyC;f=6 z)ArKUMcWkTg>rr?OD_(MY}m8EwVv>!X=#^PtVRRI+aE;TD0eKTPkz$4X1-}nukN&_ zC-lVzQy}LpYx;rTS#s|t@Yx1nNpkim43_d!(TyUk}C4)17Jh2J}Hj zpE^_&N8ul3%efg9EongMUKO9;BjXd%N7NzX=N7Xu^`od5ihR*WQB%)#fArHqJ`VpN z8`FvIqlL7iJK5M~bOWup0sVpaI&>m=t3lUu1Yd@3C(l*J!yhrMi4*D-M2T$nv3j8` z?@1k2*)qQ?+k+TF_8b@PIw;d6{z)Ffb+a5fWKdHqLv|9gmiF0y!Yhsor+j9e8BXM8 z!3BdfnQ-A}i)QiTU!e7p{-`^agqlmaj#kLEE+~gesD@f-fM#fePUwbS7=RJ5Ucu!p zC`jTi0yF_euj2w9nhF_^0|ihFl~50D&;tWk_!kC82#iAYw_NYp!a^YcNstCPPzdE< zyc}&`()#;o`z7X(e;eufi$}%zvP4w;5J*ME0cRGgb5)AvS0dx z6NyMdC!v|BA1y#*&p{1x-e+XcnrYd8iGoK(%8&N0Pj=Inu)Qt|I9#p%5qD2F!4^2TQqS@#q zv;g&^WoQgqgPwpkp_9?B8~kSk0|W+$h()#S{@@fe9-WG&p>b#~x&$pnQ_yO3DcXn@ zpzX$2G4|=99_$s^riMwuE$ASAD>{Z2p|!+ciTZD(51@%?EgD20Ky%Os(PC6fV-P}3 zXgz91+ffVJi(1iPR7b64R7@IeIi5fi5kb_B=AaI=2z8P3f8 zA8NmeHi{;o6VNntBASOzLQ7FUT8+k_&FBefwB;@WlZog@1Lz1Ei`s9dV9@}|$3nFf z)P!cCX0#Z!pw*}qZ9{c*0JWiZ?p=sN6Hq&vi8|0?)QMK3t`LDX0&cVq^`K*@md}jk ztPo8_&1g1iL5ol;T7~Lp6KX@dQLUINL`~=@YDWD#m=8@tt!M_SqxopaMxdNP6k3bg z(I!+YXMv~*9YoEjdnXG*Q&20KkLqY8YD1gRD6|)~qa$cE8hr~@f+nLA(Oh&AT7C=n z7x)P@5fOv-qbH!&3aSK6MgwRL8jF^qQ_wneD%y$0p+o2*G0ZD_dMm5u+xwQ22VbOn9^oHKT1JzL}B{@#uhvN5@bL8h0Bd zgQlW7nuFTVA~XuEK<#K9s&!CeAp#}>U8oryLanH~k_Dj2sMbS~p(eB#HKR4C1#LsE z=m4st_S;z@nv6!F*{B^YM&mVBjB+?5&wU`R)+zQT)0)w#Q@HPON^k^*VF(6c0Q#X1 zdZ7opp$j^p1KObtT8wX|+P|Eb6i@OKrv!7RPYISl&-B*AarP4}yjF5TynUl7&$tq? z#@8~Q?07gT&2Z1KN1N=%v>EoPdj3h=*JG@jVV~?tnlU9PGAjOZj7w(Nm*^QxjWZsY zVgJ%p+`4O~eUizP+WNpO`=jnq_dnTw-Ktsmb9Qj?9UrCqEPUKyraR>H1^5iSSNQ~d z5kAT(rzhcS@X^XYgKx(ts`Ss{2c$QP^)+=cj9I_-2j{2+&ypZf`f!3t_$<7xTf!Oi zkwNJnX8l@9IKmWOK%GXJ;k_JP zhy{v*EWzu_ufo^hqm(}x-y)`Sv?9_k#rKNo%0JveiQ*Gg`p59m--La51M5OWBoQ%3 zC8)<|N*_+(#TVdp-4R}a4_}FoQhpx3NlbUh>5K5ac(3yF@na&rQ%+xuPxw}pfb=2J zXR?UUb-we(pXfWq_$cLP<7>ophn&6;-;VbxKL3}@t4#3;S&4iIicZ;rUWhc zLDY)&qdMA)+R$z^3hhMgXglgaTTmz3gsw#!&`h)rJrk`#U1$~RMk`QpdZ!Fshi0N@ ziL31)7AeL=#ZaUE@&EP5tPp=)lG);cG~JXd1o;Jq@ix z)6p9AbhHZ1Kr7HSXc>A2T7n|szurWurMTt{&#=&Y*LbY|Lic2N;)GV5?nx4QOS&g$ z{AHtkNonR)i;3(JVA&RJ!x5_(?HS|@bAau_>N2$mrq zZsSgDs884&k2WauJhwI?biGR(6Pj_RX8$*OdZy+Vn!Z+x7nm3u(TF6oplE%&8R(|-haVt>1XBTzt0jspI0~rRP4|aT7+a zlo{z$8d-6N@{Qx-tCcSu7oV?u=D7G|A9(Q9S8W~Gr87b+h=F1~M@Okb^( zAKQP}X5TO=)KViRxU~wUkzSCae1g)*3Xa?>(|0P3#MdZaFfKktdF#0N-aX;vuwRw| zv7B&8lqjDuF5a*F;5{+}k@PLfSB#6#Q9fZ@{E=$40bvb^!y38b8a1InX(T>HdF#0N z-n-?38k9!TmnfexF5a*F;9bXUfanD+Dx%`}3B>0ppD-@|{~_!<;G#I9#_yKfJ9cmP zZkK}~hzcl*9Rx)M0hQy#ioGj}MiYDNEuwIosIh?=Yl0PfY&aSlD#wYaA@&+I_E-*E zu*UzJyF$0z#OR;loy;OGX}{}F(_QdHDA%s zXSfutlc6F%PR8TDqI=5t-PuY7aA1b}zub)Q6@=if@|2;{3tlaE(a+0JDPWI`XMIH< zC*xhdqKC`4=U4Ps%Ow5qha6l9qF?F-dt^N8EBZJY@A4HrT*f`WqQ6=yS3rhk`ei&z zf}gF6#>tE>Uu6iFanG;luaI1T49g0T@vN`t<7B+c=XAUTxv$mC=(5_SD_n+3D|pKI zt85ovDdW71@A-ah5$GNNAGc_}YZy-9f zsxC5AS|LittI1Gl1y06at#{>9=+|XD|10`d8PEEPKFx*CP!0Nu(N@O8zoPrexaKSR zlXWgb&dX3S=%9?R`-(nK#>YwUv(;%InGyF@hB`9t`4#=cT35k$WvCQ);{h zRzdLO%k*M^C8*gB_o_37Lz3)51^BTZKX`~}FhD{J2N)}-6J^*3;81wTQP(7ymIiPk zJfz5MnYI<+K6uDMzzKjv{yf0D@Q_oiS1uYHOt}F89(d)d@&`x+>i~q8tWjh!+E%9Z z05}vL)1pxC8A-C$lYo!{4>^)Z14yi&2QW)cuLMXGZUndo9#X4=GVKJw^K$yS3?Bk~ z1rMpo2bty$KUm}m52=YCK+qSj3Wh{DJfteIE~2U}z#j0BnhcU@qXABXhty=YOv?h8 z4G*bF-yTpCV)a%aJcM)rr1wCYSegg07#`Aew*ZowJOTIy9+F2xyJ!MHKX}LvDp;n4 z1B^ujcDYxa(N=aAIe#G!Sy{Htb)9CCvl{Y{vzxY%g%nH9b;v`U+C`Ql=RV{iQPxMM zk#iyP5K{)pv}&M>Jj8*+U9`&5ArLtTA|4zk3z7pP@^IjUCb3{4say}RU=Ror3x`5l z2XHjN6nKb*3jvbSmIBO%#|<*0;yvz~86@`(pqwC7ND~d0Ax-Fa0e*mo!Mcx z7y=KeGoi=H^hAI|QpK$;Zxb-}NIPO9_) zAg7bt5O6<86C;8FM#*X7=tMc)2jFOUNM#5;O{OmdxDFmxRolhbCo}Q^UWSJlL^3>q zG|Bu1;2X4U5A^#GaJkfL7%%vZ1i11HhVKAKXnO$W!$Yzb%e3Hs7~GzORm5AnosfJEPDfb-xXbzJA7RaR|;L_R#EU9Y={s#^e6@U^mw~-0%O5j9sof>6oD$WuWGiGfL}?Iphm@+2m?-3anHT(L)O15ANuo{TS*)9YmV4uA*YIRVdQ zc<#beg5Mr+AEp-b4wKmg{sGJb5R1nja{q(YUOw&{_39XEecZhkvlY@DJQ_6pxO;sG zjg`>cCgWWzFLL8Sz570ZUtrsO%*J` zCuwHAzT=wAwEQ*6Z;{HR$zS6aD{5w;J0r6Gi_lbz!tiA3;?_$NkBCIvdcW8)o**&( zbBVMKnQ3VolRpuOv<)~2!E$`&8|DWf{ES;v zU>a-Gv+-0v=8D?GvNJ*lg~DUf+16*;Y#Y$Gm6_^{WhZXv6_shVq9v7?@PPGhH5{Kz z+Vl;T=4a|AsC%?Lx*|;dJeHk{6RS?qo#>Wb#)vbkjV6e3ZerYnNR>vJ2I63=sQWEW+$c%VB^t4cMQ6TMXH?_dkm+om%l z>r1t+v~A3tZ%RKzfIrmnYpf>Pii)~0wLx=f7pVa6u1o-6O}a9R02Fm)IsmBHjj^fY z(AsXqOnjjm6XB-TVZIjwKLJSNF@2eu?v&#)UOAY#t^>m45lmGI;Hpu~A__9p|AB$) ztvX~J$0PvSa~$)X7Myc@3iA>Gp32OCG9soCGjQ@WMo&@pV`%h`OrWp*n6o%!Mwm7y z7JHeZBFv-}>4qlSehhE@krC7&h!4+T`tda~CYjhdRWj$W*sVIR&a~>=Rku1-JI1+H z|49{*0JUw)YE4WAYWWj0EWtK1dG-TM1USc}v#c;_1x<2_g6ozh&v`((c#d}_ZIUK= zmV(N&V(7E>R5 zfO{@sa@A@xG9uaPp}aNt*oCuTD>0v+$}c$9u{hNx-|KH}NjWg@hF#(mjb$2-(3n~5Uc zU7F3rQ;uwOE1U5n@V{)POOzu!*}YV=##+7TVnPtqP}{%R(+BDB|z(QTBnZIhDcC}rEwqt#4kB_gmRzFeSQTJo&>vbSw0 zVhscs^pZ6YZZvwnh6y0Hdah-{Ax;w3f(LbI@>&;lI`IfRD#reO%IL1TAC}YB4vxB*zW)R-VY~dlBQORaQ zqjoXPK>fB|OmhIvT}*!f9d<)tnsLT%_`7wKJsYjbWwuw&&nE77-m0>?Rz@Z)Ir3vO zOT$%*9xRQ`)a7TRk$ag66u{YgnQ%X7Ds`!QL>%;T;3a#NQjai}`aEd6yqBpCl0ReS z7f_C~G2=@reqbNdoZ$cMV|r0O*1Mffbvx$pCx~!?3JFgAc=~ z#i4tL83(uzZ9l^70(3wglS8twN15T2V=J0;l&J@em2;GN1Z2GU7&A-lt;2ptYo*OJ zi?lOu#vWpWCXa+!?R+R89j(uo;`~BBj4V2oYG)4c_Vdo{VmXF&s7(Qk)H*b*fSF6m zdQ-r}0@}pESYTY4>0s_rh2zlB6EKI`(2^6(ZG$a6*$u{jmnYxgv_d9HO^BLuB6@KW zrdG!|^sop<9viB7iWx@G*{7Jr1U(HSIiTB5Gw~!R2@+WyqRuc;0?^n})vnkwYWp)x zYa*#Gr4$<8aE3VxgX23qrI_K=UbZVJ_S44)DXIl``e(l*(^%?y9a`}xOgTFA_)o@1 zZ@ID>6S~_v3o@Q%YC~QWb(X0|<-bG2&%#IsaPwI*g1tj0&NAx=KJpwh2ZHhKIc5YQ z4?WK;rW{xBhx1G)G6Q$G2+`@t#zQYM{%(M0T!BH=if&wirne&XRS01#j=ahof~LQZ z-d!WP-=X=}r4Y!y&RC(-Mc!aU5_|3bVhVW}``tbp*%5@se@2@QAwGZIYeFJR2Ep&Kut8ZffIge5>6@_xlw zD4h)@y@LK>3qxmK!RQ09(QBp~Nd5F0);d=7=WDRrjJ*G4+EuUyqL7IH9;EnhXnv(u z+D}I!;A3D|B!;1B|1x=`=S7!7!0OPLQlu`%E4pCfz~* zKKV>?g)`fEvRB5PDl49l)dj39u<;|afFi>y>zX^H;dSdL@UjIx_yqIK+$Am9-@I%i zKOSnIR_Vx{`I{x>-E1bS4e8Wu2UrkxSF_VeV_%@yA?h^L%#E!IwHV;WRsn3L8~YRJ zGHTehK-{fiI|G3GXdr@X)2vy;r;SXu-j~-kHZ+}KBS2R!1FF*y&9Y+wo6NE?0QR$N zcL1UuG+R-qp6yV@I;OdL)U6|bML@@%X*SX3!_LH8bvIiHPDapQ^=u@_UemMvMM<{g zQ&E{LYQwQ4LaZFS6Phl9XKRA&0G>5fvW?lE-oOeAEP0x@tboOrO3}KAXDdSUZR6Pl zpSfd_e?V-%Gq??WhNU#Tk1H_>TGEwD{|Y$M<12A-*ee~x>L z@1$*cLbCUhnxM15{t12x64_Bk+nAc>WbL~$E7yu_=PI@_Vb*@CWcnTFD$}xJvo)E0 z$0}9v@_cuLS8p9T9xImRctE@9P(u^jHvn|dcU3;~lhfW(pJ~Z>TUOL=6T3id z#VtKqn)Ip!FHp)`;{pcEN{NVvme8i78Q-wG!PjBlY!k3FnR+{rn6SJHX{D*&Yp8tTI~{+G1H{2&A9TmC9@;v_o;xOUURzW(fQ^I<8?4Fm-*HNY5dmyRaKw=S z_OaTiyBc`9y+f&;4)3qZ=2E~NRh@lL`u(tA_5jqjMoqR5Mm6-j7CV5^LA7HDEguv~n2h3*KxJ#@cRwVY9r9K`K@3~xNA2%zdxmf*JrY1-gm_J8TFAYO@w9X?NU{fP@8C|fL zMA6Ph>}~qw;>TwmWA+E?<552E{@g0YQ&1#npxNjSy7gm9Y_S;nAs45*NSJ8ppoasvkl>h;b=U2jV!5GwSoaF z1MLSugfF&Y$1pI4)Juo5XQ0Fcwho<W+t$!8`#pf+csw;&n+93C*4_f|HEka zI_}X{=dGK016wD%v6=`t&G{j2W}JzEM(EO-Z3UHH)tYSw<>AL|Ac`Phnzv&s8Fg2B zjyZcO`l7U0%CVpk?SQF6$J?>{DaTdxV|#WUp!yE1)!T73(2DZ@gY{MHZ^<2LPFY{& zbYN>Rj;j*7O@}UZU?WIYA(8zCyi_BR)scQwzax0wg4T9qn?u?6I(-T z)Lae28GNb^Lsk(=@6BE|Sf(fcbWho+PDR7}u#I@f;yaqV@9m3@PGHH2;vsyv823E3VEVhf4RJ%ic91djWb zJ*ze&%MiAw0XBan9iBNuM*ZQ}qURVidW3fcR4|179*hee%C^zlCPf!0qn&LixRS^G zckBp?tQ}#)UB(*5W`MKB;jA}+n#0*pB48|amj&>U;V{<&Ywifv31I3-HlV5Xtn*gP zN5$&EbT}W`0Zx^uuDQFp2zZ{hz z#;g>zc~(lMu0)soBu9mZNZnKB^Zy5*`9JtRWqcFp-)u`Bk)w(j;zh%Oj$=5gHj}MI z0Zg39Rwi(?3>V69$4vGjslx18>}Y`a-7Iz}L`)GHlm>t42H?pwwi|(gR+m7QmHnBj zubJyq_1}h0x*=&%cHYJ0dN2U+M z9CkUaKbjiU25p z)kp7{3pOCPg6^tJYhe`n53%(~1?w$k;{xax1I$j9vA{2ObB3wZTV;M=Dvf}Hq^y<^ zFi^rV2hLo|PN$%Eh%49;FzC!!!ERAgwpXamDs~#+n^v(6H2`m}X2aansmQb*7OU=f z*m_u1z=u66Hn0!$;QNx1f9!>Iss{a(!`1-t+#L2TOU>rdj$LdqW#iGT-RuMc-|c4O z2#npsW>FbDzPN{Vhw^xIE0+x>klo8R0*G7eWz(U-JkUwZPSc+9%$z%y$8GnqbtvkT z2b%Ibdl0gt#s^>)0{rg-Y*Uh}@@w*rxc6lk2Z1%@3cHGA&|YO@$@q2^mY-%c<|>;5RP1|= zolm4TU5BB{jKXff9>k1nH(=cZc`n|7i4&mvUu-9+WADG%JCywfj=jnHX<#SY_YNEC zrcS^M?z7!BYAt^74^#`<_0bbHLjy|3K4*JFwm+UjMBC8g=d2k(=nFO#A|>|)`$;_y z=e}gC&_0f$=wd(j=(Em}n2j$IrIoRj^g0?neFK4>mWdz`&VOUC0CSAQuzQ!KJkhJS z>>ALB-obpX!(-pG0c8KXL_E4wQE!Ggs^q8F6P>7575yo4toNphK9(}k zW2ULp76y7ZJ%*e%&bX#Vp+Oa@;O_(VYbeTULxv!IHf2r2JA(B75II(Kwz|HbIvs`9 z&?iv#DR^29eOt9jGq-6$)ipYmbM*G##e8@fVAbGj!TO3+1#4!i#ikmkQpf+Ko1=?H zeOg+fqggYNp|(EV+no15am{E;Z9Un&J8SE^1F+Q59{_i`)zuflERFxDrw^5uY$5t{ zz`YQnuS>Y0#7Pzu8m^B7Fd|&v7eG-sD1wb{L;W3SsFw}(OF%(JBYj1pV0{GmNQaD# z^)mo0Xsk~FaHX-nAt5%AfVqjj1{dc=Cy;e7jDeA8QWJd-Xp29a=)FPJqbB<1L{;rb zeRB$GH8N7)0??h2L^G}!1u6j@+)SSgps<;q96P^lrXO5Yw?32BtyjmHbpAS%cC^mq zmZHlv#OgA&f;Q9LUu$xAM>C`KJE6V9V)S94Y)Fj0zJ{{>iI%q1w*ZK*x74p8VKl?6 zA4}=XyVY?pQ=qpN2#1!)r&}=qbrLBG{ScF%!(>r;vWo~c% zX#hR@=*gMSoj!VUDD_=meJL?}K!5#A0E-6cgOGcY{u!i8lk}SatRA2zhs!Sq=pO*M zHc-NV2w&VJ>u&+6<{&*ec809|0X!e1pAKNuVEtGCq2KELk=wV>YEl{;g;sp4j{zWQ z`1f0V7NqA6fkrZ;oFPyhGjq$z%v_D;B5d zBgkx-Fcl&f$lp%YSB|lpoOvH_M8I530+(QwZWJE*0>8eiyDL1b|ITjd%!|I3@NrjH z*8+$}$EWK15@mtY^y{ELj%oTWP@l2W_3dDcMMr0V>u79B(O+pzr9Z*XPU`EaDXSh; zKBezNSxfM=Q~GrrR4w3&{v3Hj_WHWsLIZ5}w?4;>y4D-rzXu)A6NlZ`FY;CEa_w9O z>HZzuxDIY=E&5fI14w4Ud@I!gj`%LVM?Wq~>6GZ4ICK-@M$CGBm?>(kt1ieV?8)>khsEwYe}|yH%;7W%C;SC_vEftaPX~E(Z`w= zQ2EZ{2O}bC_(pBExdmAoqHHhDk1Qk(dvS@N!}tw%6u_U~!2JWLP3-nJczjudEF<>3 z{f4Uo5F^93pkyR)ve9Y)A03D%?DnVXon6 zRUrWkrUnYuPQ{HrEXY35)uGqjhAG5T_gDyzSnpu~-N$ZZKZm{6N^|(cDHNh?Zzc|XRx1R+u zp!F*#r_p}`4OeNvy;e6Pyu<6udFJyj`5)Jn)9e>rwCJ^;(O>~gqmJQRO^E-g;T$Xv z{zXf}IoKaOMfu@eJs`gf=jxIUmH6>Sd51EOARVewtr1dxDr-LbCC~?=H?9=o&q}!l z(<7eTklRAM8x+C8qU#0P8o~900Mj?-65v1~33nUHovKDzl5w@4xPAHx*5=TR$DDcX zuAZHn%ew+3zgo)uuI^*EIE%L(Eq~8yhEbD<*FA{6;4530+DsQCVfk&2anZN^ z{uLb@FUjv$=>5`RGK?cs#IArqHRIkZxXv_~_**u2j`W4pH5|O6Ft;Jg|Kn@9wJ`P# zSqI(1j4Q3@22eEJo^VogxDJ%PA3mSMHPC>FZY#HivX4i5wsNzmljBk2ZCo^M?Epu} zXzDg@I%S@K-fiPxrTs0gww>FmQ>UXpbGf?ebo?ood#$0ZU5V)1-?>q=wL2v7hyxr1 zqZwW-o6-1#TusV69%Uco{9Pn$KgbiH zQ&XqMqi09Ckp%WT##Nv!Z4NNQz-fm4 zPP=m}<4)uqE#Y;Z{`TJU4^34+jcfd!7r0nQc72c!9f2(e_bZSr-*vg_!ifI zc2!~2Ezb6t!Jlrypl3xbZ^Mj`jz`_*epNHpDN1#`?{IB==*i=8YK;Wdwojx&5KrS3 z_S8FEB@g?!M@I;I=S!JA0d2m+6_8?oxXZmEaQHp$TiQO2)Z)@TuBI!A>HC};aUxTaQUNRWxfpz40uQtek{5Cam}A^D41V4Lq1+0-Xm{Y zV4vh4!21zyvp~K(ELN8U@(n%drBWvjnSP+jmW(O-f5MX)@#D(?U=y&As) zEb$5At5WtAI68>$ok<5B%30H*>U>4YnvS+A4Kh-ahf^6d$nSC^0TwEhA|PqFRhPnPVDBG(*Vpu2VXG$QeRJwBUqTt{4e zz7gO!u0H>xIzV^BRbt-CU9s>^D*M!`<{~Ib`tZhOfd$_yiZG2W zYsgQgt!v0+;oXRj(b73ml=W%EccYEgf1UoPx6Etq3Uwns@E|r^N8BJz-@d9Qp^2@Zj9Exu}kZE-?sSj^Pb(4+cNz%hz^O z>yc>y9|I>bxXS>(F?i$$G=Cr;NYUfbu7UhNq+k7#%#&9ara}C4+6+g9G+Hub=nh%9a z#*F64?V_op`TAb;L1)Q_+n-r_h$uNSn)e2YOQZP!kbgUx-%sh5qdjBzL6mJB^8JBd zNZAjgtv~Q&+v)s)kEHCYQJt}T9N0f*EFVz8ng?<3-)DYc+^*Q_*2Qt802phJ;>~0E zZe;tY9?w^T<~@)6C-C8vEe~~@z%SjYP)(fZ=x(wXzymQ(0&~?+5+9f z5{3J0;s0`@>A%Rh67w71+m*z>{stoxWxt6EcJN(fc9os{dP>(473_rB6_!_Rcky|Y zt}`<1=2yb%W6N${t?{7$cJA0(0<$r6hdDNwjXR^mn1>gpol%8-d~0anwC#eSZm(J`Dzq>?W0?3Y1(yyJ_)Aq|*|8-^` z+~-Q$OL5cV{4{tOya4UX=c9eCZ(+q!tbgOzWtr12Zl@E2cdJ{;P>BRP?@8I!sJfkx zrR)?MYUiUxD<#Q4Z4U36$&d=cYKL%#!P3rG1>jS_x1<~kP`?6bY&r!^Dd3A~vm5b6 z2M2$RvMoY&PVn74&01&5%PM1TIJ1X4Wz#h1=M(%MbvkZS$XiK=`ST=yg#x(cG=C2u zT2#z8r0i?)iDLdb!PlRISp}9V=lGhGeLD&~&wo$g{PTPZ0?(cYKf@hD?gGT$$?a&| z1z5w_x8qY6`1=ORnuqq>%d5u5 z$^0wU^_m@CFx=-Y4btM1IfhEzY*9J0BM-Y&w0V$eZR6=u`~Kieb2m_{zn@9BkrtsS z{sEr|Yen>c4+DdW9`N;PjTc#Ce|i9;2b@tqgcU|wJevKG5Bw%Ae!3@UUVq1@+NbeH zGU>K19eEG=3UnGAfLrm6hkQ>pm&TI!n+stVm&W22|L`1;I6@L&7n;W5UXS_tm8f|J z{Exe#3&q(zH`q+tcrS<(PuyB>SgNHgBEBmccF}4JM&1S;tZO@?Y#+lo0>AM!tR!%c zub~BjZ+s2)0OH_^hG4kJjynbz?m(%fM1pzCUhN$1v1D z#l_%VO$})Vs&xcvoM8ByN{GaMtqrFjPYnJi(J-H;%nebW?uL43V>iPt${dCP@o=N^ z8=%p>3=_Eg&;c0Vg*Hu#Yk*($GQeCI7mCjIHKbAbA*e?`!%!+N1Rd*V7)|BZN8$Yq z#gwBW)+QN3XgF*}jRzb0P?nbX=fQ^ABISsOKYwV@ko|wqG{ZSxDx)2K_p_lj!`eMf zT5WCO9n?PC;4k6v^(1^!wjof$3u;K-TbFG(ucI7|(3FjaR^V9L3|Ye@)|rh4*rC}Y z(8$dOxMSQHUEFL4hW_wrv*9RAIPG(eZ8f;LbT^YSochfW?;>c;Qel3(4W}Sh9_==) zr)(Y2!aas)%F+=R?=fuWQyDVIRxj;NC<-)jj{XiprV+F>M#tY zr~L=vi2B|)^k)hai4eJX43Gt#sNL_*w8n?{>x_ynwKjm=$%Oy`xCLq zCx)p3k^;G$l!(v7k~8Vi-w?4&PYg4@(3VoSTr9qCCatPM#3nv9!0STP`I(_=qSGi912-ml(Xh@K*MJhpU_AS^ zkjr&l-y1&qQ;y$I7eC`5=w$o-j6<|ksucxRH7=*Dv+&`n#!fVqk%~NO8ncu^U^i6R z6YZ*LoZ}iVFu`$rE#nE;IA&m>j`1HjN^wUY8W{a3dNcM7Gk!x3NkYSo!^rfws*&+I z^s)sJM!3X`FGLu}LcV#pbrWL>S!5P9H8upGjx>gm`#6mvjrB~{LX`IwBI;IKxFJX4 z2^=^v(ii~RmPHyPDeF)8Vx%!nOVK|gzZOQ=@+`%#S{N6zlyy0t-Ojj6psXu#R6pZ& z7@vMYzDdR&0P(maV<#=eW#bdy8vS*Yc^&>|gt4uAWyg7wRz=T3;_1{H`A_g`_(N0a zsX01vCd^Fc4XDcmV@PGo#g6fvth1K=FEVQ;7&}q)M)dClV?D~6gR4(89)?wx9o?U5 zgws1a=B61dGZbBj>sXEL;kw!-G%elu12l>=-NEH%e*3?0ld22yq!-O4e>R;E2Mb0!8Q5uYa& zq~_%Ri)r7eO7XMXz|?F)(Ho6FQ+5ryxDhG`P`k<4jdG}PzfItJAmBz@jZp^5ti|Jg zH`aq{>+rh6MlF=D!&{FSQ+z2agX>*2UWA6%W9@b0WngjW)(xnz*@)NuWjx_dnZLm! z9~ggEQ|1b|)+1w6^1<2Q$HuOZ#}^%ZV*H(={qUrx#=B7U%BWw7F$5r9SYmv_P}VBw z$9KlV6diz~-y3^TbTzd6y>Sg?4Z_hMi~?9xe@UWHfwI@j{a%;{8tdRUYGEHm>1yCz z8ey7Rq_4s-rVIIQO*)LaSK*C3j?oH6Hy7RJXjVo?{TX2=kk_O`23u)sSsVqh!WPOA zg3hqQa3g&+Qfn~g zwnPjulo4^ND2!JVstv`KQ*|a`s*5_&y_~wpQ_#DpLk#8B+u|kk*GL*H=gVY~kFW5P zMC^W{oS5q?MDV1nA!ilOz4aBEOC(1b$x=}m2iC#Zmc3?XFG}RK${ZvFUkUNWHcd*k>7(hnGO2T-#tyNRYty)$| zco1N|>&(j>Ts^B*-q9lw(x5}%cjk>9^idgt@aoF&rJ`gi@=(I$H-BNh2F&RiM6ALW zf`rv>m37r7kI`OCo{1?8?-o;YEDe+AW34L<_lvS>Lde08DApE6!8&SYZJ`YXr^~17 z3O6O^>Qq0L+jgM7@LDRfJ1liwp?N4o=tx6h#zsO68DTp#7TOrW*d2FTc9l&xqfL#4 zs*?LJd6g-{*BT43rLo}wO@%`QR*4dx639mjMHJooHr#i`H)4h7>dNVVH#iy5NSey; zG&mIz0j?yN&UO=)9e41P7J?t8&cKXWfIoF+!^k4^W{3+Hj*VWEbt3Pr;P%3z6t`AP{HT)p_gyVx z#>0jRPsvNop2LJl5L_}$fID~T`2BF9twLXIRgvEo&w zm!hg;T)o3Kq(V8d?-(JJNa_;Dm1W1P#t8dqFt__e;gAj*$K@!gaZtbvAp**}U#2#B zhA<2a{bPo(I#^dNqKU4>%y^SF;pdNCVMmpBHC_pe&1up3O1R*qDFXZj2^+dFQ+N%T zi)IO0(gUB4LPnBmS^RsII1UWF3fVWC}5^Bp#LtqX$*Mph;Om8f}Rr zZ1obstkz=762YmKNs$P`+r?dkga|3AMW>O_OiHFB<5HnMgni6XAxxH=xK!vZCoe4( z8p=s=nb4oMG=*-1#xE0AOUZataXC>0R9L7l7Z%Wt#w7WCxe%cx$%4wL-U^|yOdhsE zXinK!w0(up-pd@EIorL4$vr6?jz;4^G#J(gNL(pI5|Q>Rg~T$E9bq71QABpjA|)$7 z)1m?qT}wrz^D38?g{wZ(lGp%5AXr=lym&@@FRJ z0n;`_VLsm=tWucZ;#=T-+qVjHeU5Oc%ovpjh7ML(i#7^oi8Z^P$zAw@^?0MOUr`D1 z7Hfh^3{vtP*d+9&GFarhSy;-n4t8zRTcZP;g#&uxb0CC3T;iEq1V;UtmZSivQcp$8 z>a9YA!fa}CPyB-E+$wBSm{5LVAlThQ$+>&m7dd0UV5+wZHra~w52SZwZWo%!s!l|M zcd9{Ey34BYo$W$JS6iKkF}Y_~fns_q#h7+LH6apy*dYum^Po@*M7k;>k9Ww;>E6QR z?*9d=?oOd6WuejRox&Vfi?=kn@2CU0yC}J9>=OD*BD;k7Wg;bYL8P-{U+vv6I7vqA z5#Z)Ai}vjiqCRs>aU*E!j*3EkuF%Ab1%C+*K}ma)E+N>IUKpH7C!n6WLV%Y$L`M?I z(e`uJf?OdcnB+=J_p(Uw9FZ@N<+R+qLH&^o8v0x!WhJ8Y(&nlV}31-JCLKF81 zqbP?5dbm%RC(_qU?yCBrV-&Cx$n0X>FVvLCf=t%7BMa&y`-LTHS_?O9VAeh$1jxx5 z2ZTQUP*pOAZcbk_+hn6(LJ+&}s0~h>4#C`qWPX1DhI~(lk28BpbXBcJ#bfLZzZAdT z;e(J1mTaZ99KN=uE}=pn*pO zxD+Q9Uo1e4Q=v+5!~*w`j|jCzD8t>qf{U!3LdZ4qgw>L^f(ZmYmnQ^BsCFDdKPqU! zXoA)_s&GdTwBu3XBL(Is9uorPG7~F8m1iksT8{~}Wk! za)cchx>PQ6rQ*m~=vIyyip=`s!s!2BW??9lJWY`a%NIt-1uTpJ##Du|J71_FGqM%N zOk&d0e4&HUHiZ-k?Jy4pejv873t@_#5Q)H+y}8H^bDhNpov{m*sW~iqW*0tGu=sR4 ziG6*edY$<8m|IbVD)m$i6@1eMAGA4yPO_RjSxvl^=pW(`nzKrw1+&pEhcL>IR6m|X zl4Of}Vm&DMM>4@f4&3a75Ul=MBm}xV5h;L!FIXBC3cg=U#L5!!SwsRC3Sq?hCxyZs z*{;!T!Ap~&lvP9^| zhbZJ6V$$?txx2;6TQaHz_bM4^|s6O*-bmQuL&h@$5w* zOD<3_f=A#>PT7S2!+H_FVeHln{mMGUd%BVUDb^m~a-AY5e(enZ{cR$EC6O z@)sIQ6s}97=M^Dc))*^794{=>xcy3*#zckV()jSo7aEfku1jN`tHM&&eh|FyNbJGwACJ)uQA=F|N+>H9) z5bAp93Qf8lbu-fyvOO66azl8?re~C8Tlg1bQ*bjn{+FCBsa|HfLWXSAO`%wJXoC9!4f@NrpMoqqg^n;Z!Begvl}v?u!KkuZ|hA+mAp`;U++C-40uz$$aEp&r2tWc-zkS9>ZnAp9OrUGnpv3h}WzPlIM)mYZde`i|$r ztH~YQRHm$&stD*)?Xygr!X2l+<2B@Ra-lX#;qIox)r5~cp9w=LjVJo?8I%ri>ocJi zftQ~NZ=?!n(FLbqB?b2>5gNd%Ye9(+L=}Xfy(L05s-Oq zBjoxYc`j5U+5dVjOi{e^0?r3qj#~CY2q4^pFN7?L@kE_o3Q+`K_)_pCUfB9lh$i$W zFNIrbD?0s3m`N2R;>6c*(4uuLfmV$~i~kkEUFm3a>R%x$6zDeVec-hS%0?<_tT}|u zrZ2{t6cUlLoE9}Hh0_J1E*?)Ug@Yd^eLZAPBr}rpjSyCb(x~=Zp$V&S?U8uoTVbdh zQ?St`Zbdgg2o_dB?GI4MN1=Kdn@0UV3g4BXX7uMrP_9T@5&z#8Xu^L&G83PpsLuTl z*2oGFE&!M>1$-Z1|_M*V+kb;F7BXQgcn#!ah6=Xqgi&B33?DafEIH+$?2$`nE7%|S6NykBs5H}e8_kbeQ zl@_b=pi>8AZF&%}k(CyMJQT@9IJB_s1QX$k5-nCP(~zf_f*#Z2MA<%n7GhwVQql3+ zvWkYt3|B>WYsGeQj$$}N&}~(6m~>@1Zpn=JaAJH%oj6KsJD$41aU2!s#Ojpe270Cw z;S+yEyNi*Mw+fmQ$pm+Cu;MLp0JIrQk06Yr?qUs@ktj3bBMIZZyI525SCT@OifqV; z4TDK5XyN4CY-G%+B!s-?w!X!g-d?KBC|$P;k%0j|^D^SajQB4cA)bI!3Lo%69+V1; ze=}aD7b~hw<`X0gNU@eHG6y+0F-T^Rf+a>PV$UZ|G|P+lX2P;#Uih?gX*781sJh4H?e;ZGJV=M=_RqxebAu>%-7 zcu67E5LpEhZcuT-LngN;MIRT$xr(uHZsRCcyV90Vp z$%4Ga!DMLu&s&7=YK$nPg4l}SQ!0qT1YcJ{lulj#k#SESkOO`^fxw^SBmQUvbv9@P zt@b;z>xAy^E8bugVnKiO#8<4`pbQ`QIu{j_aK1GS)AE|Jo3veY7htVYCN~&IRTMW; zQu~qtUgrR#rS^JVNp40}s7#iM4XZ5Ha7BYmjvr2}8CIF}F$fZWMOtd9^$Iyek(S!& zrb3QYq)ErXK2^j@N?#fcXU`71;=u&}GN-4=45?f^(_b8=WVr>KP+Pu|#VxQb3)!7Y z45?)!1I1L)a$NGJyQ-@q|3@HHOd$(|EJ^FCen$2OvUU_PHKwXqMIH{igFBBYT1Hiq z-IJ)0;fMr2Fs&xLCrKeo%5PT_txCl71TP;^)JzU4GyaysAUW{PAaSyqA#qRuCo^Ug zR-;VNzc+a7kfLE&IU_`2NE+7G04KXNOeY!&gUOIAbtctNsLBCZ1J>0P&#Cq16XbP? zb}OySYfI!mI>O;gy2(O43%|ej|3O(Q(V-yzF1Y` z?U0sA5#M@7ot#~LHtaioi-zezi%^(|;Wk)@aIqyU@G`^2NC1C?i}hjg_bFV=p$h)M z8ykx70cCtKSvQq75<|5l3BSBpFG5VGKrXk57z5xn0qMA5Q?VV*SpNp?_sQGdxiMmW z35~x)(Bm=UR0$>9PAj&=idQHJFL+Aunk~f>w1~%O?GtjXG`W>HL{9$EN{pa%x3GJHNNJdYC$QXzAg2?ic3_r* z!p*35VvTYXPi-gK)J!}%K$E2P9e}N%a1E-17*>YTXkrI(q9kZfK(9K8Cr#!EX{v=& zaNR5LLtD~7eqPp9#E6v{u7ay}7B|TZRUL@762+pMoyF!%I-sPEW>m9_ zxJ8yrfkQT(Q_=jO3kiR)e4$Ks>8;Tf);wB}a=B<&SFyWNOnorysay=c&{cGU;ZL$G zu_}b-Yen(nZeo3zkt8$H`;to5?G7WR6|L$nR;7vtqGR2~DEJKLQ+Ehb4z=td)}&o! zj_Cp2qV0g6Fdhy!H|B9@bq}#Blb)

2wd#PRB{LLp`C%;v#0sKhS&*P*;E~ zkaCPgA-%+2Ci8gW+E_QR^9{rtoF$v_s$OD$N>5KG`_TAVnN}L<`igZK8cxIuV0?nJ z%)a7xCf>Y>Hm@NkPEv>5JzAW|m^T5som44ojCex#j3x~gCSbaxtc zm@X!WgweH?i>$pt$eX6aKugFy74j`YzO9h^%H;T0#JxU0iXGfM?GK3h6nIl;sSfI4 zxPXn=w3#9t7D}8DnWH7=Sr72unWDSeV1EF`20=rTGnNPF)GV=ryQQAm0!r$kC$pg8 z?RAlmDz;baaQ{>hJ}QCR>sB!pKx8@$hE_Z=UEETEvaQ6`euWhfB+&P(#VM368{J-o(Vj)In9~Z zp{VbpV7T3V^AcX-8MQ1vL`53wXub$Pws0Q(l`qyYT8jc_gNdB+aO2fmojuF{eO;OT%b)fjHLNTJ&S_ zlrs}f{czIv1nAiS@pzA9Y32}{QTCH)nnR4{twq3s-EjI}gynFQ8w2vv$c^4R#D@Be zBIp3Nj3SUkktf97lzB5+dO~c=5K;k*=o#qg2{FjWytzl7bKx6Lt0h_YS`z_YNK{$j z<0mt!T`1O+q_v-jbl*bQ&yvhqh=dHhs8GBH7xpxGWRZBQuA0Uj-ij09ck_3n6aR_Z zsrX%Z(kJl`av7!-<>9WO9Cp-6>(PT;{@bec*a4SQ`szGPZdB`B`~&L&KPK+ji+gY$ z)!c+ayVr+Q_^2wP8f>OC`F1qV=n+VrwBsE{kH%DmLi-)W+{HD0qcSrJ?HRck#NZeB z?Rz~uey*rJaU^s0i9Ecru1773I(`J7sPC~HuGQJ`piqyd@LK?RI6K_qU-*#rC|(-j z0Y9@339gApmX<0wg4e`&^wW?873a|L ztJ^ZQAsXm3`8Ybu;}r#@_MefE$1E*px0}-K_V2CGPwe>ADv#?VV_><|o?kuUG_sWR zHHaN+)_H_Wd?7lx&0`6y)Bw+avh%-2d$M7zF;b<3#LHnJ3LVI^W|qGgfK*xeL21Dwf>K-n)w^g4hdI z>|$XTd#}-m!EU0cF(xrSqOiO6hI(SuNbDslYV^hmD(u=@tSL&YF-5S)MC0#0_s&Iq zp3m>~`u@W*?{ntNnKLtI&dl7oS1eO1{!d(eD0pvHY&80Z8EAh|tYB(?f~JXLzjtzT z1?I6zMKbr!cHeX9z9>dma*n|rn@Ezxs*E>I67kLa|pEe|j z6^h628lo0f?@EF=ob~=zZN>S4=yjhyjjag7TYR~6t%KN#ks>>ar%k4%1@y49SkJVl zfGT$pyO=f>&}Uu5aYc_6baTIahT%{^PrHZ>fZ;i@H`G|UqSjT;LH1nk*4JZl-)-hT-{#~K1Zw{iZ`3bR$}`sY60Gi7jWC8 zr`8uFmAoCG|4#*Km%idhCeyA0^1UlY;8*?iU9l{NyPt{-5XZ5>`}qJ-!YKBu3kQk? zxIpqiO&cP976@qn6WEXOur$@pva6^D^5Z=M*SstIkvZ+M8F%dw z8h5>s;zCSz{*hvA(fG=&6Ck#)Mny)6)hn2*d;_z`|qWsy;Ui6NEXuIdM=sU zpb;xmpHU*4OQwzzhe6K0Q6hVT9-a>x#8MxK2e2|&|Dkvrum7UCqeYJpM4@BE5p9AR zpqxhenOQ&gRYQGDA}jl#2Qm?_F-p0g24uyCvTKYQuPs0G)ejr9G)@i0C78ow#L6YT z#do-q0xoH@2n+t7j}dDWcQ;1;GgqF(Lz2bSI>}-kG{SRr=veVWF!X9NN$ifFd6UFY z+1$GM;_@2;qk{w7Sg%Sa`N;$C)OM}5+%g5O4GvIstE#_m6;p+p{$pRK{ygWf`OwsJM_CVr-H(^g zNL}N9buK&ba!|km>rIFHuUc!y6&4FNJ0;%6Pt<9VU1%J1TI^oZoi;&@T`M*1<@v#l{-z!|EshN=V@Vgi zLD+!^T8O(y5jC-^mGKv=THso|)~CyPv3jshMI=M+^Wq9NiB-VHrclhhkhw(53Kjs@ zzaXB&v#i#OVrj%Cx#YMcc4O}a8huHO1S4BrIKO6!FS{fz#(jzqs&hr`7s5nnD-Y}q zm}%)15ii!rU2;|YiE&)JDz0KOru`tM1)FiW?ZNs4?^F6wti(n7utG6Y%OAx(Tp8z1 z2AF>m^9?`+puYM^d?sijbZuW<6XT0{_KIFsKFiVhy0})S`&shkb+K77&v8Z%VRSV< zPwX26k?UAJ?lP8*x5P1}S@wzucfB$k{22yUxh+P&1zWJ5!8yxqF-ot3wz!yeTdah- zZ+ERjAmKx3inj#Z7F(7yFHE-vlzI)8yd!q}FTN3X#8?!d-5jt6Sd8r3!D(veUvgKh z^LD7y{I0m0Y0jF;Q@~1k^}ATZunt?LQ0yOKc@9|q0H7xQA%@`@a;mdF$t8@Mo zTNKey^m-c#e!(*T_(YtCg4GY6il4D-LwElY**8`2)0UP$7ym}5pufdvAvh=ieFYP0 z5as?OHqnw!fhB`qh_$t(Cy*suzYxpo$ucbY;R_LqiyAcZh3Ehb2y&dX#mMBusZbEz zeIeG+GFfm!8bskQ4H>~K=`xbO3M@JHB^rZ?@l|EX6$aI5VM#xdWi;wLNCsd~6x6_= zNNiR(D1!bKtLhq-V;N%q<%KyTS#pq(^c82xS^tV#Ld*f^BVj184l`N&E7tlPveaVG zr?14eAub0x9J3NmT=1y(D-kagszFa*i4BXH1GJ%r6BqNYM$&?^!ST(}oZ6Ai_hqH= z#p0VYx)XgBr#h6dgaYour-SzfwZJa-t&;v9<^c^DN$N|79~jL?v>QBp*S++mT^*_MXq0}bmCC7mpq zJFGArSwU)yT+FCG>@h>m@Cs6Lh1_B1k;nH5LkjJ4x@T6)(yVht<^-<6E74w5kcKn2 zH8fgsvR9;Sjh5!KbX-L#&g3dZ(<(~MOSCsyJy%j^pDoG2lRim}zbk+feRF+zB zz@qKlY^yBQ)-%ikUAI!ZWW27jJI=_fcwOnOXR}2ba znUZ-XADld1$Q2{8_aCk>G9~g%&I^os&d8L=c4ttM6$z&cGoqgY|>&8FgVn zt?CARpK+fs;DF*fx8)IoL+VL&HSS~%d!8}4Ydx+$J5AM!{FlLA15P$zcxK$KttY(; z3)$;Sy){`8IHPpchC(5XI<>xpgF>y5GD>rTnGyEYm$2;$d*^Z3Qk22})R%C)0630| zv6N;o9@*7fC()1|%HS~uoXlY-<_?_oG?3;9X;eQ}ip9@|u~L;_SB&U|ScE4lW2JH> zjifJ1Kgv55D`BrzQ?nG#OhLAIG&M^$a5f$ zjWBGOaZ)(!!@PhNXvEuVK8JPHA2pIr1-q*2_4d%Q#!{0vk|9l`FiqBc9HxVd*SArV zH@GY`xrx-aFq4zcG?982HAMP)QA|@Qp^$8$sZFIZZzP{Ll{yzDoz%6NRQHYKoMuw3 zHOZZUy$ZK2)@1vg&@=oLhlClB~fS7`(Z;R68WzuS3pZ47&Fw zWa-MFN-g-fDaA88GZ;L!g;b?>Vd*Jb4p1g*z`VMJ4d~MwFf&{$Kx;rJooFFddu@+? zOX8%mg>`U#&IDJBV;!Zi5r)J`7{<{FMztY-?$8h;vuXoW|Md?zEkvH;t~gmZFNMArw#B z8Nz1J@2E%{>3ly|{i%2rylRQ67!*({q4aS*pmNoB1MO{&svH#1dTIAgoRGsUd+Vb=?Pv4I*m$X>$yJ}ejn}7Or&FpP3^t1s zy5gG&PU)`bKEkG%`8e|O;<^*t19Q^^7hHq;2yT;b*n=4ZA5U^&G%~mp&Z!u;?>K{h zH{b{kTTU~$e1bHKOOLAvi*18`ECY!?+Oh%Z3+jB8_9M%gR zYrv)8M3@l0(Deo!W5BFX_2>3dF+tNY1t)dv2AJh{Cj5B^$y<_HSO?jYx!AqvD7Dsj zV>qwp7K3kgWU&CM*@eTp+F_kIoNT~Yf4Ql<0cRLOFdgF1wiD((CZvGF7Iyfmp6MjX zLWuhanyojgqN(wyvs6W6&Bk*Q4E8){5^8jjn&~i}gk`Yr34p1O-9>P2il@dH!Gl!|`b#&iD0@;(<1fMBj@@~C1{iPg%BG*04s z!h;w|CuO~v^w8a&yw{bAf(5#wh=xpNbT6sBZe={u&R}0X22bsUP($kj9JbVC@V#EV zP8l5b)MjwG-W-lGgkVAER(tlACJG_`7H~zVs|QgnTv8uIt7r~4Yrc%SFjyQ&YO%gj zmB0{d6V5t^v9|0lm3zlv4PXz%fYmpj#`Tw~7UJwlF@GcAi)d?qsca!0Vek`O>o3&| z@ix~*vqz}X$UZ=-6asOYVt9uMppFB0FHA9%!Xgj*kbn!Tz?N}obbvvIJl}f^dh{05 zi9uD~dn2Q>6@vyc$jE5v#-POvvNq$oXqdww!-#z@lqG}G02YEP=jEK$1<(t9;je5UuX$U81mo7V?Giy#HD@mHA4WIxP%{VdK z)-nEf2Ww7*d7?}RdQDh8nET5Z&hOdC`0ozJIJEZHy@l@ydkrUpI}bs;ZNMIN>JZ5; zgd9)QyU_{w$uwF&R0V^T{=vvq)#k)EK*EBg|0G9&JCBM4a;zX2cz3f!6W$O%5JP_{Myvrb_830V(ce! z*oTE9ri&5WgCrY5PBZwB0nazMwTb(g0cUd9a*=V@7|Dec7(#wxaMDQWgjS?>4Y)6S z#dQX^7$q&!;Q3e+`ulNM{e6^FQm<$-!dG@NTo+#KLoPfI4a8ulR-cw1a<>t{x%K)? zGPqd`%(y*TeYP8LgdzJTQ{}D!$8gw*RjZrANAn`P7_zn6cONb7(WlTJP!3y(SQ(Dt zoN+RW1FSt8MV$>ek;A?}z^%H+NFDV_*!4anXw%a5WQlzMukTo?r^zo-=2)qwZnG9> zJ;tTYRQY2ITbtc9Wd!FVra+}}g@kNQuwb*&O#{baajJ)QXAQy&Mp!zI&qoCu_Gz>1 z<#D`!WH;00`>c%HK3+=F^y$)^7mKB@o92w?^-ke1Tgu`QvGLL|Dc7#Wlf_{WY;<|> zPftzhsvP)@kE9A39)T-ijNccb;mQP#$8g+If#GVW2~tgbt#^p% z&9TDbvc8exSF}#cjPO)H$1?9>l33qwW zn#o3vt{QIpoR^Ve;5{_F!{^d;jX!`z4I@!c%-)c5=X0sCh8M7H7vN4zalq?LmNt|& z560#f+d!EO{=sZR@b}4xgc%(7798~->GQH|BjS>_j`f-cvkn-ChxJ^zuYDZRsT~%^5)i)8%I*YXxR~kZR4MMiIkMrf83&7O z&D1DO>hRwjah!t%xv*%O2GzTM9o0kXYuZSmcy2>nS^@=T)<)H8U~l2&ADT$ za3PBs+}D5;Iqds_mAPOxwu6I%;j1hg((w}d@VQbnOL`D9A=!Q|_T5>s{Q;JoGFQ4= zg(Y3P9~_`WZSjeB8S*`>is{x4^F%8X=2^_x=gmVr#*&D~klZy-iViV2P&}Z!^Q5TP z&<+O4^Dz#*GcjtazbUKZd;}c~p3h-jfY*TYI1JlB$RPs`sG$piZ2U;17jV{rN| zcASE+2%oB1fUt-StV~Q_uIU_BXDyTjA;g-DGiubqiCw}VTAGfvoZ%Xh*|I4aBs!5U z?F_Mw(K$W)w8OVWs2ZqRW=j?zb>AXs1P&vau$_#h#uBMU2wokdv3L$MXxI`ds(xXv zbD_I*E9d2G@~9W^6hx7XP;HS9o1<)=)#+ndvzBlN(uJ$#!D@ksvxmQmxlqTE>^e7A;1p=-xq8_lq|m%W(#ccoXuR0;I0| zLfRvg(Cr2jPlJgs(9katJLnjjH3G2w@Ta095`8HR2*JP1*;#yu_He^*ndT&pPser! z7W0gc?H8D-<1(B#nFr%Bo+72V0MCz%Fl!kfcQG8++xpltsci_}IH5NSLeU^9x16;U zieoL~K^PiDotI-nwNQh5^vQB;I~Zwf_JjOiLQX7aCsbT#r}}ES)LPKSw{-!kq`C6W zU!nQqY0p;@-hQD?l*tV+L_yc5ohmD(ax4&Sw-SLU>y9anbutS?@m7YFh&T0oDLkJA zVWpW4tu#CmhkZD2!CCuC%wkMTb|WrE<8GOO9` z5cDxDbCncRh*@fD*!@+~Eh$$Mm@Pu!atOpk3Kj0Gmg<#a6dm;iYG~Cp(qm2G`Iw-+ z%L=(;)}p-JS30KiszcXG3k8iin+^QMh0I0Qb7qEd!Ex(Z#0X0SAd+IZ1>rcPhy}^Hay|m6yoQ1y&3#CurAk{Gx2g>Ci-yrql{24f&aiyb#Vp<6eH%gy#N*tm! z@0Xw;HbB`&H%bjSg>A&K7eBD>pZjY4JDVhdQ_f=5?_Ys(BrQ+H%@VHNYX&Xg6pNx! z-rp?!TiP9l8e+=x`=DHhp{Ftz?ku7q7W_WAQe2RvgAWLMa%F5%hh$tJ|ctS_z3PHaH9$BI3u+Zzfxn zX|>Bk?8XQlba6Kw%j6odZ4L(e;5V_D-!Ap#{AbxrzZM0zVuT6XG2B=U@;J_+Eo2)l# zIA|BI;d~ad0M=``a+j3K`Qs3B;Oeo(*_p|%zuT~2H67OZC+wCE8G6HKTepE<>rZV} z^d}^>{^aR~+Cs=ImF@I$(AN`RzGXYTJZ+%|s?>xF)9%A;fmVp(v8VB!v{Gx1vl!ae z1F+e*HqI#pEoCVR2C2X!SOt;n>$PH0vS-h;&&YdKWCWUy3biWc3ZE#QoAIs1sWv z%*Uwq?nRxjM8K)eezv`i{D~a4z!SQu(E+JZ83xa<0E`G>Ku zY?N%Fup^kZ-_GPZf=q_G9z^CdY4Q<-sfHYjn?c)-VDH@EVuNxf-F%B{I)g%U-r!=L zWhS-Ffvm!es~9xtO~``Sd?syq6LNmRpzCi!Y&gxN(z$QQ@-1Uf>o+0R$7a%mw;+u3 znY2Dvs$ZxC^9D2N-kV(P;hC8f=F{Aiwti<9%U7cLzCn|#1AWpUeaJ*$`OGe~_z=Bf z8`O`78*~Sp$(Cmz=tnr>QMNyb=F*N50ecWS<8bIG7A9K%<6@lOG1zUuY>lr8ftlQN zz<>)ltPi0lN73%!(g!4Jj4jY(*w-~6CnX(|MrclvUFFvtk$UwQqR)_`xuQ2MO!S-> z%=UU$o?v^u=%egjSQ;HWfyV|IRo^QXPO`mXB=x=G*puibJikTXEB^4Lo*zpgwpUCi zrIpxUgfn*?!&pGPhp*S2mPW8Qf^R)7wb3e`f%r@#V^Vih;2CLhJ$*t-tfv#4`#=bz z2yI~%CB%nk#j3?x;WY*O8~b7}OHECu@xMgho{?fSfq4zNKy9b;$r-jGsm*ZglC@US z3(Z1jxpT|lFbfdfH0mrL`CSaX5K_45YXeR+;4B7THsCJ2P~Q;-hn$m+m3HIdkpPTM z>owT(D1+~wW3mCW0nT83k2w51hgsyqV13r=Zon}He1-{`abB9E2}x!F;ZKI_O5bxK zXF0438SuR{C&cZC+#ezL0u%7;dp755PZSg&N@N6GkJ=Zc%^I)&3Z!aB)b}nF@@As{ zGlEk)0*|^VO)1HQKmcCcz}ym!O)g3!G}SWMw&DfuimBQqX^#dM1fl`X8}O4$QWdU8 zhDj&*er957UuH8W%)}l|WBhDa6p`3v)?k3yy+8&dM#f0oc3B#Qk;sf)45gk0yC$XD zRcX8iM_>wMu-*pSuAiwVAcRT>fu0T#y#)^7VuzfH8NvQNIE6o0r zb8$ z_g!aT3!3+{G_a7LJ%^_?BfWZ?zYAh_>uJVc`x>`?B8OOb?xr!P!co1a$ z12CK6spK!xJPl4}3ygoDB)0b5wCxwEBNr3F2|mqqC2z291u@wMe**Z`&Nrli=s&>O z62|)+;wv#ZSvRFmH8>IL0S(qVOWRw_VKZ*l4Zy9JI`tOoG=SMong%~&LeyJQ{b0bn zYdyKe`VhD>d1k$9)w<2$Qd|RF;SmNL!)5C5>f3CVe-3XCxjOWt!O6DkUMm%P2g`4R z(?f0VNc#)}qf_~x8OqCdu|udgiT31UAz|}fb_fG~v)O()V7<6M@AAs#aagxO)UVt$ z+U_|MqIuMJ4VbL}G$DU8)1?0@wdaMhrHA(}_>k&K zxh)1e1qT0o4^K$x+Gpa?MDGKmTA%*L`PpNJ4A!;Z_nWkU^G8U~2=~r){RjTe`QtdO z^MC!jv_fxj_+dZ0jIR0N&VS(PNoJca9M*-*`h(ksIdjIX3pwk@|T6g_Z zispbvn;575DSfEP)AsN0p?2B;dj&oXF2&YofOR9)zt73;!18_WL` zAa=Jj#>?=I<28J*sObYdQEh!i|9K$UVyv&Ctw}|12Yk`~kaftb*eBYBr!v!0j<%kb z5{@fpxN26<(Nw>9h6`k`)SL&>?6N{T>RKwakfxcSUZ*||53Tw-wIMtdud<*=;i0wh z6J0ixy}P_;+0bgZ`ZKj`=ykjieWUt*L@0Jkoiwq0=mL{(lUg(~)YRG(KaNTa33ZtK zX;gJcXhzY_`* zJo2q-8XnrsRN`=(^m%8}#FA%%K+I9!9~p{Uw8-|whoN_b|Dw|DF`+L?9Il5PA0fwM z z+oXzkVVKuy?{TI7*_Oj%Eg`KKU0ts=;uy0Peg0~?$LAoY#a7Ye%A(O0TZ1y5XOQ(V zcs$N$J#tj5C4i-vRLe8Uw%DYyo`;b7SeMFZOrjYxk$((IenJnKH18&ISZ$7XoTHg$ zkij+ceLy9O+H7TUy65$e;4OEtbdseAtL<-8vxv>%wDe>8l@3rnxbyXncOnn6Jm_AzT?^k0t2 zQ7uIRVwnXk@NpZuWJ^EAqNNTEV;HlZ+3H41cs8IVR?$PqDd8W3oJf1tp>MCD$Y5Iq zlfNA$1lwYqPEFt90qPQNf!=TF3sfb|2A!a9SFSHZ-_Y0DgANAUB5S(dGxQz1U4_0V z@!xtmtfgSX1I#Y4G*X(S_wjby1-a_~PrL1*Rz+=*Cf5LUXi?krKvRk2^#vie5>w0{ zPfI!GN(y{pNxHQ@=#VSP^u(0wN(y~qiCqiNVm6PTma^8BBs?+cY4=AMC>q5L3jYr> zIQN8UDW_aXHiO$du8{INUm@n6Fijm(#@5eTLoaH|w3N~=AwFr@-2g6bBC_w&)JQE9 zG)a9LWgBTJZGCj*P^>kysoN=fy!g7Sm&R7Lu@7yptZHk?K0@+KEn8QsU{>qK+E$t@ zY-yDHT)ooB)&=Du zTrS=R@jfoz2l4vBg-g*q;)ro^`-Pm_hjt{l% zDk^MKQ^wkC7FL~2ygD0EosIwR)lomjx18Rr(t7X7z|9s^#eXt&vy<{C+Qv*lbvE(p zY_$3y{{Oi;T>R@Qt@j>r7inps-urKgYH$C}gi#WcqPTqCcQ-{ic4h z(AH8A{#N&<+kO^8egN$^(Ds6MTwSx+HqZk8=`)X~TW9`&cYge)mRfGBC4}rvFM{;+ z8NXro>bTlrg>6-o#VR6HXiM3LZ4N4N$kxr`Vn97=ngbx^kgbo!DgmgabNqG4*2&@r zkQ1c?Ll4_}SiGTPP@6Ig7;eG6$)L0nIx*phtw|8(T`PHy*qT}VAO)Fp(yb#X3YSWQ z(q5`43LkdN{f)}_Z4Eoe|Ix`!aSw67I{W)1*<9hGE9pY-X!Z@KzHDCm)1c;^OA0b8 z2A+H0z!T3V6)`&uJYHSxw=F1Y%6*_VIB%;FT&g#0^e{Fov}u{R(|A~-7>)nY)?4tX zCw{aYen%Lr&b@EDB_L)RUtn{Yi~pT&Zl`7y*vjFXQH|8RN4DujFqTKWu=T}j8Wtas zqr&4`)=kZF)EjYmLdbp`rDS7gLbCknZtKP**k^BIyJ^xlC03mcjO`eEwrUktRXLqJ{INo|5si( znIt*#Ep7;%^^Q?6)M;mqH!Y1sEBh6R@+3LtE$*;Td4vJL?KHduoMZl{H!N(6PPN@E#Y z-}HN9Ib1NS!A<1f@m8oW=xI~AmatB(*i6P(igSq`x0VM)?GJX&h&RWF49<^;i0K#< zuaQfd3dk)e^ZR9<|2C5m4!m{b}c)2{L^snOK{)I2;yi?vTETc4+ z?6PkUcH$$eLH79kQu9B#8P?{xE&}h#y5*8v3ty>~6XX>p;al>xlLrXbsX}}CT_I0R zX)mu16n0UC&X{!62U((b!po#T?gpf;7dof<<$wiubvYJ%X1BA9mshM&Kj|sgG6|b# zLvOiPQSV0e4pY^)or?64k3jy(K5}>Auo}@<4i6HBQS$-vkN9!CC;Ow;H9wr{x?84s zc51@qGJy&HGN~@LOrUFhnYJ0a6w5ja8YmAGHqzjMQ2HC%Fi_rPv2Mb8V5izAQO5i8 zcGAc}a#xhIe~|pCu$vmZFV`2oqYvJfrwaS%{`;VPLvcy+_reyE27{JK?FP$Nh5b}v zi0l#$(+5N3V}hR=428C*>F=TPrQif?0p+j*VY)g@u8n1w zaGt*WP$uC=sxw+9`Q}>nN_VAoy3HGqbQ#M_t-bJNzP!tKhW99Y2F|}Z<>=bnD95o$}<~&ZxF&_$S(z9D}9wBKY@uBO_i(a>Yk^Zsi?wcDmzVX0*m&W20QJivZ?aq=x8W5#N6lx+bI^TG&cbxDf&Q9> z<{3s+XUpaA({46297dkm@-2+hQFG+jAd71Y`pRQYOJ(~;rcl12FY8`W7P z|06u7nu{^8|Dx{}%WZ|f$+QFm_9azZA`cUOpt(!HnMc`6P=yZx)36Ga`nD>oBPsdd&dFLnkWoP~1V(_ic5?=%kQL)yJT?xFwx zfJ$wIC;5dAZ$yu|L4R$OyXcfh)M=A^OPBeG8g7<9t@M}XXiVn#F_|s)&bjR#5?d*> zDQozQ=TBv;46x-7MIxbVb&wTNq9q8s3zlt_~rP{ugTLuZGsLyw3iVL9B&R{c+v3?f{(ROL}}juF>~aY3Bm1QUlX-U8{>fc5FYG{w%1}(lfkbcMItYzSih- zTx+wyVVcT0EPogrE#@tDJ(%0F-1F~@cDccUEX(4KqMVL3HKGHT25i=3rpTh zfhVm2sg>GV%&v=a(&%U0|9e8I%Nh9hK>F(pyq=YOXW`PrsNFf#Gn`V+!FLo@tDlFf z5z4BIzL!HyLKJPf2#-*i{=JCFrZPD%$u)$k^wA}Gjm5eL-KHd!y^ImT{`ZtryIf{< zxJt{f$h~xWDf;V*K`*6Ny((`v38m?$A7NpUivNTknVSA2mrE)WpY=(9ynH6Ea{mwd zCtbc9pnGgz*+E&U6@!W_xF1-lO_6kKL7-@P_A2Rx-=xz$<=18< z)it?7f7f2v`G*jvoAt?*thp>6nCc35f$=8;9XKbo(u|_Jevf@7VuZR@=rM!yS|NQF z;=!VO^53TWuG8Ub@&X}7?Qva>Hwm@r%U>{JYSPJH&?T!=!7pgq7^-&zp;c|_bpuTm zO|x&H9+ha_4Rolw^v4bK=v%7oCRzw{`+K+KM#4S%;ufauI_k+=aI~0Rir$e|gpb`# zfnIAspDU@poUo0q+ODK~mjm>p59?UUxg&2B8sJ0Qhzijk``weD1qqGRZuc=M3U$?m z`ErOLw4saw`0RM9`amA6HLyhsP!ayfU54Du@A?CACYV`;yg+6*De~rFo zdyEcJPJRC|^PHu~^F-c-e$ezOMnpr(c?wtAm6~!S@Rw2C`X4jO)s)0I3(ev zYGxfyQ0rPFgjU*Iyk+)lx{kM zNhAEQcii^-TVwr{q4Bg-C+_*1$vH(o{VhiTeTgJ0U+y1GTnqMtn=bfa--l26M-#B} zA33Ug{CTLjGp*HwJUsz5jYVUoWm%L_<$Q>7P>98Yc8kC{f{$CP`C=IX?4 zFVG=zVx^&1$o5iZZ(D5fQm$gky-FirY7%C>)Ffpv^?pF{f3P5sCGO3P5`l^kWty+a*d$&seqyOjJ&t{CS26|Yq+m{*WqBeQCuDIRnow1#2g7fws?@Z2|HRbUj;>WzVujDhR!xb=8R|yV;&n#%5RIqsOqb=H#BUXtL9#HdG zg)rk?id9;m*V-B?RZ0$<;k;?P{8X*T!Y!Xk?bJ|l3&K;n&`4P(Jf!5tN^Q8&RgINq zf>X_FtZWl7SI%#$^ek5-6w`lxM2q#9TuTJzsznE=JA*$8WN5mjcrglUhQ1a;o!E~^ zUo=w&2_@<8W{_8!sy9c|gwp)x${0ae(gH0VMlmgvcQNzMZUL+-y=Z|x+D%P}Q>K{0 zdYd5>9V{aMXxjr*+X!t39nhySOJBOtN?9xq{#G>zDwuv{fFY(z=&=d-bVQlpO(MWMrjf#bf`5x!@LuZwkSC-L9MWVzUMvGzz$vb+dHvd2XBDl-OQrA`GVG?J+h7 z)4}%23hayb@1V@V&u<-+Ay|}k>4?_DrG<`gBLW@ms6-1L)cYNkNI~m-zV>A6tc()I z(zMRXT7mE$U}csNLEm;kwn)0wMX7>0yhK+e6=Qy3S7p4=iY(ofMwnaUx+$L`INjS# z8HNQ@WOro?BG0qkm1;s~deI#+`_u3qXx}mPWe???P?0|9sq{o7aJZ*30G&Oe7gTvf z&R)t(Y`nDTt-Kq$qNkebvNt&O>_wNKzgKOn%R9fOZ+j~rYr1;+QA{6XTBG*rqjVR9 zblTJx{eCX}+84?$Af=zuS6E2n`a#)6^t2yni>cnb$}5CX_4>m^RjF5huvDW=ma0ML z`@?*7sKfxI>Qc-AWuLH~{urPf!kT;Qdx{-9Ge_T3>I$pq#d{c_-%!LrMGnu@gZ0Ka z`2p9bs+Ui+h;(&4zz1l3wZ}l11Dh%P6O|f5GxfJb1%XmMH6}@!AylDsxk|uZ`l9s; zSJK^KR@H|!zg#T9^46?p;#Hm==M%aySm{vARi z^$4Ve!if5sZmOJ%~Ky{rCT#!uqIq>eqa)x{aq3>#Mz$e z0#}mbae$6bHI+t8>N)=@eLYGMO;{o(k5cUNr9J;gUMx&9Mk%54wU^(fTQgn@w&E_k z2Vv>SQP5}!6^w#cxJ6%l08e|HzWV?zc~AZ9L)21um%bRSGz)*EHy)da|MjXDPP9lW z=C|lw&4TA0Mk`aTPvOZ5M*mAC#wby=VvLf2jgC8GQ2)QFNHWa+56w?TCx1ozla**3 z7=wH6-9qjVQpUoL1Js1E$}P-F1<>z3wa$2@D;6r0_7R%l1F}tk6CFsN3DEN?t(%~v z3qz>!$4W=Xa!pIDZF5`YWhr(1vpN}B+L~5 zP`^o#{xN+s3Edg5K%S(W34~|=Zi+HR2vZxTC|Jgr)!(MUrwhTjC6RVb(sno$-{t)dwj-0cVRoefSG3x!<&{_CW ztvXlv+9E8clZ%vNLS=QyVkKWNW2I^-Lo-RKZ^kO#S(b9xzgVaG?DQ`wba&|Zmbb?yx#sshV{fa0>%GB? zok=CJ?9;*@XPUwL-fAI!M_fx`S_&RXC}EC&@{i8pNvAej5T>{&V~Y~ry{*Cj)zUhy zQ!1C--awmwA-Eo>%!5P9$_2l3AO5{gACuX93D=;Qp@HurmD;MvA&rm?z8c$f9$yWr zw^gYh{1lJ>#3MPG#%+Z!N}(lNp-4x1xK+W{cW93`sjjquz=TBsNi!`DwK4+G=?OG; zo8l0==4Y088R*Ipn0^S(Jh=4q)i$(4A9}nE!*VM1%fuk_Qc5QL*&J%M9d36ZC2xmg zPo&w~G4==1we2wN`&4uXy3i1+z5`|-O36Dgm$#r7JJ5ua)P_6J4TR}5?pw@{J?QDT z@H(q#<}Qrqb<}t_T4*kPz8gw!qAR;0ZL1ojDuDu8y~uayG84)9o$>@nCQbJ!p@Ptb zy6r_D9zpx}DzU{zm3A)Hw!oVED6g2^p(^{7k^;eLE=CV+}~^dD+BHZS)RdS*iY;4JRz@R6jbbq?<#A zO-&FI(w{vmiKoDZk#tn46uMXMGZ>Tezk0xRZKHNM%4QxXjXnnNm_=)j!K#PUv&WRy zCP7uDlS(lG>PDPG3-qS5r7P5b@Y!c2< z&iBfnu>Fn;uzfAMbOF7q1-)|-DtJY2-zvv#9wY&wtF$L8@*^=SezwQJIL9 zQJYIxzD%OLOG>io=o9L8S*caOcH`_%O68~g=VhvEO<1t&p3F>~H2j$(7Hu@sis)Nq zp;KUywndqG{Yyc$SlWFVYo=Dz=?Vn4q2I2c2gFmUt4ig{(;t^VpbxYnPaEw@bu9{O z=6Y!e4KRfIRW_oISO;9MccHAK-r(1vT!_eYAjjxqN$b-IorG)tX+ zU3p~^`l!=yDDgqT2eE->Lf&+`bVsRVBrWM=xvL}@NzWp6++AgYN$5wv-ot2GpjP}% z2`(*6RAc@@1u#61zCc(UjEc4LqGFTPn*U;|7pAJqUn!?dLK=-U*~L?w(jJd)XAX$NXI^4Ttltr*KZ4Afsb%S^sE>0M1=Y8g7uHb4 z`u3if??10^A0P-T=!XXOmN)?}6Kh9YPpx9@tr3EIV(ravY?c#iuY#k;`?2=%a8&O% zw8!E!^UH?zZpGYY_BAn!1qa^hvxfGG_*6~fEq8fO;;jm3k9o!#onmS`7tV%pkXKTK1gBVY%%yfQ1Zi=}t9 zl5w*7ZfiT9L~>k%%9ch<_}bR?Q4n5n`XyEi7lXpv*y{p1l)$(=%^5VHji$m#jmy%S zLG#+!e=Zr{EjT{inqq?HcrRbPIw{`X#0)*ucJ@kW`s?lN_*N8!w8sy7QzuKQBih?X zTFj@@y_VDJm9F+iCY=9%+0!0{pMyQ^wbUU!?Dd2~Oa*o}2)XC=Lm$A6o_=<_DfeAE z+0TB1eW)SxUHev3S_mcfw^zUf zN7b~uxWWK?dNKF=?4t$R^;C7`0DG+xLcDrrl)YFPlW&~*lh^(Yo?shKGiTc0Lv`-W zv?GR4=ghK41)6*xt2^e}r^jHQtx1->BYtLN*_YubI@|sPKVgT^XE9qJvi~C_s2?7- zmk!2m%ajxLae{DGeR$FyQxwrq)Mfj-48CmdY7s2zxu5M;6MnB=x6iR);10WEUxDUT z&A-}j7sCPE?~m+fLLhFR;OHA@bA>iPE+m9!Ep{czPXc0dwTD>Gt5wa8PDPl0pM^M_ z=;h#~G%n}&{F=*Y_&I->D&sG*}L=rtNU!l_;($6rEk75{%; zLa3>3N^pn*eh;>F%nC-V-LAVM;T?C{G^&~we2R@|Hc~w+Xiay=Zkw4s;a(qI-5l?o zmZDFS)`pba!x07ly{LyHR%{sCt8^l`8-F} zLa}jc4Y8N!Ibur(a|r<(b=XDa<~y2*)?cd5jqbE(Q%$NV42R~y-{^WH;!d5<>EMZc40vgUl`)T7dY%;uA92J zlqE)ad5gF>>bk(uBE+a#-u%?)U|O-jQKS5fJg)tm)aV&`o6;hAp>eYe(Z4TnM49|~ zRBE9k6yZa~g^tE(vq1|Twb32Y7dl!CF7@(4HeRgsd%7dGvHvC|v;LDkl#95fiPf-_ zA)DM4-8wyGfKGSa;`~XJ7;3j!4V6D#r)8)>wzUXUS(Q?dsbl!*R@ zu%8z>?9pCcQd~D3_TR2L!_X$K4;N2iiRh2WOw9#Szudf>+t`!$TlfWA0y2sUMXvhj^p)+`C8yIT)IYUH!gCV;K zm++gOHKndWiD;abVok7`X$Ybc&0{e8Dv13=wvNA-kN;;OCSS*`P#} z*%~&KZ-x zWO_W{_4>=j3{s(jtdN`~PYwzMJKT2I&^lFVgj4g02e9ymMIvS$W#4dBV z;P0m_bJ)e#jv+2z7iXo-AcVQN7s&Y27?=Tn80B3DL!lRlxS_-F0y8V}hK~5vkQKh1 z$>M`N?wTPh@0KB}D;Q+M3k3XVFl79~2Ef$ijuyfUIs~5XGp_dBrCKvuB)xd7M-2Cna@H_h#AT!K8Y`fk;U3~n84P*fb73?H4CpG8@YC1u z1sP{`>YKhG@ifn2jB%eKEBmBQG2BB+jzNhyp;Nr{r=|wa8h6NG$n$fdRQ@Y;++d3R z%2B?Y_hI->-WB*n?&1SKU>~#D#IF!A1=F&x9O3bXOGrGxB^e|BfKf*FKCYfI;`bSp zh`ok-FTY||;tVO@84P*54fSfT)U4DVKYfkypJ5EEKVEyx#O*wXF}yb#va+{vHH_iC z-k?NmHPko&@nOdJk6U9f*%2 zR?q9dAIW>J5hYmpu+Ls<DC%Y zSH!^$);g+$$Lj(Dx(}+tqIX8$j^q@T&L~j zSy^D%4;jJnEGNFp*oN+}bu2+N>R#vgw7&OL;5z>)9Fb4d0)x|m>s+TNt9r_dl>cVqHaTM8RX^Q? z$=doP(#>o3YLi5r$thrvT~Bp5vA|%+zR!C5w#|-mFyfibjv6NaQ~Gza zqj`DP3*e&TZW-!&X}~vFocJG8$~TTO$i3nlhm88|`UbLGbnzR<#9A}2 z>g7dTNR6I(wQUxj6I=Y4&vw>lh6%FICG|0zz(JF?AX;(J(k+^6IshHbW{|A<5T~? zvYtFHiX-bem>C8|L{OlrM+YLPg9g+fiGq$XFycu(5{*VtqQ+$X)_lQrP4sgNM}K(V z<$CSJjiSVO#AwGWjuL1URKysA@fh!0$a+OZ-B;CBgZ}o9nd(>Xs`u)8U0q$hwlK}; zIFv?q{eUnB+W>g(2jn%&mGGivCHZDM>LacnZbx5;>%Z+li(ARnaMzH@Muj(d!Jib< zP@m=bI%#SfJM}5q^COayEOop<;X=HZhj%WH@gjk-M`?;>61)@H4CQsC z?M{>e1s%T=b)n$8o#+c_+0naDd)n#-?Lsk4Ezj2Qa%Zss%#lY&!dbhJD?xr%JWCkw zeyYh8LXG2T4_W9LDPh1~fGwQ6B8YOJ0g*mew2Sqk#~kbuIw|d7V4wh+N+yxEnDzX2ozS-@H9OCNc38^JNqavnr{>r zL1qAf0lL=8pHXCnTBi|ay(b8De9Z62r7zjx=?$|QldS6{6utlg zIz+JSte%3vo30TE%iLWB#-7GyLkH<4+|onKbCFSHY{vN#62BQ9r{L9fqh@?thL#vq zBY9gz4tP>GK?Rm~h^(T|>DpzTiZF(!L@Rq-P^>Q4TCcm5CD+mLGl-t~l}vyozL9 zdp0EH7Rdote&q_dqTQ$!S$xm7>qFzn(}QRz%$S1@v32GJhfqAU>Ai#FOzF|K-iN#+q^wUV0DfOM=N_&!+Bd8?}-FhBjk>{8rsKr~Z^McTMh^}X7OwOa( zA9{3}E=#qbu&a)|3A<;!vt%!wwD%r?*c##tkOJ-sIf};WGnBs_MR|0M_31H~7V}8A zN{ICG$dpR-SIE3kiCTnN8VV;m`NFV^;Nx@-Z>Z_cnhTSy=1CqAstrlzap<5H_~0!I zmu3kHueiqx)G+Qs(MZLR<_cyZmF5Z_AIfAaC^V?SqyofZOCzp0SBTZk)J%7g7eELV z990E_m`u7=u{HcJt7yRgJ1MS09YW;lbNM8Z7E3o3<^po73PnS`1fM_&eOPB!HcaEMuSk=||LMr>Rb_tQPUxMdzO6!k6ePcP7{eP+C!V|2qZ9753>P9e1Fs;5% zcr}qfPC!{*q`@!LnIRh1GY%Z0l}?P4A;kF$4Tu^S&xD@OaQ19r?*w2@k{fH;&Y^Q`KN#UHmEKZzp3 zEMalnTqhqlUF0b!k>oIqC(8--uldTw%LkZWX~PTWQd0$mmyeZlpoa1G5E%R08m}vy zh1pD=&#C3fWWler;f0fpAQoGia>Yr4S(n0@$$21zF7xEAn>-+2rRtd?pT4bw-vh20&9k_%1MN zJEAxrMkaQxi_kb^vhO$adQ8SHn0UV8w|45oI8NmYbrgz1g;c{m3-saFtJzrC8$jqg zRZmgq|A*{<+CIhN9v+vUUH7{H9|)q=1{#6=DbKF1_q*Kyj(`I_VeAbe z8&0F~&_}|4N5klC{lwou3~hc~>$>Q7=QT>p zW>(Vv3`*7R;#p~ZFdx(P8=1^F1FNPkLe8MRF7*-2WSSTFN-^BNGuT-LbC<@+SB&Al zoxz?;fpMM^GULyps07QO#WdPtL|MOZ6lbzm2qtfphOv;(&%z`llkd)=flyF*Ajvqr z2ZhkEb7(NE4+(^m-8VT3sSVT4LAA?d#W^&Pdam{yN;IfVNz8fF63b^aLGB;Ku;tk( zRE|22;3Y;S!3Uv2Usx<*8twc!rmLCoxqro?S^Zex<*~Nw44ar3r<*NHQh&S1h6~W+ zWm0+p273#sxd1DG7SjD9nrBd(k*bU6eSL4@xCAkmg$%xgzIIt6K%1S;KUw3o;<+L; z*ggun4a0cHabIwZd!)eF`K;g~sh4S+i`l^w}E2I32uHb)@bZ zEO@y{!gbUi+&BF?3-rFb4sncyoWG8y8`LP0bpzQU;G1y+dMd2*-$3m`U5Gvn;ROk% z_lwmxpppv7gBz#?wjvFar7O;7lb_~t3tf0ixQQZ$zRa$B2J8stZq2H?ms#9Kii367 zh>RW(BmbFwl}I(-eOf%cRz=Xo7?+L*W-|HbO?YCVMmc6_2rr0(j-wGh6MjB_6PBy` z5c4fqnSctrg_5Cp<=$cu**yxmNc?T|seUFQx4|JZN$G8Pjx~rpzm3Mm%hifyOZV*B z`we0IYfs&feeb@3I~2os!IZfnbcD|W-GS)HO3Lq`WQ*ng9EIjt??U^P$*{X9)}UhY z)m?ZtmQN1fMbjYZS%Wef6f9~MuiHUijxQi9YtWN;i!>sy>#s~jk&L@)qehYIa#w9+ zDN-+WJ;SkNe=Rx{5nO#VzjKvV68ron?-v(Zj~Uknlg)picS9}Jhx20!YqliRQXb<* zixT>81UuekvL6onfj(S)4^3~}plmLU%PNhqJx0k6z%@qgWwUO|kU;!e030+hwIN<> zu$E|h0}JL7M+jC0m_Cm@3Bfl6Xr51QH^xZ9E`;`1GF;-YRHcc;HxEd4xFa{LwP$MH-vWp;DreDFlA6X z9Atnh9hrb<>wA#f3AndDmAsjVN9wyP%Mx)LqkfTcpd>a#nuNNhgS$sav_Y&&YrjC}ocFeF}a*5bO_1!wpPU72X@86|_oe-iubkA!SW( z`~;qCEGMh`;-l7l0(;Yz!`?MzQa>CI`~E1rn!+3U;|vWh`hSV z+eEj#O&)*;YT$MXo)~~%)4=r6!ldWYj<$tAXDFsLUIP zqYMr52^>gmHt(c4+XiF07m=1}4`n#^9<)aa7VM|!;P>%8I7~@nD5W_KhT>{dlhOz9 zEe1H(+0qsS1;O^M2g<_{*sO0>`oQ3w(Gxz60_RRsWC3i|EPX(lWa0VYr4QIa*ziRQ zhM^lYACMhc*vZ6gq32)&N7*x$A2+1kbyp3=ycw>gfQijx}|)FWj1OxzYy<={;G+{iBG;^FKfZXvEUP?E?c zxR>G35%SRzyo18hQXEOsPD}Ap%5iilZmT!sm%zrTmYBQA!T{ z{tmyX@N>g2Pnom~4>a2De+anYD5Vm9-wZ=3;Q(KUG!s&fa%BbXZ_=+{+&bn^2fyGr=~jc20uvd1lthJ>B{k+ z@gI8FXjxJQgIzj#swEv&oDC9)idX3il%#|BL^ycHdKPCGVU`}~!@~?|GTGw8&EUzX z>ccM@sZX+XkL-#I-ocPn5BcQ+{u4NkT*TL)yUrjxF5?dHxd!FtWxSrgHoWL6p43du z=?dpAm&2{3Yhl+4DYoJoo(Im&A#HEsO*B1o6Ms+B`M2;JfocxD zy)Xrk%vx+Cn;&B{skw#W6JI%`@okJiMf`1?4WKgrHg0TapymWwC`VYpTckf_Id~V3 zrPPTvIESX|YVc}9Sq@3B#d#F2sKpN{`_F&im0&`SGWs4Kt#7X8I7^JK0NvLCrT|Ui zSMoBaGLG4uLoVLO6_k6+1N?t9O?-%7r)kzhyoRO$k8nSl4tj*wGkgt>BQ5{LJ_?v0 z<2PuU@)$3sY1LyqL~kPTPncawpC|Y(yr5oAQtI$T@cVal7~axXj@98AW_VK|VGX6EAOV&tWO+mB z6NW0?OM-%>r9q{cKw8P<76(f+t?4TSYic8@l^-;b35}#v)-w2b8x@?d^bG;5H61>) zk^V1myD}|OYNNLnz=t$6cypALq_>ux*5EX92LZhRO^OXm4}zff!s4V=`mi!z^3w8d z$z#G(ep(6)8>oVkRua5KkVcNRmR^HaaE~QQL>pq!>J^bv-#nfVW!NeugG{Mx9HGqRc4=%pvk7KQKp`h5{-tm60+$x=}nqm z|4sTINR=VgQVvj*C`V6A2jD_g7M_tV2f`T`%HOX@BS1}s^4nEukjapLRC)cj6kssq z|C_vVSE@6l-B&u)NM?&6?UB;?p|lRTA1N0fN$cSlyl2YnC(<{1gXx9Rp-wsj7fndx z=aLsvrRup<0CHote_-2aG??N^V1R8lq{`9&TcyQdYNveM(3S%m+eedgjcjY8VakTL z(8!ju7qE5YVDiLjN?*t ze+e^FDemyF{61t@Q(N?Zk=Q@hNNO3$KbqS9H4uEn%HSDZU)+K$s0Rs(yI8~dKKO87 zeZ7{hV!mKp&Y`bz)naPoyk@p!n-HuUR8In*kv2`VQIbo|Y#pOtmgMdCDw&g!B}dpk zjZRxxuTYm>PnP}x7#l;Sl|#(Dn%RDxX` diff --git a/boards/default/micropython_esp32c2/build/lib/map.json b/boards/default/micropython_esp32c2/build/lib/map.json new file mode 100644 index 00000000..04fe9961 --- /dev/null +++ b/boards/default/micropython_esp32c2/build/lib/map.json @@ -0,0 +1,82 @@ +{ + "ble_central": { + "__require__": [ + "time", + "gc", + "bluetooth", + "micropython", + "ubinascii", + "ble_advertising" + ], + "__file__": true, + "__size__": 7378, + "__name__": "ble_central.py" + }, + "mini_bot": { + "__require__": [ + "time", + "math", + "esp", + "micropython", + "framebuf" + ], + "__file__": true, + "__size__": 12696, + "__name__": "mini_bot.py" + }, + "mini_g2": { + "__require__": [ + "gc", + "machine", + "rc522" + ], + "__file__": true, + "__size__": 544, + "__name__": "mini_g2.py" + }, + "mini_go": { + "__require__": [ + "time", + "gc", + "math", + "tm1931", + "machine" + ], + "__file__": true, + "__size__": 8481, + "__name__": "mini_go.py" + }, + "mixgo_mini": { + "__require__": [ + "time", + "gc", + "esp32", + "machine", + "ws2812x", + "musicx", + "sc7a20", + "ap3216c", + "mini_bot" + ], + "__file__": true, + "__size__": 4611, + "__name__": "mixgo_mini.py" + }, + "musicx": { + "__require__": [ + "time" + ], + "__file__": true, + "__size__": 3545, + "__name__": "musicx.py" + }, + "ws2812x": { + "__require__": [ + "time", + "machine" + ], + "__file__": true, + "__size__": 1881, + "__name__": "ws2812x.py" + } +} \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/build/lib/mini_bot.py b/boards/default/micropython_esp32c2/build/lib/mini_bot.py index e4adeac6..1eceecd5 100644 --- a/boards/default/micropython_esp32c2/build/lib/mini_bot.py +++ b/boards/default/micropython_esp32c2/build/lib/mini_bot.py @@ -21,6 +21,7 @@ _BOT035_PGA = const(0x20) _BOT035_KB = const(0x1C) _BOT035_MS = const(0x20) _BOT035_STR = const(0x24) +_BOT035_STA = const(0x25) _FONT_W = const(5) _FONT_H = const(8) _LEDS_W = const(12) @@ -316,6 +317,10 @@ class BOT035(FrameBuffer): else: print("Warning: Please upgrade the coprocessor firmware to use this feature") + def hid_keyboard_state(self): + state = self._rreg(_BOT035_STA) + return bool(state & 0x10), bool(state & 0x20), bool(state & 0x40) + def hid_mouse(self, keys=0, move=(0, 0), wheel=0, release=True): if self._version: self._i2c.writeto_mem(_BOT035_ADDRESS, _BOT035_MS, bytes([keys & 0x0F, move[0] & 0xFF, move[1] & 0xFF, wheel & 0xFF])) diff --git a/boards/default/micropython_esp32c2/index.xml b/boards/default/micropython_esp32c2/index.xml index f62ed992..c1518c88 100644 --- a/boards/default/micropython_esp32c2/index.xml +++ b/boards/default/micropython_esp32c2/index.xml @@ -1,6905 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - 2000 - - - - - - - - - - - attachInterrupt_func - - - - - - - - attachInterrupt_func - - - - - - - - - - - - - - - - - - 1 - - - - - - - - 0,1,2,3 - - - - - 0 - - - - - 5 - - - - - 1 - - - - - - - i - - - - - - - - - - - - - DIVIDE - - - 1 - - - - - 0 - - - - - - - - - Exception as e - - - - - - - e - - - - - - - - - testThread - - - - - - - - - - testThread - - - WHILE - - - TRUE - - - - - - - Hello Mixly from Thread! - - - - - ms - - - 10 - - - - - - - - - - - - - tim - - - - - - - tim - - - - - 1000 - - - - - tim_callback - - - - - - - - tim_callback - - - - - - - - - - - - - - - - - - 500 - - - - - 0 - - - - - - - 2000 - - - - - - - - - - - - - - - - - - - - - - - 90 - - - - - - - x - - - - - - - 15 - - - - - - - 1 - - - - - 1 - - - - - - - 0 - - - - - 0 - - - - - - - a - - - - - 1 - - - - - - - 0.998 - - - - - - - 1 - - - - - 2 - - - - - - - 4.8 - - - - - 2 - - - - - - - - 997 - - - - - - - 1 - - - - - 100 - - - - - - - 1010 - - - - - - 1000 - - - - - 1 - - - - - 100 - - - - - - - 50 - - - - - 1 - - - - - 100 - - - - - 1 - - - - - 1000 - - - - - - - - - - 0 - - - - - x - - - - - 2 - - - - - - - - - - - - x - - - - - 0,1,2,3 - - - - - - - 0,1,2,3 - - - - - 0,1,2,3 - - - - - - - x - - - - - - - Mixly - - - - - - - Hello - - - - - Mixly - - - - - - - - 65 - - - - - - - a - - - - - - - x - - - - - - - Mixly - - - - - - - - - - - - - - - - - - - Mixly - - - - - 0 - - - - - - - Mixly - - - - - 0 - - - - - 2 - - - - - - - Mixly - - - - - - - Mixly - - - - - - - Hello,mixly - - - - - l - - - - - - - -- - - - - - mylist - - - - - - - Hello,mixly - - - - - mixly - - - - - mixpy - - - - - - - I love mixly! - - - - - - - - - - - - I love mixly - - - - - - - - Random No. is {} - - - - - int - - - 1 - - - - - 100 - - - - - - - - - input('1+2*3') - - - - - - - - mylist - - - 1,2,3,4,5 - - - - - - - - mylist - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - 2 - - - - - - - mylist - - - - - - - - mylist - - - - - - - mylist - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - - - mylist - - - - - 0 - - - - - - - mylist - - - - - - - mylist - - - - - - - mylist - - - - - - - - x - - - - - - - - mytup - - - 1,2,3,4,5 - - - - - - - - mytup - - - - - 0 - - - - - - - mytup - - - - - 0 - - - - - 2 - - - - - - - mytup - - - - - - - mytup - - - - - - - mytup - - - - - - - mytup - - - - - 0 - - - - - - - mytup - - - - - - - mytup1 - - - - - mytup2 - - - - - - - - x - - - - - - - - - - mydict - - - - - - - mydict - - - - - key - - - - - - - mydict - - - - - key - - - - - 0 - - - - - - - mydict - - - - - key - - - - - 0 - - - - - - - mydict - - - - - key - - - - - - - mydict - - - - - key - - - - - - - mydict - - - - - key - - - - - 0 - - - - - - - mydict - - - - - - - - mydict - - - - - - - mydict - - - - - - - mydict - - - - - - - x - - - - - - - mydict - - - - - - - {"name":"Mixly","color":"green"} - - - - - - - - s1 - - - 1,2,3,4,5 - - - - - - - s1 - - - - - - - s1 - - - - - - - s1 - - - - - s2 - - - - - - - s1 - - - - - s2 - - - - - - - s1 - - - - - 0 - - - - - - - s1 - - - - - Mixly - - - - - - - s1 - - - - - s2 - - - - - - - x - - - - - - - - - - - - Mixly - - - - - - - Mixly - - - - - - - Mixly - - - - - , - - - - - - - - Hello - - - - - Mixly - - - - - - - prompt - - - - - - - 0 - - - - - 2 - - - - - - - Mixly - - - - - - - Mixly - - - - - - - 0XFF00FF - - - - - - - code - - - - - - - - - b - - - Mixly - - - - - Mixly - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - attachInterrupt_func - - - - - - - - - - 1 - - - - - - - attachInterrupt_func - - - - - - - - attachInterrupt_func - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rfid - - - - - - - 0 - - - - - - - 0 - - - - - Mixly - - - - - - - 0 - - - - - Mixly - - - - - - - 2022 - - - - - 7 - - - - - 1 - - - - - 14 - - - - - 20 - - - - - 45 - - - - - - - (2023,1,1,12,0,0) - - - - - - - - - - - - - - 18029 - - - - - - - 2023,1,1,12,0,0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - 440 - - - - - - - 440 - - - - - 1000 - - - - - - - 0 - - - - - - - - - - - - 4 - - - - - 120 - - - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 1000 - - - - - - - 1000 - - - - - - - - - 100 - - - - - - - 20000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hello, Mixly! - - - - - 10 - - - - - - - - - - - - - - Mixly - - - - - 0 - - - - - - - Mixly - - - - - - - Mixly - - - - - 50 - - - - - 0 - - - - - - - Mixly - - - - - - - Mixly - - - - - 500 - - - - - - - - - - - - - - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0.5 - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - - 100 - - - - - - - - 100 - - - - - - - 0 - - - - - - - - - interrupt_func - - - - - - - - - interrupt_func - - - - - - turns - - - - - distance - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - 0 - - - - - Mixly - - - - - - - 0 - - - - - Mixly - - - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - - - - - - 8080 - - - - - AUTH TOKEN - - - - - - - 0 - - - - - _value - - - - - - - - - 0 - - - - - 2 - - - - - - - - 0 - - - - - - - - - 0 - - - - - 0 - - - - - - - notify - - - - - - - - - - - 0 - - - - - - - Your Target Email - - - - - subject - - - - - body - - - - - - - color - - - - - #FF0000 - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - mixio.mixly.cn - - - - - - - - - - - - mixio.mixly.cn - - - - - A1B2C3 - - - - - - - mixio.mixly.cn - - - - - username - - - - - password - - - - - MyProject - - - - - - - topic - - - - - msg - - - - - - - topic - - - - - method - - - - - - - - - - method - - - - - EQ - - - msg - - - - - 1 - - - - - - - - - - - content - - "long" - "lat" - "message" - - - 0 - - - - - 1 - - - - - 2 - - - - - - - - - content - - "key1" - "key2" - "key3" - - - 0 - - - - - 1 - - - - - 2 - - - - - - - - - - - - - http://mixio.mixly.org/time.php - - - - - - - - mixio.mixly.cn - - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - c - - - - - sub_cb - - - - - 31444082 - - - - - 183.230.40.39 - - - - - 141092 - - - - - 61n63JySRowo13ZLDBKw6y896E0= - - - - - MixlyRobot - - - - - - - - - sub_cb - - - - - EQ - - - msg - - - - - 1 - - - - - - - - - - - c - - - - - - iot_dict - "sound" - - - - - - - - c - - - - - iot_dict - - - - - - - - c - - - - - - - c - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - client - - - - - Enter Your API_KEY - - - - - Enter Your SECRET_KEY - - - - - - - client - - - - - 1 - - - - - - - client - - - - - S72099 - - - - - 北京今天天气如何? - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - - SVa3S0UKHIy9dDArs - - - - - 北京 - - - - - - - - - - - - - - SVa3S0UKHIy9dDArs - - - - - 北京 - - - - - 1 - - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - 0 - - - - - - - - - - - ble_c - - - - - - - ble_p - - - - - Mixly - - - - - - - ble_c - - - - - - - ble_c - - - - - Mixly - - - - - - - ble_c - - - - - - - ble_x - - - - - - - ble_x - - - - - - - ble_x - - - - - Mixly - - - - - - - ble_x - - - - - - - ble_x - - - - - ble_method - - - - - - - - ble_method - - - - - EQ - - - data - - - - - Mixly - - - - - - - - - - - - - handle - - - - - handle_method - - - - - - - - - - - handle_method - - - - - - key1 - - - - - key2 - - - - - key3 - - - - - keyx - - - - - - - - - - - - ble_keyboard_mouse - - - - - - - - - 10 - - - - - - - - - - - - - - - - - Hello, Mixly! - - - - - 10 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - 20000 - - - - - - - 0 - - - - - 100 - - - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - 9000,4500,563,563 - - - - - - - 0x1234 - - - - - - - - - - - - callback - - - - - - cmd - - - - - addr - - - - - raw - - - - - pulses - - - - - - - - - - - - i2c - - - - - 22 - - - - - 21 - - - - - 100000 - - - - - - - i2c - - - - - 0 - - - - - 0 - - - - - - - i2c - - - - - 0 - - - - - 0 - - - - - - - i2c - - - - - - - i2c - - - - - - - i2c - - - - - - - - - spi - - - - - 200000 - - - - - 4 - - - - - 5 - - - - - 12 - - - - - - - spi - - - - - 200000 - - - - - - - buf - - - - - 50 - - - - - - - spi - - - - - 10 - - - - - - - spi - - - - - 10 - - - - - 0xff - - - - - - - spi - - - - - buf - - - - - - - spi - - - - - buf - - - - - 0xff - - - - - - - spi - - - - - 12345 - - - - - - - spi - - - - - 12345 - - - - - buf - - - - - - - - - - 1 - - - - - - - - - - Mixly - - - - - - - - - - - - - - - - - - - - - ow - - - - - 12 - - - - - - - ow - - - - - - - ow - - - - - - - ow - - - - - 12345 - - - - - - - ow - - - - - 12345 - - - - - - - ow - - - - - - - - - my_now - - - - - 0 - - - - - - - my_now - - - - - - - my_now - - - - - - - my_now - - - - - FFFFFFFFFFFF - - - - - mixly - - - - - - - my_now - - - - - - - my_now - - - - - cb - - - - - - - - - cb - - - - - EQ - - - msg - - - - - 1 - - - - - - - - - - - - - spi - - - - - 1000000 - - - - - 4 - - - - - 5 - - - - - 12 - - - - - - - spi - - - - - 8 - - - - - my_lora - - - - - 433.92 - - - - - 5 - - - - - 7 - - - - - 16 - - - - - - - my_lora - - - - - - - my_lora - - - - - - - my_lora - - - - - Mixly - - - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 100000 - - - - - - - xsensor - - - - - i2c_extend - - - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - 5000 - - - - - 500 - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - xsensor - - - - - - - - - - xsensor - - - - - - spi - - - - - 1000000 - - - - - 4 - - - - - 5 - - - - - 12 - - - - - - - spi - - - - - 8 - - - - - ysensor - - - - - - - - - - ysensor - - - - - 0 - - - - - - - ysensor - - - - - 0 - - - - - - - ysensor - - - - - 0 - - - - - Mixly - - - - - - - ysensor - - - - - 0 - - - - - Mixly - - - - - - - - ysensor - - - - - - - - ysensor - - - - - - - ysensor - - - - - - 39,119.96,31.67 - - - - - - - ysensor - - - - - - - ysensor - - - - - station - - - - - - - - - - - - - - - - - - 4 - - - - - 5 - - - - - - - - ps2_handle - - - - - 2 - - - - - 4 - - - - - 5 - - - - - 12 - - - - - - - ps2_handle - - - - - 50 - - - - - - - ps2_handle - - - - - - - ps2_handle - - - - - - - ws_wr - - - - - 0 - - - - - 1 - - - - - 21 - - - - - - - ws_wr - - - - - - - ws_wr - - - - - - - ws_wr - - - - - 3600 - - - - - - - 0 - - - - - 2 - - - - - - - zsensor - - - - - - - - - zsensor - - - - - - - zsensor - - - - - - - zsensor - - - - - - - weight - - - - - 1 - - - - - 2 - - - - - 500 - - - - - - - weight - - - - - - - - - - - - 100 - - - - - - - midi - - - - - 0 - - - - - - - midi - - - - - 440 - - - - - - - midi - - - - - 440 - - - - - 1000 - - - - - - - midi - - - - - - - - - - midi - - - - - - - midi - - - - - 4 - - - - - 120 - - - - - - - midi - - - - - - - midi - - - - - - - rgb - - - - - 0 - - - - - 4 - - - - - - - rgb - - - - - 0 - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - rgb - - - - - 0 - - - - - 0 - - - - - 0 - - - - - - - rgb - - - - - - - - - - 100 - - - - - - - - - - - - - - - 100 - - - - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 400000 - - - - - - - Motor - - - - - i2c_extend - - - - - - - - - Motor - - - - - 100 - - - - - - - - Motor - - - - - 1024 - - - - - 1024 - - - - - - - 0 - - - - - 2 - - - - - - - actuator - - - - - - - - - actuator - - - - - - - - - - actuator - - - - - - - actuator - - - - - - - - - - actuator - - - - - 你好米思齐 - - - - - - - - - - actuator - - - - - - - actuator - - - - - - - actuator - - - - - 20 - - - - - - - actuator - - - - - - - actuator - - - - - mixly*.mp3 - - - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 400000 - - - - - - - matrix - - - - - i2c_extend - - - - - - - - - matrix - - - - - - - matrix - - - - - - - - - matrix - - - - - Mixly - - - - - 0 - - - - - - - matrix - - - - - Mixly - - - - - - - matrix - - - - - Mixly - - - - - 50 - - - - - 0 - - - - - - - matrix - - - - - Mixly - - - - - - - matrix - - - - - Mixly - - - - - 500 - - - - - - - - - - matrix - - - - - - - - matrix - - - - - > - - - - - - - matrix - - - - - - - - - - matrix - - - - - 1 - - - - - - - matrix - - - - - - - - - - - - - matrix - - - - - - - - - - - - - - - - - matrix - - - - - 0.5 - - - - - - - matrix - - - - - - - matrix - - - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 100000 - - - - - - - disp - - - - - i2c_extend - - - - - - - - - - disp - - - - - 2333 - - - - - - - disp - - - - - - - - - - - - - - disp - - - - - 1 - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 100000 - - - - - - - lcd - - - - - i2c_extend - - - - - 0x27 - - - - - - - - - - lcd - - - - - Mixly - - - - - 0 - - - - - 0 - - - - - - - lcd - - - - - Mixly - - - - - 0 - - - - - 0 - - - - - 5 - - - - - - - lcd - - - - - - - lcd - - - - - - - - - i2c_extend - - - - - 4 - - - - - 5 - - - - - 100000 - - - - - - - oled - - - - - i2c_extend - - - - - 0x3c - - - - - - - - - - oled - - - - - - - - - - - oled - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - - - oled - - - - - Mixly - - - - - - - oled - - - - - Mixly - - - - - 0 - - - - - 0 - - - - - 1 - - - - - 0 - - - - - - - oled - - - - - Mixly - - - - - - - oled - - - - - Mixly - - - - - 0 - - - - - 5 - - - - - 5 - - - - - 0 - - - - - - - oled - - - - - Mixly - - - - - - - oled - - - - - Mixly - - - - - 5 - - - - - 500 - - - - - - - oled - - - - - 0 - - - - - 0 - - - - - 20 - - - - - - - oled - - - - - 0 - - - - - 0 - - - - - 50 - - - - - 50 - - - - - - - oled - - - - - 20 - - - - - 20 - - - - - 20 - - - - - 15 - - - - - - - oled - - - - - 1 - - - - - - - oled - - - - - 0 - - - - - 0 - - - - - - - oled - - - - - 0 - - - - - 0 - - - - - - - - - - - oled - - - - - - - - - spi - - - - - 1000000 - - - - - 4 - - - - - 5 - - - - - 0 - - - - - - - spi - - - - - 7 - - - - - 8 - - - - - tft_st7789 - - - - - 135 - - - - - 240 - - - - - - - - - - tft_st7789 - - - - - - - - - 0 - - - - - 0 - - - - - 1 - - - - - #ffffff - - - 255,255,0 - - - - - - - tft_st7789 - - - - - Mixly - - - - - 0 - - - - - 0 - - - - - 5 - - - - - 0 - - - - - #ffffff - - - 255,255,0 - - - - - - - tft_st7789 - - - - - Mixly - - - - - 0 - - - - - 5 - - - - - 5 - - - - - 0 - - - - - #ffffff - - - 255,255,0 - - - - - - - tft_st7789 - - - - - Mixly - - - - - 5 - - - - - 500 - - - - - #ffffff - - - 255,255,0 - - - - - - - tft_st7789 - - - - - 0 - - - - - 0 - - - - - 40 - - - - - 40 - - - - - #ffffff - - - 255,255,0 - - - - - - - tft_st7789 - - - - - - - - - - 1 - - - - - 2 - - - - - - - ai_sensor - - - - - - - - - ai_sensor - - - - - 9 - - - - - 8 - - - - - - - ai_sensor - - - - - 255,255,0 - - - - - 0,0,255 - - - - - - - ai_sensor - - - - - 'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se' - - - - - 0.1 - - - - - - - ai_sensor - - - - - 1.wav - - - - - 5 - - - - - - - ai_sensor - - - - - 1.wav - - - - - 100 - - - - - - - ai_sensor - - - - - info - - - - - ai_sensor - - - - - - - - - - qrcode - - - - - info - - - - - ai_sensor - - - - - - - - - - barcode - - - - - info - - - - - ai_sensor - - - - - - - - - - tag - - - - - info - - - - - ai_sensor - - - - - 2500 - - - - - 25 - - - - - 25 - - - - - - - - - - line - - - - - info - - - - - ai_sensor - - - - - 3500 - - - - - 2 - - - - - 100 - - - - - - - - - - circle - - - - - info - - - - - ai_sensor - - - - - 10000 - - - - - - - - - - rect - - - - - info - - - - - ai_sensor - - - - - - - - - - info - - - - - info - - - - - ai_sensor - - - - - color_lab - - - - - 10 - - - - - 1 - - - - - - - - - - colors - - - - - - - ai_sensor - - - - - '猫','狗','笔记本','笔' - - - - - mixgo - - - - - 5 - - - - - 自模型训练 - - - - - info - - - - - ai_sensor - - - - - '猫','狗','笔记本','笔' - - - - - mixgo - - - - - 自模型识别 - - - - - - - - objects - - - - - info - - - - - ai_sensor - - - - - 0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, - 3.4423, 5.6823 - - - - - /sd/masks.kmodel - - - - - 外部模型加载 - - - - - - - - objects - - - - - - - - - 1 - - - - - 2 - - - - - - - ai_sensor - - - - - - - - - ai_sensor - - - - - 9 - - - - - 8 - - - - - - - ai_sensor - - - - - 255,255,0 - - - - - 0,0,255 - - - - - - - ai_sensor - - - - - 1.wav - - - - - 5 - - - - - - - ai_sensor - - - - - 1.wav - - - - - 100 - - - - - - info - - - - - ai_sensor - - - - - - - - - licensePlate - - - - - info - - - - - ai_sensor - - - - - - - - - face - - - - - info - - - - - ai_sensor - - - - - - - - - 20objects - - - - - - - ai_sensor - - - - - info - - - - - ai_sensor - - - - - - - - - - qrcode - - - - - info - - - - - ai_sensor - - - - - - - - - - barcode - - - - - info - - - - - ai_sensor - - - - - - - - - - tag - - - - - info - - - - - ai_sensor - - - - - 2500 - - - - - 25 - - - - - 25 - - - - - - - - - - line - - - - - info - - - - - ai_sensor - - - - - 3500 - - - - - 2 - - - - - 100 - - - - - - - - - - circle - - - - - info - - - - - ai_sensor - - - - - 10000 - - - - - - - - - - rect - - - - - info - - - - - ai_sensor - - - - - - - - - - info - - - - - info - - - - - ai_sensor - - - - - color_lab - - - - - 10 - - - - - 1 - - - - - - - - - - colors - - - - - - - - - - - - filename.txt - - - - - f - - - - - - - Mixly - - - - - f - - - - - - - f - - - - - - - f - - - - - 0 - - - - - - - f - - - - - - - f - - - - - - - f - - - - - - - - - path - - - - - - - path - - - - - - - filename.txt - - - - - - - srcname.txt - - - - - dstname.txt - - - - - - - - path - - - - - - - f - - - - - - - f - - - - - 0 - - - - - - - - - - wifiname - - - - - wifipassword - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - 127.16.0.8 - - - - - 01234567 - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - - - wlan - - - - - 127.16.0.8 - - - - - 1 - - - - - connect_wifi - - - - - wlan - - - - - AP - - - wlan - - - - - True - - - wlan - - - - - - - wlan - - - - - SmallCabbage - - - - - 1 - - - - - WHILE - - - TRUE - - - EQ - - - 0 - - - wlan - - - - - - - 0.0.0.0 - - - - - - - ms - - - 1000 - - - - - - - - - - - - - - - - - TRUE - - - - - - - s - - - - - - - s - - - - - - - - 0.0.0.0 - - - - - 80 - - - - - - - - - s - - - - - - - - 192.168.0.1 - - - - - 80 - - - - - - - - - s - - - - - 5 - - - - - - - s - - - - - - - s - - - - - 1024 - - - - - - - s - - - - - b - - - Mixly - - - - - response - - - - - - - s - - - - - 1024 - - - - - - - s - - - - - b - - - Mixly - - - - - response - - - - - - - - 127.0.0.1 - - - - - 80 - - - - - - - - - s - - - - - - - - ntp.aliyun.com - - - - - - - response - - - - - http://mixio.mixly.cn - - - - - - - response - - - - - http://mixio.mixly.cn - - - - - - - - - - - - - - response - - - - - - - - - - - - - - - - - - - \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,010044044010000412000000000001000100010020000Hello, Mixly!10Mixly0MixlyMixly500MixlyMixly50010.501001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京10000ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/main.bundle.js b/boards/default/micropython_esp32c2/main.bundle.js index 216c2632..f72f73f4 100644 --- a/boards/default/micropython_esp32c2/main.bundle.js +++ b/boards/default/micropython_esp32c2/main.bundle.js @@ -1,35436 +1,4 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ "../micropython/blocks/actuator.js": -/*!*****************************************!*\ - !*** ../micropython/blocks/actuator.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actuator_extern_get_led_bright: () => (/* binding */ actuator_extern_get_led_bright), -/* harmony export */ actuator_extern_led_bright: () => (/* binding */ actuator_extern_led_bright), -/* harmony export */ actuator_extern_led_brightness: () => (/* binding */ actuator_extern_led_brightness), -/* harmony export */ actuator_get_led_bright: () => (/* binding */ actuator_get_led_bright), -/* harmony export */ actuator_led_bright: () => (/* binding */ actuator_led_bright), -/* harmony export */ actuator_led_brightness: () => (/* binding */ actuator_led_brightness), -/* harmony export */ actuator_neopixel_init: () => (/* binding */ actuator_neopixel_init), -/* harmony export */ actuator_neopixel_rgb: () => (/* binding */ actuator_neopixel_rgb), -/* harmony export */ actuator_neopixel_write: () => (/* binding */ actuator_neopixel_write), -/* harmony export */ actuator_onboard_neopixel_rgb: () => (/* binding */ actuator_onboard_neopixel_rgb), -/* harmony export */ actuator_onboard_neopixel_rgb_all: () => (/* binding */ actuator_onboard_neopixel_rgb_all), -/* harmony export */ actuator_onboard_neopixel_write: () => (/* binding */ actuator_onboard_neopixel_write), -/* harmony export */ esp32_mixgo_music_play_list_show: () => (/* binding */ esp32_mixgo_music_play_list_show), -/* harmony export */ esp32_music_get_tempo: () => (/* binding */ esp32_music_get_tempo), -/* harmony export */ esp32_music_pitch: () => (/* binding */ esp32_music_pitch), -/* harmony export */ esp32_music_pitch_with_time: () => (/* binding */ esp32_music_pitch_with_time), -/* harmony export */ esp32_music_play_list: () => (/* binding */ esp32_music_play_list), -/* harmony export */ esp32_music_reset: () => (/* binding */ esp32_music_reset), -/* harmony export */ esp32_music_set_tempo: () => (/* binding */ esp32_music_set_tempo), -/* harmony export */ esp32_music_stop: () => (/* binding */ esp32_music_stop), -/* harmony export */ esp32_onboard_music_pitch: () => (/* binding */ esp32_onboard_music_pitch), -/* harmony export */ esp32_onboard_music_pitch_with_time: () => (/* binding */ esp32_onboard_music_pitch_with_time), -/* harmony export */ esp32_onboard_music_play_list: () => (/* binding */ esp32_onboard_music_play_list), -/* harmony export */ esp32_onboard_music_stop: () => (/* binding */ esp32_onboard_music_stop), -/* harmony export */ get_led_bright: () => (/* binding */ get_led_bright), -/* harmony export */ led_brightness: () => (/* binding */ led_brightness), -/* harmony export */ led_light: () => (/* binding */ led_light), -/* harmony export */ ledswitch: () => (/* binding */ ledswitch), -/* harmony export */ number: () => (/* binding */ number), -/* harmony export */ servo_move: () => (/* binding */ servo_move) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const ACTUATOR_HUE = 100; - -//Servo -const servo_move = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput("DEGREE", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DEGREE_0_180); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_MOVE); - } -}; - -//LED -const number = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["1", "1"], - ["2", "2"] - ]), 'op') - this.setOutput(true); - } -}; - -const ledswitch = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ON, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OFF, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOGGLE, "-1"] - ]), "flag"); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const actuator_extern_led_bright = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF); - } -}; - -const actuator_extern_get_led_bright = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF); - } -}; - -const actuator_extern_led_brightness = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT); - } -}; - -const actuator_led_bright = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const actuator_get_led_bright = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const actuator_led_brightness = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETBRIGHT); - } -}; - -//music -const esp32_music_pitch = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE); - } -}; - -const esp32_music_pitch_with_time = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2); - } -}; - -const esp32_music_stop = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NOTONE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const esp32_music_set_tempo = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput('TICKS') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SET_TEMPO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_ACTUATOR_ticks); - this.appendValueInput('BPM') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO); - } -} - -const esp32_music_get_tempo = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Get_current_tempo) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO); - } -} - -const esp32_music_reset = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_music) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_RESET); - } -} - -const esp32_onboard_music_pitch = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE); - } -}; - -const esp32_onboard_music_pitch_with_time = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2); - } -}; - -const esp32_onboard_music_stop = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NOTONE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const esp32_onboard_music_play_list = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS); - - } -} - -const esp32_music_play_list = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS) - this.appendValueInput('PIN') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS); - - } -} - -const esp32_mixgo_music_play_list_show = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS) - this.appendValueInput('PIN') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - // this.appendValueInput('DISPLAY') - // .appendField(Blockly.Msg.MIXLY_ESP32_MIXGO_MUSIC_SHOW_IN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MIXGO_MUSIC_PLAY_TONE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAYSHOW) - } -} -//RGB -const actuator_neopixel_init = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.appendValueInput("LEDCOUNT") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_COUNT); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_PIN_COUNT); - } -}; - -const actuator_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput('SUB') - .setCheck("var"); - // .appendField(Blockly.Msg.MIXLY_SETUP) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B); - } -}; - -const actuator_neopixel_write = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RGB_WRITE) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_WRI); - } -}; - -const actuator_onboard_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B); - } -}; - -const actuator_onboard_neopixel_rgb_all = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B); - } -}; - -const actuator_onboard_neopixel_write = { - init: function () { - this.setColour(ACTUATOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RGB_WRITE) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_WRI); - } -}; - - -const led_light = actuator_led_bright; -const get_led_bright = actuator_get_led_bright; -const led_brightness = actuator_led_brightness; - - -/***/ }), - -/***/ "../micropython/blocks/actuator_extern.js": -/*!************************************************!*\ - !*** ../micropython/blocks/actuator_extern.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PIN_init: () => (/* binding */ PIN_init), -/* harmony export */ actuator_extern_get_led_bright: () => (/* binding */ actuator_extern_get_led_bright), -/* harmony export */ actuator_extern_get_led_state: () => (/* binding */ actuator_extern_get_led_state), -/* harmony export */ actuator_extern_led_bright: () => (/* binding */ actuator_extern_led_bright), -/* harmony export */ actuator_extern_led_brightness: () => (/* binding */ actuator_extern_led_brightness), -/* harmony export */ actuator_ms32006_dcmotor: () => (/* binding */ actuator_ms32006_dcmotor), -/* harmony export */ actuator_ms32006_init: () => (/* binding */ actuator_ms32006_init), -/* harmony export */ actuator_ms32006_stepper: () => (/* binding */ actuator_ms32006_stepper), -/* harmony export */ actuator_neopixel_init: () => (/* binding */ actuator_neopixel_init), -/* harmony export */ actuator_neopixel_rgb: () => (/* binding */ actuator_neopixel_rgb), -/* harmony export */ actuator_neopixel_rgb_all: () => (/* binding */ actuator_neopixel_rgb_all), -/* harmony export */ actuator_neopixel_write: () => (/* binding */ actuator_neopixel_write), -/* harmony export */ actuator_use_uart_init: () => (/* binding */ actuator_use_uart_init), -/* harmony export */ esp32_music_get_tempo_extern: () => (/* binding */ esp32_music_get_tempo_extern), -/* harmony export */ esp32_music_pitch: () => (/* binding */ esp32_music_pitch), -/* harmony export */ esp32_music_pitch_init: () => (/* binding */ esp32_music_pitch_init), -/* harmony export */ esp32_music_pitch_with_time: () => (/* binding */ esp32_music_pitch_with_time), -/* harmony export */ esp32_music_play_list: () => (/* binding */ esp32_music_play_list), -/* harmony export */ esp32_music_reset_extern: () => (/* binding */ esp32_music_reset_extern), -/* harmony export */ esp32_music_set_tempo_extern: () => (/* binding */ esp32_music_set_tempo_extern), -/* harmony export */ esp32_music_stop: () => (/* binding */ esp32_music_stop), -/* harmony export */ mixbot_actuator_extern_get_addr: () => (/* binding */ mixbot_actuator_extern_get_addr), -/* harmony export */ mixbot_actuator_extern_set_addr: () => (/* binding */ mixbot_actuator_extern_set_addr), -/* harmony export */ mixbot_addr_extern: () => (/* binding */ mixbot_addr_extern), -/* harmony export */ parrot_PIN_init: () => (/* binding */ parrot_PIN_init), -/* harmony export */ parrot_move_speed: () => (/* binding */ parrot_move_speed), -/* harmony export */ pin_led_bright: () => (/* binding */ pin_led_bright), -/* harmony export */ player_insert_music: () => (/* binding */ player_insert_music), -/* harmony export */ player_play_music: () => (/* binding */ player_play_music), -/* harmony export */ player_set_mode: () => (/* binding */ player_set_mode), -/* harmony export */ player_set_play: () => (/* binding */ player_set_play), -/* harmony export */ player_set_volume: () => (/* binding */ player_set_volume), -/* harmony export */ player_whether_stop: () => (/* binding */ player_whether_stop), -/* harmony export */ robot_led_extern: () => (/* binding */ robot_led_extern), -/* harmony export */ robot_led_extern_get_value: () => (/* binding */ robot_led_extern_get_value), -/* harmony export */ robot_motor_extern: () => (/* binding */ robot_motor_extern), -/* harmony export */ robot_motor_extern_get_speed: () => (/* binding */ robot_motor_extern_get_speed), -/* harmony export */ robot_servo_extern_absolute_run: () => (/* binding */ robot_servo_extern_absolute_run), -/* harmony export */ robot_servo_extern_get_status: () => (/* binding */ robot_servo_extern_get_status), -/* harmony export */ robot_servo_extern_relative_continue: () => (/* binding */ robot_servo_extern_relative_continue), -/* harmony export */ robot_servo_extern_relative_origin: () => (/* binding */ robot_servo_extern_relative_origin), -/* harmony export */ robot_servo_extern_relative_run: () => (/* binding */ robot_servo_extern_relative_run), -/* harmony export */ robot_servo_extern_stop: () => (/* binding */ robot_servo_extern_stop), -/* harmony export */ robot_servo_extern_stop_mode: () => (/* binding */ robot_servo_extern_stop_mode), -/* harmony export */ robot_traffic_light_extern: () => (/* binding */ robot_traffic_light_extern), -/* harmony export */ servo_PIN_init: () => (/* binding */ servo_PIN_init), -/* harmony export */ servo_get_angle: () => (/* binding */ servo_get_angle), -/* harmony export */ servo_get_speed: () => (/* binding */ servo_get_speed), -/* harmony export */ servo_init: () => (/* binding */ servo_init), -/* harmony export */ servo_move: () => (/* binding */ servo_move), -/* harmony export */ servo_move_angle: () => (/* binding */ servo_move_angle), -/* harmony export */ servo_set_angle: () => (/* binding */ servo_set_angle), -/* harmony export */ servo_set_speed: () => (/* binding */ servo_set_speed), -/* harmony export */ servo_speed_360: () => (/* binding */ servo_speed_360), -/* harmony export */ syn6288_builtin_voice: () => (/* binding */ syn6288_builtin_voice), -/* harmony export */ syn6288_get_voice: () => (/* binding */ syn6288_get_voice), -/* harmony export */ syn6288_set_voice: () => (/* binding */ syn6288_set_voice), -/* harmony export */ syn6288_tts_play: () => (/* binding */ syn6288_tts_play) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const ACTUATOR_EXTERN_HUE = '#74A55B'; - -//music -const esp32_music_pitch_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIDI) - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_PIN_COUNT); - } -}; - -const esp32_music_pitch = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE) - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE); - } -}; - -const esp32_music_pitch_with_time = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE) - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2); - } -}; - -const esp32_music_play_list = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS); - - } -} - -const esp32_music_set_tempo_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendValueInput('TICKS') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SET_TEMPO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_ACTUATOR_ticks); - this.appendValueInput('BPM') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO); - } -} - -const esp32_music_get_tempo_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Get_current_tempo) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO); - } -} - -const esp32_music_reset_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_music) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_RESET); - } -} - -const esp32_music_stop = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NOTONE) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const actuator_extern_led_bright = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF); - } -}; - -const actuator_extern_get_led_bright = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF); - } -}; - -const actuator_extern_get_led_state = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF); - } -}; - -const actuator_extern_led_brightness = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT); - } -}; - -//Servo -const servo_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const servo_move = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput("DEGREE", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DEGREE_0_180); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_MOVE); - } -}; - -const servo_speed_360 = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("VAR") - .appendField("360°" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - this.appendValueInput("SPEED", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_turtle_rotate + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED + " (-10~10)"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP); - } -}; - -//Servo -const servo_set_angle = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField('180°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_MOVE); - } -}; - -const servo_set_speed = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField('360°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS); - } -}; - -const servo_get_angle = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField('180°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const servo_get_speed = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField('360°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const actuator_ms32006_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("初始化") - .setCheck("var"); - this.appendDummyInput() - .appendField("电机驱动"); - this.appendDummyInput() - .appendField("地址") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['A', 'ms32006.ADDRESS_A'], ['B', 'ms32006.ADDRESS_B']]), 'mode'); - this.appendValueInput('SUB1') - .setCheck("var") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField("通信"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip("初始化MS32006电机驱动,使用I2C通信"); - } -}; - -const actuator_ms32006_dcmotor = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("直流电机") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "ms32006.MOT_CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "ms32006.MOT_CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "ms32006.MOT_N"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "ms32006.MOT_P"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip("设置直流电机的状态及转速(0-100)"); - } -}; - - - -const actuator_ms32006_stepper = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("步进电机") - .setCheck("var"); - this.appendDummyInput() - .appendField("选择") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['A', 'ms32006.MOT_A'], ['B', 'ms32006.MOT_B']]), 'mode'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "ms32006.MOT_CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "ms32006.MOT_CCW"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField("转速"); - this.appendValueInput('steps') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField("步数"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip("设置步进电机的状态、转速、步数(0-2047)"); - } -}; - -//rgb -const actuator_neopixel_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.appendValueInput("LEDCOUNT") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_COUNT); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_PIN_COUNT); - } -}; - -const actuator_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput('SUB') - .setCheck("var"); - // .appendField(Blockly.Msg.MIXLY_SETUP) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MP); - } -}; - -const actuator_neopixel_rgb_all = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput('SUB') - .setCheck("var"); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC); - } -}; - -const actuator_neopixel_write = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RGB_WRITE) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_WRI); - } -}; - -const actuator_use_uart_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "uart") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["uart1", "uart1"], - ["uart2", "uart2"] - ]), "key"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['SYN6288' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_synthesis,'SYN6288'], - ['NS9300' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER,'NS9300'] - ]),'key2'); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const player_whether_stop ={ - init:function(){ - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHETHER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOPPED, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYING, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PAUSED, "2"] - ]), "key"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const player_set_play = { - init:function(){ - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_PLAY, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_PAUSE, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP, "3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_PREV, "4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_NEXT, "5"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const player_set_volume = { - init:function(){ - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER) - .setCheck("var"); - this.appendValueInput('volume') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_VOL +blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP); - } -} - -const player_set_mode = { - init:function(){ - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_LOOP_ALL, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_LOOP_ONE, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_DIRECTORY_LOOP, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_LOOP_RAM, "3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_SINGLE_STOP, "4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY, "5"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const player_play_music = { - init:function(){ - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAYER) - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_INSERT_MUSIC, "insert"] - ]), "key"); - this.appendValueInput('song'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP) - } -} - -const player_insert_music ={ - -} - -const syn6288_set_voice = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField('SYN6288') - this.appendValueInput('VOICE') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SET_VOLUME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SET_VOLUME_TOOLTIP); - } -} - -const syn6288_get_voice = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField('SYN6288') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_VOLUME) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SET_VOLUME_TOOLTIP); - } -} - -const syn6288_builtin_voice = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField('SYN6288') - this.appendValueInput('VOICE') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAY_HINTS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PROGRAM_BLOCK) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAY_HINTS_TOOLTIP); - } -} - -const syn6288_tts_play = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField('SYN6288') - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_synthesis); - this.appendValueInput('VOICE') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BACKGROUND_MUSIC); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PROGRAM_BLOCK) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAY_TTS_TOOLTIP); - } -} - - -//mixbot extern -const mixbot_addr_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.extern_addr), 'PIN'); - this.setOutput(true, Number); - } -}; - -const robot_motor_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP); - } -} - -const robot_motor_extern_get_speed = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_traffic_light_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK, '2'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON, '3'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK, '4'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON, '5'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK, '6'] - ]), "light"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_led_extern = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE, 'W'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, 'R'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_YELLOW, 'Y'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, 'G'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE, 'B'] - ]), "color") - .appendField("LED") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendValueInput('value') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BRIGHTNESS); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_led_extern_get_value = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE, 'W'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, 'R'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_YELLOW, 'Y'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, 'G'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE, 'B'] - ]), "color") - .appendField("LED") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BRIGHTNESS) - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_servo_extern_get_status = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER, '[0]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_OP_ABSOLUTE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, '[2]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELATIVE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, '[3]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT, '[4]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT, '[5]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ''] - ]), "status"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_servo_extern_stop_mode = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE, '2'] - ]), "status"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_servo_extern_stop = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_servo_extern_absolute_run = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_OP_ABSOLUTE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.run) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '1'] - ]), "status"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField('%') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, '2'] - ]), "direction"); - this.appendValueInput('angle') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP); - } -} - -const robot_servo_extern_relative_origin = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELATIVE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.run) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_servo_extern_relative_run = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELATIVE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.run) - .appendField("(" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR + ")") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '1'] - ]), "status"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField('%') - this.appendValueInput('angle') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP); - } -} - -const robot_servo_extern_relative_continue = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELATIVE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.run) - .appendField("(" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR + ")") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE, '1'] - ]), "status"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField('%') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, '2'] - ]), "direction"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const mixbot_actuator_extern_get_addr = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR, 'ext_motor'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT, 'ext_traffic'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE + "LED", 'W_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + "LED", 'R_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_YELLOW + "LED", 'Y_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + "LED", 'G_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE + "LED", 'B_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR, 'ext_servo'] - ]), "name") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR) - this.setOutput(true); - this.setInputsInline(true); - } -} - -const mixbot_actuator_extern_set_addr = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR, 'ext_motor'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAFFIC_LIGHT, 'ext_traffic'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE + "LED", 'W_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + "LED", 'R_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_YELLOW + "LED", 'Y_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + "LED", 'G_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE + "LED", 'B_LED'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO_MOTOR, 'ext_servo'] - ]), "name") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR) - this.appendValueInput('old') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE); - this.appendValueInput('new') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UPDATE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -//educore -const PIN_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const pin_led_bright = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('pin') - .appendField('LED') - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const servo_PIN_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const servo_move_angle = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO); - this.appendValueInput("angle") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_MATRIX_ROTATE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DRAW_POINTER_ANGLE) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const parrot_PIN_init = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const parrot_move_speed = { - init: function () { - this.setColour(ACTUATOR_EXTERN_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR); - this.appendValueInput("speed") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_MATRIX_ROTATE +blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/actuator_onboard.js": -/*!*************************************************!*\ - !*** ../micropython/blocks/actuator_onboard.js ***! - \*************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actuator_dc_motor: () => (/* binding */ actuator_dc_motor), -/* harmony export */ actuator_dc_motor_stop: () => (/* binding */ actuator_dc_motor_stop), -/* harmony export */ actuator_get_led_bright: () => (/* binding */ actuator_get_led_bright), -/* harmony export */ actuator_get_led_state: () => (/* binding */ actuator_get_led_state), -/* harmony export */ actuator_led_bright: () => (/* binding */ actuator_led_bright), -/* harmony export */ actuator_led_brightness: () => (/* binding */ actuator_led_brightness), -/* harmony export */ actuator_mixbot_buzzer_on_off: () => (/* binding */ actuator_mixbot_buzzer_on_off), -/* harmony export */ actuator_mixgo_nova_mic_get: () => (/* binding */ actuator_mixgo_nova_mic_get), -/* harmony export */ actuator_mixgo_nova_mic_set: () => (/* binding */ actuator_mixgo_nova_mic_set), -/* harmony export */ actuator_mixgo_nova_onboard_music_pitch: () => (/* binding */ actuator_mixgo_nova_onboard_music_pitch), -/* harmony export */ actuator_mixgo_nova_onboard_music_stop: () => (/* binding */ actuator_mixgo_nova_onboard_music_stop), -/* harmony export */ actuator_mixgo_nova_play_audio: () => (/* binding */ actuator_mixgo_nova_play_audio), -/* harmony export */ actuator_mixgo_nova_play_online_audio: () => (/* binding */ actuator_mixgo_nova_play_online_audio), -/* harmony export */ actuator_mixgo_nova_record_audio: () => (/* binding */ actuator_mixgo_nova_record_audio), -/* harmony export */ actuator_mixgo_nova_voice_get: () => (/* binding */ actuator_mixgo_nova_voice_get), -/* harmony export */ actuator_mixgo_nova_voice_set: () => (/* binding */ actuator_mixgo_nova_voice_set), -/* harmony export */ actuator_mixgo_zero_led_color: () => (/* binding */ actuator_mixgo_zero_led_color), -/* harmony export */ actuator_onboard_neopixel_rgb: () => (/* binding */ actuator_onboard_neopixel_rgb), -/* harmony export */ actuator_onboard_neopixel_rgb_all: () => (/* binding */ actuator_onboard_neopixel_rgb_all), -/* harmony export */ actuator_onboard_neopixel_rgb_show_all_chase: () => (/* binding */ actuator_onboard_neopixel_rgb_show_all_chase), -/* harmony export */ actuator_onboard_neopixel_rgb_show_all_rainbow: () => (/* binding */ actuator_onboard_neopixel_rgb_show_all_rainbow), -/* harmony export */ actuator_onboard_neopixel_write: () => (/* binding */ actuator_onboard_neopixel_write), -/* harmony export */ actuator_rm_onboard_neopixel_rgb: () => (/* binding */ actuator_rm_onboard_neopixel_rgb), -/* harmony export */ actuator_rm_onboard_neopixel_rgb_all: () => (/* binding */ actuator_rm_onboard_neopixel_rgb_all), -/* harmony export */ actuator_rm_onboard_neopixel_rgb_show_all_chase: () => (/* binding */ actuator_rm_onboard_neopixel_rgb_show_all_chase), -/* harmony export */ actuator_stepper_keep: () => (/* binding */ actuator_stepper_keep), -/* harmony export */ actuator_stepper_stop: () => (/* binding */ actuator_stepper_stop), -/* harmony export */ analog_ble_keyboard_init: () => (/* binding */ analog_ble_keyboard_init), -/* harmony export */ analog_ble_keyboard_input: () => (/* binding */ analog_ble_keyboard_input), -/* harmony export */ analog_ble_keyboard_mouse_init: () => (/* binding */ analog_ble_keyboard_mouse_init), -/* harmony export */ analog_ble_keyboard_mouse_input: () => (/* binding */ analog_ble_keyboard_mouse_input), -/* harmony export */ analog_ble_keyboard_mouse_send_battery: () => (/* binding */ analog_ble_keyboard_mouse_send_battery), -/* harmony export */ analog_ble_keyboard_mouse_str: () => (/* binding */ analog_ble_keyboard_mouse_str), -/* harmony export */ analog_ble_keyboard_send_battery: () => (/* binding */ analog_ble_keyboard_send_battery), -/* harmony export */ analog_ble_keyboard_str: () => (/* binding */ analog_ble_keyboard_str), -/* harmony export */ analog_ble_mouse_init: () => (/* binding */ analog_ble_mouse_init), -/* harmony export */ analog_ble_mouse_input: () => (/* binding */ analog_ble_mouse_input), -/* harmony export */ analog_ble_mouse_keyboard_input: () => (/* binding */ analog_ble_mouse_keyboard_input), -/* harmony export */ analog_ble_mouse_send_battery: () => (/* binding */ analog_ble_mouse_send_battery), -/* harmony export */ analog_keyboard_input: () => (/* binding */ analog_keyboard_input), -/* harmony export */ analog_keyboard_str: () => (/* binding */ analog_keyboard_str), -/* harmony export */ analog_mouse_input: () => (/* binding */ analog_mouse_input), -/* harmony export */ bitbot_motor: () => (/* binding */ bitbot_motor), -/* harmony export */ bitbot_move: () => (/* binding */ bitbot_move), -/* harmony export */ bitbot_stop: () => (/* binding */ bitbot_stop), -/* harmony export */ ble_keyboard_connect: () => (/* binding */ ble_keyboard_connect), -/* harmony export */ ble_keyboard_get_mac: () => (/* binding */ ble_keyboard_get_mac), -/* harmony export */ ble_keyboard_mouse_connect: () => (/* binding */ ble_keyboard_mouse_connect), -/* harmony export */ ble_keyboard_mouse_get_mac: () => (/* binding */ ble_keyboard_mouse_get_mac), -/* harmony export */ ble_mouse_connect: () => (/* binding */ ble_mouse_connect), -/* harmony export */ ble_mouse_get_mac: () => (/* binding */ ble_mouse_get_mac), -/* harmony export */ cc_number: () => (/* binding */ cc_number), -/* harmony export */ educore_ble_keyboard_input: () => (/* binding */ educore_ble_keyboard_input), -/* harmony export */ educore_ble_sensor_connected: () => (/* binding */ educore_ble_sensor_connected), -/* harmony export */ educore_ble_sensor_init: () => (/* binding */ educore_ble_sensor_init), -/* harmony export */ educore_buzzer: () => (/* binding */ educore_buzzer), -/* harmony export */ educore_buzzer_play_tone: () => (/* binding */ educore_buzzer_play_tone), -/* harmony export */ educore_buzzer_play_tone_time: () => (/* binding */ educore_buzzer_play_tone_time), -/* harmony export */ educore_buzzer_stop: () => (/* binding */ educore_buzzer_stop), -/* harmony export */ educore_neopixel_clear: () => (/* binding */ educore_neopixel_clear), -/* harmony export */ educore_neopixel_rgb: () => (/* binding */ educore_neopixel_rgb), -/* harmony export */ educore_rgb_light: () => (/* binding */ educore_rgb_light), -/* harmony export */ esp32_music_get_tempo: () => (/* binding */ esp32_music_get_tempo), -/* harmony export */ esp32_music_reset: () => (/* binding */ esp32_music_reset), -/* harmony export */ esp32_music_set_tempo: () => (/* binding */ esp32_music_set_tempo), -/* harmony export */ esp32_onboard_music_pitch: () => (/* binding */ esp32_onboard_music_pitch), -/* harmony export */ esp32_onboard_music_pitch_with_time: () => (/* binding */ esp32_onboard_music_pitch_with_time), -/* harmony export */ esp32_onboard_music_play_list: () => (/* binding */ esp32_onboard_music_play_list), -/* harmony export */ esp32_onboard_music_stop: () => (/* binding */ esp32_onboard_music_stop), -/* harmony export */ general_key: () => (/* binding */ general_key), -/* harmony export */ general_key_tuple: () => (/* binding */ general_key_tuple), -/* harmony export */ generalkey_container: () => (/* binding */ generalkey_container), -/* harmony export */ generalkey_create_with_item: () => (/* binding */ generalkey_create_with_item), -/* harmony export */ get_power_output: () => (/* binding */ get_power_output), -/* harmony export */ ledswitch: () => (/* binding */ ledswitch), -/* harmony export */ mixbot_motor: () => (/* binding */ mixbot_motor), -/* harmony export */ mixbot_motor_status: () => (/* binding */ mixbot_motor_status), -/* harmony export */ mixbot_move: () => (/* binding */ mixbot_move), -/* harmony export */ mixbot_stop: () => (/* binding */ mixbot_stop), -/* harmony export */ mouse_key: () => (/* binding */ mouse_key), -/* harmony export */ number: () => (/* binding */ number), -/* harmony export */ rm_actuator_get_led_bright: () => (/* binding */ rm_actuator_get_led_bright), -/* harmony export */ rm_actuator_get_led_state: () => (/* binding */ rm_actuator_get_led_state), -/* harmony export */ rm_actuator_led_bright: () => (/* binding */ rm_actuator_led_bright), -/* harmony export */ rm_actuator_led_brightness: () => (/* binding */ rm_actuator_led_brightness), -/* harmony export */ rm_motor: () => (/* binding */ rm_motor), -/* harmony export */ set_all_power_output: () => (/* binding */ set_all_power_output), -/* harmony export */ set_power_output: () => (/* binding */ set_power_output), -/* harmony export */ special_key: () => (/* binding */ special_key) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const ACTUATOR_ONBOARD_HUE = '#6C9858' - -//LED -const number = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["L1", "1"], - ["L2", "2"] - ]), 'op') - this.setOutput(true); - } -}; - -const ledswitch = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ON, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OFF, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOGGLE, "-1"] - ]), "flag"); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const actuator_led_bright = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const actuator_get_led_bright = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const actuator_get_led_state = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const actuator_led_brightness = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS + '(0-100%)'); - } -}; - -const actuator_mixgo_zero_led_color = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_SETCOLOR) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_RED, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_GREEN, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_BLUE, "3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_YELLOW, "4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_CYAN, "5"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_PURPLE, "6"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_WHITE, "7"] - ]), 'colorvalue'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(); - } -}; - -const rm_actuator_led_bright = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, "r"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, "g"] - ]), "color"); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const rm_actuator_get_led_bright = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, "r"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, "g"] - ]), "color"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const rm_actuator_get_led_state = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, "r"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, "g"] - ]), "color"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const rm_actuator_led_brightness = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED, "r"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN, "g"] - ]), "color"); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS + '(0-10)'); - } -}; - -const cc_number = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["L1", "20"], - ["L2", "21"] - ]), 'op') - this.setOutput(true); - } -}; - -const actuator_onboard_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - const boardKey = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey(); - switch (boardKey) { - case 'micropython:esp32c3:mixgo_cc': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC); - break; - case 'micropython:esp32s2:mixgo_ce': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC); - break; - case 'micropython:esp32c3:mixgo_me': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - break; - case 'micropython:esp32:mPython': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON); - break; - default: - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - } - } -}; - -const actuator_onboard_neopixel_rgb_all = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC); - } -}; - -const actuator_onboard_neopixel_rgb_show_all_rainbow = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAINBOW); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIS); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - } -}; - - -const actuator_onboard_neopixel_rgb_show_all_chase = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHASE); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_RANGE_STEP) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIS); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - } -}; - -const actuator_onboard_neopixel_write = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RGB_WRITE) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_WRI); - } -}; - - -const actuator_rm_onboard_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - const boardKey = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey(); - switch (boardKey) { - case 'micropython:esp32c3:mixgocc': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC); - break; - case 'micropython:esp32c3:mixgome': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - break; - case 'micropython:esp32:mPython': - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON); - break; - default: - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - } - } -}; - -const actuator_rm_onboard_neopixel_rgb_all = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC); - } -}; - - - -const actuator_rm_onboard_neopixel_rgb_show_all_chase = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHASE); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_RANGE_STEP) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIS); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - } -}; - - -const esp32_music_set_tempo = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('TICKS') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SET_TEMPO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_ACTUATOR_ticks); - this.appendValueInput('BPM') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO); - } -} - -const esp32_music_get_tempo = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Get_current_tempo) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO); - } -} - -const esp32_music_reset = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_music) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_RESET); - } -} - -const esp32_onboard_music_pitch = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE); - } -}; - -const esp32_onboard_music_pitch_with_time = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2); - } -}; - -const esp32_onboard_music_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NOTONE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const esp32_onboard_music_play_list = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS); - - } -} - -const rm_motor = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['1', "1"], - ["2", "2"], - ["3", "3"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -//c3 motor onboard - -const actuator_stepper_keep = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("MixGo Car") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "F"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "R"] - ]), "VAR"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const actuator_stepper_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MixGo Car") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - } -}; - -const actuator_dc_motor = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_LEFT, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_RIGHT, "R"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "CCW"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const actuator_dc_motor_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_LEFT, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_RIGHT, "R"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -//mixbot onboard_motor below: - -const mixbot_motor_status = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_STATUS); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP); - } -}; - -const mixbot_move = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "F"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "R"] - ]), "VAR"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER, "PWR"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED, "SPEED"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_TURNS, "TURNS"] - ]), "mode"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP); - } -} - -const mixbot_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const mixbot_motor = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_BOTH, "0"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER, "PWR"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED, "SPEED"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_TURNS, "TURNS"] - ]), "mode"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP); - } -} - -const actuator_mixbot_buzzer_on_off = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_BUZZER); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "1"] - ]), 'on_off') - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -//bitbot onboard_motor below: -const bitbot_move = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BITBOT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "F"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "R"] - ]), "VAR"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const bitbot_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BITBOT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const bitbot_motor = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BITBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOTOR) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "1"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const actuator_mixgo_nova_mic_set = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS) - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const actuator_mixgo_nova_mic_get = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS + '(%)'); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const actuator_mixgo_nova_voice_set = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_BUZZER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_VOL) - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const actuator_mixgo_nova_voice_get = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_BUZZER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_VOL + '(%)'); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - - - -const actuator_mixgo_nova_record_audio = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('PATH') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECORD_AUDIO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH); - this.appendValueInput('TIME') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const actuator_mixgo_nova_play_audio = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('PATH') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAY_AUDIO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const actuator_mixgo_nova_play_online_audio = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput('PATH') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PLAY_ONLINE_AUDIO) - .appendField('URL'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const actuator_mixgo_nova_onboard_music_pitch = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE); - } -}; - -const actuator_mixgo_nova_onboard_music_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NOTONE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const set_power_output = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["1", "1"], ["2", "2"], ["3", "3"]]), "index"); - this.appendValueInput('duty') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_IOT_IR_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEOUT); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(); - } -} - -const get_power_output = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["1", "1"], ["2", "2"]]), "index"); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_IOT_IR_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEOUT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DUTY_RATIO); - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const set_all_power_output = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING); - this.appendValueInput('duty') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.ALIGN_RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_IOT_IR_POWER + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEOUT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendDummyInput() - .appendField('Hz') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP); - } -} - -const analog_keyboard_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - this.appendValueInput('special'); - this.appendValueInput('general'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - } -}; - -const special_key = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY0, "0x00"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY1, "0x01"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY2, "0x02"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY1, "0x04"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY8, "0x08"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY16, "0x10"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY32, "0x20"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY64, "0x40"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY128, "0x80"] - ]), 'op') - this.setOutput(true); - } -}; - -const general_key = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GENERAL_KEY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY0, "0x00"], - ['A', "0x04"], - ['B', "0x05"], - ['C', "0x06"], - ['D', "0x07"], - ['E', "0x08"], - ['F', "0x09"], - ['G', "0x0A"], - ['H', "0x0B"], - ['I', "0x0C"], - ['J', "0x0D"], - ['K', "0x0E"], - ['L', "0x0F"], - ['M', "0x10"], - ['N', "0x11"], - ['O', "0x12"], - ['P', "0x13"], - ['Q', "0x14"], - ['R', "0x15"], - ['S', "0x16"], - ['T', "0x17"], - ['U', "0x18"], - ['V', "0x19"], - ['W', "0x1A"], - ['X', "0x1B"], - ['Y', "0x1C"], - ['Z', "0x1D"], - ['1 !', "0x1E"], - ['2 @', "0x1F"], - ['3 #', "0x20"], - ['4 $', "0x21"], - ['5 %', "0x22"], - ['6 ^', "0x23"], - ['7 &', "0x24"], - ['8 *', "0x25"], - ['9 (', "0x26"], - ['0 )', "0x27"], - ['ENTER', "0x28"], - ['ESC', "0x29"], - ['BACKSPACE', "0x2A"], - ['TAB', "0x2B"], - ['SPACE', "0x2C"], - ['- _', "0x2D"], - ['= +', "0x2E"], - ['[ {', "0x2F"], - ['] }', "0x30"], - ['\\ |', "0x31"], - ['; :', "0x33"], - ["' " + ' "', "0x34"], - ['` ~', "0x35"], - [', <', "0x36"], - ['. >', "0x37"], - ['/ ?', "0x38"], - ['CAPS_LOCK', "0x39"], - ['F1', "0x3A"], - ['F2', "0x3B"], - ['F3', "0x3C"], - ['F4', "0x3D"], - ['F5', "0x3E"], - ['F6', "0x3F"], - ['F7', "0x40"], - ['F8', "0x41"], - ['F9', "0x42"], - ['F10', "0x43"], - ['F11', "0x44"], - ['F12', "0x45"], - ['PRINTSCREEN', "0x46"], - ['SCROLL_LOCK', "0x47"], - ['PAUSE', "0x48"], - ['INSERT', "0x49"], - ['HOME', "0x4A"], - ['PAGE_UP', "0x4B"], - ['DELETE', "0x4C"], - ['END', "0x4D"], - ['PAGE_DOWN', "0x4E"], - ['RIGHT', "0x4F"], - ['LEFT', "0x50"], - ['DOWN', "0x51"], - ['UP', "0x52"], - ['NUM_LOCK', "0x53"], - ['/', "0x54"], - ['*', "0x55"], - ['-', "0x56"], - ['+', "0x57"], - ['ENTER', "0x58"], - ['1', "0x59"], - ['2', "0x5A"], - ['3', "0x5B"], - ['4', "0x5C"], - ['5', "0x5D"], - ['6', "0x5E"], - ['7', "0x5F"], - ['8', "0x60"], - ['9', "0x61"], - ['0', "0x62"], - ['.', "0x63"] - ]), 'op') - this.setOutput(true); - } -}; - - -const general_key_tuple = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.itemCount_ = 2; - this.updateShape_(); - this.setOutput(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['generalkey_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP); - }, - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('generalkey_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('generalkey_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GENERALKEY_CREATE_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GENERALKEY_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const generalkey_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GENERAL_KEY); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GENERALKEY_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const generalkey_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_VARIABLES_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const analog_mouse_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_INPUT); - this.appendValueInput('key'); - this.appendValueInput('x') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_X_CHANGES); - this.appendValueInput('y') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Y_CHANGES); - this.appendValueInput('wheel') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHEEL_CHANGES); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - } -}; - -const mouse_key = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_KEYS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPECIAL_KEY0, "0x00"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_LEFT_KEY, "0x01"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_RIGHT_KEY, "0x02"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_MID_KEY, "0x04"] - ]), 'op') - this.setOutput(true); - } -}; - -const analog_keyboard_str = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - this.appendValueInput('str') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT); - this.appendValueInput('time') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT_TIME_DELAY); - this.appendDummyInput() - .appendField('ms'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const analog_ble_keyboard_init = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD); - this.appendValueInput('kname') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const ble_keyboard_get_mac = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const ble_keyboard_connect = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_CONNECT); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const analog_ble_keyboard_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD); - this.appendValueInput('special'); - this.appendValueInput('general'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - } -}; - -const analog_ble_keyboard_str = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD); - this.appendValueInput('str') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT); - this.appendValueInput('time') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT_TIME_DELAY); - this.appendDummyInput() - .appendField('ms'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const analog_ble_keyboard_send_battery = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD); - this.appendValueInput('battery') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BATTERY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO); - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const analog_ble_mouse_init = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE); - this.appendValueInput('name') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const ble_mouse_get_mac = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const ble_mouse_connect = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_CONNECT); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const analog_ble_mouse_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_INPUT); - this.appendValueInput('key'); - this.appendValueInput('x') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_X_CHANGES); - this.appendValueInput('y') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Y_CHANGES); - this.appendValueInput('wheel') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHEEL_CHANGES); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - } -}; - -const analog_ble_mouse_send_battery = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE); - this.appendValueInput('battery') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BATTERY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO); - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const analog_ble_keyboard_mouse_init = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE); - this.appendValueInput('kname') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const ble_keyboard_mouse_get_mac = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const ble_keyboard_mouse_connect = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_CONNECT); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const analog_ble_keyboard_mouse_send_battery = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE); - this.appendValueInput('battery') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BATTERY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO); - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const analog_ble_keyboard_mouse_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD); - this.appendValueInput('special'); - this.appendValueInput('general'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_INPUT); - } -}; - -const analog_ble_keyboard_mouse_str = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE); - this.appendValueInput('str') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT); - this.appendValueInput('time') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STR_PRINT_TIME_DELAY); - this.appendDummyInput() - .appendField('ms'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const analog_ble_mouse_keyboard_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD_AND_MOUSE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_INPUT); - this.appendValueInput('key'); - this.appendValueInput('x') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_X_CHANGES); - this.appendValueInput('y') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Y_CHANGES); - this.appendValueInput('wheel') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHEEL_CHANGES); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RELEASE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOUSE_INPUT); - } -}; -//educore actuator -const educore_buzzer = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIDI); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const educore_buzzer_play_tone = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("buzzer"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_buzzer_play_tone_time = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("buzzer"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TONE); - this.appendValueInput('pitch') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY); - this.appendValueInput('time') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DURATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_buzzer_stop = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("buzzer") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_rgb_light = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const educore_neopixel_rgb = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("rgb"); - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendValueInput("RVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_R); - this.appendValueInput("GVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_G); - this.appendValueInput("BVALUE") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_B); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - // const boardKey = Boards.getSelectedBoardKey(); - // switch (boardKey) { - // case 'micropython:esp32c3:mixgo_cc': - // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC); - // break; - // case 'micropython:esp32s2:mixgo_ce': - // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC); - // break; - // case 'micropython:esp32c3:mixgo_me': - // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - // break; - // case 'micropython:esp32:mPython': - // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON); - // break; - // default: - // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME); - // } - } -}; - -const educore_neopixel_clear = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("rgb"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const educore_ble_sensor_init = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("name") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH+ blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_ble_sensor_connected = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BE_CONNETCED) - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_ble_keyboard_input = { - init: function () { - this.setColour(ACTUATOR_ONBOARD_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KEYBOARD); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_KEYBOARD); - this.appendValueInput('general'); - // this.appendDummyInput() - // .appendField(Blockly.Msg.MIXLY_RELEASE) - // .appendField(new Blockly.FieldDropdown([ - // [Blockly.Msg.MICROPYTHON_DISPLAY_YES, "True"], - // [Blockly.Msg.MICROPYTHON_DISPLAY_NO, "False"] - // ]), 'release'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/ai.js": -/*!***********************************!*\ - !*** ../micropython/blocks/ai.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MICROPYTHON_AI_Speech_asr: () => (/* binding */ MICROPYTHON_AI_Speech_asr), -/* harmony export */ MICROPYTHON_AI_Speech_unit: () => (/* binding */ MICROPYTHON_AI_Speech_unit), -/* harmony export */ MICROPYTHON_AI_client: () => (/* binding */ MICROPYTHON_AI_client) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const AI_HUE = 205; - -const MICROPYTHON_AI_client = { - init: function () { - this.setColour(AI_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr, "ASR"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_UNIT, "UNIT"] - ]), 'CTYPE') - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('API_KEY') - .appendField('API_KEY') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('SECRET_KEY') - .appendField('SECRET_KEY') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const MICROPYTHON_AI_Speech_unit = { // AI_TYPE_FUNC - init: function () { - this.setColour(AI_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_UNIT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('ID') - .appendField('ID') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('STR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const MICROPYTHON_AI_Speech_asr = { // AI_TYPE_FUNC - init: function () { - this.setColour(AI_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('FILE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_AI_AUDIO_TIME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LANGUAGE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_LANGUAGE_CHINESE, "1537"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_LANGUAGE_ENGLISH, "1737"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_LANGUAGE_CANTONESE, "1637"] - ]), 'LANGUAGE') - this.setInputsInline(true); - this.setOutput(true); - } -}; - - - -/***/ }), - -/***/ "../micropython/blocks/ai_sensor.js": -/*!******************************************!*\ - !*** ../micropython/blocks/ai_sensor.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ai_sensor_20object: () => (/* binding */ ai_sensor_20object), -/* harmony export */ ai_sensor_ailocal_class: () => (/* binding */ ai_sensor_ailocal_class), -/* harmony export */ ai_sensor_ailocal_class_result: () => (/* binding */ ai_sensor_ailocal_class_result), -/* harmony export */ ai_sensor_ailocal_train: () => (/* binding */ ai_sensor_ailocal_train), -/* harmony export */ ai_sensor_asr_recognize: () => (/* binding */ ai_sensor_asr_recognize), -/* harmony export */ ai_sensor_audio_play: () => (/* binding */ ai_sensor_audio_play), -/* harmony export */ ai_sensor_audio_record: () => (/* binding */ ai_sensor_audio_record), -/* harmony export */ ai_sensor_barcode: () => (/* binding */ ai_sensor_barcode), -/* harmony export */ ai_sensor_circle: () => (/* binding */ ai_sensor_circle), -/* harmony export */ ai_sensor_classifier_faces: () => (/* binding */ ai_sensor_classifier_faces), -/* harmony export */ ai_sensor_color: () => (/* binding */ ai_sensor_color), -/* harmony export */ ai_sensor_color_chases: () => (/* binding */ ai_sensor_color_chases), -/* harmony export */ ai_sensor_color_chases_result: () => (/* binding */ ai_sensor_color_chases_result), -/* harmony export */ ai_sensor_config: () => (/* binding */ ai_sensor_config), -/* harmony export */ ai_sensor_face: () => (/* binding */ ai_sensor_face), -/* harmony export */ ai_sensor_find_20objects: () => (/* binding */ ai_sensor_find_20objects), -/* harmony export */ ai_sensor_find_barcodes: () => (/* binding */ ai_sensor_find_barcodes), -/* harmony export */ ai_sensor_find_circles: () => (/* binding */ ai_sensor_find_circles), -/* harmony export */ ai_sensor_find_colors: () => (/* binding */ ai_sensor_find_colors), -/* harmony export */ ai_sensor_find_licenseplates: () => (/* binding */ ai_sensor_find_licenseplates), -/* harmony export */ ai_sensor_find_lines: () => (/* binding */ ai_sensor_find_lines), -/* harmony export */ ai_sensor_find_qrcodes: () => (/* binding */ ai_sensor_find_qrcodes), -/* harmony export */ ai_sensor_find_rects: () => (/* binding */ ai_sensor_find_rects), -/* harmony export */ ai_sensor_find_tags: () => (/* binding */ ai_sensor_find_tags), -/* harmony export */ ai_sensor_licenseplate: () => (/* binding */ ai_sensor_licenseplate), -/* harmony export */ ai_sensor_line: () => (/* binding */ ai_sensor_line), -/* harmony export */ ai_sensor_qrcode: () => (/* binding */ ai_sensor_qrcode), -/* harmony export */ ai_sensor_qrcode_lite: () => (/* binding */ ai_sensor_qrcode_lite), -/* harmony export */ ai_sensor_rect: () => (/* binding */ ai_sensor_rect), -/* harmony export */ ai_sensor_rgb: () => (/* binding */ ai_sensor_rgb), -/* harmony export */ ai_sensor_tag: () => (/* binding */ ai_sensor_tag), -/* harmony export */ ai_sensor_use_uart_init: () => (/* binding */ ai_sensor_use_uart_init), -/* harmony export */ ai_sensor_yolo_recognize: () => (/* binding */ ai_sensor_yolo_recognize), -/* harmony export */ ai_sensor_yolo_recognize_result: () => (/* binding */ ai_sensor_yolo_recognize_result) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const AI_SENSOR_HUE = '#90A244'; //'#9e77c9'//40; - - -const ai_sensor_use_uart_init = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "uart") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["uart1", "uart1"], - ["uart2", "uart2"] - ]), "key"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO + 'MixGo AI' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const ai_sensor_qrcode = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_QR_CODE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP); - } -}; - -const ai_sensor_qrcode_lite = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_QR_CODE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT, "qrcode"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BAR_CODE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT, "barcode"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TAG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT, "apriltag"] - ]), "TYPE"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ANALYSIS_RESULT); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(); - } -}; - -const ai_sensor_find_qrcodes = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_QR_CODE_RECOGNTITION); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[qrcode]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_config = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendValueInput("RX") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_CLINET_PORT) - .appendField("RX#") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("TX") - .appendField("TX#") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SOFT_RESET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RGB_WRITE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP); - } -}; - -const ai_sensor_rgb = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendValueInput("led1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING) - .appendField("RGB1") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("led2") - .appendField("RGB2") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP); - } -}; - -const ai_sensor_barcode = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BAR_CODE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP); - } -}; - -const ai_sensor_find_barcodes = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BAR_CODE_RECOGNTITION); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[barcode]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_tag = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TAG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_turtle_rotate + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "info2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP); - } -}; - -const ai_sensor_find_tags = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TAG_RECOGNTITION); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[tag]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_line = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LINE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LINE_ANGLE, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-x1x2y1y2", "rect"], - ["x1" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["x2" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["y1" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["y2" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP); - } -}; - -const ai_sensor_find_lines = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LINE_RECOGNTITION); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_THRESHOLD) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LINE_RECOGNTITION_ANGLE) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR3") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LINE_RECOGNTITION_SLOPE) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[line]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_circle = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_AREA, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP); - } -}; - -const ai_sensor_find_circles = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_RECOGNTITION); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_THRESHOLD) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR3") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[circle]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_rect = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_AREA, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP); - } -}; - -const ai_sensor_find_rects = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECT_RECOGNTITION); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_THRESHOLD) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[rect]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_color = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['RGB' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR, "[0]"], - ['LAB' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_LAB, "[1]"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP); - } -}; - -const ai_sensor_find_colors = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_RECOGNTITION); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "color"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_color_chases_result = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CIRCLE_AREA, "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP); - } -}; - -const ai_sensor_color_chases = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE); - this.appendValueInput("VAR1") - .appendField('LAB' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_LAB) - - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_THRESHOLD) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR3") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE_MERGE) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[colors]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_ailocal_train = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCAL_TRAIN); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OBJECT_LIST) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODEL_NAME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR3") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRAIN_TIME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR4") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipNlp_Topic_Title) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP); - } -}; - -const ai_sensor_ailocal_class = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCAL_CLASS); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OBJECT_LIST) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODEL_NAME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR4") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipNlp_Topic_Title) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[objects]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP); - } -}; - -const ai_sensor_ailocal_class_result = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCAL_CLASS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['ID', "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONFIDENCE_DEGREE, "info2"], - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP); - } -}; - -const ai_sensor_audio_record = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_RECORD); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_AI_AUDIO_TIME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP); - } -}; - -const ai_sensor_audio_play = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MUSIC_PLAY); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_VOL) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .appendField('%') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - - } -}; - -const ai_sensor_yolo_recognize = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YOLO_RECOGNIZE); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ANCHOR) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODEL_PATH) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR4") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipNlp_Topic_Title) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[objects]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP); - } -}; - -const ai_sensor_yolo_recognize_result = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YOLO_RECOGNIZE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_CHASE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['ID', "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONFIDENCE_DEGREE, "info2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "xc"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "yc"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP); - } -}; - -const ai_sensor_asr_recognize = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr); - this.appendValueInput("VAR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("VAR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_THRESHOLD) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP); - } -}; - -const ai_sensor_licenseplate = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LICENSEPLATE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['ID', "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP); - } -}; - -const ai_sensor_find_licenseplates = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipOcr_licensePlate); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[licensePlate]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP); - } -}; - -const ai_sensor_face = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FACE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["ID", "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONFIDENCE_DEGREE, "info2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP); - } -}; - -const ai_sensor_classifier_faces = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipFace); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[face]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP); - } -}; - -const ai_sensor_20object = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_20OBJECTS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_OBJECT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL_CODE_ANALYSIS); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['ID', "info1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONFIDENCE_DEGREE, "info2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY + "-xywh", "rect"], - ["x" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[0]"], - ["y" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[1]"], - ["w" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[2]"], - ["h" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POSITION_XY, "rect[3]"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP); - } -}; - -const ai_sensor_find_20objects = { - init: function () { - this.setColour(AI_SENSOR_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FIND_20OBJECTS); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + "[20objects]"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/blynk.js": -/*!**************************************!*\ - !*** ../micropython/blocks/blynk.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ mpython_blynk_app_data: () => (/* binding */ mpython_blynk_app_data), -/* harmony export */ mpython_blynk_app_notify: () => (/* binding */ mpython_blynk_app_notify), -/* harmony export */ mpython_blynk_email: () => (/* binding */ mpython_blynk_email), -/* harmony export */ mpython_blynk_get_timers: () => (/* binding */ mpython_blynk_get_timers), -/* harmony export */ mpython_blynk_on_connected: () => (/* binding */ mpython_blynk_on_connected), -/* harmony export */ mpython_blynk_on_disconnected: () => (/* binding */ mpython_blynk_on_disconnected), -/* harmony export */ mpython_blynk_run: () => (/* binding */ mpython_blynk_run), -/* harmony export */ mpython_blynk_sensor_data_to_app: () => (/* binding */ mpython_blynk_sensor_data_to_app), -/* harmony export */ mpython_blynk_set_property: () => (/* binding */ mpython_blynk_set_property), -/* harmony export */ mpython_blynk_setup: () => (/* binding */ mpython_blynk_setup), -/* harmony export */ mpython_blynk_stop_timers: () => (/* binding */ mpython_blynk_stop_timers), -/* harmony export */ mpython_blynk_sync_virtual: () => (/* binding */ mpython_blynk_sync_virtual), -/* harmony export */ mpython_blynk_terminal_widget_vpin: () => (/* binding */ mpython_blynk_terminal_widget_vpin), -/* harmony export */ mpython_blynktimer: () => (/* binding */ mpython_blynktimer), -/* harmony export */ mpython_blynktimer_run: () => (/* binding */ mpython_blynktimer_run) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -/******************* Blynk *****************/ -const BLYNK_HUE = '#2FAD7A'; - - -// 自定义终端部件 Terminal Blynk -const mpython_blynk_terminal_widget_vpin = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0, - "args0": [ - { - "check": Number, - "type": "input_value", - "name": "virtual_pin" - } - ] - }); - } -}; - -// 同步虚拟管脚的状态 Blynk -const mpython_blynk_sync_virtual = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0, - "args0": [ - { - "check": Number, - "type": "input_value", - "name": "virtual_pin" - } - ] - }); - } -}; - -// 斷開连接 Blynk -const mpython_blynk_on_disconnected = { - init: function () { - this.jsonInit({ - "inputsInline": true, - // "nextStatement": null, - // "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0 - }); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.CONTROLS_REPEAT_INPUT_DO); - } -}; - -// 连接上 Blynk -const mpython_blynk_on_connected = { - init: function () { - this.jsonInit({ - "inputsInline": true, - // "nextStatement": null, - // "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0 - }); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.CONTROLS_REPEAT_INPUT_DO); - } -}; - -// Blynk 定时器的进程生效并运行 -const mpython_blynktimer_run = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0 - }); - } -}; - -// Blynk 进程生效并运行 -const mpython_blynk_run = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_RUN_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_RUN_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_RUN_MESSAGE0 - }); - } -}; - -// Blynk APP 显示通知 -const mpython_blynk_app_notify = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0, - "args0": [ - { - "check": String, - "type": "input_value", - "name": "notification" - } - ] - }); - } -}; - -// 停止 Blynk 定时器 %1 -const mpython_blynk_stop_timers = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - // "output": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0, - "args0": [ - { - "check": Number, - "type": "input_value", - "name": "timer_num" - } - ] - }); - } -}; - -// 给虚拟管脚添加 属性 %1 值 %2 -const mpython_blynk_set_property = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - // "output": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0, - "args0": [ - { - "check": String, - "type": "input_value", - "name": "attribute_name" - } - , - { - // "check":String, - "type": "input_value", - "name": "attribute_value" - } - ] - }); - } -}; - -// 向 %1 发邮件 主题 %2 正文 %3 -const mpython_blynk_email = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - // "output": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_EMAIL_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0, - "args0": [ - { - "check": String, - "type": "input_value", - "name": "TargetEmail" - } - , - { - "check": String, - "type": "input_value", - "name": "subject" - } - , - { - "check": String, - "type": "input_value", - "name": "body" - } - ] - }); - } -}; - -// 可用的 Blynk 定时器 -const mpython_blynk_get_timers = { - init: function () { - this.jsonInit({ - "inputsInline": true, - // "nextStatement": null, - // "previousStatement": null, - "output": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0, - }); - } -}; - -//blynk定时器 -const mpython_blynktimer = { - init: function () { - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_MESSAGE0, - // "nextStatement": null, - // "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNKTIMER_TOOLTIP, - "args0": [ - { - "check": Number, - "type": "input_value", - "name": "Num" - } - , - { - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_PERIODIC, 'False'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_ONE_SHOT, 'True'] - ], - "type": "field_dropdown", - "name": "Timer_mode" - } - , - { - "check": Number, - "type": "input_value", - "name": "period" - } - ] - }); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.CONTROLS_REPEAT_INPUT_DO); - } -}; - -// 发送数据 %1 到 Bylnk APP 的虚拟管脚 %2 -const mpython_blynk_sensor_data_to_app = { - init: function () { - this.jsonInit({ - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0, - "args0": [ - { - "type": "input_value", - "name": "sensor_data" - } - , - { - "check": Number, - "type": "input_value", - "name": "virtual_pin" - } - ] - }); - } -}; - -// 从 Bylnk APP 获取虚拟管脚 %1 的值 -const mpython_blynk_app_data = { - init: function () { - this.jsonInit({ - "inputsInline": true, - // "nextStatement": null, - // "previousStatement": null, - // "output":null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0, - "args0": [ - { - "check": Number, - "type": "input_value", - "name": "virtual_pin" - } - , - { - "type": "input_value", - "name": "virtual_pin_val" - } - ] - }); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.CONTROLS_REPEAT_INPUT_DO); - } -}; - -// Bylnk设置 -const mpython_blynk_setup = { - init: function () { - this.jsonInit({ - // "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "colour": BLYNK_HUE, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SETUP_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0, - "args0": [ - { - "type": "input_dummy" - }, - { - "check": String, - "type": "input_value", - "name": "server" - }, - { - "check": Number, - "type": "input_value", - "name": "port" - }, - { - "check": String, - "type": "input_value", - "name": "auth" - } - ] - }); - } -}; - - -/***/ }), - -/***/ "../micropython/blocks/cc_g1.js": -/*!**************************************!*\ - !*** ../micropython/blocks/cc_g1.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ cc_g1_init: () => (/* binding */ cc_g1_init), -/* harmony export */ cc_g1_read_bat: () => (/* binding */ cc_g1_read_bat), -/* harmony export */ cc_g1_read_joystick: () => (/* binding */ cc_g1_read_joystick), -/* harmony export */ cc_g1_read_key: () => (/* binding */ cc_g1_read_key), -/* harmony export */ cc_g1_turnoff: () => (/* binding */ cc_g1_turnoff) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const CCG1_HUE = 40; - -const cc_g1_init = { - init: function () { - this.setColour(CCG1_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + " CC_G1"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "temperature": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "relative_humidity": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP - }; - return TOOLTIPS[mode] - }); - } -}; - -const cc_g1_read_bat = { - init: function () { - this.setColour(CCG1_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_BATTERY); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const cc_g1_read_joystick = { - init: function () { - this.setColour(CCG1_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_JOYSTICK) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "[0]"], - ["y", "[1]"], - ["(x,y)", ""] - ]), "VAR"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const cc_g1_read_key = { - init: function () { - this.setColour(CCG1_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["A", "0"], - ["B", "1"], - ["C", "2"], - ["D", "3"], - ["POWER", "4"], - ["SELECT", "5"] - ]), "VAR"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.WHETHER_IS_PRESSED); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const cc_g1_turnoff = { - init: function () { - this.setColour(CCG1_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDLE_SHUTDOWN); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - -/***/ }), - -/***/ "../micropython/blocks/ce_go.js": -/*!**************************************!*\ - !*** ../micropython/blocks/ce_go.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ce_go_dc_motor: () => (/* binding */ ce_go_dc_motor), -/* harmony export */ ce_go_get_led_bright: () => (/* binding */ ce_go_get_led_bright), -/* harmony export */ ce_go_get_led_state: () => (/* binding */ ce_go_get_led_state), -/* harmony export */ ce_go_hall_attachInterrupt: () => (/* binding */ ce_go_hall_attachInterrupt), -/* harmony export */ ce_go_hall_data: () => (/* binding */ ce_go_hall_data), -/* harmony export */ ce_go_hall_initialize: () => (/* binding */ ce_go_hall_initialize), -/* harmony export */ ce_go_led_bright: () => (/* binding */ ce_go_led_bright), -/* harmony export */ ce_go_led_brightness: () => (/* binding */ ce_go_led_brightness), -/* harmony export */ ce_go_light_number: () => (/* binding */ ce_go_light_number), -/* harmony export */ ce_go_pin_light: () => (/* binding */ ce_go_pin_light), -/* harmony export */ ce_go_pin_near: () => (/* binding */ ce_go_pin_near), -/* harmony export */ ce_go_pin_near_line: () => (/* binding */ ce_go_pin_near_line), -/* harmony export */ ce_go_pin_near_state_change: () => (/* binding */ ce_go_pin_near_state_change), -/* harmony export */ ce_go_stepper_keep: () => (/* binding */ ce_go_stepper_keep), -/* harmony export */ ce_go_stepper_stop: () => (/* binding */ ce_go_stepper_stop), -/* harmony export */ educore_car: () => (/* binding */ educore_car), -/* harmony export */ educore_car_pin_near: () => (/* binding */ educore_car_pin_near), -/* harmony export */ educore_car_pin_near_line: () => (/* binding */ educore_car_pin_near_line), -/* harmony export */ educore_car_stepper_keep: () => (/* binding */ educore_car_stepper_keep), -/* harmony export */ educore_car_stepper_stop: () => (/* binding */ educore_car_stepper_stop), -/* harmony export */ sensor_mixgome_eulerangles: () => (/* binding */ sensor_mixgome_eulerangles) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const MEGO_HUE = 100; - -//LED -const ce_go_light_number = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_LIGHT_HEADLIGHT, "WLED"] - ]), 'op') - this.setOutput(true); - } -}; - -const ce_go_led_bright = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField('ME GO') - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const ce_go_get_led_bright = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField('ME GO') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const ce_go_get_led_state = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField('ME GO') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const ce_go_led_brightness = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField('ME GO') - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS + '(0-10)'); - } -}; - - -const ce_go_stepper_keep = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "F"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "R"] - ]), "VAR"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const ce_go_stepper_stop = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const ce_go_dc_motor = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_LEFT, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_RIGHT, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN, "2"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const ce_go_hall_attachInterrupt = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INTERRUPT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const ce_go_hall_initialize = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['turns', "turns"], ['distance', "distance"], ['turns,distance', 'all']]), "args"); - this.appendValueInput('num') - .setCheck(Number) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const ce_go_hall_data = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['turns', "turns"], ['distance', "distance"], ['speed', 'speed']]), "args"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const ce_go_pin_near_line = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_MID, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR_VAL); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const ce_go_pin_near = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_PROXIMITY_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const ce_go_pin_near_state_change = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, "AS"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, "LP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, "OA"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY, "LS"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_SENSOR_MODE_OFF, "CL"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const sensor_mixgome_eulerangles = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH, '[0]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH + ', ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, ''] - ]), 'angle'); - // this.appendDummyInput("") - // .appendField(Blockly.Msg.BOARD_DIRECTION) - // .appendField(new Blockly.FieldDropdown([ - // [Blockly.Msg.OLED_VER,'True'], - // [Blockly.Msg.OLED_HOR,'False'], - // ]),'dir'); - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - -const ce_go_pin_light = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_MID, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR; - return mode0 + mode1 - }); - } -}; - -//educore car -const educore_car = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CAR); - this.setOutput(true); - this.setInputsInline(true); - } -} - -const educore_car_stepper_keep = { - init: function () { - this.setColour(MEGO_HUE); - this.appendValueInput('car'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "forward"], - // [Blockly.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "turn_left"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "turn_right"] - ]), "VAR"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const educore_car_stepper_stop = { - init: function () { - this.setColour(MEGO_HUE); - this.appendValueInput('car'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "stop"] - // [Blockly.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const educore_car_pin_near_line = { - init: function () { - this.setColour(MEGO_HUE); - this.appendValueInput('car'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "1"], - // [Blockly.Msg.MIXGO_LEFT_MID, "[1]"], - // [Blockly.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "2"] - // [Blockly.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR_VAL); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const educore_car_pin_near = { - init: function () { - this.setColour(MEGO_HUE); - this.appendValueInput('car'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_PROXIMITY_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/communicate.js": -/*!********************************************!*\ - !*** ../micropython/blocks/communicate.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ communicate_bluetooth_central_init: () => (/* binding */ communicate_bluetooth_central_init), -/* harmony export */ communicate_bluetooth_connect: () => (/* binding */ communicate_bluetooth_connect), -/* harmony export */ communicate_bluetooth_disconnect: () => (/* binding */ communicate_bluetooth_disconnect), -/* harmony export */ communicate_bluetooth_handle: () => (/* binding */ communicate_bluetooth_handle), -/* harmony export */ communicate_bluetooth_is_connected: () => (/* binding */ communicate_bluetooth_is_connected), -/* harmony export */ communicate_bluetooth_mac: () => (/* binding */ communicate_bluetooth_mac), -/* harmony export */ communicate_bluetooth_peripheral_init: () => (/* binding */ communicate_bluetooth_peripheral_init), -/* harmony export */ communicate_bluetooth_recv: () => (/* binding */ communicate_bluetooth_recv), -/* harmony export */ communicate_bluetooth_recv_only: () => (/* binding */ communicate_bluetooth_recv_only), -/* harmony export */ communicate_bluetooth_scan: () => (/* binding */ communicate_bluetooth_scan), -/* harmony export */ communicate_bluetooth_send: () => (/* binding */ communicate_bluetooth_send), -/* harmony export */ communicate_espnow_init: () => (/* binding */ communicate_espnow_init), -/* harmony export */ communicate_espnow_init_new: () => (/* binding */ communicate_espnow_init_new), -/* harmony export */ communicate_i2c_available: () => (/* binding */ communicate_i2c_available), -/* harmony export */ communicate_i2c_init: () => (/* binding */ communicate_i2c_init), -/* harmony export */ communicate_i2c_master_read: () => (/* binding */ communicate_i2c_master_read), -/* harmony export */ communicate_i2c_onboard: () => (/* binding */ communicate_i2c_onboard), -/* harmony export */ communicate_i2c_read: () => (/* binding */ communicate_i2c_read), -/* harmony export */ communicate_i2c_scan: () => (/* binding */ communicate_i2c_scan), -/* harmony export */ communicate_i2c_write: () => (/* binding */ communicate_i2c_write), -/* harmony export */ communicate_ir_recv_init: () => (/* binding */ communicate_ir_recv_init), -/* harmony export */ communicate_ir_send_init: () => (/* binding */ communicate_ir_send_init), -/* harmony export */ communicate_ow_init: () => (/* binding */ communicate_ow_init), -/* harmony export */ communicate_ow_read: () => (/* binding */ communicate_ow_read), -/* harmony export */ communicate_ow_reset: () => (/* binding */ communicate_ow_reset), -/* harmony export */ communicate_ow_scan: () => (/* binding */ communicate_ow_scan), -/* harmony export */ communicate_ow_select: () => (/* binding */ communicate_ow_select), -/* harmony export */ communicate_ow_write: () => (/* binding */ communicate_ow_write), -/* harmony export */ communicate_spi_buffer: () => (/* binding */ communicate_spi_buffer), -/* harmony export */ communicate_spi_init: () => (/* binding */ communicate_spi_init), -/* harmony export */ communicate_spi_onboard: () => (/* binding */ communicate_spi_onboard), -/* harmony export */ communicate_spi_read: () => (/* binding */ communicate_spi_read), -/* harmony export */ communicate_spi_read_output: () => (/* binding */ communicate_spi_read_output), -/* harmony export */ communicate_spi_readinto: () => (/* binding */ communicate_spi_readinto), -/* harmony export */ communicate_spi_readinto_output: () => (/* binding */ communicate_spi_readinto_output), -/* harmony export */ communicate_spi_set: () => (/* binding */ communicate_spi_set), -/* harmony export */ communicate_spi_write: () => (/* binding */ communicate_spi_write), -/* harmony export */ communicate_spi_write_readinto: () => (/* binding */ communicate_spi_write_readinto), -/* harmony export */ espnow_radio_channel: () => (/* binding */ espnow_radio_channel), -/* harmony export */ espnow_radio_channel_new: () => (/* binding */ espnow_radio_channel_new), -/* harmony export */ espnow_radio_on_off: () => (/* binding */ espnow_radio_on_off), -/* harmony export */ espnow_radio_rec: () => (/* binding */ espnow_radio_rec), -/* harmony export */ espnow_radio_recv: () => (/* binding */ espnow_radio_recv), -/* harmony export */ espnow_radio_recv_certain_msg: () => (/* binding */ espnow_radio_recv_certain_msg), -/* harmony export */ espnow_radio_recv_certain_msg_new: () => (/* binding */ espnow_radio_recv_certain_msg_new), -/* harmony export */ espnow_radio_recv_msg: () => (/* binding */ espnow_radio_recv_msg), -/* harmony export */ espnow_radio_recv_new: () => (/* binding */ espnow_radio_recv_new), -/* harmony export */ espnow_radio_send: () => (/* binding */ espnow_radio_send), -/* harmony export */ espnow_radio_txpower: () => (/* binding */ espnow_radio_txpower), -/* harmony export */ i2c_available: () => (/* binding */ i2c_available), -/* harmony export */ i2c_init: () => (/* binding */ i2c_init), -/* harmony export */ i2c_master_reader2: () => (/* binding */ i2c_master_reader2), -/* harmony export */ i2c_read: () => (/* binding */ i2c_read), -/* harmony export */ i2c_scan: () => (/* binding */ i2c_scan), -/* harmony export */ i2c_slave_onreceive: () => (/* binding */ i2c_slave_onreceive), -/* harmony export */ i2c_write: () => (/* binding */ i2c_write), -/* harmony export */ internal_variable: () => (/* binding */ internal_variable), -/* harmony export */ ir_recv_timeout: () => (/* binding */ ir_recv_timeout), -/* harmony export */ ir_transmit_busy: () => (/* binding */ ir_transmit_busy), -/* harmony export */ ir_transmit_conventional_data: () => (/* binding */ ir_transmit_conventional_data), -/* harmony export */ ir_transmit_raw_code: () => (/* binding */ ir_transmit_raw_code), -/* harmony export */ ir_transmit_study_code: () => (/* binding */ ir_transmit_study_code), -/* harmony export */ ir_whether_recv: () => (/* binding */ ir_whether_recv), -/* harmony export */ lora_init: () => (/* binding */ lora_init), -/* harmony export */ lora_packet: () => (/* binding */ lora_packet), -/* harmony export */ lora_recv: () => (/* binding */ lora_recv), -/* harmony export */ lora_send: () => (/* binding */ lora_send), -/* harmony export */ network_espnow_info: () => (/* binding */ network_espnow_info), -/* harmony export */ network_espnow_mac: () => (/* binding */ network_espnow_mac), -/* harmony export */ network_espnow_recv: () => (/* binding */ network_espnow_recv), -/* harmony export */ network_espnow_recv_handle: () => (/* binding */ network_espnow_recv_handle), -/* harmony export */ network_espnow_send: () => (/* binding */ network_espnow_send), -/* harmony export */ recv_fun: () => (/* binding */ recv_fun), -/* harmony export */ spi_buffer: () => (/* binding */ spi_buffer), -/* harmony export */ spi_init: () => (/* binding */ spi_init), -/* harmony export */ spi_read: () => (/* binding */ spi_read), -/* harmony export */ spi_read_output: () => (/* binding */ spi_read_output), -/* harmony export */ spi_readinto: () => (/* binding */ spi_readinto), -/* harmony export */ spi_readinto_output: () => (/* binding */ spi_readinto_output), -/* harmony export */ spi_set: () => (/* binding */ spi_set), -/* harmony export */ spi_write: () => (/* binding */ spi_write), -/* harmony export */ spi_write_readinto: () => (/* binding */ spi_write_readinto), -/* harmony export */ urequests_attribute: () => (/* binding */ urequests_attribute), -/* harmony export */ urequests_get: () => (/* binding */ urequests_get), -/* harmony export */ urequests_method: () => (/* binding */ urequests_method) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const COMMUNICATE_HUE = 140 - -const communicate_i2c_onboard = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LED_ON_BOARD + "I2C"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const communicate_spi_onboard = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LED_ON_BOARD + "SPI"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const communicate_i2c_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('SUB') - .appendField("I2C " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - - this.appendValueInput("TX", Number) - .appendField("SCL") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("RX", Number) - .appendField("SDA") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('freq') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_I2C_INIT); - } -}; - -const communicate_i2c_read = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField("I2C") - .setCheck("var"); - this.appendValueInput('address') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RNUMBER); - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_READ); - } -} - -const communicate_i2c_write = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField("I2C") - .setCheck("var"); - this.appendValueInput('address') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_WNUMBER); - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_VALUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const communicate_i2c_scan = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField("I2C") - .setCheck("var") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_I2C_SCAN1 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_I2C_SCAN2) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_I2C_SCAN); - } -} - -const communicate_spi_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_INIT); - this.appendValueInput('freq') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN); - this.appendValueInput('sck') - .setCheck(Number) - .appendField('SCK'); - this.appendValueInput('mosi') - .setCheck(Number) - .appendField('MOSI'); - this.appendValueInput('miso') - .setCheck(Number) - .appendField('MISO'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP); - } -}; - -const communicate_spi_set = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField("SPI") - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_SET); - } -}; - -const communicate_spi_buffer = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_BUFFER); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_BUFFER_SET); - } -}; - -const communicate_spi_read = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READ); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_READ); - } -} - -const communicate_spi_read_output = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READ); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE + ' ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_OUTPUT); - this.appendValueInput('val') - .setCheck(Number); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_READ_OUTPUT); - } -} - -const communicate_spi_readinto = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck('var') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READ + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_BUFFER); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_READINTO); - } -} - -const communicate_spi_readinto_output = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck('var') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READ + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_BUFFER); - this.appendValueInput('val') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_OUTPUT); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT); - } -} - -const communicate_spi_write = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_WRITE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_WRITE); - } -}; - -const communicate_spi_write_readinto = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('SPI'); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_WRITE) - // .appendField(new Blockly.FieldDropdown([ - // [Blockly.Msg.LANG_MATH_BYTE, "byte"], - // [Blockly.Msg.MIXLY_ESP32_SPI_BUFFER, "buffer"] - // ]), "op"); - this.appendValueInput('val') - .setCheck('var') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_BUFFER_READ); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SPI_WRITE_READINTO); - } -}; - -const communicate_i2c_master_read = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("I2C"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_READ); - this.setOutput(true, Number); - } -}; - -const communicate_i2c_available = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("I2C"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_READ + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SUCCESS); - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_I2C_AVAILABLE); - } -}; - -const i2c_slave_onreceive = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_I2C_SLAVE_ONRECEIVE) - .setCheck(Number); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const communicate_ow_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('OneWire ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP); - this.appendValueInput('BUS') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_INIT); - } -}; - -const communicate_ow_scan = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('OneWire'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONEWIRE_SCAN); - this.setOutput(true, 'List'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_SCAN); - } -}; - -const communicate_ow_read = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('OneWire'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONEWIRE_READ); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_READ); - } -}; - -const communicate_ow_write = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('OneWire'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_WRITE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_STRING, "write"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE, "writebyte"] - ]), "op"); - this.appendValueInput('byte') - .setCheck([Number, String]); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_WRITE); - } -}; - -const communicate_ow_select = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField('OneWire') - .setCheck('var') - this.appendValueInput('byte') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET) - .appendField("ROM"); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_SELECT); - } -}; - - -const communicate_ow_reset = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField('OneWire') - .setCheck('var') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_turtle_reset); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setOutput(false); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OW_RESET); - } -}; - -const communicate_ir_recv_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('PIN') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_RECEIVE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_INPUT1, "8"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_INPUT2, "16"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_INPUT3, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TR_SEND_RC, "RC5"] - ]), "type"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_INPUT_DO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_SUB); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const internal_variable = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_RECV_FUN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_CMD_CODE, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_ADDR_CODE, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_RAW_CODE, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_PULSE, "3"] - ]), "index"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const recv_fun = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_RECV_FUN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MILY_PAUSE, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECOVER, "False"] - ]), "en"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const ir_whether_recv = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_RECV_FUN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_WHETHER_RECV); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const ir_recv_timeout = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('time') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_RECV_FUN) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_TIMEOUT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLISECOND); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const communicate_ir_send_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('PIN') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND_samsung1, "False"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND_samsung2, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TR_SEND_RC, "RC5"] - ]), "type") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER); - this.appendValueInput('power'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_QUYU_SYMBOL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - -const ir_transmit_conventional_data = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND); - this.appendValueInput('cmd') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_CMD_CODE); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_ADDR_CODE); - this.appendValueInput('toggle') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONTROL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TRANSMIT_CONVEN_DATA); - } -}; - -const ir_transmit_study_code = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_PULSE) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const ir_transmit_raw_code = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_SEND); - this.appendValueInput('raw') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_RAW_CODE) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - -const ir_transmit_busy = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_TRANSMIT_DONE); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const communicate_bluetooth_central_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catEthernet_init + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catBLE_UART); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const communicate_bluetooth_peripheral_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catEthernet_init + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catBLE_HID); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const communicate_bluetooth_scan = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONEWIRE_SCAN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH); - this.setOutput(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_READ); - } -} - -const communicate_bluetooth_mac = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_MAC); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const communicate_bluetooth_connect = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEXT_JOIN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME, "name"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS, "mac"] - ]), "mode"); - - this.appendValueInput('data') - .setCheck(String); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const communicate_bluetooth_disconnect = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISCONNECT_ONENET); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const communicate_bluetooth_send = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_DATA); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BODY); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const communicate_bluetooth_is_connected = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLUETOOTH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_IS_CONNECT); - this.setOutput(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_READ); - } -} - -const communicate_bluetooth_recv = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendValueInput('METHOD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_INPUT_DO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_SUB); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP); - } -}; - -const communicate_bluetooth_recv_only = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV) - this.setOutput(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP); - } -}; - -const communicate_bluetooth_handle = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BLE_HANDLE) - this.appendValueInput('METHOD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_INPUT_DO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_SUB); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP); - } -}; - -//espnow -const communicate_espnow_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP); - this.appendValueInput('CHNL') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_CHANNEL); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TX_POWER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["20", "20"], ["18", "18"], ["16", "16"], ["15", "15"], ["14", "14"], ["13", "13"], ["11", "11"], ["8", "8"], ["7", "7"], ["5", "5"], ["2", "2"]]), 'op'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const communicate_espnow_init_new = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP); - this.appendValueInput('CHNL') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_CHANNEL); - this.appendValueInput('DB') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER); - this.appendDummyInput() - .appendField('db'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP); - } -}; - -const network_espnow_mac = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_MAC); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const network_espnow_info = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_INFO); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const network_espnow_recv = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["(" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS + ", " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING + ")", ""], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ETHERNET_MAC_ADDRESS, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING, "[1]"] - ]), "mode"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const network_espnow_send = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow '); - this.appendValueInput('mac') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC); - this.appendValueInput('content') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_SEND); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP); - } -}; - -const network_espnow_recv_handle = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('ESPnow '); - this.appendValueInput('METHOD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SET_METHOD); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -//radio -const espnow_radio_channel = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_INIT); - this.appendValueInput('CHNL') - .setCheck(Number); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const espnow_radio_txpower = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TX_POWER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["20", "20"], ["18", "18"], ["16", "16"], ["15", "15"], ["14", "14"], ["13", "13"], ["11", "11"], ["8", "8"], ["7", "7"], ["5", "5"], ["2", "2"]]), 'op'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const espnow_radio_channel_new = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_INIT); - this.appendValueInput('CHNL') - .setCheck(Number); - this.appendValueInput('DB') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BLE_POWER); - this.appendDummyInput() - .appendField('db'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP); - } -}; - -const espnow_radio_on_off = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "False"] - ]), 'on_off') - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const espnow_radio_send = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_SEND); - this.appendValueInput('send') - .setCheck(String); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP); - } -}; - -const espnow_radio_rec = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const espnow_radio_recv_msg = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const espnow_radio_recv = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(false); - this.setNextStatement(false); - } -}; - -const espnow_radio_recv_certain_msg = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN) - .appendField('"') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('on'), 'msg') - .appendField('"') - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(false); - this.setNextStatement(false); - } -}; - -const espnow_radio_recv_new = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(false); - this.setNextStatement(false); - } -}; - -const espnow_radio_recv_certain_msg_new = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN) - .appendField('"') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('on'), 'msg') - .appendField('"') - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(false); - this.setNextStatement(false); - } -}; - -const lora_init = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('SUB') - .appendField('Lora' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.appendValueInput('SPISUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "SPI") - .setCheck("var"); - this.appendValueInput('PINSUB') - .appendField("CS") - this.appendValueInput('frequency') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY) - this.appendValueInput('rate') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CODE_RATE) - this.appendValueInput('factor') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPREADING_FACTOR) - this.appendValueInput('power') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TX_POWER) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SIGNAL_BANDWIDTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['7800', '7800'], - ['10400', '10400'], - ['15600', '15600'], - ['20800', '20800'], - ['31250', '31250'], - ['41700', '41700'], - ['62500', '62500'], - ['125000', '125000'], - ['250000', '250000'], - ['500000', '500000'] - ]), 'bandwidth') - this.setFieldValue("125000", "bandwidth"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LORA_INIT_TOOLTIP); - } -}; - -const lora_packet = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('Lora '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PACKAGE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SIGNAL_STRENGTH, 'packet_rssi'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SIGNAL_NOISE_RATE, 'packet_snr'] - ]), 'key') - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const lora_send = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField('Lora '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SEND_DATA); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_SEND); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE); - } -} - -const lora_recv = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('VAR') - .setCheck('var') - .appendField('Lora '); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_ESPNOW_RECV) - this.setOutput(true, String); - this.setInputsInline(true); - } -}; - -const urequests_get = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput("DOMAIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - this.appendDummyInput("") - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('response'), 'VAR') - - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } - -} - - -const urequests_attribute = { - init: function () { - this.appendValueInput('VAL') - - var attr = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_HEADER, 'headers'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'] - , [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES, 'cookies'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']]; - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(attr), 'ATTR') - - - this.setInputsInline(true); - this.setOutput(true, String); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('DIR'); - var TOOLTIPS = { - 'clear': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR, - 'reset': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_RESET, - 'home': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_HOME - }; - return TOOLTIPS[mode]; - }); - } -}; - - - -const urequests_method = { - init: function () { - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - var method = [ - ['get', 'get'], - ['post', 'post'], - ['put', 'put'], - ['delete', 'delete'], - ['head', 'head'], - ['option', 'option'] - ]; - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_CONDUCT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(method), 'DIR') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS) - this.setOutput(true); - this.setInputsInline(true); - - } -}; - -const i2c_init = communicate_i2c_init; -const i2c_read = communicate_i2c_read; -const i2c_write = communicate_i2c_write; -const i2c_scan = communicate_i2c_scan; -const spi_init = communicate_spi_init; -const spi_set = communicate_spi_set; -const spi_buffer = communicate_spi_buffer; -const spi_read = communicate_spi_read; -const spi_read_output = communicate_spi_read_output; -const spi_readinto = communicate_spi_readinto; -const spi_readinto_output = communicate_spi_readinto_output; -const spi_write = communicate_spi_write; -const spi_write_readinto = communicate_spi_write_readinto; -const i2c_master_reader2 = communicate_i2c_master_read; -const i2c_available = communicate_i2c_available; - -/***/ }), - -/***/ "../micropython/blocks/control.js": -/*!****************************************!*\ - !*** ../micropython/blocks/control.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Panic_with_status_code: () => (/* binding */ Panic_with_status_code), -/* harmony export */ base_setup: () => (/* binding */ base_setup), -/* harmony export */ base_type: () => (/* binding */ base_type), -/* harmony export */ controls_TypeLists: () => (/* binding */ controls_TypeLists), -/* harmony export */ controls_delay: () => (/* binding */ controls_delay), -/* harmony export */ controls_end_program: () => (/* binding */ controls_end_program), -/* harmony export */ controls_flow_statements: () => (/* binding */ controls_flow_statements), -/* harmony export */ controls_for: () => (/* binding */ controls_for), -/* harmony export */ controls_forEach: () => (/* binding */ controls_forEach), -/* harmony export */ controls_if: () => (/* binding */ controls_if), -/* harmony export */ controls_if_else: () => (/* binding */ controls_if_else), -/* harmony export */ controls_if_elseif: () => (/* binding */ controls_if_elseif), -/* harmony export */ controls_if_if: () => (/* binding */ controls_if_if), -/* harmony export */ controls_millis: () => (/* binding */ controls_millis), -/* harmony export */ controls_uname: () => (/* binding */ controls_uname), -/* harmony export */ controls_whileUntil: () => (/* binding */ controls_whileUntil), -/* harmony export */ raw_block: () => (/* binding */ raw_block), -/* harmony export */ reset: () => (/* binding */ reset) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const LOOPS_HUE = 120//'#EB8045'; - -const base_setup = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP); - this.appendStatementInput('DO') - .appendField(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_SETUP); - } -}; - -const controls_delay = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND, "s"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "ms"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "us"]]), 'Time'); - this.appendValueInput("DELAY_TIME", Number) - .setCheck(Number); - this.setFieldValue('ms', 'Time') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_DELAY); - } -}; - -const Panic_with_status_code = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput("STATUS_CODE", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Panic_with_status_code) - .setCheck(Number); - this.setPreviousStatement(true, null); - // this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Panic_with_status_code); - } -}; - -const reset = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_micro); - this.setPreviousStatement(true); - // this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_micro); - } -}; - -const controls_for = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_WITH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('i'), 'VAR'); - this.appendValueInput('FROM') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_FROM); - this.appendValueInput('TO') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_TO); - this.appendValueInput('STEP') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEP); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_TOOLTIP.replace('%1', - thisBlock.getFieldValue('VAR')); - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const controls_whileUntil = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('BOOL') - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this.OPERATORS), 'MODE'); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('MODE'); - var TOOLTIPS = { - 'WHILE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE, - 'UNTIL': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL - }; - return TOOLTIPS[op]; - }); - } -}; - -controls_whileUntil.OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL'] -]; - -const controls_flow_statements = { - init: function () { - this.setColour(LOOPS_HUE); - var dropdown = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this.OPERATORS); - this.appendDummyInput() - .appendField(dropdown, 'FLOW') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP); - this.setPreviousStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('FLOW'); - var TOOLTIPS = { - 'BREAK': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK, - 'CONTINUE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE - }; - return TOOLTIPS[op]; - }); - }, - onchange: function () { - if (!this.workspace) { - // Block has been deleted. - return; - } - var legal = false; - // Is the block nested in a control statement? - var block = this; - do { - if (block.type == 'controls_repeat' || - block.type == 'controls_for' || - block.type == 'controls_forEach' || - block.type == 'controls_repeat_ext' || - block.type == 'controls_whileUntil') { - legal = true; - break; - } - block = block.getSurroundParent(); - } while (block); - if (legal) { - this.setWarningText(null); - } else { - this.setWarningText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING); - } - } -}; - -controls_flow_statements.OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE'] -]; - -const controls_millis = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RUNTIME); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "ms"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "us"]]), 'Time'); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RUNTIME); - } -}; - -const controls_if = { - /** - * Block for if/elseif/else condition. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL); - this.setColour(LOOPS_HUE); - this.appendValueInput('IF0') - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_IF); - this.appendStatementInput('DO0') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_THEN); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#if"); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['controls_if_elseif', - 'controls_if_else'], this)); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - if (!thisBlock.elseifCount_ && !thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_1; - } else if (!thisBlock.elseifCount_ && thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_2; - } else if (thisBlock.elseifCount_ && !thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_3; - } else if (thisBlock.elseifCount_ && thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_4; - } - return ''; - }); - this.elseifCount_ = 0; - this.elseCount_ = 0; - }, - /** - * Create XML to represent the number of else-if and else inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - if (!this.elseifCount_ && !this.elseCount_) { - return null; - } - var container = document.createElement('mutation'); - if (this.elseifCount_) { - container.setAttribute('elseif', this.elseifCount_); - } - if (this.elseCount_) { - container.setAttribute('else', 1); - } - return container; - }, - /** - * Parse XML to restore the else-if and else inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var containerBlock = this; - var valueConnections = []; - var statementConnections = []; - // var elseStatementConnection = null; - if (this.elseCount_) { - // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection) - // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection; - this.removeInput('ELSE'); - } - for (var i = this.elseifCount_; i > 0; i--) { - if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection) - valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection); - else - valueConnections[i] = null; - this.removeInput('IF' + i); - if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection) - statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection); - else - statementConnections[i] = null; - this.removeInput('DO' + i); - } - this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10); - this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10); - //this.compose(containerBlock); - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_ELSEIF); - this.appendStatementInput('DO' + i) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_THEN); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_ELSE); - } - for (var i = valueConnections.length - 2; i > 0; i--) { - if (valueConnections[i]) - valueConnections[i].reconnect(this, 'IF' + i); - } - for (var i = statementConnections.length - 2; i > 0; i--) { - if (statementConnections[i]) - statementConnections[i].reconnect(this, 'DO' + i); - } - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = workspace.newBlock('controls_if_if'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 1; i <= this.elseifCount_; i++) { - var elseifBlock = workspace.newBlock('controls_if_elseif'); - elseifBlock.initSvg(); - connection.connect(elseifBlock.previousConnection); - connection = elseifBlock.nextConnection; - } - if (this.elseCount_) { - var elseBlock = workspace.newBlock('controls_if_else'); - elseBlock.initSvg(); - connection.connect(elseBlock.previousConnection); - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - // Disconnect the else input blocks and remove the inputs. - if (this.elseCount_) { - this.removeInput('ELSE'); - } - this.elseCount_ = 0; - // Disconnect all the elseif input blocks and remove the inputs. - for (var i = this.elseifCount_; i > 0; i--) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - } - this.elseifCount_ = 0; - // Rebuild the block's optional inputs. - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_if_elseif': - this.elseifCount_++; - valueConnections.push(clauseBlock.valueConnection_); - statementConnections.push(clauseBlock.statementConnection_); - break; - case 'controls_if_else': - this.elseCount_++; - elseStatementConnection = clauseBlock.statementConnection_; - break; - default: - throw Error('Unknown block type: ' + clauseBlock.type); - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - - this.updateShape_(); - // Reconnect any child blocks. - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 1; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_if_elseif': - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - clauseBlock.valueConnection_ = - inputIf && inputIf.connection.targetConnection; - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - i++; - break; - case 'controls_if_else': - var inputDo = this.getInput('ELSE'); - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - break; - default: - throw 'Unknown block type.'; - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - }, - /** - * Reconstructs the block with all child blocks attached. - */ - rebuildShape_: function () { - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - - if (this.getInput('ELSE')) { - elseStatementConnection = this.getInput('ELSE').connection.targetConnection; - } - var i = 1; - while (this.getInput('IF' + i)) { - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - console.log(inputIf.connection.targetConnection); - valueConnections.push(inputIf.connection.targetConnection); - statementConnections.push(inputDo.connection.targetConnection); - i++; - } - this.updateShape_(); - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - }, - /** - * Modify this block to have the correct number of inputs. - * @this Blockly.Block - * @private - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('ELSE')) { - this.removeInput('ELSE'); - } - var i = 1; - while (this.getInput('IF' + i)) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - i++; - } - // Rebuild block. - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Number, Boolean]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_ELSEIF']); - this.appendStatementInput('DO' + i) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_THEN']); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_ELSE']); - } - }, - /** - * Reconnects child blocks. - * @param {!Array} valueConnections List of value - * connectsions for if input. - * @param {!Array} statementConnections List of - * statement connections for do input. - * @param {?Blockly.RenderedConnection} elseStatementConnection Statement - * connection for else input. - */ - reconnectChildBlocks_: function (valueConnections, statementConnections, - elseStatementConnection) { - for (var i = 1; i <= this.elseifCount_; i++) { - valueConnections[i] && blockly_core__WEBPACK_IMPORTED_MODULE_0__.Mutator.reconnect(this, 'IF' + i); - statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i); - } - elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE'); - } -}; - -const controls_if_if = { - /** - * Mutator block for if container. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_IF_TITLE_IF); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_IF_TOOLTIP); - this.contextMenu = false; - } -}; - -const controls_if_elseif = { - /** - * Mutator bolck for else-if condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSEIF_TOOLTIP); - this.contextMenu = false; - } -}; - -const controls_if_else = { - /** - * Mutator block for else condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSE_TITLE_ELSE); - this.setPreviousStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSE_TOOLTIP); - this.contextMenu = false; - } -}; - - -const controls_end_program = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONTROL_END_PROGRAM); - this.setPreviousStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONTROL_END_PROGRAM); - } -}; - - -const controls_forEach = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('LIST') - .setCheck(['List', String]) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOREACH_INPUT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOREACH_INPUT_ITEM) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('i'), 'VAR'); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_TOOLTIP.replace('%1', - thisBlock.getFieldValue('VAR')); - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const raw_block = { - // Container. - init: function () { - this.setColour(LOOPS_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendDummyInput() - .appendField('Code Block:'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput('12345'), 'TEXT'); - } -}; - -const base_type = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput("DATA") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_PYTHON_TYPE); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_PYTHON_TYPE); - } -}; - -const controls_TypeLists = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, "int"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_FLOAT, "float"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING, "str"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, "list"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, "tuple"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, "dict"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, "set"], - // [Blockly.Msg.MIXLY_MICROBIT_IMAGE,"image"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL, "NoneType"]]), "type"); - //整数、浮点数、字符串、列表、元组、字典、集合、图像不太对, unfinished - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('type'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_controls_TypeLists; - var TOOLTIPS = { - 'int': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, - 'float': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_FLOAT, - 'str': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING, - 'list': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, - 'tuple': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, - 'dict': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, - 'set': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, - 'image': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE, - 'NoneType': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL - }; - return mode0 + TOOLTIPS[mode]; - }); - } -}; - -const controls_uname = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME); - - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME); - } -}; - - -/***/ }), - -/***/ "../micropython/blocks/display.js": -/*!****************************************!*\ - !*** ../micropython/blocks/display.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ display_animate: () => (/* binding */ display_animate), -/* harmony export */ display_blink_rate: () => (/* binding */ display_blink_rate), -/* harmony export */ display_bright_point: () => (/* binding */ display_bright_point), -/* harmony export */ display_bright_screen: () => (/* binding */ display_bright_screen), -/* harmony export */ display_circle: () => (/* binding */ display_circle), -/* harmony export */ display_clear: () => (/* binding */ display_clear), -/* harmony export */ display_draw_4strings: () => (/* binding */ display_draw_4strings), -/* harmony export */ display_fill: () => (/* binding */ display_fill), -/* harmony export */ display_get_pixel: () => (/* binding */ display_get_pixel), -/* harmony export */ display_get_screen_image: () => (/* binding */ display_get_screen_image), -/* harmony export */ display_get_screen_pixel: () => (/* binding */ display_get_screen_pixel), -/* harmony export */ display_help: () => (/* binding */ display_help), -/* harmony export */ display_image_builtins: () => (/* binding */ display_image_builtins), -/* harmony export */ display_image_create: () => (/* binding */ display_image_create), -/* harmony export */ display_image_size: () => (/* binding */ display_image_size), -/* harmony export */ display_line: () => (/* binding */ display_line), -/* harmony export */ display_line_arbitrarily: () => (/* binding */ display_line_arbitrarily), -/* harmony export */ display_matrix_use_i2c_init: () => (/* binding */ display_matrix_use_i2c_init), -/* harmony export */ display_oled_drawPixel: () => (/* binding */ display_oled_drawPixel), -/* harmony export */ display_oled_showBitmap: () => (/* binding */ display_oled_showBitmap), -/* harmony export */ display_onoff: () => (/* binding */ display_onoff), -/* harmony export */ display_rect: () => (/* binding */ display_rect), -/* harmony export */ display_rgb_color: () => (/* binding */ display_rgb_color), -/* harmony export */ display_scroll_string: () => (/* binding */ display_scroll_string), -/* harmony export */ display_scroll_string_delay: () => (/* binding */ display_scroll_string_delay), -/* harmony export */ display_scroll_string_extern: () => (/* binding */ display_scroll_string_extern), -/* harmony export */ display_show_image: () => (/* binding */ display_show_image), -/* harmony export */ display_show_image_or_string: () => (/* binding */ display_show_image_or_string), -/* harmony export */ display_show_image_or_string_delay: () => (/* binding */ display_show_image_or_string_delay), -/* harmony export */ display_show_static: () => (/* binding */ display_show_static), -/* harmony export */ display_tm1650_power: () => (/* binding */ display_tm1650_power), -/* harmony export */ display_tm1650_show_dot: () => (/* binding */ display_tm1650_show_dot), -/* harmony export */ display_tm1650_show_num: () => (/* binding */ display_tm1650_show_num), -/* harmony export */ display_tm_use_i2c_init: () => (/* binding */ display_tm_use_i2c_init), -/* harmony export */ display_triangle: () => (/* binding */ display_triangle), -/* harmony export */ display_use_i2c_init: () => (/* binding */ display_use_i2c_init), -/* harmony export */ esp32_display_is_on: () => (/* binding */ esp32_display_is_on), -/* harmony export */ esp32_display_off: () => (/* binding */ esp32_display_off), -/* harmony export */ esp32_display_on: () => (/* binding */ esp32_display_on), -/* harmony export */ esp32_display_scroll: () => (/* binding */ esp32_display_scroll), -/* harmony export */ esp32_display_show_animation: () => (/* binding */ esp32_display_show_animation), -/* harmony export */ esp32_display_show_default_image: () => (/* binding */ esp32_display_show_default_image), -/* harmony export */ esp32_display_show_string: () => (/* binding */ esp32_display_show_string), -/* harmony export */ group_lcd_init: () => (/* binding */ group_lcd_init), -/* harmony export */ group_lcd_power: () => (/* binding */ group_lcd_power), -/* harmony export */ group_lcd_print: () => (/* binding */ group_lcd_print), -/* harmony export */ group_lcd_print2: () => (/* binding */ group_lcd_print2), -/* harmony export */ image_arithmetic: () => (/* binding */ image_arithmetic), -/* harmony export */ image_shift: () => (/* binding */ image_shift), -/* harmony export */ microbit_display_show_image: () => (/* binding */ microbit_display_show_image), -/* harmony export */ monitor_show_scroll_string: () => (/* binding */ monitor_show_scroll_string), -/* harmony export */ monitor_show_string: () => (/* binding */ monitor_show_string) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const DISPLAY_HUE = 180; - -const FIELD_COLOUR_CONFIG = { - colourOptions: ['#f00', '#000'], - columns: 2 -}; - -//var IMG = [["HEART", "HEART"],["HEART_SMALL", "HEART_SMALL"],["HAPPY", "HAPPY"],["SAD", "SAD"],["SMILE", "SMILE"],["SILLY", "SILLY"],["FABULOUS", "FABULOUS"],["SURPRISED", "SURPRISED"],["ASLEEP", "ASLEEP"],["ANGRY", "ANGRY"],["CONFUSED", "CONFUSED"],["NO", "NO"],["YES", "YES"],["LEFT_ARROW", "LEFT_ARROW"],["RIGHT_ARROW", "RIGHT_ARROW"],["DRESS", "DRESS"],["TRANSFORMERS", "TRANSFORMERS"],["SCISSORS", "SCISSORS"],["EXIT", "EXIT"],["TREE", "TREE"],["PACMAN", "PACMAN"],["TARGET", "TARGET"],["TSHIRT", "TSHIRT"],["ROLLERSKATE", "ROLLERSKATE"],["DUCK", "DUCK"],["HOUSE", "HOUSE"],["TORTOISE", "TORTOISE"],["BUTTERFLY", "BUTTERFLY"],["STICKFIGURE", "STICKFIGURE"],["GHOST", "GHOST"],["PITCHFORK", "PITCHFORK"],["MUSIC_QUAVERS", "MUSIC_QUAVERS"],["MUSIC_QUAVER", "MUSIC_QUAVER"],["MUSIC_CROTCHET", "MUSIC_CROTCHET"],["COW", "COW"],["RABBIT", "RABBIT"],["SQUARE_SMALL", "SQUARE_SMALL"],["SQUARE", "SQUARE"],["DIAMOND_SMALL", "DIAMOND_SMALL"],["DIAMOND", "DIAMOND"],["CHESSBOARD", "CHESSBOARD"],["TRIANGLE_LEFT", "TRIANGLE_LEFT"],["TRIANGLE", "TRIANGLE"],["SNAKE", "SNAKE"],["UMBRELLA", "UMBRELLA"],["SKULL", "SKULL"],["GIRAFFE", "GIRAFFE"],["SWORD", "SWORD"]]; - -const display_clear = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display - }); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - -const display_get_pixel = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS); - } -}; - -const display_bright_point = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput("STAT") - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - -const monitor_show_string = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SCROLL, 'scroll']]), "MODE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR; - var TOOLTIPS = { - 'show': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, - 'scroll': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING - }; - return TOOLTIPS[mode] + mode0; - }); - } -}; - -const monitor_show_scroll_string = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SCROLL, 'scroll']]), "MODE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("time") - .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR; - var TOOLTIPS = { - 'show': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, - 'scroll': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING - }; - return TOOLTIPS[mode] + mode0; - }); - } -}; - - -const display_show_static = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_STATIC); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MUSIC_SHOW_STATIC); - } -}; - -const microbit_display_show_image = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('PIN', String) - .setCheck("esp32_image") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - } -}; - - - -const esp32_display_show_default_image = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "InputsInline": true, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show", - "tooltip": "Show the referenced image on the display.", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP, - "args0": [{ - "name": "image", - "options": [["HEART", "HEART"], ["HEART_SMALL", "HEART_SMALL"], ["HAPPY", "HAPPY"], ["SAD", "SAD"], ["SMILE", "SMILE"], ["SILLY", "SILLY"], ["FABULOUS", "FABULOUS"], ["SURPRISED", "SURPRISED"], ["ASLEEP", "ASLEEP"], ["ANGRY", "ANGRY"], ["CONFUSED", "CONFUSED"], ["NO", "NO"], ["YES", "YES"], ["LEFT_ARROW", "LEFT_ARROW"], ["RIGHT_ARROW", "RIGHT_ARROW"], ["DRESS", "DRESS"], ["TRANSFORMERS", "TRANSFORMERS"], ["SCISSORS", "SCISSORS"], ["EXIT", "EXIT"], ["TREE", "TREE"], ["PACMAN", "PACMAN"], ["TARGET", "TARGET"], ["TSHIRT", "TSHIRT"], ["ROLLERSKATE", "ROLLERSKATE"], ["DUCK", "DUCK"], ["HOUSE", "HOUSE"], ["TORTOISE", "TORTOISE"], ["BUTTERFLY", "BUTTERFLY"], ["STICKFIGURE", "STICKFIGURE"], ["GHOST", "GHOST"], ["PITCHFORK", "PITCHFORK"], ["MUSIC_QUAVERS", "MUSIC_QUAVERS"], ["MUSIC_QUAVER", "MUSIC_QUAVER"], ["MUSIC_CROTCHET", "MUSIC_CROTCHET"], ["COW", "COW"], ["RABBIT", "RABBIT"], ["SQUARE_SMALL", "SQUARE_SMALL"], ["SQUARE", "SQUARE"], ["DIAMOND_SMALL", "DIAMOND_SMALL"], ["DIAMOND", "DIAMOND"], ["CHESSBOARD", "CHESSBOARD"], ["TRIANGLE_LEFT", "TRIANGLE_LEFT"], ["TRIANGLE", "TRIANGLE"], ["SNAKE", "SNAKE"], ["UMBRELLA", "UMBRELLA"], ["SKULL", "SKULL"], ["GIRAFFE", "GIRAFFE"], ["SWORD", "SWORD"]], - "type": "field_dropdown" - } - ] - }); - } -}; - - -const esp32_display_show_animation = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Animate_images, - "args0": [{ - "check": "List", - "type": "input_value", - "name": "images" - }, { - "type": "input_value", - "name": "delay" - }, { - "type": "input_dummy" - }, { - "checked": true, - "type": "field_checkbox", - "name": "wait" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "loop" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "clear" - } - ] - }); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Animate_images1); - } -}; - -const esp32_display_scroll = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll", - "tooltip": "Scroll the referenced text across the display.", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Scroll_message, - "args0": [{ - "check": "String", - "type": "input_value", - "name": "message" - } - ] - }); - } -}; - -const esp32_display_on = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display, 'on'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display, 'off']]), 'on_off') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_monitor); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('on_off'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_monitor; - var TOOLTIPS = { - 'on': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display, - 'off': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display - }; - return TOOLTIPS[mode] + mode0; - }); - } -}; - -const esp32_display_off = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off", - "tooltip": "Turn off the display.", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display - }); - } -}; - -const esp32_display_is_on = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "output": "Boolean", - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Display_is_on - }); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Display_is_on1); - } -}; - -const display_image_builtins = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "args0": [{ - "name": "image", - "options": [["HEART", "HEART"], ["HEART_SMALL", "HEART_SMALL"], ["HAPPY", "HAPPY"], ["SAD", "SAD"], ["SMILE", "SMILE"], ["SILLY", "SILLY"], ["FABULOUS", "FABULOUS"], ["SURPRISED", "SURPRISED"], ["ASLEEP", "ASLEEP"], ["ANGRY", "ANGRY"], ["CONFUSED", "CONFUSED"], ["NO", "NO"], ["YES", "YES"], ["LEFT_ARROW", "LEFT_ARROW"], ["RIGHT_ARROW", "RIGHT_ARROW"], ["DRESS", "DRESS"], ["TRANSFORMERS", "TRANSFORMERS"], ["SCISSORS", "SCISSORS"], ["EXIT", "EXIT"], ["TREE", "TREE"], ["PACMAN", "PACMAN"], ["TARGET", "TARGET"], ["TSHIRT", "TSHIRT"], ["ROLLERSKATE", "ROLLERSKATE"], ["DUCK", "DUCK"], ["HOUSE", "HOUSE"], ["TORTOISE", "TORTOISE"], ["BUTTERFLY", "BUTTERFLY"], ["STICKFIGURE", "STICKFIGURE"], ["GHOST", "GHOST"], ["PITCHFORK", "PITCHFORK"], ["MUSIC_QUAVERS", "MUSIC_QUAVERS"], ["MUSIC_QUAVER", "MUSIC_QUAVER"], ["MUSIC_CROTCHET", "MUSIC_CROTCHET"], ["COW", "COW"], ["RABBIT", "RABBIT"], ["SQUARE_SMALL", "SQUARE_SMALL"], ["SQUARE", "SQUARE"], ["DIAMOND_SMALL", "DIAMOND_SMALL"], ["DIAMOND", "DIAMOND"], ["CHESSBOARD", "CHESSBOARD"], ["TRIANGLE_LEFT", "TRIANGLE_LEFT"], ["TRIANGLE", "TRIANGLE"], ["SNAKE", "SNAKE"], ["UMBRELLA", "UMBRELLA"], ["SKULL", "SKULL"], ["GIRAFFE", "GIRAFFE"], ["SWORD", "SWORD"]], - "type": "field_dropdown" - } - ], - "output": ["esp32_image", "List"], - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes", - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image1, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image - }); - } -}; - - -const display_image_create = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_HUE, - "args0": [{ - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "00" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "01" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "02" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "03" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "04" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "05" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "06" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "07" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "08" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "09" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "0f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "10" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "11" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "12" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "13" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "14" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "15" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "16" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "17" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "18" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "19" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "1f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "20" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "21" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "22" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "23" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "24" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "25" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "26" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "27" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "28" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "29" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "2f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "30" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "31" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "32" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "33" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "34" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "35" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "36" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "37" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "38" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "39" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "3f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "40" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "41" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "42" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "43" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "44" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "45" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "46" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "47" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "48" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "49" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "4f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "50" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "51" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "52" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "53" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "54" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "55" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "56" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "57" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "58" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "59" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "5f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "60" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "61" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "62" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "63" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "64" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "65" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "66" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "67" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "68" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "69" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "6f" - }, { - "type": "input_dummy" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "70" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "71" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "72" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "73" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "74" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "75" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "76" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "77" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "78" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "79" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7a" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7b" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7c" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7d" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7e" - }, { - "colour": "#000000", - "type": "field_colour", - "name": "7f" - } - ], - "output": "esp32_image", - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_Create_image - }); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - - - -const image_shift = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, 'up'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, 'down'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, 'left'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, 'right'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(DISPLAY_HUE); - this.setOutput(true); - this.setInputsInline(true); - this.appendValueInput('img') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET) - .setCheck(["esp32_image", "List", String]); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.appendValueInput('val') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_SHIFT) - .setCheck(Number); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_UNIT) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET3; - var TOOLTIPS = { - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode] + mode2; - }); - } -}; - -const image_arithmetic = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_UNION, '+'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MINUS, '-'] - ]; - //this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL); - this.setColour(DISPLAY_HUE); - this.setOutput(true, "esp32_image"); - this.appendValueInput('A') - // .setCheck(["esp32_image", "List", String]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MERGE_SHAPE); - this.appendValueInput('B') - // .setCheck(["esp32_image", "List", String]) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - '+': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_add, - '-': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_reduce - }; - return TOOLTIPS[mode]; - }); - } -}; - -const esp32_display_show_string = { - init: function () { - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING, 'scroll']]), "MODE"); - this.jsonInit({ - "colour": DISPLAY_HUE, - "inputsInline": true, - "nextStatement": null, - "previousStatement": null, - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show", - "tooltip": "Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.", - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_STRING, - "args0": [{ - "check": String, - "type": "input_value", - "name": "images" - }, { - "type": "input_value", - "name": "delay" - }, { - "type": "input_dummy" - }, { - "checked": true, - "type": "field_checkbox", - "name": "wait" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "loop" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "clear" - } - ] - }); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay; - var TOOLTIPS = { - 'show': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR_ONE_BY_ONE, - 'scroll': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING - }; - return mode1 + TOOLTIPS[mode] + mode0; - }); - } -}; - -// export const esp32_display_scroll_string = { -// init : function () { -// this.jsonInit({ -// "colour" : DISPLAY_HUE, -// "inputsInline": true, -// "nextStatement" : null, -// "previousStatement" : null, -// "helpUrl" : "https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show", -// "tooltip" : "Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.", -// "message0" : Blockly.Msg.MIXLY_MICROBIT_Scroll_string, -// "args0" : [{ -// "check" : String, -// "type" : "input_value", -// "name" : "images" -// }, { -// "type" : "input_value", -// "name" : "delay" -// }, { -// "type" : "input_dummy" -// }, { -// "checked" : true, -// "type" : "field_checkbox", -// "name" : "wait" -// }, { -// "type" : "input_dummy" -// }, { -// "checked" : false, -// "type" : "field_checkbox", -// "name" : "loop" -// }, { -// "type" : "input_dummy" -// }, { -// "checked" : false, -// "type" : "field_checkbox", -// "name" : "clear" -// } -// ] -// }); -// } -// }; - -const group_lcd_print = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput("TEXT", String) - .setCheck([String, Number]) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD) - .appendField('mylcd') - //.appendField(new Blockly.FieldTextInput('mylcd'), 'VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_PRINT1); - this.appendValueInput("TEXT2", String) - .setCheck([String, Number]) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_PRINT2); - /* - this.appendValueInput("TEXT3", String) - .setCheck([String,Number]) - .setAlign(Blockly.inputs.Align.RIGHT) - .appendField(Blockly.Msg.MIXLY_LCD_PRINT3); - this.appendValueInput("TEXT4", String) - .setCheck([String,Number]) - .setAlign(Blockly.inputs.Align.RIGHT) - .appendField(Blockly.Msg.MIXLY_LCD_PRINT4); - */ - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_PRINT4_TOOLTIP); - } -}; - -const group_lcd_init = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('device') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD) - .appendField('1602') - .appendField('mylcd') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_ADDRESS); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_ADDRESS); - } -}; - -const group_lcd_print2 = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput("row", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD) - .appendField('mylcd') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_ROW); - this.appendValueInput("column", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_COLUMN); - this.appendValueInput("TEXT", String) - .setCheck([String, Number]) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_PRINT); - this.setPreviousStatement(true, null); - this.setInputsInline(true); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_PRINT3_TOOLTIP); - } -}; - -const group_lcd_power = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD) - .appendField('mylcd') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ON, "on()"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OFF, "off()"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "clear()"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_NOBACKLIGHT, "backlight(off)"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_BACKLIGHT, "backlight(on)"]]), "STAT"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('STAT'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD; - var TOOLTIPS = { - 'on()': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ON, - 'off()': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OFF, - 'clear()': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, - 'backlight(off)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_NOBACKLIGHT, - 'backlight(on)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_BACKLIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode]; - }); - } -}; - -// export const oled_init = { -// init: function() { -// this.setColour(DISPLAY_HUE); -// this.appendValueInput('VAR') -// .appendField(Blockly.Msg.OLED) -// .setCheck("var"); -// this.appendValueInput("RX", Number) -// //.appendField(Blockly.Msg.MIXLY_SETUP) -// // .appendField(Blockly.Msg.OLED) -// // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') -// .appendField(Blockly.Msg.MIXLY_SETUP) -// .appendField("sda") -// .setCheck(Number) -// .setAlign(Blockly.inputs.Align.RIGHT); -// this.appendValueInput("TX", Number) -// .appendField("scl") -// .setCheck(Number) -// .setAlign(Blockly.inputs.Align.RIGHT); -// this.appendValueInput('freq') -// .setCheck(Number) -// .appendField(Blockly.Msg.MIXLY_FREQUENCY) -// .setAlign(Blockly.inputs.Align.RIGHT); -// this.setPreviousStatement(true, null); -// this.setNextStatement(true, null); -// this.setInputsInline(true); -// } -// }; - -const display_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - // this.appendDummyInput("") - // .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + "OLED") - // .appendField(new Blockly.FieldDropdown([ - // ["OLED 128¡Á64", "OLED 128¡Á64"] - // ]), "key"); - this.appendValueInput('row') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO + "OLED") - .setCheck(Number); - this.appendValueInput('column') - .appendField("X") - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(); - } -}; - -const display_draw_4strings = { - init: function () { - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - // .appendField(Blockly.Msg.OLEDDISPLAY); - //.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/display-oled-128x64-i2c/display-oled-128x64-i2c.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize)); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendValueInput("Text_line1", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLEDDISPLAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line1); - this.appendValueInput("Text_line2", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line2); - this.appendValueInput("Text_line3", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line3); - this.appendValueInput("Text_line4", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line4); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setColour(DISPLAY_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLEDDISPLAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING); - } -}; - -const display_image_size = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT, 'height'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH, 'width'] - ]; - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE); - this.appendValueInput('VAR') - .setCheck("esp32_image") - // .appendField(Blockly.Msg.blockpy_USE_LIST); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE - var TOOLTIPS = { - 'height': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT, - 'width': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH, - }; - return mode0 + mode1 + TOOLTIPS[mode]; - }); - } -}; - -const display_rect = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_RECT, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "width" - }, { - "check": Number, - "type": "input_value", - "name": "height" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_RECT); - } -}; - -const display_line = { - init: function () { - this.setColour(DISPLAY_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_RLINE, "hline"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_VLINE, "vline"]]), "direction"); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_LINE, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "length" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_LINE); - } -}; - -const display_line_arbitrarily = { - init: function () { - this.setColour(DISPLAY_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x1" - }, { - "check": Number, - "type": "input_value", - "name": "y1" - }, { - "check": Number, - "type": "input_value", - "name": "x2" - }, { - "check": Number, - "type": "input_value", - "name": "y2" - }, - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_LINE_ARBIT); - } -} - -const display_get_screen_pixel = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - } -}; - -const display_get_screen_image = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE); - this.setInputsInline(true); - this.setOutput(true, "esp32_image"); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP); - } -}; - -const display_bright_screen = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS); - } -}; - -const display_blink_rate = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE); - } -}; - -const display_rgb_color = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#f00', null, FIELD_COLOUR_CONFIG), 'FIELDNAME'); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B); - } -}; - -const display_show_image_or_string = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const display_scroll_string = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const display_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - -const display_onoff = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ON, "ON"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OFF, "OFF"]]), 'ONOFF') - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -// export const switch = { -// init: function () { -// this.setColour(DISPLAY_HUE); -// this.appendDummyInput("") -// .appendField(new Blockly.FieldDropdown([ -// [Blockly.Msg.MIXLY_ESP32_ON, "1"], -// [Blockly.Msg.MIXLY_ESP32_OFF, "0"] -// ]), "flag"); -// this.setOutput(true); -// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); -// } -// }; - -const display_fill = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('SUB'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, "1"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - '0': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, - '1': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + TOOLTIPS[mode]; - }); - } -}; - -const display_tm_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - // ["MPU9250", "MPU9250"], - // ["TM1637", "TM1637"], - ["TM1650", "TM1650"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP; - var TOOLTIPS = { - // "MPU9250": "MPU9250", - // "TM1637": "TM1637", - "TM1650": "TM1650" - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const display_tm1650_power = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ON, "_on"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OFF, "_off"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "_clear"]]), "STAT"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_4digitdisplay_power); - } -}; - -const display_tm1650_show_num = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendValueInput("VALUE") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - // this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_displayString); - } -}; - -const display_tm1650_show_dot = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendValueInput("NO") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER1) - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_DOT) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot); - } -}; - -const display_animate = { - init: function () { - var ANIMATE = [ - ["ALL_CLOCKS", 'ALL_CLOCKS'], - ["ALL_ARROWS", 'ALL_ARROWS'] - ]; - this.setColour(DISPLAY_HUE); - this.setOutput(true, 'Tuple'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_ANIMATE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(ANIMATE), 'ANIMATION') - //this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP); - } -}; - -const display_circle = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_SHOW_CIRCLE, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "r" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE); - } -}; - -const display_triangle = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_DRAW_TRIANGLE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_SHOW_triangle, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x0" - }, { - "check": Number, - "type": "input_value", - "name": "y0" - }, { - "check": Number, - "type": "input_value", - "name": "x1" - }, { - "check": Number, - "type": "input_value", - "name": "y1" - }, { - "check": Number, - "type": "input_value", - "name": "x2" - }, { - "check": Number, - "type": "input_value", - "name": "y2" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_DRAW_TRIANGLE); - } -}; - -const display_help = { - init: function () { - this.setColour('#555555'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_ONBOARDDISPLAY_HELP); - this.setInputsInline(true); - this.setTooltip(''); - } -}; - -//显示-OLED-显示图像 -const display_oled_showBitmap = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("START_X", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_START_X) - .setCheck(Number); - this.appendValueInput("START_Y", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_START_Y) - .setCheck(Number); - this.appendValueInput("bitmap_name", String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_NAME); - this.appendValueInput("WIDTH", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH) - .setCheck(Number); - this.appendValueInput("HEIGHT", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_SHOW_BMP_TOOLTIP); - } -}; - -//显示-OLED-画点 -const display_oled_drawPixel = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWPIXEL); - this.appendValueInput("POS_X") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_POSX) - this.appendValueInput("POS_Y") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_POSY) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAW_PIXE_TOOLTIP); - } -}; - -//pe: -const display_matrix_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["32x12 Matrix", "32x12 Matrix"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - - - } -}; - -const display_show_image = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('SUB') - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const display_scroll_string_extern = { - init: function () { - this.setColour(DISPLAY_HUE); - this.appendValueInput('SUB'); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - - -/***/ }), - -/***/ "../micropython/blocks/display_extern.js": -/*!***********************************************!*\ - !*** ../micropython/blocks/display_extern.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ display_animate: () => (/* binding */ display_animate), -/* harmony export */ display_blink_rate: () => (/* binding */ display_blink_rate), -/* harmony export */ display_circle: () => (/* binding */ display_circle), -/* harmony export */ display_color_seclet: () => (/* binding */ display_color_seclet), -/* harmony export */ display_draw_4strings: () => (/* binding */ display_draw_4strings), -/* harmony export */ display_fill: () => (/* binding */ display_fill), -/* harmony export */ display_get_screen_image: () => (/* binding */ display_get_screen_image), -/* harmony export */ display_help: () => (/* binding */ display_help), -/* harmony export */ display_image_size: () => (/* binding */ display_image_size), -/* harmony export */ display_lcd_use_i2c_init: () => (/* binding */ display_lcd_use_i2c_init), -/* harmony export */ display_line: () => (/* binding */ display_line), -/* harmony export */ display_line_arbitrarily: () => (/* binding */ display_line_arbitrarily), -/* harmony export */ display_matrix_extern_bright_point: () => (/* binding */ display_matrix_extern_bright_point), -/* harmony export */ display_matrix_extern_bright_screen: () => (/* binding */ display_matrix_extern_bright_screen), -/* harmony export */ display_matrix_extern_clear: () => (/* binding */ display_matrix_extern_clear), -/* harmony export */ display_matrix_extern_get_pixel: () => (/* binding */ display_matrix_extern_get_pixel), -/* harmony export */ display_matrix_extern_get_screen_pixel: () => (/* binding */ display_matrix_extern_get_screen_pixel), -/* harmony export */ display_matrix_extern_image_builtins: () => (/* binding */ display_matrix_extern_image_builtins), -/* harmony export */ display_matrix_extern_scroll_string: () => (/* binding */ display_matrix_extern_scroll_string), -/* harmony export */ display_matrix_extern_scroll_string_delay: () => (/* binding */ display_matrix_extern_scroll_string_delay), -/* harmony export */ display_matrix_extern_shift: () => (/* binding */ display_matrix_extern_shift), -/* harmony export */ display_matrix_extern_show_frame_string: () => (/* binding */ display_matrix_extern_show_frame_string), -/* harmony export */ display_matrix_extern_show_frame_string_delay: () => (/* binding */ display_matrix_extern_show_frame_string_delay), -/* harmony export */ display_matrix_extern_show_image: () => (/* binding */ display_matrix_extern_show_image), -/* harmony export */ display_matrix_extern_show_image_or_string_delay: () => (/* binding */ display_matrix_extern_show_image_or_string_delay), -/* harmony export */ display_matrix_use_i2c_init: () => (/* binding */ display_matrix_use_i2c_init), -/* harmony export */ display_oled_drawPixel: () => (/* binding */ display_oled_drawPixel), -/* harmony export */ display_oled_showBitmap: () => (/* binding */ display_oled_showBitmap), -/* harmony export */ display_oled_use_i2c_init: () => (/* binding */ display_oled_use_i2c_init), -/* harmony export */ display_onoff: () => (/* binding */ display_onoff), -/* harmony export */ display_rect: () => (/* binding */ display_rect), -/* harmony export */ display_rgb_color: () => (/* binding */ display_rgb_color), -/* harmony export */ display_tm1650_power: () => (/* binding */ display_tm1650_power), -/* harmony export */ display_tm1650_set_brightness: () => (/* binding */ display_tm1650_set_brightness), -/* harmony export */ display_tm1650_show_dot: () => (/* binding */ display_tm1650_show_dot), -/* harmony export */ display_tm1650_show_num: () => (/* binding */ display_tm1650_show_num), -/* harmony export */ display_tm_use_i2c_init: () => (/* binding */ display_tm_use_i2c_init), -/* harmony export */ display_triangle: () => (/* binding */ display_triangle), -/* harmony export */ display_use_i2c_init: () => (/* binding */ display_use_i2c_init), -/* harmony export */ extern_oled_bright_point: () => (/* binding */ extern_oled_bright_point), -/* harmony export */ extern_oled_clear: () => (/* binding */ extern_oled_clear), -/* harmony export */ extern_oled_get_pixel: () => (/* binding */ extern_oled_get_pixel), -/* harmony export */ extern_oled_hvline: () => (/* binding */ extern_oled_hvline), -/* harmony export */ extern_oled_line: () => (/* binding */ extern_oled_line), -/* harmony export */ extern_oled_scroll_string: () => (/* binding */ extern_oled_scroll_string), -/* harmony export */ extern_oled_scroll_string_delay: () => (/* binding */ extern_oled_scroll_string_delay), -/* harmony export */ extern_oled_shape_rect: () => (/* binding */ extern_oled_shape_rect), -/* harmony export */ extern_oled_shift: () => (/* binding */ extern_oled_shift), -/* harmony export */ extern_oled_show_frame_string: () => (/* binding */ extern_oled_show_frame_string), -/* harmony export */ extern_oled_show_frame_string_delay: () => (/* binding */ extern_oled_show_frame_string_delay), -/* harmony export */ extern_oled_show_image: () => (/* binding */ extern_oled_show_image), -/* harmony export */ extern_oled_show_image_or_string_delay: () => (/* binding */ extern_oled_show_image_or_string_delay), -/* harmony export */ extern_oled_show_image_xy: () => (/* binding */ extern_oled_show_image_xy), -/* harmony export */ extern_oled_show_string: () => (/* binding */ extern_oled_show_string), -/* harmony export */ lcd_backlight: () => (/* binding */ lcd_backlight), -/* harmony export */ lcd_clear: () => (/* binding */ lcd_clear), -/* harmony export */ lcd_print_string: () => (/* binding */ lcd_print_string), -/* harmony export */ lcd_show_image_or_string_delay: () => (/* binding */ lcd_show_image_or_string_delay), -/* harmony export */ matrix_extern_image_arithmetic: () => (/* binding */ matrix_extern_image_arithmetic), -/* harmony export */ matrix_extern_image_invert: () => (/* binding */ matrix_extern_image_invert), -/* harmony export */ tft_fill: () => (/* binding */ tft_fill), -/* harmony export */ tft_line_arbitrarily: () => (/* binding */ tft_line_arbitrarily), -/* harmony export */ tft_scroll_string_delay: () => (/* binding */ tft_scroll_string_delay), -/* harmony export */ tft_show_frame_string_delay: () => (/* binding */ tft_show_frame_string_delay), -/* harmony export */ tft_show_image_or_string_delay: () => (/* binding */ tft_show_image_or_string_delay), -/* harmony export */ tft_show_image_xy: () => (/* binding */ tft_show_image_xy), -/* harmony export */ tft_use_spi_init: () => (/* binding */ tft_use_spi_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const DISPLAY_EXTERN_HUE = '5BA5A5'; - -//var IMG = [["HEART", "HEART"],["HEART_SMALL", "HEART_SMALL"],["HAPPY", "HAPPY"],["SAD", "SAD"],["SMILE", "SMILE"],["SILLY", "SILLY"],["FABULOUS", "FABULOUS"],["SURPRISED", "SURPRISED"],["ASLEEP", "ASLEEP"],["ANGRY", "ANGRY"],["CONFUSED", "CONFUSED"],["NO", "NO"],["YES", "YES"],["LEFT_ARROW", "LEFT_ARROW"],["RIGHT_ARROW", "RIGHT_ARROW"],["DRESS", "DRESS"],["TRANSFORMERS", "TRANSFORMERS"],["SCISSORS", "SCISSORS"],["EXIT", "EXIT"],["TREE", "TREE"],["PACMAN", "PACMAN"],["TARGET", "TARGET"],["TSHIRT", "TSHIRT"],["ROLLERSKATE", "ROLLERSKATE"],["DUCK", "DUCK"],["HOUSE", "HOUSE"],["TORTOISE", "TORTOISE"],["BUTTERFLY", "BUTTERFLY"],["STICKFIGURE", "STICKFIGURE"],["GHOST", "GHOST"],["PITCHFORK", "PITCHFORK"],["MUSIC_QUAVERS", "MUSIC_QUAVERS"],["MUSIC_QUAVER", "MUSIC_QUAVER"],["MUSIC_CROTCHET", "MUSIC_CROTCHET"],["COW", "COW"],["RABBIT", "RABBIT"],["SQUARE_SMALL", "SQUARE_SMALL"],["SQUARE", "SQUARE"],["DIAMOND_SMALL", "DIAMOND_SMALL"],["DIAMOND", "DIAMOND"],["CHESSBOARD", "CHESSBOARD"],["TRIANGLE_LEFT", "TRIANGLE_LEFT"],["TRIANGLE", "TRIANGLE"],["SNAKE", "SNAKE"],["UMBRELLA", "UMBRELLA"],["SKULL", "SKULL"],["GIRAFFE", "GIRAFFE"],["SWORD", "SWORD"]]; -// var IMG = [["HEART", "HEART"], ["HEART_SMALL", "HEART_SMALL"], ["HAPPY", "HAPPY"], ["SAD", "SAD"], ["SMILE", "SMILE"], ["SILLY", "SILLY"], ["FABULOUS", "FABULOUS"], ["SURPRISED", "SURPRISED"], ["ASLEEP", "ASLEEP"], ["ANGRY", "ANGRY"], ["CONFUSED", "CONFUSED"], ["NO", "NO"], ["YES", "YES"]]; - - - - - -const display_matrix_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["32x12 Matrix", "32x12 Matrix"], - ["16x8 Matrix", "16x8 Matrix"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - - - } -}; - -const display_matrix_extern_show_image = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const display_matrix_extern_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const display_matrix_extern_scroll_string = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_matrix_extern_scroll_string_delay = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - -const display_matrix_extern_show_frame_string = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_matrix_extern_show_frame_string_delay = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_matrix_extern_shift = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, 'shift_up'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, 'shift_down'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, 'shift_left'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, 'shift_right'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - // this.setOutput(true); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET) - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.appendValueInput('val') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_SHIFT) - .setCheck(Number); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_UNIT) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET3; - var TOOLTIPS = { - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode] + mode2; - }); - } -}; - -const display_matrix_extern_get_pixel = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS); - } -}; - -const display_matrix_extern_bright_point = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput("STAT") - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - -const display_matrix_extern_get_screen_pixel = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - } -}; - -const display_matrix_extern_bright_screen = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0'); - } -}; - -const display_matrix_extern_clear = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - - -const display_matrix_extern_image_builtins = { - init: function () { - var OPERATORS = - [["HEART", "HEART"], ["HEART_SMALL", "HEART_SMALL"], ["HAPPY", "HAPPY"], ["SAD", "SAD"], ["SMILE", "SMILE"], ["SILLY", "SILLY"], ["FABULOUS", "FABULOUS"], ["SURPRISED", "SURPRISED"], ["ASLEEP", "ASLEEP"], ["ANGRY", "ANGRY"], ["CONFUSED", "CONFUSED"], ["NO", "NO"], ["YES", "YES"] - // ,["LEFT_ARROW", "LEFT_ARROW"],["RIGHT_ARROW", "RIGHT_ARROW"],["DRESS", "DRESS"],["TRANSFORMERS", "TRANSFORMERS"],["SCISSORS", "SCISSORS"],["EXIT", "EXIT"],["TREE", "TREE"],["PACMAN", "PACMAN"],["TARGET", "TARGET"],["TSHIRT", "TSHIRT"],["ROLLERSKATE", "ROLLERSKATE"],["DUCK", "DUCK"],["HOUSE", "HOUSE"],["TORTOISE", "TORTOISE"],["BUTTERFLY", "BUTTERFLY"],["STICKFIGURE", "STICKFIGURE"],["GHOST", "GHOST"],["PITCHFORK", "PITCHFORK"],["MUSIC_QUAVERS", "MUSIC_QUAVERS"],["MUSIC_QUAVER", "MUSIC_QUAVER"],["MUSIC_CROTCHET", "MUSIC_CROTCHET"],["COW", "COW"],["RABBIT", "RABBIT"],["SQUARE_SMALL", "SQUARE_SMALL"],["SQUARE", "SQUARE"],["DIAMOND_SMALL", "DIAMOND_SMALL"],["DIAMOND", "DIAMOND"],["CHESSBOARD", "CHESSBOARD"],["TRIANGLE_LEFT", "TRIANGLE_LEFT"],["TRIANGLE", "TRIANGLE"],["SNAKE", "SNAKE"],["UMBRELLA", "UMBRELLA"],["SKULL", "SKULL"],["GIRAFFE", "GIRAFFE"],["SWORD", "SWORD"] - ]; - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image1) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'image'); - this.setOutput(true, "esp32_image"); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - - -const matrix_extern_image_arithmetic = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_UNION, 'add'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MINUS, 'sub'] - ]; - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.setOutput(true, "esp32_image"); - this.appendValueInput('A') - // .setCheck(["esp32_image", "List", String]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MERGE_SHAPE); - this.appendValueInput('B') - // .setCheck(["esp32_image", "List", String]) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - '+': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_add, - '-': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_reduce - }; - return TOOLTIPS[mode]; - }); - } -}; - -const matrix_extern_image_invert = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var"); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('A') - .setCheck("esp32_image") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Invert_image1); - this.setInputsInline(true); - this.setOutput(true, "esp32_image"); - } -}; - -//oled -const display_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - // this.appendDummyInput("") - // .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + "OLED") - // .appendField(new Blockly.FieldDropdown([ - // ["OLED 128¡Á64", "OLED 128¡Á64"] - // ]), "key"); - this.appendValueInput('row') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO + "OLED") - .setCheck(Number); - this.appendValueInput('column') - .appendField("X") - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(); - } -}; - -const display_draw_4strings = { - init: function () { - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - // .appendField(Blockly.Msg.OLEDDISPLAY); - //.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/display-oled-128x64-i2c/display-oled-128x64-i2c.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize)); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendValueInput("Text_line1", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLEDDISPLAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line1); - this.appendValueInput("Text_line2", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line2); - this.appendValueInput("Text_line3", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line3); - this.appendValueInput("Text_line4", 'String') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.line4); - this.setInputsInline(false); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setColour(DISPLAY_EXTERN_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLEDDISPLAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING); - } -}; - -const display_image_size = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT, 'height'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH, 'width'] - ]; - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE); - this.appendValueInput('VAR') - .setCheck("esp32_image") - // .appendField(Blockly.Msg.blockpy_USE_LIST); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE - var TOOLTIPS = { - 'height': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT, - 'width': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH, - }; - return mode0 + mode1 + TOOLTIPS[mode]; - }); - } -}; - -const display_rect = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_EXTERN_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_RECT, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "width" - }, { - "check": Number, - "type": "input_value", - "name": "height" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_RECT); - } -}; - -const display_line = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_RLINE, "hline"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_VLINE, "vline"]]), "direction"); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_LINE, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "length" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_LINE); - } -}; - -const display_line_arbitrarily = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x1" - }, { - "check": Number, - "type": "input_value", - "name": "y1" - }, { - "check": Number, - "type": "input_value", - "name": "x2" - }, { - "check": Number, - "type": "input_value", - "name": "y2" - }, - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_LINE_ARBIT); - } -} - -const display_get_screen_image = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE); - this.setInputsInline(true); - this.setOutput(true, "esp32_image"); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP); - } -}; - -const display_blink_rate = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE); - } -}; - -const display_rgb_color = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB) - this.appendValueInput("_LED_") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), 'FIELDNAME'); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_NUM_R_G_B); - } -}; - -const display_onoff = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ON, "ON"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_OFF, "OFF"]]), 'ONOFF') - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -// export const switch = { -// init: function () { -// this.setColour(DISPLAY_EXTERN_HUE); -// this.appendDummyInput("") -// .appendField(new Blockly.FieldDropdown([ -// [Blockly.Msg.MIXLY_ESP32_ON, "1"], -// [Blockly.Msg.MIXLY_ESP32_OFF, "0"] -// ]), "flag"); -// this.setOutput(true); -// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); -// } -// }; - -const display_fill = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, "1"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - '0': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, - '1': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + TOOLTIPS[mode]; - }); - } -}; - -const display_animate = { - init: function () { - var ANIMATE = [ - ["ALL_CLOCKS", 'ALL_CLOCKS'], - ["ALL_ARROWS", 'ALL_ARROWS'] - ]; - this.setColour(DISPLAY_EXTERN_HUE); - this.setOutput(true, 'Tuple'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_ANIMATE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(ANIMATE), 'ANIMATION') - //this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP); - } -}; - -const display_circle = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_SHOW_CIRCLE, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x" - }, { - "check": Number, - "type": "input_value", - "name": "y" - }, { - "check": Number, - "type": "input_value", - "name": "r" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE); - } -}; - -const display_triangle = { - init: function () { - var brightness_or_not = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_ON, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_OFF, '0'] - ]; - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_DRAW_TRIANGLE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(brightness_or_not), 'OP') - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_SHOW_triangle, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x0" - }, { - "check": Number, - "type": "input_value", - "name": "y0" - }, { - "check": Number, - "type": "input_value", - "name": "x1" - }, { - "check": Number, - "type": "input_value", - "name": "y1" - }, { - "check": Number, - "type": "input_value", - "name": "x2" - }, { - "check": Number, - "type": "input_value", - "name": "y2" - }, { - "type": "input_dummy" - }, { - "checked": false, - "type": "field_checkbox", - "name": "fill" - } - ] - }); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DISPLAY_DRAW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANBIT_DRAW_TRIANGLE); - } -}; - -const display_help = { - init: function () { - this.setColour('#555555'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_ONBOARDDISPLAY_HELP); - this.setInputsInline(true); - this.setTooltip(''); - } -}; - -//显示-OLED-显示图像 -const display_oled_showBitmap = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("START_X", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_START_X) - .setCheck(Number); - this.appendValueInput("START_Y", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_START_Y) - .setCheck(Number); - this.appendValueInput("bitmap_name", String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_NAME); - this.appendValueInput("WIDTH", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH) - .setCheck(Number); - this.appendValueInput("HEIGHT", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_SHOW_BMP_TOOLTIP); - } -}; - -//显示-OLED-画点 -const display_oled_drawPixel = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWPIXEL); - this.appendValueInput("POS_X") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_POSX) - this.appendValueInput("POS_Y") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_POSY) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAW_PIXE_TOOLTIP); - } -}; - -const display_tm_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - // ["MPU9250", "MPU9250"], - // ["TM1637", "TM1637"], - ["TM1650", "TM1650"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP; - var TOOLTIPS = { - // "MPU9250": "MPU9250", - // "TM1637": "TM1637", - "TM1650": "TM1650" - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const display_tm1650_power = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ON, "on"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OFF, "off"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "clear"]]), "STAT"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_4digitdisplay_power); - } -}; - -const display_tm1650_show_num = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendValueInput("VALUE") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - // this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_displayString); - } -}; - -const display_tm1650_show_dot = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendValueInput("NO") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER1) - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_DOT) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot); - } -}; - -const display_tm1650_set_brightness = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["TM1650", "tm1650"]]), "TYPE"); - this.appendValueInput("VAR") - this.appendValueInput("VALUE") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP); - } -}; - -const tft_use_spi_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SPISUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "SPI") - .setCheck("var"); - this.appendValueInput('PINDC') - .appendField("DC") - this.appendValueInput('PINCS') - .appendField("CS") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT) - this.appendValueInput("WIDTH") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH) - .setCheck(Number); - this.appendValueInput("HEIGHT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HEIGHT) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_turtle_rotate) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE + '90°', "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE + '180°', "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE + '270°', "3"] - ]), 'rotate') - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const tft_show_image_xy = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_NUMBER); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const display_color_seclet = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput("") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: [ - // grays - '#ffffff', '#cccccc', '#c0c0c0', '#999999', '#666666', '#333333', '#000000', - // reds - '#ffcccc', '#ff6666', '#ff0000', '#cc0000', '#990000', '#660000', '#330000', - // oranges - '#ffcc99', '#ff9966', '#ff9900', '#ff6600', '#cc6600', '#993300', '#663300', - // yellows - '#ffff99', '#ffff66', '#ffcc66', '#ffcc33', '#cc9933', '#996633', '#663333', - // olives - '#ffffcc', '#ffff33', '#ffff00', '#ffcc00', '#999900', '#666600', '#333300', - // greens - '#99ff99', '#66ff99', '#33ff33', '#33cc00', '#009900', '#006600', '#003300', - // turquoises - '#99ffff', '#33ffff', '#66cccc', '#00cccc', '#339999', '#336666', '#003333', - // blues - '#ccffff', '#66ffff', '#33ccff', '#3366ff', '#3333ff', '#000099', '#000066', - // purples - '#ccccff', '#9999ff', '#6666cc', '#6633ff', '#6600cc', '#333399', '#330099', - // violets - '#ffccff', '#ff99ff', '#cc66cc', '#cc33cc', '#993399', '#663366', '#330033' - ], - columns: 7 - }), "COLOR"); - this.setInputsInline(true); - this.setOutput(true, String); - } -}; - - -const tft_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - - -const tft_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - -const tft_show_frame_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - - -const tft_fill = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, "BLACK"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, "WHITE"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - '0': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_STAT_CLEAR, - '1': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DF_LCD + TOOLTIPS[mode]; - }); - } -}; - -const tft_line_arbitrarily = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - // this.appendDummyInput() - // .appendField(Blockly.Msg.OLED) - // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR') - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catTFT) - .setCheck("var"); - // this.appendValueInput("PIN", Number) - // .setCheck(Number) - // .setAlign(Blockly.inputs.Align.RIGHT) - // .appendField(Blockly.Msg.MIXLY_PIN); - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY, - "args0": [{ - "check": Number, - "type": "input_value", - "name": "x1" - }, { - "check": Number, - "type": "input_value", - "name": "y1" - }, { - "check": Number, - "type": "input_value", - "name": "x2" - }, { - "check": Number, - "type": "input_value", - "name": "y2" - }, - ] - }); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OLED_LINE_ARBIT); - } -} - -const display_lcd_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - // ["MPU9250", "MPU9250"], - // ["TM1637", "TM1637"], - ["LCD1602", "16"], - ["LCD2004", "20"] - ]), "key"); - this.appendValueInput("ADDR") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MQTT_SERVER_ADD); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP; - var TOOLTIPS = { - "16": "LCD1602", - "20": "LCD2004" - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const lcd_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catLCD); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.array2_cols); - this.appendValueInput("y") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.array2_rows); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const lcd_print_string = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catLCD); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.array2_cols); - this.appendValueInput("y") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.array2_rows); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const lcd_backlight = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catLCD); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TFT_Brightness) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display, "0"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - '1': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display, - '0': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catLCD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TFT_Brightness + TOOLTIPS[mode]; - }); - } -}; - -const lcd_clear = { - init: function () { - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catLCD); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - -const display_oled_use_i2c_init = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO + 'oled128x64') - this.appendValueInput("ADDR") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MQTT_SERVER_ADD); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DRIVER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['SSD1306','0'], - ['SSD1315','1'] - ]),'driver'); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP; - var TOOLTIPS = { - "16": "LCD1602", - "20": "LCD2004" - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const extern_oled_show_image = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const extern_oled_show_image_xy = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_NUMBER); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const extern_oled_show_string = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const extern_oled_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const extern_oled_scroll_string = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const extern_oled_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - -const extern_oled_show_frame_string = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const extern_oled_show_frame_string_delay = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const extern_oled_shift = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, 'shift_up'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, 'shift_down'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, 'shift_left'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, 'shift_right'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - // this.setOutput(true); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET) - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.appendValueInput('val') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_SHIFT) - .setCheck(Number); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_UNIT) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET3; - var TOOLTIPS = { - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode] + mode2; - }); - } -}; - -const extern_oled_get_pixel = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS); - } -}; - -const extern_oled_bright_point = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput("STAT") - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - - - -const extern_oled_clear = { - init: function () { - this.setColour(DISPLAY_EXTERN_HUE); - this.appendValueInput('SUB') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catOLED); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - -const extern_oled_shape_rect = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_EXTERN_HUE, - "args0": [ - { - "name": "SUB", - - "type": "input_value" - }, - { - "name": "state", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_1, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_0, '0'] - ], - "type": "field_dropdown" - }, - { - "name": "shape", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "w", - "type": "input_value", - //"check": "Number" - }, - { - "name": "h", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const extern_oled_hvline = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_EXTERN_HUE, - "args0": [ - { - "name": "SUB", - - "type": "input_value" - }, - { - "name": "state", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_1, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_0, '0'] - ], - "type": "field_dropdown" - }, - { - "name": "dir_h_v", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_vertical, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_horizontal, '1'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "length", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const extern_oled_line = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_EXTERN_HUE, - "args0": [ - { - "name": "SUB", - - "type": "input_value" - }, - { - "name": "state", - "options": [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_hline_1, '1'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_hline_0, '0']], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, { - "name": "x1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "x2", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y2", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_MESSAGE1, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/display_onboard.js": -/*!************************************************!*\ - !*** ../micropython/blocks/display_onboard.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ bitbot_display_image_create: () => (/* binding */ bitbot_display_image_create), -/* harmony export */ display_bright_point: () => (/* binding */ display_bright_point), -/* harmony export */ display_bright_screen: () => (/* binding */ display_bright_screen), -/* harmony export */ display_clear: () => (/* binding */ display_clear), -/* harmony export */ display_get_pixel: () => (/* binding */ display_get_pixel), -/* harmony export */ display_get_screen_pixel: () => (/* binding */ display_get_screen_pixel), -/* harmony export */ display_image_builtins: () => (/* binding */ display_image_builtins), -/* harmony export */ display_image_builtins_all: () => (/* binding */ display_image_builtins_all), -/* harmony export */ display_image_create: () => (/* binding */ display_image_create), -/* harmony export */ display_scroll_string: () => (/* binding */ display_scroll_string), -/* harmony export */ display_scroll_string_delay: () => (/* binding */ display_scroll_string_delay), -/* harmony export */ display_shift: () => (/* binding */ display_shift), -/* harmony export */ display_show_frame_string: () => (/* binding */ display_show_frame_string), -/* harmony export */ display_show_frame_string_delay: () => (/* binding */ display_show_frame_string_delay), -/* harmony export */ display_show_image: () => (/* binding */ display_show_image), -/* harmony export */ display_show_image_or_string_delay: () => (/* binding */ display_show_image_or_string_delay), -/* harmony export */ draw_pointer: () => (/* binding */ draw_pointer), -/* harmony export */ image_arithmetic: () => (/* binding */ image_arithmetic), -/* harmony export */ image_invert: () => (/* binding */ image_invert), -/* harmony export */ mixbot_display_bright_screen: () => (/* binding */ mixbot_display_bright_screen), -/* harmony export */ mixbot_display_get_ambientbright: () => (/* binding */ mixbot_display_get_ambientbright), -/* harmony export */ mixbot_display_get_screen_pixel: () => (/* binding */ mixbot_display_get_screen_pixel), -/* harmony export */ mixbot_display_image_create: () => (/* binding */ mixbot_display_image_create), -/* harmony export */ mixbot_display_rotate: () => (/* binding */ mixbot_display_rotate), -/* harmony export */ mixgo_display_image_create_new: () => (/* binding */ mixgo_display_image_create_new), -/* harmony export */ mixgome_display_font: () => (/* binding */ mixgome_display_font), -/* harmony export */ mixgome_display_image_create: () => (/* binding */ mixgome_display_image_create), -/* harmony export */ mixgomini_display_image_create: () => (/* binding */ mixgomini_display_image_create), -/* harmony export */ mpython_display_hvline: () => (/* binding */ mpython_display_hvline), -/* harmony export */ mpython_display_line: () => (/* binding */ mpython_display_line), -/* harmony export */ mpython_display_shape_rect: () => (/* binding */ mpython_display_shape_rect), -/* harmony export */ mpython_pbm_image: () => (/* binding */ mpython_pbm_image), -/* harmony export */ onboard_oled_bright_point: () => (/* binding */ onboard_oled_bright_point), -/* harmony export */ onboard_oled_scroll_string_delay: () => (/* binding */ onboard_oled_scroll_string_delay), -/* harmony export */ onboard_oled_show_frame_string_delay: () => (/* binding */ onboard_oled_show_frame_string_delay), -/* harmony export */ onboard_oled_show_image: () => (/* binding */ onboard_oled_show_image), -/* harmony export */ onboard_oled_show_image_or_string_delay: () => (/* binding */ onboard_oled_show_image_or_string_delay), -/* harmony export */ onboard_oled_show_image_xy: () => (/* binding */ onboard_oled_show_image_xy), -/* harmony export */ onboard_oled_show_string: () => (/* binding */ onboard_oled_show_string), -/* harmony export */ onboard_tft_bright_point: () => (/* binding */ onboard_tft_bright_point), -/* harmony export */ onboard_tft_bright_screen: () => (/* binding */ onboard_tft_bright_screen), -/* harmony export */ onboard_tft_clear: () => (/* binding */ onboard_tft_clear), -/* harmony export */ onboard_tft_clock_clear: () => (/* binding */ onboard_tft_clock_clear), -/* harmony export */ onboard_tft_clock_draw: () => (/* binding */ onboard_tft_clock_draw), -/* harmony export */ onboard_tft_clock_get_rtctime: () => (/* binding */ onboard_tft_clock_get_rtctime), -/* harmony export */ onboard_tft_clock_init: () => (/* binding */ onboard_tft_clock_init), -/* harmony export */ onboard_tft_clock_set_time: () => (/* binding */ onboard_tft_clock_set_time), -/* harmony export */ onboard_tft_display_hvline: () => (/* binding */ onboard_tft_display_hvline), -/* harmony export */ onboard_tft_display_line: () => (/* binding */ onboard_tft_display_line), -/* harmony export */ onboard_tft_display_shape_circle: () => (/* binding */ onboard_tft_display_shape_circle), -/* harmony export */ onboard_tft_display_shape_rect: () => (/* binding */ onboard_tft_display_shape_rect), -/* harmony export */ onboard_tft_fill: () => (/* binding */ onboard_tft_fill), -/* harmony export */ onboard_tft_get_pixel: () => (/* binding */ onboard_tft_get_pixel), -/* harmony export */ onboard_tft_get_screen_pixel: () => (/* binding */ onboard_tft_get_screen_pixel), -/* harmony export */ onboard_tft_scroll_string: () => (/* binding */ onboard_tft_scroll_string), -/* harmony export */ onboard_tft_scroll_string_delay: () => (/* binding */ onboard_tft_scroll_string_delay), -/* harmony export */ onboard_tft_shift: () => (/* binding */ onboard_tft_shift), -/* harmony export */ onboard_tft_show_frame_string: () => (/* binding */ onboard_tft_show_frame_string), -/* harmony export */ onboard_tft_show_frame_string_delay: () => (/* binding */ onboard_tft_show_frame_string_delay), -/* harmony export */ onboard_tft_show_image: () => (/* binding */ onboard_tft_show_image), -/* harmony export */ onboard_tft_show_image_or_string_delay: () => (/* binding */ onboard_tft_show_image_or_string_delay), -/* harmony export */ onboard_tft_show_image_xy: () => (/* binding */ onboard_tft_show_image_xy) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const DISPLAY_ONBOARD_HUE = '#569A98'; - -const display_show_image = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey() - if (version == 'micropython:esp32:mixbot') { - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP); - } - } -}; - -const display_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - - } -}; - -const display_scroll_string = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - - } -}; - -const display_show_frame_string = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_show_frame_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const display_image_create = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 12; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 32; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - -const display_image_builtins = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [{ - "name": "image", - "options": [["HEART", "HEART"], ["HEART_SMALL", "HEART_SMALL"], ["HAPPY", "HAPPY"], ["SAD", "SAD"], ["SMILE", "SMILE"], ["SILLY", "SILLY"], ["FABULOUS", "FABULOUS"], ["SURPRISED", "SURPRISED"], ["ASLEEP", "ASLEEP"], ["ANGRY", "ANGRY"], ["CONFUSED", "CONFUSED"], ["NO", "NO"], ["YES", "YES"] - // ,["LEFT_ARROW", "LEFT_ARROW"],["RIGHT_ARROW", "RIGHT_ARROW"],["DRESS", "DRESS"],["TRANSFORMERS", "TRANSFORMERS"],["SCISSORS", "SCISSORS"],["EXIT", "EXIT"],["TREE", "TREE"],["PACMAN", "PACMAN"],["TARGET", "TARGET"],["TSHIRT", "TSHIRT"],["ROLLERSKATE", "ROLLERSKATE"],["DUCK", "DUCK"],["HOUSE", "HOUSE"],["TORTOISE", "TORTOISE"],["BUTTERFLY", "BUTTERFLY"],["STICKFIGURE", "STICKFIGURE"],["GHOST", "GHOST"],["PITCHFORK", "PITCHFORK"],["MUSIC_QUAVERS", "MUSIC_QUAVERS"],["MUSIC_QUAVER", "MUSIC_QUAVER"],["MUSIC_CROTCHET", "MUSIC_CROTCHET"],["COW", "COW"],["RABBIT", "RABBIT"],["SQUARE_SMALL", "SQUARE_SMALL"],["SQUARE", "SQUARE"],["DIAMOND_SMALL", "DIAMOND_SMALL"],["DIAMOND", "DIAMOND"],["CHESSBOARD", "CHESSBOARD"],["TRIANGLE_LEFT", "TRIANGLE_LEFT"],["TRIANGLE", "TRIANGLE"],["SNAKE", "SNAKE"],["UMBRELLA", "UMBRELLA"],["SKULL", "SKULL"],["GIRAFFE", "GIRAFFE"],["SWORD", "SWORD"] - ], - "type": "field_dropdown" - }], - "output": ["esp32_image", "List"], - "helpUrl": "https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes", - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image1, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image - }); - } -}; - -const display_image_builtins_all = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image1) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.builtinimg), 'image'); - this.setOutput(true, ["esp32_image", "List"]); - } -}; - -const image_arithmetic = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_UNION, 'add'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MINUS, 'sub'] - ]; - this.setColour(DISPLAY_ONBOARD_HUE); - this.setOutput(true, "esp32_image"); - this.appendValueInput('A') - // .setCheck(["esp32_image", "List", String]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_DISPLAY_MERGE_SHAPE); - this.appendValueInput('B') - // .setCheck(["esp32_image", "List", String]) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - '+': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_add, - '-': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_image_reduce - }; - return TOOLTIPS[mode]; - }); - } -}; - -const image_invert = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('A') - .setCheck("esp32_image") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Invert_image1); - this.setInputsInline(true); - this.setOutput(true, "esp32_image"); - } -}; - -const display_shift = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, 'shift_up'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, 'shift_down'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, 'shift_left'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, 'shift_right'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(DISPLAY_ONBOARD_HUE); - // this.setOutput(true); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET) - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.appendValueInput('val') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_SHIFT) - .setCheck(Number); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_UNIT) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET3; - var TOOLTIPS = { - 'shift_up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'shift_down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'shift_left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'shift_right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode] + mode2; - }); - } -}; - -const display_get_pixel = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS); - } -}; - -const display_bright_point = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput("STAT") - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - -const display_get_screen_pixel = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - } -}; - -const display_bright_screen = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0'); - } -}; - -const display_clear = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - - - - - - - -//mixgo_me onboard_matrix below: - - - -const mixgome_display_image_create = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 5; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 8; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - -const mixgomini_display_image_create = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 8; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 12; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - -const mixgo_display_image_create_new = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 8; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 16; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true, "esp32_image"); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - - - -const mixgome_display_font = { - init: function () { - var OPERATORS = [ - ['4x5' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_ME_DISPLAY_HORIZONTAL, "'4x5'"], - ['5x5' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_ME_DISPLAY_HORIZONTAL, "'5x5'"], - ['5x8' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_ME_DISPLAY_VERTICAL, "'5x8'"] - ]; - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_SET_FONT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - - } -}; - - - -//mpython - -const onboard_oled_show_image = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const onboard_oled_show_image_xy = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_NUMBER); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const onboard_oled_show_string = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck([String, "esp32_image", "List", 'Tuple']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const onboard_oled_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const onboard_oled_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - - -const onboard_oled_show_frame_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_oled_bright_point = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput("STAT") - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - -const mpython_display_shape_rect = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "state", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_1, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_0, '0'] - ], - "type": "field_dropdown" - }, - { - "name": "shape", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "w", - "type": "input_value", - //"check": "Number" - }, - { - "name": "h", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const mpython_display_hvline = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "state", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_1, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_MODE_0, '0'] - ], - "type": "field_dropdown" - }, - { - "name": "dir_h_v", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_vertical, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_horizontal, '1'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "length", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const mpython_display_line = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "state", - "options": [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_hline_1, '1'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_hline_0, '0']], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, { - "name": "x1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "x2", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y2", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const mpython_pbm_image = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "type": "field_label", - "name": "size_image", - "text": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Built_in_image1 - }, - - { - "name": "path", - "options": [ - ["Heart", "Heart"], - ["Angry", "Angry"], - ["Bored", "Bored"], - ["Confused", "Confused"], - ["Happy", "Happy"], - ["Paper", "Paper"], - ["Rock", "Rock"], - ["Sad", "Sad"], - ["Scissors", "Scissors"], - ["Silly", "Silly"], - ["Sleep", "Sleep"], - ["Small_heart", "Small_heart"], - ["Small_paper", "Small_paper"], - ["Small_rock", "Small_rock"], - ["Small_scissors", "Small_scissors"], - ["Smile", "Smile"], - ["Surprise", "Surprise"], - ["Wonderful", "Wonderful"], - ["Eyes_Angry", "Eyes_Angry"], - ["Awake", "Awake"], - ["Black_eye", "Black_eye"], - ["Bottom_left", "Bottom_left"], - ["Bottom_right", "Bottom_right"], - ["Crazy_1", "Crazy_1"], - ["Crazy_2", "Crazy_2"], - ["Disappointed", "Disappointed"], - ["Dizzy", "Dizzy"], - ["Down", "Down"], - ["Evil", "Evil"], - ["Hurt", "Hurt"], - ["Knocked_out", "Knocked_out"], - ["Love", "Love"], - ["Middle_left", "Middle_left"], - ["Middle_right", "Middle_right"], - ["Neutral", "Neutral"], - ["Nuclear", "Nuclear"], - ["Pinch_left", "Pinch_left"], - ["Pinch_middle", "Pinch_middle"], - ["Pinch_right", "Pinch_right"], - ["Tear", "Tear"], - ["Tired_left", "Tired_left"], - ["Tired_middle", "Tired_middle"], - ["Tired_right", "Tired_right"], - ["Toxic", "Toxic"], - ["Up", "Up"], - ["Winking", "Winking"], - ["Accept", "Accept"], - ["Backward", "Backward"], - ["Decline", "Decline"], - ["Forward", "Forward"], - ["Left", "Left"], - ["No_go", "No_go"], - ["Question_mark", "Question_mark"], - ["Right", "Right"], - ["Stop_1", "Stop_1"], - ["Stop_2", "Stop_2"], - ["Thumbs_down", "Thumbs_down"], - ["Thumbs_up", "Thumbs_up"], - ["Warning", "Warning"], - ["Bomb", "Bomb"], - ["Boom", "Boom"], - ["Fire", "Fire"], - ["Flowers", "Flowers"], - ["Forest", "Forest"], - ["Lightning", "Lightning"], - ["Light_off", "Light_off"], - ["Light_on", "Light_on"], - ["Night", "Night"], - ["Pirate", "Pirate"], - ["Snow", "Snow"], - ["Target", "Target"], - ["Bar_0", "Bar_0"], - ["Bar_1", "Bar_1"], - ["Bar_2", "Bar_2"], - ["Bar_3", "Bar_3"], - ["Bar_4", "Bar_4"], - ["Dial_0", "Dial_0"], - ["Dial_1", "Dial_1"], - ["Dial_2", "Dial_2"], - ["Dial_3", "Dial_3"], - ["Dial_4", "Dial_4"], - ["Dots_0", "Dots_0"], - ["Dots_1", "Dots_1"], - ["Dots_2", "Dots_2"], - ["Dots_3", "Dots_3"], - ["Hourglass_0", "Hourglass_0"], - ["Hourglass_1", "Hourglass_1"], - ["Hourglass_2", "Hourglass_2"], - ["Timer_0", "Timer_0"], - ["Timer_1", "Timer_1"], - ["Timer_2", "Timer_2"], - ["Timer_3", "Timer_3"], - ["Timer_4", "Timer_4"], - ["Water_level_0", "Water_level_0"], - ["Water_level_1", "Water_level_1"], - ["Water_level_2", "Water_level_2"], - ["Water_level_3", "Water_level_3"], - - - ], - "type": "field_dropdown" - } - ], - "output": "String", - "helpUrl": '', - "tooltip": '', - "message0": '%1 %2' - }); - } -}; - -//mixbot onboard_matrix below: - - - -const mixbot_display_image_create = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 5; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 5; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - -const mixbot_display_get_screen_pixel = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - } -}; - -const mixbot_display_get_ambientbright = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT); - this.setInputsInline(true); - this.setOutput(true, Number); - } -}; - -const mixbot_display_bright_screen = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0'); - } -}; - -const mixbot_display_rotate = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PL_PIE_SHADOW_N, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE + '90' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_setheading_degree, '1'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE + '180' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_setheading_degree, '2'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE + '270' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_setheading_degree, '3'] - ]; - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_SCREEN_ROTATE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - - } -}; - -const bitbot_display_image_create = { - init: function () { - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE) - for (let i = 0; i < 12; i++) { - let dummyInputObj = this.appendDummyInput(); - for (let j = 0; j < 12; j++) { - dummyInputObj.appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour('#000', null, { - colourOptions: ['#f00', '#000'], - columns: 2 - }), i + '-' + j); - } - } - this.setOutput(true); - this.setColour(DISPLAY_ONBOARD_HUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Create_image1); - } -}; - -//mixgo_nova onboard tft below: -const onboard_tft_show_image = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const onboard_tft_show_image_xy = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_NUMBER); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_BITMAP_OR_STRING); - } -}; - -const onboard_tft_show_image_or_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_DRAWSTR); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_YES, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_NO, "False"] - ]), 'center') - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY); - } -}; - -const onboard_tft_scroll_string = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_scroll_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("space") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_DISPLAY_FONT_SPACE); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY); - } -}; - -const onboard_tft_show_frame_string = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_show_frame_string_delay = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_FONT_NUM); - this.appendValueInput("time") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_display_shape_rect = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "shape", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "w", - "type": "input_value", - //"check": "Number" - }, - { - "name": "h", - "type": "input_value", - //"check": "Number" - }, - { - "name": "VAR", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const onboard_tft_display_hvline = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "dir_h_v", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_vertical, '0'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_horizontal, '1'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "length", - "type": "input_value", - //"check": "Number" - }, - { - "name": "VAR", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const onboard_tft_display_line = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "type": "input_dummy" - }, { - "name": "x1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y1", - "type": "input_value", - //"check": "Number" - }, - { - "name": "x2", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y2", - "type": "input_value", - //"check": "Number" - }, - { - "name": "VAR", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_TOOLTIP, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_display_line_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const onboard_tft_shift = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, 'shift_up'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, 'shift_down'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, 'shift_left'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, 'shift_right'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(DISPLAY_ONBOARD_HUE); - // this.setOutput(true); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET) - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.appendValueInput('val') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_SHIFT) - .setCheck(Number); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_UNIT) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET3; - var TOOLTIPS = { - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT - }; - return mode0 + mode1 + TOOLTIPS[mode] + mode2; - }); - } -}; - -const onboard_tft_get_pixel = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS); - } -}; - -const onboard_tft_bright_point = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LCD_SETCOLOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X); - this.appendValueInput('y') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL); - } -}; - - - -const onboard_tft_clear = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Clear_display); - } -}; - -const onboard_tft_get_screen_pixel = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS); - } -}; - -const onboard_tft_bright_screen = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('x') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0'); - } -}; - -const onboard_tft_fill = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SCREEN_FILL) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_clock_init = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_INIT_CLOCK); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CENTER_POS); - this.appendValueInput("x") - .setCheck(Number) - .appendField('x'); - this.appendValueInput("y") - .setCheck(Number) - .appendField('y'); - this.appendValueInput("size") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_CIRCLE_RADIUS); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_clock_get_rtctime = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GET_RTCTIME); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_clock_set_time = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_TIME); - this.appendValueInput("h") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR); - this.appendValueInput("m") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE); - this.appendValueInput("s") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_clock_draw = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DRAW_CLOCK); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_clock_clear = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendValueInput('SUB') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLEAR_CLOCK); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const onboard_tft_display_shape_circle = { - init: function () { - this.jsonInit({ - "colour": DISPLAY_ONBOARD_HUE, - "args0": [ - { - "name": "shape", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_HOLLOW, 'False'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MPYTHON_DISPLAY_SOLID, 'True'] - ], - "type": "field_dropdown" - }, - { - "type": "input_dummy" - }, - { - "name": "x", - "type": "input_value", - //"check": "Number" - }, - { - "name": "y", - "type": "input_value", - //"check": "Number" - }, - { - "name": "r", - "type": "input_value", - //"check": "Number" - }, - { - "name": "VAR", - "type": "input_value", - //"check": "Number" - } - - ], - "inputsInline": true, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mpython_HELPURL, - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0, - "nextStatement": null, - "previousStatement": null - }); - } -}; - -const draw_pointer = { - init: function () { - this.setColour(DISPLAY_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DRAW_POINTER) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DRAW_POINTER_ANGLE); - this.appendValueInput('angle'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DRAW_POINTER_DU); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DRAW_POINTER_TOOLTIP); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/factory.js": -/*!****************************************!*\ - !*** ../micropython/blocks/factory.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ factory_block: () => (/* binding */ factory_block), -/* harmony export */ factory_block_return: () => (/* binding */ factory_block_return), -/* harmony export */ factory_block_return_with_textarea: () => (/* binding */ factory_block_return_with_textarea), -/* harmony export */ factory_block_with_textarea: () => (/* binding */ factory_block_with_textarea), -/* harmony export */ factory_callMethod_noreturn: () => (/* binding */ factory_callMethod_noreturn), -/* harmony export */ factory_callMethod_return: () => (/* binding */ factory_callMethod_return), -/* harmony export */ factory_create_with_container: () => (/* binding */ factory_create_with_container), -/* harmony export */ factory_create_with_item: () => (/* binding */ factory_create_with_item), -/* harmony export */ factory_declare: () => (/* binding */ factory_declare), -/* harmony export */ factory_from_import: () => (/* binding */ factory_from_import), -/* harmony export */ factory_function_noreturn: () => (/* binding */ factory_function_noreturn), -/* harmony export */ factory_function_return: () => (/* binding */ factory_function_return), -/* harmony export */ factory_import: () => (/* binding */ factory_import), -/* harmony export */ folding_block: () => (/* binding */ folding_block) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const FACTORY_HUE = "#777777"//65; - -const factory_from_import = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField("from ") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('ESP32'), 'path') - .appendField(" import ") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('*'), 'module'); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const factory_import = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField("import ") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('module'), 'module'); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const factory_function_noreturn = { - init: function () { - //console.log('init'); - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('my_function'), 'NAME'); - this.itemCount_ = 1; - this.arguments_ = ['x'];//add - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['factory_create_with_item'], this)); - }, - mutationToDom: function () { - //console.log('mutationToDom'); - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - //add - for (var i = 0; i < this.arguments_.length; i++) { - var parameter = document.createElement('arg'); - parameter.setAttribute('name', this.arguments_[i]); - container.appendChild(parameter); - } - return container; - }, - domToMutation: function (xmlElement) { - //console.log('domToMutation'); - this.arguments_ = [];//add - //add - for (var i = 0; xmlElement.childNodes[i]; i++) { - let childNode = xmlElement.childNodes[i]; - if (childNode.nodeName.toLowerCase() == 'arg') { - this.arguments_.push(childNode.getAttribute('name')); - } - } - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - decompose: function (workspace) { - //console.log('decompose'); - var containerBlock = - workspace.newBlock('factory_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK') - .connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('factory_create_with_item'); - itemBlock.initSvg(); - itemBlock.setFieldValue(this.arguments_[i], 'NAME');//add - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - compose: function (containerBlock) { - //console.log('compose'); - this.arguments_ = [];//add - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - this.arguments_.push(itemBlock.getFieldValue('NAME'));//add - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - saveConnections: function (containerBlock) { - //console.log('saveConnections'); - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - updateShape_: function () { - //console.log('updateShape_'); - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - for (var i = 0; i < this.itemCount_; i++) { - this.appendValueInput('ADD' + i) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(this.arguments_[i]); - } - } -}; - -const factory_create_with_container = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.appendStatementInput('STACK'); - this.contextMenu = false; - } -}; - -const factory_create_with_item = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_ITEM_TITLE + ':') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('x'), 'NAME'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.contextMenu = false; - } -}; - -const factory_function_return = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('my_function'), 'NAME'); - this.itemCount_ = 1; - this.arguments_ = ['x'];//add - this.updateShape_(); - this.setOutput(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['factory_create_with_item'], this)); - }, - mutationToDom: factory_function_noreturn.mutationToDom, - domToMutation: factory_function_noreturn.domToMutation, - decompose: factory_function_noreturn.decompose, - compose: factory_function_noreturn.compose, - saveConnections: factory_function_noreturn.saveConnections, - updateShape_: factory_function_noreturn.updateShape_ -}; - -const factory_declare = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('test'), 'NAME') - .appendField("=") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('Test'), 'TYPE') - .appendField("()"); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -} - - -const factory_callMethod_noreturn = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('test'), 'NAME') - .appendField('.') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('callMethod'), 'METHOD'); - this.itemCount_ = 1; - this.arguments_ = ['x'];//add - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['factory_create_with_item'], this)); - }, - mutationToDom: factory_function_noreturn.mutationToDom, - domToMutation: factory_function_noreturn.domToMutation, - decompose: factory_function_noreturn.decompose, - compose: factory_function_noreturn.compose, - saveConnections: factory_function_noreturn.saveConnections, - updateShape_: factory_function_noreturn.updateShape_ -}; - -const factory_callMethod_return = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('test'), 'NAME') - .appendField('.') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('callMethod'), 'METHOD'); - this.itemCount_ = 1; - this.arguments_ = ['x'];//add - this.updateShape_(); - this.setOutput(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['factory_create_with_item'], this)); - }, - mutationToDom: factory_function_noreturn.mutationToDom, - domToMutation: factory_function_noreturn.domToMutation, - decompose: factory_function_noreturn.decompose, - compose: factory_function_noreturn.compose, - saveConnections: factory_function_noreturn.saveConnections, - updateShape_: factory_function_noreturn.updateShape_ -}; - -const factory_block = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('display.scroll("Hello World!")'), 'VALUE'); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const factory_block_return = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('test'), 'VALUE'); - this.setOutput(true); - } -}; - -const factory_block_with_textarea = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput('display.scroll("Hello World!")\ndisplay.scroll("Hello Mixly!")'), 'VALUE'); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const factory_block_return_with_textarea = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput('Hello\nMixly'), 'VALUE'); - this.setOutput(true); - } -}; - -const folding_block = { - init: function () { - this.setColour(FACTORY_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.FOLDING_BLOCK), "peien"); - this.appendStatementInput('DO') - .appendField(''); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.FOLDING_BLOCK_HELP); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/inout.js": -/*!**************************************!*\ - !*** ../micropython/blocks/inout.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ controls_pin_attachInterrupt: () => (/* binding */ controls_pin_attachInterrupt), -/* harmony export */ inout_analog_atten: () => (/* binding */ inout_analog_atten), -/* harmony export */ inout_analog_read: () => (/* binding */ inout_analog_read), -/* harmony export */ inout_analog_read_init: () => (/* binding */ inout_analog_read_init), -/* harmony export */ inout_analog_write: () => (/* binding */ inout_analog_write), -/* harmony export */ inout_analog_write_init: () => (/* binding */ inout_analog_write_init), -/* harmony export */ inout_analog_write_set: () => (/* binding */ inout_analog_write_set), -/* harmony export */ inout_analog_write_set_freq: () => (/* binding */ inout_analog_write_set_freq), -/* harmony export */ inout_digital_init: () => (/* binding */ inout_digital_init), -/* harmony export */ inout_digital_read: () => (/* binding */ inout_digital_read), -/* harmony export */ inout_digital_write: () => (/* binding */ inout_digital_write), -/* harmony export */ inout_highlow: () => (/* binding */ inout_highlow), -/* harmony export */ inout_pinMode: () => (/* binding */ inout_pinMode), -/* harmony export */ inout_pin_attachInterrupt: () => (/* binding */ inout_pin_attachInterrupt), -/* harmony export */ inout_pin_pressed: () => (/* binding */ inout_pin_pressed), -/* harmony export */ inout_pin_pressed_init: () => (/* binding */ inout_pin_pressed_init), -/* harmony export */ inout_pwm_analog_write: () => (/* binding */ inout_pwm_analog_write), -/* harmony export */ inout_pwm_analog_write_init: () => (/* binding */ inout_pwm_analog_write_init), -/* harmony export */ inout_pwm_analog_write_set_freq: () => (/* binding */ inout_pwm_analog_write_set_freq), -/* harmony export */ pin_pressed: () => (/* binding */ pin_pressed), -/* harmony export */ pin_pressed_init: () => (/* binding */ pin_pressed_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const BASE_HUE = 20//'#ae3838';//40; - -const inout_highlow = { - init: function () { - this.setColour(BASE_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HIGH, "HIGH"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOW, "LOW"]]), 'BOOL') - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP); - } -}; - -const inout_digital_write = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP); - } -}; - -const inout_digital_read = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MACHINE_VALUE) - this.setInputsInline(true); - this.setOutput(true, [Boolean, Number]); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP); - } -}; - -const inout_pwm_analog_write = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField("PWM" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_VALUE2) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP); - } -}; - -const inout_analog_write = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField("DAC" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_VALUE2) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP); - } -}; - -const inout_analog_write_set = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "period"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "period_microseconds"] - ]), "key"); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP); - } -}; - -const inout_pwm_analog_write_set_freq = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField("PWM" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP); - } -}; - -const inout_analog_read = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MACHINE_VALUE) - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP); - } -}; - -const inout_analog_atten = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_REF_VOLTAGE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["3.3V", "machine.ADC.ATTN_11DB"], - ["2.2V", "machine.ADC.ATTN_6DB"], - ["1.5V", "machine.ADC.ATTN_2_5DB"], - ["1.2V", "machine.ADC.ATTN_0DB"] - ]), "atten"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP); - } -}; - - -const inout_pin_pressed = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput('pin') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR); - // this.appendDummyInput() - // .appendField(Blockly.Msg.MIXLY_IS_TOUCHED); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MACHINE_VALUE) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP); - } -}; - -const inout_pin_attachInterrupt = { - init: function () { - this.setColour(20); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ATTACHINTERRUPT_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP); - } -}; - -const inout_digital_init = { - init: function () { - this.setColour(20); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('pin#'), 'PIN_OBJ'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - // .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEOUT, "machine.Pin.OUT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEIN, "machine.Pin.IN"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEPULLUP, "machine.Pin.IN, machine.Pin.PULL_UP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEPULLDOWN, "machine.Pin.IN, machine.Pin.PULL_DOWN"] - ]), "MODE") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_pwm_analog_write_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('pwm#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField("PWM" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .appendField(new Blockly.FieldDropdown(profile.default.pwm_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'pwm#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_analog_write_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('dac#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField("DAC" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('dac') - // .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_analog_read_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('adc#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEIN) - // .appendField('adc') - // .appendField(new Blockly.FieldDropdown(profile.default.adc_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'adc#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_pin_pressed_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('tc#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - // .appendField('tc') - // .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_pinMode = inout_digital_init; -const inout_analog_write_set_freq = inout_pwm_analog_write_set_freq; -const pin_pressed_init = inout_pin_pressed_init; -const pin_pressed = inout_pin_pressed; -const controls_pin_attachInterrupt = inout_pin_attachInterrupt; - - -/***/ }), - -/***/ "../micropython/blocks/iot.js": -/*!************************************!*\ - !*** ../micropython/blocks/iot.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE: () => (/* binding */ IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE), -/* harmony export */ IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE: () => (/* binding */ IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE), -/* harmony export */ IOT_EMQX_PING: () => (/* binding */ IOT_EMQX_PING), -/* harmony export */ IOT_FORMATTING: () => (/* binding */ IOT_FORMATTING), -/* harmony export */ IOT_FORMAT_STRING: () => (/* binding */ IOT_FORMAT_STRING), -/* harmony export */ IOT_MIXIO_NTP: () => (/* binding */ IOT_MIXIO_NTP), -/* harmony export */ IOT_MIXIO_PUBLISH: () => (/* binding */ IOT_MIXIO_PUBLISH), -/* harmony export */ IOT_MIXIO_SUBSCRIBE: () => (/* binding */ IOT_MIXIO_SUBSCRIBE), -/* harmony export */ iot_checkonenet: () => (/* binding */ iot_checkonenet), -/* harmony export */ iot_client_onboard: () => (/* binding */ iot_client_onboard), -/* harmony export */ iot_create_with_item: () => (/* binding */ iot_create_with_item), -/* harmony export */ iot_http_client: () => (/* binding */ iot_http_client), -/* harmony export */ iot_http_data: () => (/* binding */ iot_http_data), -/* harmony export */ iot_mixio_check: () => (/* binding */ iot_mixio_check), -/* harmony export */ iot_mixio_connect: () => (/* binding */ iot_mixio_connect), -/* harmony export */ iot_mixio_connect_only: () => (/* binding */ iot_mixio_connect_only), -/* harmony export */ iot_mixio_disconnect: () => (/* binding */ iot_mixio_disconnect), -/* harmony export */ iot_mixio_format_msg: () => (/* binding */ iot_mixio_format_msg), -/* harmony export */ iot_mixio_format_topic: () => (/* binding */ iot_mixio_format_topic), -/* harmony export */ iot_mixly_key: () => (/* binding */ iot_mixly_key), -/* harmony export */ iot_mqtt_client: () => (/* binding */ iot_mqtt_client), -/* harmony export */ iot_mqtt_data: () => (/* binding */ iot_mqtt_data), -/* harmony export */ iot_onenet_check: () => (/* binding */ iot_onenet_check), -/* harmony export */ iot_onenet_connect: () => (/* binding */ iot_onenet_connect), -/* harmony export */ iot_onenet_disconnect: () => (/* binding */ iot_onenet_disconnect), -/* harmony export */ iot_onenet_publish: () => (/* binding */ iot_onenet_publish), -/* harmony export */ iot_onenet_publish_dict: () => (/* binding */ iot_onenet_publish_dict), -/* harmony export */ iot_onenetconnect: () => (/* binding */ iot_onenetconnect), -/* harmony export */ iot_onenetdisconnect: () => (/* binding */ iot_onenetdisconnect), -/* harmony export */ iot_publish: () => (/* binding */ iot_publish), -/* harmony export */ iot_publish_container: () => (/* binding */ iot_publish_container), -/* harmony export */ iot_publish_item: () => (/* binding */ iot_publish_item), -/* harmony export */ iot_wifi_connect: () => (/* binding */ iot_wifi_connect), -/* harmony export */ iot_wificonnect: () => (/* binding */ iot_wificonnect) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const IOT_HUE = '#526FC3'; -//'#2FAD7A'; - -const iot_wifi_connect = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI); - this.appendValueInput('WIFINAME') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME); - this.appendValueInput('PASSWORD') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_PASSWORD); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP); - } -}; - -const iot_onenet_connect = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("OneNET" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_JOIN); - this.appendValueInput('CLIENT') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_CLIENT); - this.appendValueInput('SERVER') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_SERVER); - this.appendValueInput('USERNAME') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_USERNAME); - this.appendValueInput('PASSWORD') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_PASSWORD); - this.appendValueInput('TOPIC') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_TOPIC); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_ONENET_SUB); - //this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP); - } -}; - -const iot_onenet_disconnect = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("OneNET") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISCONNECT_ONENET); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP); - } -}; - -const iot_onenet_check = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("OneNET") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_CHECK_ONENET); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP); - } -}; - -const iot_onenet_publish_dict = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("OneNET") - this.appendValueInput('DICT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_PUBLISH_ONENET); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldCheckbox('TRUE'), 'is_print'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP); - } -}; - -const iot_onenet_publish = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("OneNET") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldLabel(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_PUBLISH_ONENET), 'TIP') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.itemCount_ = 2; - this.updateShape_(); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['iot_publish_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('iot_publish_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('iot_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - let i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (let i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } - var keyNames = []; - for (let i = 0; this.getInput('ADD' + i); i++) { - //this.getInput('VALUE' + i).removeField("KEY"+i); - keyNames.push(this.getFieldValue("KEY" + i)) - this.removeInput('ADD' + i); - } - // Rebuild block. - if (this.itemCount_ == 0) { - //this.getField('TIP') - //.setText(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET_EMPTY); - this.setFieldValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_PUBLISH_ONENET_EMPTY, 'TIP'); - } else { - //this.getField('TIP') - //.setText(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET); - this.setFieldValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_PUBLISH_ONENET, 'TIP'); - for (let i = 0; i < this.itemCount_; i++) { - this.appendValueInput('ADD' + i) - .setCheck(null) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField( - new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput( - keyNames.length > i - ? keyNames[i] - : '"key' + (i + 1) + '"'), - 'KEY' + i) - .appendField(":") - } - } - }, getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const iot_publish_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - - -const iot_publish_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const iot_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - - -const iot_mixio_connect = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT); - this.appendValueInput('SERVER') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SERVER) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('USERNAME') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIFI_USERNAME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('PASSWORD') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IOT_PASSWORD) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('PROJECT') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PROJECT) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const IOT_MIXIO_PUBLISH = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MixIO") - this.appendValueInput('TOPIC') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_NEW) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_TOPIC); - this.appendValueInput('MSG') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BODY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP); - } -}; - -const IOT_MIXIO_SUBSCRIBE = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MixIO") - this.appendValueInput('TOPIC') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SUBSCRIBE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_MSG) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_TOPIC); - this.appendValueInput('METHOD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SET_METHOD); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP); - } -}; - -const iot_mixio_disconnect = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MixIO") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_DISCONNECT_ONENET); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP); - } -}; - -const iot_mixio_connect_only = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MixIO") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_CONNECT); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP); - } -}; - -const iot_mixio_check = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MixIO") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_CHECK_ONENET); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP); - } -}; - -const iot_mixio_format_topic = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_FORMAT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MQTT_Topic); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const iot_mixio_format_msg = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_FORMAT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_MSG); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const IOT_FORMATTING = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_MAP_FORMATING); - this.setOutput(true); - // this.setTooltip(); - } -}; - -const IOT_FORMAT_STRING = { - init: function () { - this.setColour(IOT_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_FORMAT + '(Json)'); - this.setOutput(true); - // this.setTooltip(); - } -}; - -const IOT_EMQX_PING = { - init: function () { - this.setColour(IOT_HUE); - // this.appendValueInput('VAR') - // .setCheck("var") - this.appendDummyInput() - .appendField("MixIO") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PING); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP); - } -}; - -const IOT_MIXIO_NTP = { - init: function () { - this.setColour(IOT_HUE); - // this.appendValueInput('VAR') - // .setCheck("var") - this.appendDummyInput() - .appendField("MixIO") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_NTP) - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_SERVER_ADD); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT); - this.appendValueInput('SERVER') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SERVER) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXIO_SHARE_KEY) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - - -const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT); - this.appendValueInput('SERVER') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SERVER) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "Mixly Key") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - - -const iot_mixly_key = { - init: function () { - this.VISITOR_ID = mixly__WEBPACK_IMPORTED_MODULE_1__.Config.BOARD.visitorId.str32.substring(0, 8).toUpperCase(); - this.setColour(IOT_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(this.visitorId), 'VISITOR_ID'); - this.setOutput(true, null); - }, - onchange: function () { - const nowVisitorId = this.getFieldValue('VISITOR_ID'); - if (this.VISITOR_ID !== nowVisitorId) - this.setFieldValue(this.VISITOR_ID, 'VISITOR_ID'); - } -}; - -const iot_client_onboard = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField('MixIO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catEthernet_clinet); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const iot_http_client = { - init: function () { - this.setColour(IOT_HUE); - // this.appendValueInput('VAR') - // .setCheck("var") - this.appendDummyInput() - .appendField("HTTP" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_CURRENT_TIME) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OPEN_DEBUG) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, "False"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const iot_http_data = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("HTTP" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_LEN, "client_len"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_GET_LEN, "server_len"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_MESSAGE, "text"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - - } -}; - -const iot_mqtt_client = { - init: function () { - this.setColour(IOT_HUE); - // this.appendValueInput('VAR') - // .setCheck("var") - this.appendDummyInput() - .appendField("MQTT" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONNECTTO); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_INIT_SUBSCRIBE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MQTT_Topic) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_CURRENT_TIME, ""], - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OPEN_DEBUG) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, "False"] - ]), "key2"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const iot_mqtt_data = { - init: function () { - this.setColour(IOT_HUE); - this.appendDummyInput() - .appendField("MQTT" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Client) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_LEN, "client_len"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_GET_LEN, "server_len"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REQUESTS_MESSAGE, "time_msg()"] - ]), "key"); - this.setOutput(true); - this.setInputsInline(true); - - } -}; - -const iot_wificonnect = iot_wifi_connect; -const iot_onenetconnect = iot_onenet_connect; -const iot_onenetdisconnect = iot_onenet_disconnect; -const iot_checkonenet = iot_onenet_check; -const iot_publish = iot_onenet_publish; - -/***/ }), - -/***/ "../micropython/blocks/network.js": -/*!****************************************!*\ - !*** ../micropython/blocks/network.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ educore_mqtt_connect: () => (/* binding */ educore_mqtt_connect), -/* harmony export */ educore_mqtt_connect_success: () => (/* binding */ educore_mqtt_connect_success), -/* harmony export */ educore_mqtt_subscribe_message: () => (/* binding */ educore_mqtt_subscribe_message), -/* harmony export */ educore_mqtt_topic_publish: () => (/* binding */ educore_mqtt_topic_publish), -/* harmony export */ educore_mqtt_topic_subscribe: () => (/* binding */ educore_mqtt_topic_subscribe), -/* harmony export */ educore_wifi_connect: () => (/* binding */ educore_wifi_connect), -/* harmony export */ network_ap_connect: () => (/* binding */ network_ap_connect), -/* harmony export */ network_connect: () => (/* binding */ network_connect), -/* harmony export */ network_get_connect: () => (/* binding */ network_get_connect), -/* harmony export */ network_get_wifi: () => (/* binding */ network_get_wifi), -/* harmony export */ network_init: () => (/* binding */ network_init), -/* harmony export */ network_is_active: () => (/* binding */ network_is_active), -/* harmony export */ network_open: () => (/* binding */ network_open), -/* harmony export */ network_scan: () => (/* binding */ network_scan), -/* harmony export */ network_server: () => (/* binding */ network_server), -/* harmony export */ network_socket_accept: () => (/* binding */ network_socket_accept), -/* harmony export */ network_socket_bind: () => (/* binding */ network_socket_bind), -/* harmony export */ network_socket_close: () => (/* binding */ network_socket_close), -/* harmony export */ network_socket_connect: () => (/* binding */ network_socket_connect), -/* harmony export */ network_socket_init: () => (/* binding */ network_socket_init), -/* harmony export */ network_socket_listen: () => (/* binding */ network_socket_listen), -/* harmony export */ network_socket_receive: () => (/* binding */ network_socket_receive), -/* harmony export */ network_socket_receive_from: () => (/* binding */ network_socket_receive_from), -/* harmony export */ network_socket_send: () => (/* binding */ network_socket_send), -/* harmony export */ network_socket_send_to: () => (/* binding */ network_socket_send_to), -/* harmony export */ network_stop: () => (/* binding */ network_stop), -/* harmony export */ network_wifi_connect: () => (/* binding */ network_wifi_connect), -/* harmony export */ ntptime_address: () => (/* binding */ ntptime_address), -/* harmony export */ ntptime_time: () => (/* binding */ ntptime_time), -/* harmony export */ requests_attribute: () => (/* binding */ requests_attribute), -/* harmony export */ requests_attribute2: () => (/* binding */ requests_attribute2), -/* harmony export */ requests_get: () => (/* binding */ requests_get), -/* harmony export */ requests_get2: () => (/* binding */ requests_get2), -/* harmony export */ requests_method: () => (/* binding */ requests_method), -/* harmony export */ requests_post: () => (/* binding */ requests_post) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const NETWORK_HUE = 225; - -const network_init = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_INIT) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['STA', "STA"], - ['AP', "AP"] - ]), "mode"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP); - } -}; - - -const network_open = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_OPEN, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_CLOSE, "False"] - ]), "op"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_FLAG) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('op'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP; - var TOOLTIPS = { - 'True': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_OPEN, - 'False': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_CLOSE, - }; - return TOOLTIPS[mode] + mode0 - }); - } -}; - -const network_is_active = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE); - } -}; - -const network_scan = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_SCAN) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(function () { - var mode = 'all'; - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP - var TOOLTIPS = { - '0': "ssid", - '1': 'bssid', - '2': "channel", - '3': "RSSI", - '4': "authmode", - '5': "hidden", - 'all': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE, - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const network_connect = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_CONNECT); - this.appendValueInput('id') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME); - this.appendValueInput('password') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_PASSWORD); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP); - } -}; - -const network_wifi_connect = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_CONNECT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SYMBOL_QUESTION); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP); - } -}; - -const network_get_connect = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GET_WIFI); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_IP, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_MASK, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GATEWAY, "2"], - ["DNS", "3"] - ]), "mode"); - this.setOutput(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('mode'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP - var TOOLTIPS = { - '0': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_IP, - '1': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_MASK, - '2': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GATEWAY, - '3': "DNS", - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const network_stop = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP); - } -}; - -const network_get_wifi = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GET_WIFI); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_ESSID, "essid"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_CHANNEL, "channel"] - ]), "op"); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP); - } -}; - -const network_ap_connect = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET); - this.appendValueInput('essid') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_ESSID); - this.appendValueInput('channel') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NETWORK_WIFI_CHANNEL); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP); - } -}; - -const network_server = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SERVER1); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SERVER2); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP); - } -}; - -const network_socket_init = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_INIT) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['TCP', "TCP"], - ['UDP', "UDP"] - ]), "mode"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('mode'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP - var TOOLTIPS = { - 'TCP': 'TCP', - 'UDP': 'UDP', - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const network_socket_bind = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET) - this.appendValueInput('address') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP); - } -}; - -const network_socket_connect = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET) - this.appendValueInput('address') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP); - } -}; - -const network_socket_listen = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendValueInput('queue') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP); - } -}; - -const network_socket_accept = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP); - } -}; - -const network_socket_receive = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("TCP") - this.appendValueInput('size') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP); - } -}; - -const network_socket_send = { - init: function () { - this.setColour(NETWORK_HUE); - // .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - this.appendValueInput('VAR') - .setCheck("var") - .appendField("TCP") - this.appendValueInput('content') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_SEND) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP); - } -}; - -const network_socket_receive_from = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - .appendField("UDP") - this.appendValueInput('size') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP); - } -}; - -const network_socket_send_to = { - init: function () { - this.setColour(NETWORK_HUE); - // .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - this.appendValueInput('VAR') - .setCheck("var") - .appendField("UDP") - this.appendValueInput('content') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_SEND) - this.appendValueInput('address') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_TO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP); - } -}; - -const network_socket_close = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput('VAR') - .setCheck("var") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP); - } -}; - - -const requests_get = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendValueInput("DOMAIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - this.appendDummyInput("") - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('response'), 'VAR') - - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } - -} - - -const requests_attribute = { - init: function () { - this.appendValueInput('VAL') - - var attr = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'] - , [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES, 'cookies'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']]; - this.setColour(NETWORK_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(attr), 'ATTR') - - - this.setInputsInline(true); - this.setOutput(true, String); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('DIR'); - var TOOLTIPS = { - 'clear': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR, - 'reset': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_RESET, - 'home': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_HOME - }; - return TOOLTIPS[mode]; - }); - } -}; - - - -const requests_method = { - init: function () { - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - var method = [ - ['post', 'post'], ['put', 'put'], - ['delete', 'delete'], ['head', 'head'], - ['option', 'option'] - ]; - this.setColour(NETWORK_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_CONDUCT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(method), 'DIR') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS) - - - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('DIR'); - var TOOLTIPS = { - 'forward': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD, - 'backward': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD - }; - return TOOLTIPS[mode]; - }); - } -}; - -const ntptime_time = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_NTP + '(NTP)') - this.appendValueInput("data") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_SERVER_ADD) - this.setOutput(true, 'Tuple'); - this.setInputsInline(true); - } -}; - -const ntptime_address = { - init: function () { - this.setColour(NETWORK_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['ntp.aliyun.com', "ntp.aliyun.com"], - ['ntp1.aliyun.com', "ntp1.aliyun.com"], - ['ntp2.aliyun.com', "ntp2.aliyun.com"], - ['ntp3.aliyun.com', "ntp3.aliyun.com"], - ['ntp4.aliyun.com', "ntp4.aliyun.com"], - ['ntp5.aliyun.com', "ntp5.aliyun.com"], - ['ntp6.aliyun.com', "ntp6.aliyun.com"], - ['ntp7.aliyun.com', "ntp7.aliyun.com"], - ['time1.cloud.tencent.com', "time1.cloud.tencent.com"], - ['time2.cloud.tencent.com', "time2.cloud.tencent.com"], - ['time3.cloud.tencent.com', "time3.cloud.tencent.com"], - ['time4.cloud.tencent.com', "time4.cloud.tencent.com"], - ['time5.cloud.tencent.com', "time5.cloud.tencent.com"] - ]), 'op') - this.setOutput(true); - } -}; - -const COMMUNICATE_HUE = '#3288dd'; - -const requests_get2 = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput("URL") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_CONDUCT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["get", "get"], ["head", "head"], ["delete", "delete"]]), 'TYPE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_REQUESTS_GET_RESULT) - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(""); - }, -}; - -const requests_post = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput("URL") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DISPLAY_IMAGE_LET2) - .setCheck(String); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_CONDUCT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["post", "post"], ["put", "put"], ["patch", "patch"]]), 'TYPE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS) - this.appendValueInput("data") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OLED_STRING) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_REQUESTS_GET_RESULT) - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(""); - }, -}; - -const requests_attribute2 = { - init: function () { - this.appendValueInput('VAL') - - var attr = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_JSON, 'json()'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TEXT_ENCODE, 'encoding'] - ]; - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(attr), 'ATTR') - this.setInputsInline(true); - this.setOutput(true, String); - } -}; - -//educore_networke -const educore_wifi_connect = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI); - this.appendValueInput('WIFINAME') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME); - this.appendValueInput('PASSWORD') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_PASSWORD); - this.appendValueInput('TIMEOUT') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_TIMEOUT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIS) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP); - } -}; - - - -const educore_mqtt_connect = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP); - this.appendValueInput('SERVER') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SERVER) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('PORT') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PORT) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('CLIENT_ID') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_CLIENT_ID) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('USERNAME') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIFI_USERNAME) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.appendValueInput('PASSWORD') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IOT_PASSWORD) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_mqtt_subscribe_message = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendValueInput('TOPIC') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SUBSCRIBE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_MSG) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_TOPIC); - this.appendValueInput('MESSAGE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_mqtt_topic_subscribe = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField("mqtt") - this.appendValueInput('TOPIC') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SUBSCRIBE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_MSG) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_TOPIC); - this.appendValueInput('METHOD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_SET_METHOD); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_mqtt_topic_publish = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField("mqtt") - this.appendValueInput('TOPIC') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_NEW) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH_TOPIC); - this.appendValueInput('MSG') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BODY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const educore_mqtt_connect_success = { - init: function () { - this.setColour(COMMUNICATE_HUE); - this.appendDummyInput() - .appendField("mqtt"+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_IS_CONNECT) - this.setInputsInline(true); - this.setOutput(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/nova_g1.js": -/*!****************************************!*\ - !*** ../micropython/blocks/nova_g1.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ get_potential_num: () => (/* binding */ get_potential_num), -/* harmony export */ nova_g1_motor: () => (/* binding */ nova_g1_motor), -/* harmony export */ nova_g1_spk_en: () => (/* binding */ nova_g1_spk_en), -/* harmony export */ nova_g1_usb: () => (/* binding */ nova_g1_usb) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const NOVAG1_HUE = 100; - -const get_potential_num = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_nova") { var name = 'Nova G1' } - this.setColour(NOVAG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM); - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const nova_g1_motor = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_nova") { var name = 'Nova G1' } - this.setColour(NOVAG1_HUE); - this.appendValueInput('PIN') - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const nova_g1_usb = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_nova") { var name = 'Nova G1' } - this.setColour(NOVAG1_HUE); - this.appendValueInput('PIN') - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_USB); - this.appendValueInput('percent') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_POWER_SUPPLY); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const nova_g1_spk_en = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_nova") { var name = 'Nova G1' } - this.setColour(NOVAG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPK_STATE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ON, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OFF, "False"] - ]), "state"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -/***/ }), - -/***/ "../micropython/blocks/pe_g1.js": -/*!**************************************!*\ - !*** ../micropython/blocks/pe_g1.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ pe_g1_battery_left: () => (/* binding */ pe_g1_battery_left), -/* harmony export */ pe_g1_dc_motor: () => (/* binding */ pe_g1_dc_motor), -/* harmony export */ pe_g1_dc_motor_speed: () => (/* binding */ pe_g1_dc_motor_speed), -/* harmony export */ pe_g1_servo_get_angle: () => (/* binding */ pe_g1_servo_get_angle), -/* harmony export */ pe_g1_servo_get_speed: () => (/* binding */ pe_g1_servo_get_speed), -/* harmony export */ pe_g1_servo_set_angle: () => (/* binding */ pe_g1_servo_set_angle), -/* harmony export */ pe_g1_servo_set_speed: () => (/* binding */ pe_g1_servo_set_speed), -/* harmony export */ pe_g1_use_i2c_init: () => (/* binding */ pe_g1_use_i2c_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const PEG1_HUE = 100; - -const pe_g1_use_i2c_init = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(name); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const pe_g1_battery_left = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const pe_g1_dc_motor = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CLOCKWISE, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANTI_CLOCKWISE, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const pe_g1_dc_motor_speed = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_GET_SPEED); - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const pe_g1_servo_set_angle = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField('180°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - - this.appendValueInput("NUM", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_MOVE); - } -}; - -const pe_g1_servo_set_speed = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField('360°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - - this.appendValueInput("NUM", Number) - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.appendDummyInput() - .appendField('%'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS); - } -}; - -const pe_g1_servo_get_angle = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField('180°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const pe_g1_servo_get_speed = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_ce") { var name = 'CE G6' } - else if (version == "mixgo_pe") { var name = 'PE G1' } - this.setColour(PEG1_HUE); - this.appendValueInput('SUB') - .appendField(name) - .setCheck("var"); - this.appendValueInput('PIN') - .appendField('360°' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING) - - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/pins.js": -/*!*************************************!*\ - !*** ../micropython/blocks/pins.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ analog_input: () => (/* binding */ analog_input), -/* harmony export */ analog_output: () => (/* binding */ analog_output), -/* harmony export */ espnow_channel: () => (/* binding */ espnow_channel), -/* harmony export */ i2c_A_pin: () => (/* binding */ i2c_A_pin), -/* harmony export */ i2c_B_pin: () => (/* binding */ i2c_B_pin), -/* harmony export */ pins_analog: () => (/* binding */ pins_analog), -/* harmony export */ pins_analog_pin: () => (/* binding */ pins_analog_pin), -/* harmony export */ pins_axis: () => (/* binding */ pins_axis), -/* harmony export */ pins_brightness: () => (/* binding */ pins_brightness), -/* harmony export */ pins_builtinimg: () => (/* binding */ pins_builtinimg), -/* harmony export */ pins_button: () => (/* binding */ pins_button), -/* harmony export */ pins_dac: () => (/* binding */ pins_dac), -/* harmony export */ pins_dac_pin: () => (/* binding */ pins_dac_pin), -/* harmony export */ pins_digital: () => (/* binding */ pins_digital), -/* harmony export */ pins_digital_dot: () => (/* binding */ pins_digital_dot), -/* harmony export */ pins_digital_pin: () => (/* binding */ pins_digital_pin), -/* harmony export */ pins_exlcdh: () => (/* binding */ pins_exlcdh), -/* harmony export */ pins_exlcdv: () => (/* binding */ pins_exlcdv), -/* harmony export */ pins_imglist: () => (/* binding */ pins_imglist), -/* harmony export */ pins_input_pin: () => (/* binding */ pins_input_pin), -/* harmony export */ pins_one_more: () => (/* binding */ pins_one_more), -/* harmony export */ pins_output_pin: () => (/* binding */ pins_output_pin), -/* harmony export */ pins_playlist: () => (/* binding */ pins_playlist), -/* harmony export */ pins_pwm: () => (/* binding */ pins_pwm), -/* harmony export */ pins_pwm_pin: () => (/* binding */ pins_pwm_pin), -/* harmony export */ pins_radio_datarate: () => (/* binding */ pins_radio_datarate), -/* harmony export */ pins_radio_power: () => (/* binding */ pins_radio_power), -/* harmony export */ pins_serial: () => (/* binding */ pins_serial), -/* harmony export */ pins_tone_notes: () => (/* binding */ pins_tone_notes), -/* harmony export */ pins_touch: () => (/* binding */ pins_touch), -/* harmony export */ pins_touch_pin: () => (/* binding */ pins_touch_pin), -/* harmony export */ pwm_input: () => (/* binding */ pwm_input), -/* harmony export */ pwm_output: () => (/* binding */ pwm_output), -/* harmony export */ spi_A_pin: () => (/* binding */ spi_A_pin), -/* harmony export */ spi_B_pin: () => (/* binding */ spi_B_pin), -/* harmony export */ spi_C_pin: () => (/* binding */ spi_C_pin), -/* harmony export */ spi_D_pin: () => (/* binding */ spi_D_pin) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const PINS_HUE = 230; - -const pins_digital = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital), 'PIN'); - this.setOutput(true); - } -}; - -const pins_digital_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_input_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.input_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_output_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pwm_input = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_input), 'PIN'); - this.setOutput(true); - } -}; - -const analog_input = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_input), 'PIN'); - this.setOutput(true); - } -}; - -const pwm_output = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_output), 'PIN'); - this.setOutput(true); - } -}; - -const analog_output = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_output), 'PIN'); - this.setOutput(true); - } -}; - -const espnow_channel = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.espnow_channel), 'PIN'); - this.setOutput(true, Number); - } -}; - - -const i2c_A_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.i2c_A_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const i2c_B_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.i2c_B_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - - -const spi_A_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_A_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_B_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_B_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_C_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_C_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_D_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_D_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_analog = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog), 'PIN'); - this.setOutput(true); - } -}; - -const pins_analog_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_dac = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.dac), 'PIN'); - this.setOutput(true); - } -}; - -const pins_dac_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.dac_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_button = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.button), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_pwm = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm), 'PIN'); - this.setOutput(true); - } -}; - -const pins_pwm_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_touch_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.touch_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_touch = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.touch), 'PIN'); - this.setOutput(true); - } -}; - -const pins_serial = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.serial_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_builtinimg = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.builtinimg), 'PIN'); - this.setOutput(true, "esp32_image"); - } -}; - -const pins_imglist = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.imglist), 'PIN'); - this.setOutput(true); - } -}; - -const pins_playlist = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.playlist), 'PIN'); - this.setOutput(true); - } -}; - -const pins_exlcdh = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.exlcdh), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_exlcdv = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.exlcdv), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_axis = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.axis), 'PIN'); - this.setOutput(true, Number); - } -}; -const pins_brightness = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.brightness), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_tone_notes = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.tone_notes), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_radio_power = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.radio_power), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_radio_datarate = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.radio_datarate), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_one_more = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.one_more), 'PIN'); - this.setOutput(true); - } -}; - -const pins_digital_dot = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital_dot), 'PIN'); - this.setOutput(true, Number); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/sensor.js": -/*!***************************************!*\ - !*** ../micropython/blocks/sensor.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ RTC_get_time: () => (/* binding */ RTC_get_time), -/* harmony export */ RTC_set_date: () => (/* binding */ RTC_set_date), -/* harmony export */ RTC_set_datetime: () => (/* binding */ RTC_set_datetime), -/* harmony export */ RTC_set_time: () => (/* binding */ RTC_set_time), -/* harmony export */ dht11: () => (/* binding */ dht11), -/* harmony export */ number1: () => (/* binding */ number1), -/* harmony export */ sensor_adxl345_get_acceleration: () => (/* binding */ sensor_adxl345_get_acceleration), -/* harmony export */ sensor_bmp: () => (/* binding */ sensor_bmp), -/* harmony export */ sensor_button_get_presses: () => (/* binding */ sensor_button_get_presses), -/* harmony export */ sensor_button_is_pressed: () => (/* binding */ sensor_button_is_pressed), -/* harmony export */ sensor_button_was_pressed: () => (/* binding */ sensor_button_was_pressed), -/* harmony export */ sensor_compass_reset: () => (/* binding */ sensor_compass_reset), -/* harmony export */ sensor_dht11: () => (/* binding */ sensor_dht11), -/* harmony export */ sensor_distance_hrsc04: () => (/* binding */ sensor_distance_hrsc04), -/* harmony export */ sensor_ds18x20: () => (/* binding */ sensor_ds18x20), -/* harmony export */ sensor_field_strength: () => (/* binding */ sensor_field_strength), -/* harmony export */ sensor_get_acceleration: () => (/* binding */ sensor_get_acceleration), -/* harmony export */ sensor_light: () => (/* binding */ sensor_light), -/* harmony export */ sensor_light_level: () => (/* binding */ sensor_light_level), -/* harmony export */ sensor_lm35: () => (/* binding */ sensor_lm35), -/* harmony export */ sensor_mixgo_button_attachInterrupt: () => (/* binding */ sensor_mixgo_button_attachInterrupt), -/* harmony export */ sensor_mixgo_button_get_presses: () => (/* binding */ sensor_mixgo_button_get_presses), -/* harmony export */ sensor_mixgo_button_is_pressed: () => (/* binding */ sensor_mixgo_button_is_pressed), -/* harmony export */ sensor_mixgo_button_was_pressed: () => (/* binding */ sensor_mixgo_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_button_attachInterrupt: () => (/* binding */ sensor_mixgo_extern_button_attachInterrupt), -/* harmony export */ sensor_mixgo_extern_button_get_presses: () => (/* binding */ sensor_mixgo_extern_button_get_presses), -/* harmony export */ sensor_mixgo_extern_button_is_pressed: () => (/* binding */ sensor_mixgo_extern_button_is_pressed), -/* harmony export */ sensor_mixgo_extern_button_was_pressed: () => (/* binding */ sensor_mixgo_extern_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_light: () => (/* binding */ sensor_mixgo_extern_light), -/* harmony export */ sensor_mixgo_extern_pin_near: () => (/* binding */ sensor_mixgo_extern_pin_near), -/* harmony export */ sensor_mixgo_extern_sound: () => (/* binding */ sensor_mixgo_extern_sound), -/* harmony export */ sensor_mixgo_light: () => (/* binding */ sensor_mixgo_light), -/* harmony export */ sensor_mixgo_pin_near: () => (/* binding */ sensor_mixgo_pin_near), -/* harmony export */ sensor_mixgo_pin_pressed: () => (/* binding */ sensor_mixgo_pin_pressed), -/* harmony export */ sensor_mpu9250_attachGestureInterrupt: () => (/* binding */ sensor_mpu9250_attachGestureInterrupt), -/* harmony export */ sensor_mpu9250_calibrate_compass: () => (/* binding */ sensor_mpu9250_calibrate_compass), -/* harmony export */ sensor_mpu9250_field_strength: () => (/* binding */ sensor_mpu9250_field_strength), -/* harmony export */ sensor_mpu9250_gesture: () => (/* binding */ sensor_mpu9250_gesture), -/* harmony export */ sensor_mpu9250_get_acceleration: () => (/* binding */ sensor_mpu9250_get_acceleration), -/* harmony export */ sensor_mpu9250_get_gyro: () => (/* binding */ sensor_mpu9250_get_gyro), -/* harmony export */ sensor_mpu9250_get_magnetic: () => (/* binding */ sensor_mpu9250_get_magnetic), -/* harmony export */ sensor_mpu9250_temperature: () => (/* binding */ sensor_mpu9250_temperature), -/* harmony export */ sensor_pin_near: () => (/* binding */ sensor_pin_near), -/* harmony export */ sensor_pin_pressed: () => (/* binding */ sensor_pin_pressed), -/* harmony export */ sensor_rtc_init: () => (/* binding */ sensor_rtc_init), -/* harmony export */ sensor_sht: () => (/* binding */ sensor_sht), -/* harmony export */ sensor_temperature: () => (/* binding */ sensor_temperature), -/* harmony export */ sensor_use_i2c_init: () => (/* binding */ sensor_use_i2c_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _sensor_onboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sensor_onboard */ "../micropython/blocks/sensor_onboard.js"); - - - -const SENSOR_HUE = 40; //'#9e77c9'//40; - -const sensor_mixgo_button_is_pressed = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_IS_PRESSED); - } -}; - -const sensor_mixgo_button_was_pressed = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const sensor_mixgo_button_get_presses = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - } -}; - -const sensor_mixgo_button_attachInterrupt = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("btn") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INTERRUPT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING or machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT); - } -}; - - -const sensor_mixgo_extern_button_is_pressed = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_PRESSED); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ELECLEVEL); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_IS_PRESSED); - } -}; - -const sensor_mixgo_extern_button_was_pressed = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ELECLEVEL); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const sensor_mixgo_extern_button_get_presses = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - } -}; - -const sensor_mixgo_extern_button_attachInterrupt = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING or machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT); - } -}; - -const sensor_mpu9250_attachGestureInterrupt = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, "shake"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "right"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, "face up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, "face down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_freefall, "freefall"], ["3g", "3g"], ["6g", "6g"], ["8g", "8g"]]), "gesture"); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('gesture'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_STATE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PERFORMANCE - var TOOLTIPS = { - 'shake': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, - 'face up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, - 'face down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, - 'freefall': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_freefall, - '3g': '3g', - '6g': '6g', - '8g': '8g' - }; - return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3; - }); - } -}; - -const sensor_mpu9250_gesture = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, "shake"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "right"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, "face up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, "face down"]]), "gesture"); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('gesture'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_STATE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PERFORMANCE - var TOOLTIPS = { - 'shake': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, - 'face up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, - 'face down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, - // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall, - // '3g': '3g', - // '6g': '6g', - // '8g': '8g' - }; - return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3; - }); - } -}; - -const sensor_mpu9250_get_acceleration = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - - -const sensor_adxl345_get_acceleration = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - - -const sensor_light_level = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP); - } -}; - -const sensor_mpu9250_calibrate_compass = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS); - } -}; -// export const sensor_mpu9250_is_compass_calibrated = { -// init: function(){ -// this.setColour(SENSOR_HUE); -// this.appendValueInput('SUB') -// .setCheck("var"); -// this.appendDummyInput() -// .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_IS_COMPASS_CALIBRATED) -// this.setOutput(true, Number); -// this.setInputsInline(true); -// this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_IS_COMPASS_CALIBRATED1); -// } -// }; -// export const sensor_mpu9250_compass_heading = { -// init: function(){ -// this.setColour(SENSOR_HUE); -// this.appendValueInput('SUB') -// .setCheck("var"); -// this.appendDummyInput() -// .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE) -// this.setOutput(true, Number); -// this.setInputsInline(true); -// } -// }; - -const sensor_mpu9250_temperature = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.setOutput(true, Number); - this.setInputsInline(true); - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - } -}; - -const sensor_mpu9250_field_strength = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass'); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('compass'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS; - var TOOLTIPS = { - 'strength': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, - 'heading': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE - }; - return mode0 + TOOLTIPS[mode]; - }); - } -}; - -const sensor_distance_hrsc04 = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO); - } -}; - -//传感器-实时时钟块_获取时间 -const RTC_get_time = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("RTC") - .setCheck("var"); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCGETTIME); - // this.appendDummyInput("").setAlign(Blockly.inputs.Align.RIGHT).appendField('myRTC'); - // this.appendDummyInput("").setAlign(Blockly.inputs.Align.RIGHT).appendField(new Blockly.FieldDropdown(RTC_TIME_TYPE), "TIME_TYPE"); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP); - // var thisBlock = this; - // this.setTooltip(function() { - // var mode = thisBlock.getFieldValue('TIME_TYPE'); - // var mode0 = Blockly.Msg.MIXLY_RTCGETTIME; - // var TOOLTIPS = { - // 'Year':Blockly.Msg.MIXLY_YEAR, - // 'Month':Blockly.Msg.MIXLY_MONTH, - // 'Day':Blockly.Msg.MIXLY_DAY, - // 'Hour':Blockly.Msg.MIXLY_HOUR, - // 'Minute':Blockly.Msg.MIXLY_MINUTE, - // 'Second':Blockly.Msg.MIXLY_SECOND, - // 'Week':Blockly.Msg.MIXLY_WEEK, - // 'Mix1':Blockly.Msg.MIXLY_MIX1, - // 'Mix2':Blockly.Msg.MIXLY_MIX2 - // }; - // return mode0 +TOOLTIPS[mode]; - // }); - } -}; - -const RTC_set_time = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETTIME) - .appendField('myRTC'); - this.appendValueInput("hour") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR); - this.appendValueInput("minute") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE); - this.appendValueInput("second") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETTIME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIX2); - } -}; - -const RTC_set_date = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETDATE) - .appendField('myRTC'); - this.appendValueInput("year") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR); - this.appendValueInput("month") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH); - this.appendValueInput("day") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETDATE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIX1); - } -}; - -const sensor_compass_reset = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS); - } -}; - -const HCSR04 = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO); - this.appendValueInput("PIN1", Number) - .appendField('Trig #') - .setCheck(Number); - this.appendValueInput("PIN2", Number) - .appendField('Echo #') - .setCheck(Number); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO); - } - -}; - -const sensor_dht11 = { - init: function () { - var WHAT = [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, 'temperature'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, 'relative_humidity'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DHT11_T_H, 'tempandhum']]; - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['DHT11', 'dht11'] - , ['DHT22', 'dht22']//, ['DHT21', '21'], ['DHT33', '33'], ['DHT44', '44'] - ]), 'TYPE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(WHAT), "WHAT"); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('WHAT'); - var TOOLTIPS = { - 'temperature': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM, - 'relative_humidity': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM, - 'tempandhum': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM - }; - return TOOLTIPS[op]; - }); - } -}; - - -const sensor_mixgo_extern_light = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP); - } -}; - -const sensor_mixgo_extern_sound = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_SOUND); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP); - } -}; - -const number1 = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["1", "touch1"], ["2", "touch2"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const sensor_mixgo_pin_pressed = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("button") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_TOUCHED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_sensor_pin_pressed); - } -}; - -const sensor_mixgo_extern_pin_near = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_NEAR); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - } -}; - - -const sensor_mixgo_pin_near = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "right"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - var TOOLTIPS = { - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const RTC_set_datetime = { - init: function () { - this.setColour(SENSOR_HUE); - // this.appendDummyInput() - this.appendValueInput('SUB') - .appendField("RTC") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTC_TIME) - .setCheck("var"); - this.appendValueInput('year') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR); - this.appendValueInput('month') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH); - this.appendValueInput('day') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY); - this.appendValueInput('weekday') - .setCheck(Number) - .appendField(" " + - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEEK2); - this.appendValueInput('hour') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR); - this.appendValueInput('minute') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE); - this.appendValueInput('second') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND); - this.appendValueInput('millisecond') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLISECOND); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP); - } -}; - -const sensor_rtc_init = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .appendField("RTC") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP); - } -}; - -const sensor_use_i2c_init = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["MPU9250", "MPU9250"], - ["BMP280", "BMP280"], - ["SHT20", "SHT20"], - ["ADXL345", "ADXL345"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setFieldValue("MPU9250", "key"); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP; - var TOOLTIPS = { - "MPU9250": "MPU9250", - "SHT20": "SHT20", - "BMP280": "BMP280", - "ADXL345": "ADXL345" - }; - return mode0 + TOOLTIPS[mode] - }); - } -}; - -const sensor_bmp = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("BMP280") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "get_BMP_temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "get_BMP_pressure()"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "get_BMP_temperature()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP, - "get_BMP_pressure()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP, - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_sht = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("SHT20") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "get_SHT_temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "get_SHT_relative_humidity()"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "get_SHT_temperature()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "get_SHT_relative_humidity()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP, - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_ds18x20 = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput("PIN", Number) - .appendField("DS18x20 " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP); - } -}; - -const sensor_mpu9250_get_magnetic = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_mpu9250_get_gyro = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_lm35 = { - init: function () { - this.setColour(SENSOR_HUE); - this.appendDummyInput("") - .appendField("LM35" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LM35); - } -}; - -const sensor_button_is_pressed = sensor_mixgo_button_is_pressed; -const sensor_button_was_pressed = sensor_mixgo_button_was_pressed; -const sensor_button_get_presses = sensor_mixgo_button_get_presses; -const sensor_pin_pressed = sensor_mixgo_pin_pressed; -const sensor_pin_near = sensor_mixgo_pin_near; -const sensor_mixgo_light = _sensor_onboard__WEBPACK_IMPORTED_MODULE_1__.sensor_LTR308; -const sensor_light = sensor_mixgo_light; -const sensor_get_acceleration = sensor_mpu9250_get_acceleration; -const dht11 = sensor_dht11; -const sensor_field_strength = sensor_mpu9250_field_strength; -const sensor_temperature = sensor_mpu9250_temperature - -/***/ }), - -/***/ "../micropython/blocks/sensor_extern.js": -/*!**********************************************!*\ - !*** ../micropython/blocks/sensor_extern.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CI130X_BROADCAST: () => (/* binding */ CI130X_BROADCAST), -/* harmony export */ CI130X_GET_THE_RECOGNIZED_CMD: () => (/* binding */ CI130X_GET_THE_RECOGNIZED_CMD), -/* harmony export */ CI130X_GET_WHETHER_IDENTIFY: () => (/* binding */ CI130X_GET_WHETHER_IDENTIFY), -/* harmony export */ CI130X_IDENTIFY_AND_SAVE: () => (/* binding */ CI130X_IDENTIFY_AND_SAVE), -/* harmony export */ CI130X_SET_SYSTEM_CMD: () => (/* binding */ CI130X_SET_SYSTEM_CMD), -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ PS2_Button: () => (/* binding */ PS2_Button), -/* harmony export */ PS2_Buttons: () => (/* binding */ PS2_Buttons), -/* harmony export */ PS2_Buttons_new: () => (/* binding */ PS2_Buttons_new), -/* harmony export */ PS2_State: () => (/* binding */ PS2_State), -/* harmony export */ PS2_init: () => (/* binding */ PS2_init), -/* harmony export */ PS2_init_new: () => (/* binding */ PS2_init_new), -/* harmony export */ PS2_stk: () => (/* binding */ PS2_stk), -/* harmony export */ PS2_stk_new: () => (/* binding */ PS2_stk_new), -/* harmony export */ PS2_vibration: () => (/* binding */ PS2_vibration), -/* harmony export */ PS2_vibration_new: () => (/* binding */ PS2_vibration_new), -/* harmony export */ camera_sensor_init: () => (/* binding */ camera_sensor_init), -/* harmony export */ camera_sensor_result: () => (/* binding */ camera_sensor_result), -/* harmony export */ educore_body_sensor: () => (/* binding */ educore_body_sensor), -/* harmony export */ educore_button_sensor_extern: () => (/* binding */ educore_button_sensor_extern), -/* harmony export */ educore_camera_sensor: () => (/* binding */ educore_camera_sensor), -/* harmony export */ educore_infrared_sensor: () => (/* binding */ educore_infrared_sensor), -/* harmony export */ educore_soilhum_sensor: () => (/* binding */ educore_soilhum_sensor), -/* harmony export */ educore_temp_sensor: () => (/* binding */ educore_temp_sensor), -/* harmony export */ educore_temphum_sensor: () => (/* binding */ educore_temphum_sensor), -/* harmony export */ educore_ultrasonic_sensor: () => (/* binding */ educore_ultrasonic_sensor), -/* harmony export */ esp32_s2_weather_init: () => (/* binding */ esp32_s2_weather_init), -/* harmony export */ esp32_s2_weather_rain: () => (/* binding */ esp32_s2_weather_rain), -/* harmony export */ esp32_s2_weather_wd: () => (/* binding */ esp32_s2_weather_wd), -/* harmony export */ esp32_s2_weather_ws: () => (/* binding */ esp32_s2_weather_ws), -/* harmony export */ extern_rfid_read: () => (/* binding */ extern_rfid_read), -/* harmony export */ extern_rfid_readcontent: () => (/* binding */ extern_rfid_readcontent), -/* harmony export */ extern_rfid_readid: () => (/* binding */ extern_rfid_readid), -/* harmony export */ extern_rfid_status: () => (/* binding */ extern_rfid_status), -/* harmony export */ extern_rfid_write: () => (/* binding */ extern_rfid_write), -/* harmony export */ extern_rfid_write_return: () => (/* binding */ extern_rfid_write_return), -/* harmony export */ gnss_get_data: () => (/* binding */ gnss_get_data), -/* harmony export */ gnss_have_data: () => (/* binding */ gnss_have_data), -/* harmony export */ interaction_whether_to_interaction: () => (/* binding */ interaction_whether_to_interaction), -/* harmony export */ interaction_whether_to_interaction_SANT: () => (/* binding */ interaction_whether_to_interaction_SANT), -/* harmony export */ mixbot_sensor_extern_get_addr: () => (/* binding */ mixbot_sensor_extern_get_addr), -/* harmony export */ mixbot_sensor_extern_set_addr: () => (/* binding */ mixbot_sensor_extern_set_addr), -/* harmony export */ pm25_get_data: () => (/* binding */ pm25_get_data), -/* harmony export */ radar_set_DETECTION_THRESHOLD: () => (/* binding */ radar_set_DETECTION_THRESHOLD), -/* harmony export */ radar_set_DETECTION_THRESHOLD_SANT: () => (/* binding */ radar_set_DETECTION_THRESHOLD_SANT), -/* harmony export */ robot_button_extern_get_value: () => (/* binding */ robot_button_extern_get_value), -/* harmony export */ robot_color_extern_get_value: () => (/* binding */ robot_color_extern_get_value), -/* harmony export */ robot_infrared_extern_get_value: () => (/* binding */ robot_infrared_extern_get_value), -/* harmony export */ robot_infrared_extern_grey_get_value: () => (/* binding */ robot_infrared_extern_grey_get_value), -/* harmony export */ robot_potentiometer_extern_get_value: () => (/* binding */ robot_potentiometer_extern_get_value), -/* harmony export */ robot_sonar_extern_get_value: () => (/* binding */ robot_sonar_extern_get_value), -/* harmony export */ robot_sonar_extern_led: () => (/* binding */ robot_sonar_extern_led), -/* harmony export */ robot_touch_extern_get_value: () => (/* binding */ robot_touch_extern_get_value), -/* harmony export */ sensor_APDS9960_extern: () => (/* binding */ sensor_APDS9960_extern), -/* harmony export */ sensor_DS18X20: () => (/* binding */ sensor_DS18X20), -/* harmony export */ sensor_LTR308_extern: () => (/* binding */ sensor_LTR308_extern), -/* harmony export */ sensor_LTR390UV_extern: () => (/* binding */ sensor_LTR390UV_extern), -/* harmony export */ sensor_MAX30102_extern: () => (/* binding */ sensor_MAX30102_extern), -/* harmony export */ sensor_QMC5883L_extern: () => (/* binding */ sensor_QMC5883L_extern), -/* harmony export */ sensor_VL530LX_extern: () => (/* binding */ sensor_VL530LX_extern), -/* harmony export */ sensor_adxl345_get_acceleration: () => (/* binding */ sensor_adxl345_get_acceleration), -/* harmony export */ sensor_aht11_extern: () => (/* binding */ sensor_aht11_extern), -/* harmony export */ sensor_bmp: () => (/* binding */ sensor_bmp), -/* harmony export */ sensor_compass_reset: () => (/* binding */ sensor_compass_reset), -/* harmony export */ sensor_dht11: () => (/* binding */ sensor_dht11), -/* harmony export */ sensor_hp203_extern: () => (/* binding */ sensor_hp203_extern), -/* harmony export */ sensor_light_level: () => (/* binding */ sensor_light_level), -/* harmony export */ sensor_lm35: () => (/* binding */ sensor_lm35), -/* harmony export */ sensor_ltr381_extern: () => (/* binding */ sensor_ltr381_extern), -/* harmony export */ sensor_mixgo_extern_button_attachInterrupt: () => (/* binding */ sensor_mixgo_extern_button_attachInterrupt), -/* harmony export */ sensor_mixgo_extern_button_get_presses: () => (/* binding */ sensor_mixgo_extern_button_get_presses), -/* harmony export */ sensor_mixgo_extern_button_is_pressed: () => (/* binding */ sensor_mixgo_extern_button_is_pressed), -/* harmony export */ sensor_mixgo_extern_button_was_pressed: () => (/* binding */ sensor_mixgo_extern_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_light: () => (/* binding */ sensor_mixgo_extern_light), -/* harmony export */ sensor_mixgo_extern_pin_near: () => (/* binding */ sensor_mixgo_extern_pin_near), -/* harmony export */ sensor_mixgo_extern_sound: () => (/* binding */ sensor_mixgo_extern_sound), -/* harmony export */ sensor_mixgoce_hot_wheel_degrees: () => (/* binding */ sensor_mixgoce_hot_wheel_degrees), -/* harmony export */ sensor_mixgoce_hot_wheel_is_touched: () => (/* binding */ sensor_mixgoce_hot_wheel_is_touched), -/* harmony export */ sensor_mpu9250_attachGestureInterrupt: () => (/* binding */ sensor_mpu9250_attachGestureInterrupt), -/* harmony export */ sensor_mpu9250_calibrate_compass: () => (/* binding */ sensor_mpu9250_calibrate_compass), -/* harmony export */ sensor_mpu9250_field_strength: () => (/* binding */ sensor_mpu9250_field_strength), -/* harmony export */ sensor_mpu9250_gesture: () => (/* binding */ sensor_mpu9250_gesture), -/* harmony export */ sensor_mpu9250_get_acceleration: () => (/* binding */ sensor_mpu9250_get_acceleration), -/* harmony export */ sensor_mpu9250_get_gyro: () => (/* binding */ sensor_mpu9250_get_gyro), -/* harmony export */ sensor_mpu9250_get_magnetic: () => (/* binding */ sensor_mpu9250_get_magnetic), -/* harmony export */ sensor_mpu9250_temperature: () => (/* binding */ sensor_mpu9250_temperature), -/* harmony export */ sensor_read_humiture: () => (/* binding */ sensor_read_humiture), -/* harmony export */ sensor_sht: () => (/* binding */ sensor_sht), -/* harmony export */ sensor_shtc3_extern: () => (/* binding */ sensor_shtc3_extern), -/* harmony export */ sensor_spl06_001_extern: () => (/* binding */ sensor_spl06_001_extern), -/* harmony export */ sensor_ucs12071_extern: () => (/* binding */ sensor_ucs12071_extern), -/* harmony export */ sensor_use_i2c_init: () => (/* binding */ sensor_use_i2c_init), -/* harmony export */ sensor_use_spi_init: () => (/* binding */ sensor_use_spi_init), -/* harmony export */ sensor_use_uart_init: () => (/* binding */ sensor_use_uart_init), -/* harmony export */ sensor_weather_solo_init: () => (/* binding */ sensor_weather_solo_init), -/* harmony export */ sensor_weather_solo_rain: () => (/* binding */ sensor_weather_solo_rain), -/* harmony export */ sensor_weather_solo_wd: () => (/* binding */ sensor_weather_solo_wd), -/* harmony export */ sensor_weather_solo_ws: () => (/* binding */ sensor_weather_solo_ws), -/* harmony export */ sensor_weigh_init: () => (/* binding */ sensor_weigh_init), -/* harmony export */ ultrasonic_sensor_read_distance: () => (/* binding */ ultrasonic_sensor_read_distance), -/* harmony export */ weather_data: () => (/* binding */ weather_data), -/* harmony export */ weather_have_data: () => (/* binding */ weather_have_data), -/* harmony export */ weather_set_label: () => (/* binding */ weather_set_label), -/* harmony export */ weather_set_label_container: () => (/* binding */ weather_set_label_container), -/* harmony export */ weather_set_label_item: () => (/* binding */ weather_set_label_item), -/* harmony export */ weather_uart_mixio: () => (/* binding */ weather_uart_mixio), -/* harmony export */ weigh_sensor_get_weight: () => (/* binding */ weigh_sensor_get_weight) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const SENSOR_EXTERN_HUE = '#A58C5B'; //'#9e77c9'//40; - - -const sensor_mixgo_extern_button_is_pressed = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_PRESSED); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ELECLEVEL); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_IS_PRESSED); - } -}; - -const sensor_mixgo_extern_button_was_pressed = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ELECLEVEL); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const sensor_mixgo_extern_button_get_presses = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - } -}; - -const sensor_mixgo_extern_button_attachInterrupt = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT); - } -}; - - -const sensor_mpu9250_attachGestureInterrupt = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, "shake"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "right"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, "face up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, "face down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_freefall, "freefall"], ["3g", "3g"], ["6g", "6g"], ["8g", "8g"]]), "gesture"); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('gesture'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_STATE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PERFORMANCE - var TOOLTIPS = { - 'shake': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, - 'face up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, - 'face down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, - 'freefall': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_freefall, - '3g': '3g', - '6g': '6g', - '8g': '8g' - }; - return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3; - }); - } -}; - - -const sensor_adxl345_get_acceleration = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345) - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - - - -const sensor_light_level = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP); - } -}; - - - -const sensor_dht11 = { - init: function () { - var WHAT = [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, 'temperature'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, 'humidity']]; - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['DHT11', 'DHT11'] - , ['DHT22', 'DHT22']//, ['DHT21', '21'], ['DHT33', '33'], ['DHT44', '44'] - ]), 'TYPE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(WHAT), "WHAT"); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('WHAT'); - var TOOLTIPS = { - 'temperature': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM, - 'relative_humidity': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM, - 'tempandhum': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM - }; - return TOOLTIPS[op]; - }); - } -}; - - -const sensor_mixgo_extern_light = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP); - } -}; - -const sensor_mixgo_extern_sound = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_SOUND); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP); - } -}; - - - -const sensor_mixgo_extern_pin_near = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "right"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - var TOOLTIPS = { - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const sensor_bmp = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "get_BMP_temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "get_BMP_pressure()"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "get_BMP_temperature()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP, - "get_BMP_pressure()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP, - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_sht = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR +" SHT20") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "get_SHT_temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "get_SHT_relative_humidity()"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "get_SHT_temperature()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "get_SHT_relative_humidity()": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP, - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_DS18X20 = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN", Number) - .appendField("DS18X20 " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP); - } -}; - -const sensor_lm35 = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField("LM35" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LM35); - } -}; - - -//pe -const sensor_use_i2c_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('I2CSUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "I2C") - .setCheck("var"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)", "LTR308"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)", "LTR381RGB"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LIGHTUV +"(LTR390UV)","LTR390UV"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)", "HP203X"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)", "BMP280"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(AHT21)", "AHT21"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHT20)", "SHT20"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LASER_RANGE_SENSOR + "(VL53L0X)", "VL53L0X"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOMAGNETIC_SENSOR + "(QMC5883L)", "QMC5883L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)", "MAX30102"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR +"、"+ blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NEXT+"、"+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)", "APDS9960"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)", "MPU9250"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MixGo_MPU9250+"(ADXL345)", "ADXL345"], - ["RFID", "RFID"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RADAR_SENSOR+"(CBR817)", "CBR817"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setFieldValue("LTR308", "key"); - } -}; - -const radar_set_DETECTION_THRESHOLD = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RADAR+'CBR817') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_INTERACTION) - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DETECTION_THRESHOLD); - this.appendValueInput('VAR2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY_TIME); - this.appendDummyInput() - .appendField('ms'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY_TIME_RANGE) - } -}; - -const radar_set_DETECTION_THRESHOLD_SANT = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RADAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXlY_INTERACTION) - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DETECTION_THRESHOLD); - this.appendValueInput('VAR2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY_TIME); - this.appendDummyInput() - .appendField('ms'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY_TIME_RANGE) - } -}; - -const interaction_whether_to_interaction = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RADAR+'CBR817') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_TO_INTERACTION) - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const interaction_whether_to_interaction_SANT = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RADAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_TO_INTERACTION) - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const CI130X_IDENTIFY_AND_SAVE = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+'CI130X') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const CI130X_GET_WHETHER_IDENTIFY = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+'CI130X') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HELLO_XIAOZHI,"1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_XIAOZHIXIAOZHI ,"2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FIRST ,"3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SECOND ,"4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_THIRD ,"5"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FOURTH ,"6"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FIFTH ,"7"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SIXTH ,"8"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SEVENTH ,"9"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_EIGHTH ,"10"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_NINTH ,"11"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_TENTH ,"12"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_ELEVENTH ,"13"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_TWELFTH ,"14"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_13TH ,"15"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_14TH ,"16"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_15TH ,"17"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_16TH ,"18"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_17TH ,"19"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_18TH ,"20"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_19TH ,"21"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_20TH ,"22"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_on_the_lights ,"23"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_off_the_lights ,"24"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_up_the_brightness ,"25"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_down_the_brightness ,"26"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_red ,"27"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_orange ,"28"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_yellow ,"29"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_green ,"30"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_cyan ,"31"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_blue ,"32"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_purple ,"33"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_white ,"34"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_on_the_fan ,"35"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_off_the_fan ,"36"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_First_gear ,"37"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Wind_speed_second ,"38"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Third_gear ,"39"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Previous ,"40"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Next_page ,"41"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_smiley_face ,"42"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_crying_face ,"43"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_love ,"44"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Close_display ,"45"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Start_execution ,"46"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FORWARD ,"47"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BACKWARD ,"48"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNLEFT ,"49"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNRIGHT ,"50"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP ,"51"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Accelerate ,"52"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_retard ,"53"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD ,"54"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD ,"55"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_temperature ,"56"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_humidity ,"57"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_brightness ,"58"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_sound ,"59"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_time ,"60"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_distance ,"61"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_pressure ,"62"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_key ,"63"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_touch ,"64"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_color ,"65"] - ]),"cmd") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHETHER+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BE_IDENTIFIED); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const CI130X_GET_THE_RECOGNIZED_CMD = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+'CI130X') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECOGNIZED_STATE,"status1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHETHER_BROADCAST,"status2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"] - ]),"key") - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP); - } -}; - -const CI130X_BROADCAST = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+'CI130X') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_PLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_SPEED,"154"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HYETAL,"155"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE,"156"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Humidity,"157"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude, "158"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SOUND, "159"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS, "160"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO,"162"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON2,"164"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH,"165"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PAY,"166"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CARSH_CHANGE,"167"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COUNTDOWN,"168"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIMING,"169"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AT_THE_MOMENT,"170"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FORWARD ,"172"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BACKWARD ,"173"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNLEFT ,"174"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNRIGHT ,"175"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP ,"176"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Accelerate ,"177"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_retard ,"178"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD ,"179"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD ,"180"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_JOIN,"181"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SHOW,"182"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LAMPLIGHT,"183"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ACCELERATION,"184"] - ]),"star"); - this.appendValueInput('NUM') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NUMBER); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UNIT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR,"117"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH,"118"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY,"119"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR,"120"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE,"121"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND,"122"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEEK2,"123"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RMB_UNIT,"124"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_setheading_degree,"125"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEAR,"126"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LAYER,"127"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GRAM,"128"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_METER,"129"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CENTIMETER,"130"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIMETER,"131"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LUMEN,"132"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DECIBEL,"133"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_hectopascal,"134"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PERCENT,"135"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CELSIUS,"136"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_METER_PER_SEC,"137"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display,"138"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display,"139"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SUCCESS,"140"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FAILED,"141"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WRONG,"142"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GOOD,"143"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_blockpy_set_add,"144"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DECREASE,"145"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED,"146"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_ORANGE,"147"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_YELLOW,"148"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN,"149"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_CYAN,"150"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE,"151"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_PURPLE,"152"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE,"153"] - ]),"end"); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const CI130X_SET_SYSTEM_CMD = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+'CI130X') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SYSTEM + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CMD) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MILXY_ENTER_WAKE_UP,"1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_INCREASE_VOLUME,"202"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REDUCE_VOLUME,"203"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAX_VOLUME,"204"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINIMUM,"205"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OPEN_RESPONSE,"206"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CLOSE_RESPONSE,"207"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_QUIT_WAKE_UP,"208"] - ]),"cmd") - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const sensor_MAX30102_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102 + " MAX30102"); - this.appendValueInput('SUB') - //.appendField("BMP280") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102_IR, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102_RED, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102_IR + ',' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MAX30102_RED, ""], - ]), "key") - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_APDS9960_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_APDS9960 + " APDS9960"); - this.appendValueInput('SUB') - //.appendField("BMP280") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_APDS9960_COLOR, "color"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_APDS9960_GESTURE, "gesture"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_APDS9960_APPROACH, "proximity"], - ]), "key") - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_LTR308_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT + " LTR308ALS"); - this.appendValueInput('SUB') - //.appendField("BMP280") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_LIGHT_INTENSITY); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_ltr381_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " LTR381RGB") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IR_STRENGTH, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_STRENGTH, "[0]"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_ucs12071_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " UCS12071") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET +'RGB'+ blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RGB_RAW, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ENV_LIGHT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.GET_IR_STRENGTH+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS,"3"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_LTR390UV_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LIGHTUV + " LTR390UV") - .setCheck("var"); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ENV_LIGHT, "E"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ULTRAVIOLET, "U"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_VL530LX_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LASER_RANGE + " VL53L0X"); - this.appendValueInput('SUB') - //.appendField("BMP280") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_DISTANCE + '(mm)'); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_shtc3_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEM_HUM + " SHTC3") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "humidity"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "temperature": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "humidity": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_aht11_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEM_HUM + " AHT21") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "humidity"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "temperature": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "relative_humidity": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP - }; - return TOOLTIPS[mode] - }); - } -}; - -const sensor_hp203_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " HP203X") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "pressure()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ALTITUDE, "altitude()"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_spl06_001_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " SPL06_001") - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "pressure()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ALTITUDE, "altitude()"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_QMC5883L_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGOPE_FIELD + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " QMC5883L") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "get_bearing()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE, "get_temp()"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_mpu9250_gesture = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, "shake"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "right"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, "face up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, "face down"]]), "gesture"); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('gesture'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_STATE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PERFORMANCE - var TOOLTIPS = { - 'shake': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, - 'face up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, - 'face down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, - // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall, - // '3g': '3g', - // '6g': '6g', - // '8g': '8g' - }; - return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3; - }); - } -}; - -const sensor_mpu9250_get_acceleration = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_mpu9250_get_magnetic = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_mpu9250_get_gyro = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_mpu9250_calibrate_compass = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS); - } -}; - - -const sensor_mpu9250_temperature = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.setOutput(true, Number); - this.setInputsInline(true); - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - } -}; - - -const sensor_mpu9250_field_strength = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass'); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('compass'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS; - var TOOLTIPS = { - 'strength': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, - 'heading': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE - }; - return mode0 + TOOLTIPS[mode]; - }); - } -}; - -const sensor_compass_reset = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("MPU9250") - .setCheck("var"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS); - } -}; - -const sensor_use_spi_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SPISUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "SPI") - .setCheck("var"); - this.appendValueInput('PINSUB') - .appendField("CS") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["RFID", "RFID"], - ["WS-LoRa", "Weather"] - ]), "key"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setFieldValue("RFID", "key"); - } -}; - -const extern_rfid_read = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD_UID, "id"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL, "content"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, "ALL"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const extern_rfid_readid = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD_UID); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const extern_rfid_readcontent = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL); - this.setOutput(true, 'Tuple'); - this.setInputsInline(true); - } -}; - -const extern_rfid_write = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SUB') - .setCheck("var") - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const extern_rfid_write_return = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SUB') - .setCheck("var") - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.RETURN_SUCCESS_OR_NOT); - this.setInputsInline(true); - this.setOutput(true, Boolean); - } -}; - -const extern_rfid_status = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField("RFID"); - this.appendValueInput('SUB') - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_OK, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_NOTAGERR, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_ERROR, "2"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -//--------------------待写气象数据 -const weather_data = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("无线气象站" + " WS-LoRa") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["全部(元组)", "data()[0]"], - ["全部(json)", "data()[1]"], - ["全部(json,附带位置信息)", "data()[2]"], - ["编号", "data()[0][0]"], - ["电量", "data()[0][1]"], - ["风速", "data()[0][2]"], - ["阵风", "data()[0][3]"], - ["风向", "data()[0][4]"], - ["雨量", "data()[0][5]"], - ["温度", "data()[0][6]"], - ["湿度", "data()[0][7]"], - ["光照", "data()[0][8]"], - ["紫外线", "data()[0][9]"], - ["大气压", "data()[0][10]"], - ["信号强度", "data()[0][11]"], - ["信噪比", "data()[0][12]"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)"); - } -}; - -const weather_have_data = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("无线气象站" + " WS-LoRa") - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_AVAILABLE) - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const weather_uart_mixio = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("无线气象站" + " WS-LoRa") - .setCheck("var"); - this.appendValueInput('BASE') - .appendField("以主题") - this.appendDummyInput("") - .appendField("串口发送至MixIO") - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const weather_set_label = { - - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField("无线气象站" + " WS-LoRa") - .setCheck("var"); - this.itemCount_ = 2; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['weather_set_label_item'], this)); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(); - }, - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('weather_set_label_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('weather_set_label_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i) - .connection.connect(connections[i]); - } - } - }, - - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_LOCATION + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)'); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_LOCATION + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)'); - } - } - } - } -}; -const weather_set_label_container = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_LOCATION + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PYLAB_TICKS_TAG); - this.appendStatementInput('STACK'); - this.contextMenu = false; - } -}; - -const weather_set_label_item = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.contextMenu = false; - } -}; - -const sensor_mixgoce_hot_wheel_is_touched = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOT_WHEEL) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"], - ["OK", "0"] - ]), "key"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA, "value"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT, "is_touched()"] - ]), "stat"); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(); - } -}; - -const sensor_mixgoce_hot_wheel_degrees = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOT_WHEEL) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + '(-180°~180°)'); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(); - } -}; - -const esp32_s2_weather_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastType + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor); - this.appendValueInput('wd') - .setCheck(Number) - .appendField('wd'); - this.appendValueInput('ws') - .setCheck(Number) - .appendField('ws'); - this.appendValueInput('rain') - .setCheck(Number) - .appendField('rain'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const esp32_s2_weather_wd = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastType + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastFx) - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const esp32_s2_weather_rain = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('rain') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastType + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAIN_TIME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAIN) - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const esp32_s2_weather_ws = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastType + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_IOT_IR_FAN, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_RATING, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blynk_IOT_IR_FAN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_RATING, "ALL"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const HCSR04 = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO); - this.appendValueInput("PIN1", Number) - .appendField('Trig #') - .setCheck(Number); - this.appendValueInput("PIN2", Number) - .appendField('Echo #') - .setCheck(Number); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO); - } - -}; - -//PS2 -const PS2_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2); - this.appendDummyInput("") - .appendField('CLK#') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), "PS2_CLK") - .appendField('DOU#') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), "PS2_DOU") - .appendField('DIN#') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), "PS2_DIN") - .appendField('CS#') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), "PS2_CS"); - // this.appendDummyInput("") - // .appendField(Blockly.Msg.PS2_setRumble) - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON,"true"],[Blockly.Msg.MIXLY_OFF,"false"]]), "rumble"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - } -}; - - -var PSBUTTON = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_TRIANGLE, "PSB_GREEN"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_CIRCLE, "PSB_RED"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_CROSS, "PSB_BLUE"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_SQUARE, "PSB_PINK"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_L1, "PSB_L1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_L2, "PSB_L2"], - // ["PSB_L3","PSB_L3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_R1, "PSB_R1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_R2, "PSB_R2"], - // ["PSB_R3","PSB_R3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_UP, "PSB_PAD_UP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_RIGHT, "PSB_PAD_RIGHT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_DOWN, "PSB_PAD_DOWN"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_LEFT, "PSB_PAD_LEFT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_SELECT, "PSB_SELECT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_START, "PSB_START"] -]; - -// -const PS2_vibration = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_setRumble) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_SMALL + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "1"], - ]), "smotorstate") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_BIG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGOPE_AMPLITUDE) - this.appendValueInput("AMP", Number) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_BIG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGOPE_AMPLITUDE + "0-100"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -// -const PS2_Button = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_BUTTON) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(PSBUTTON), "psbt") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.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(''); - } -}; - -// -const PS2_State = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_BUTTON) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT, "0"] - , [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_VALUE, "1"] - // ,[Blockly.Msg.MIXLY_BUTTON_RELEASED,"ButtonReleased"] - // ,[Blockly.Msg.MIXLY_CHANGE,"NewButtonState"] - ]), "btstate"); - this.setOutput(true, Boolean); - this.setTooltip(''); - } -}; - -const PS2_Buttons = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_BUTTON) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(PSBUTTON), "psbt") - this.setOutput(true, Boolean); - this.setTooltip(''); - } -}; - -const PS2_stk = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - var PSSTK = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_RX, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_RY, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_LX, "2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_LY, "3"], - ]; - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_stick) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(PSSTK), "psstk"); - this.setOutput(true, Number); - this.setTooltip(''); - } -}; - -const PS2_init_new = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2); - this.appendValueInput('CLK') - .appendField('CLK#'); - this.appendValueInput('DOU') - .appendField('DOU#'); - this.appendValueInput('DIN') - .appendField('DIN#'); - this.appendValueInput('CS') - .appendField('CS#'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - } -}; - -const PS2_vibration_new = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_setRumble) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_SMALL + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, "1"], - ]), "smotorstate") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_BIG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGOPE_AMPLITUDE) - this.appendValueInput("AMP", Number) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STM32_OLED_BIG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catActuator_motor + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGOPE_AMPLITUDE + "0-100"); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const PS2_Buttons_new = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_BUTTON.slice(3)) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(PSBUTTON), "psbt") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED) - this.setOutput(true, Boolean); - this.setTooltip(''); - } -}; - -const PS2_stk_new = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - var PSSTK = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_RX, "RX"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_RY, "RY"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_LX, "LX"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2_LY, "LY"], - ]; - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PS2); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_JOYSTICK) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(PSSTK), "psstk"); - this.setOutput(true, Number); - this.setTooltip(''); - } -}; - -const sensor_use_uart_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "uart") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["uart1", "uart1"], - ["uart2", "uart2"] - ]), "key"); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PM25_SENSOR, "PM"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR, "GNSS"] - ]), "sensor"); - - - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const pm25_get_data = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField('PM2.5' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ['PM2.5', "[0]"], - ['PM10', "[1]"], - ['(PM2.5, PM10)', ""], - ]), "pm") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONCENTRATION) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PM_CONCENTRATION_TOOLTIP); - } -} - -const gnss_have_data = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_AVAILABLE) - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const gnss_get_data = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_TIME, "time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_LOCATION, "locate"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT, "status"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - 'time': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR_GET_TIME_TOOLTIP, - 'locate': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR_GET_LOCATE_TOOLTIP, - 'status': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GNSS_SENSOR_GET_STATUS_TOOLTIP - }; - return TOOLTIPS[mode]; - }); - } -}; - -//mixbot/feiyi extern below: -const robot_button_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TURTLE_POS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PL_TEXT_TOP, '[0]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PL_TEXT_BOTTOM, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, '[2]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, '[3]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.mixpy_PL_TEXT_CENTER, '[4]'] - ]), "num"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA) - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_touch_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_EXTERN_TOUCHED + "?") - this.setOutput(true, Boolean); - this.setInputsInline(true); - } -} - -const robot_infrared_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_NEAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA) - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_infrared_extern_grey_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_GRAY_NEAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA) - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_potentiometer_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KNOB_POTENTIOMETER) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA) - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_color_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME, '[0]'], - ["RGB" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ENVIRONMENT_BRIGHTNESS, '[2]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REFLECTION_BRIGHTNESS, '[3]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ''] - ]), "color"); - this.setOutput(true, Boolean); - this.setInputsInline(true); - } -} - -const mixbot_sensor_extern_get_addr = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON, 'ext_button'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor, 'ext_collision'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor, 'ext_color'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar'] - ]), "name") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR) - this.setOutput(true); - this.setInputsInline(true); - } -} - -const mixbot_sensor_extern_set_addr = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXBOT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON, 'ext_button'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor, 'ext_collision'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor, 'ext_color'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar'] - ]), "name") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR) - this.appendValueInput('old') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE); - this.appendValueInput('new') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UPDATE); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const robot_sonar_extern_get_value = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_SONAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA + '(cm)') - this.setOutput(true, Number); - this.setInputsInline(true); - } -} - -const robot_sonar_extern_led = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_SONAR) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PIN_NUMBERING) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "0"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "1"]]), "mode"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_INDICATOR_LIGHT) - this.appendValueInput('light') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING); - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const sensor_weather_solo_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.weather_solo); - this.appendValueInput('wd') - .appendField('W-D#'); - this.appendValueInput('ws') - .appendField('W-S#'); - this.appendValueInput('rain') - .appendField('Rain#'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - } -}; - -const sensor_weather_solo_wd = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.weather_solo); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastFx) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ABBR, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "[1]"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_weather_solo_ws = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.weather_solo); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_SPEED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SPEED + 'm/s', "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_RATING, "[1]"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_weather_solo_rain = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.weather_solo); - this.appendValueInput('time') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAIN_TIME) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ACCUMULATED, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AVERAGE, "[1]"] - ]), "key"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAIN + '(mm)'); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -//educore sensor_extern -const educore_body_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BODY_SENSOR); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_soilhum_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SOILHUM_SENSOR); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_temphum_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_infrared_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Infrared_pyroelectric_sensor); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_button_sensor_extern = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BUTTON); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const sensor_read_humiture = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE,"0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Humidity,"1"] - ]),"key"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_ultrasonic_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_SONAR); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const ultrasonic_sensor_read_distance = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR_DISTANCE); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_temp_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DS18B20); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_camera_sensor = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SMARTCAMERA); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const camera_sensor_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SMARTCAMERA); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PROCCED) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipFace,"FACE_RECOGNIZE"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FACE_CLASSIFIER,"FACE_DETECT"] - ]),"key"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const camera_sensor_result = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SMARTCAMERA); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECOGNIZED_RESULT); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const sensor_weigh_init = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + 'HX711/720' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEIGH_SENSOR); - this.appendValueInput('sck') - .appendField('#SCK'); - this.appendValueInput('dat') - .appendField('#DAT'); - this.appendValueInput('pc') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Calibration_ratio); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - } -}; - -const weigh_sensor_get_weight = { - init: function () { - this.setColour(SENSOR_EXTERN_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEIGH_SENSOR) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA) - this.setOutput(true); - this.setInputsInline(true); - } -} - -/***/ }), - -/***/ "../micropython/blocks/sensor_onboard.js": -/*!***********************************************!*\ - !*** ../micropython/blocks/sensor_onboard.js ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CI130X_BROADCAST_SANT: () => (/* binding */ CI130X_BROADCAST_SANT), -/* harmony export */ CI130X_GET_THE_RECOGNIZED_CMD_SANT: () => (/* binding */ CI130X_GET_THE_RECOGNIZED_CMD_SANT), -/* harmony export */ CI130X_GET_WHETHER_IDENTIFY_SANT: () => (/* binding */ CI130X_GET_WHETHER_IDENTIFY_SANT), -/* harmony export */ CI130X_IDENTIFY_AND_SAVE_SANT: () => (/* binding */ CI130X_IDENTIFY_AND_SAVE_SANT), -/* harmony export */ CI130X_SET_SYSTEM_CMD_SANT: () => (/* binding */ CI130X_SET_SYSTEM_CMD_SANT), -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ RTC_set_date: () => (/* binding */ RTC_set_date), -/* harmony export */ RTC_set_time: () => (/* binding */ RTC_set_time), -/* harmony export */ bitbot_als_num: () => (/* binding */ bitbot_als_num), -/* harmony export */ dht11: () => (/* binding */ dht11), -/* harmony export */ educore_button_sensor: () => (/* binding */ educore_button_sensor), -/* harmony export */ educore_button_was_pressed: () => (/* binding */ educore_button_was_pressed), -/* harmony export */ educore_gyroscope_sensor: () => (/* binding */ educore_gyroscope_sensor), -/* harmony export */ educore_gyroscope_sensor_read: () => (/* binding */ educore_gyroscope_sensor_read), -/* harmony export */ educore_gyroscope_sensor_shake: () => (/* binding */ educore_gyroscope_sensor_shake), -/* harmony export */ educore_light_sensor: () => (/* binding */ educore_light_sensor), -/* harmony export */ educore_rfid_sensor: () => (/* binding */ educore_rfid_sensor), -/* harmony export */ educore_rfid_sensor_scan: () => (/* binding */ educore_rfid_sensor_scan), -/* harmony export */ educore_rfid_sensor_scan_data: () => (/* binding */ educore_rfid_sensor_scan_data), -/* harmony export */ educore_voice_sensor: () => (/* binding */ educore_voice_sensor), -/* harmony export */ number1: () => (/* binding */ number1), -/* harmony export */ number2: () => (/* binding */ number2), -/* harmony export */ number3: () => (/* binding */ number3), -/* harmony export */ number4: () => (/* binding */ number4), -/* harmony export */ number5: () => (/* binding */ number5), -/* harmony export */ number6: () => (/* binding */ number6), -/* harmony export */ number7: () => (/* binding */ number7), -/* harmony export */ onboard_RTC_get_time: () => (/* binding */ onboard_RTC_get_time), -/* harmony export */ onboard_RTC_get_time_str: () => (/* binding */ onboard_RTC_get_time_str), -/* harmony export */ onboard_RTC_get_timestamp: () => (/* binding */ onboard_RTC_get_timestamp), -/* harmony export */ onboard_RTC_get_timetuple_to_str: () => (/* binding */ onboard_RTC_get_timetuple_to_str), -/* harmony export */ onboard_RTC_set_datetime: () => (/* binding */ onboard_RTC_set_datetime), -/* harmony export */ onboard_RTC_settime_string: () => (/* binding */ onboard_RTC_settime_string), -/* harmony export */ onboard_RTC_timestamp_totuple: () => (/* binding */ onboard_RTC_timestamp_totuple), -/* harmony export */ rfid_readcontent: () => (/* binding */ rfid_readcontent), -/* harmony export */ rfid_readid: () => (/* binding */ rfid_readid), -/* harmony export */ rfid_write: () => (/* binding */ rfid_write), -/* harmony export */ rfid_write_return: () => (/* binding */ rfid_write_return), -/* harmony export */ sensor_LTR308: () => (/* binding */ sensor_LTR308), -/* harmony export */ sensor_aht11: () => (/* binding */ sensor_aht11), -/* harmony export */ sensor_bitbot_ALS: () => (/* binding */ sensor_bitbot_ALS), -/* harmony export */ sensor_button_get_presses: () => (/* binding */ sensor_button_get_presses), -/* harmony export */ sensor_button_is_pressed: () => (/* binding */ sensor_button_is_pressed), -/* harmony export */ sensor_button_was_pressed: () => (/* binding */ sensor_button_was_pressed), -/* harmony export */ sensor_distance_hrsc04: () => (/* binding */ sensor_distance_hrsc04), -/* harmony export */ sensor_eulerangles: () => (/* binding */ sensor_eulerangles), -/* harmony export */ sensor_field_strength: () => (/* binding */ sensor_field_strength), -/* harmony export */ sensor_get_acceleration: () => (/* binding */ sensor_get_acceleration), -/* harmony export */ sensor_get_temperature: () => (/* binding */ sensor_get_temperature), -/* harmony export */ sensor_hp203: () => (/* binding */ sensor_hp203), -/* harmony export */ sensor_light: () => (/* binding */ sensor_light), -/* harmony export */ sensor_mixbot_get_gyro: () => (/* binding */ sensor_mixbot_get_gyro), -/* harmony export */ sensor_mixbot_patrol_calibrate: () => (/* binding */ sensor_mixbot_patrol_calibrate), -/* harmony export */ sensor_mixbot_patrol_value: () => (/* binding */ sensor_mixbot_patrol_value), -/* harmony export */ sensor_mixbot_temperature: () => (/* binding */ sensor_mixbot_temperature), -/* harmony export */ sensor_mixgo_LTR308: () => (/* binding */ sensor_mixgo_LTR308), -/* harmony export */ sensor_mixgo_button_attachInterrupt: () => (/* binding */ sensor_mixgo_button_attachInterrupt), -/* harmony export */ sensor_mixgo_button_get_presses: () => (/* binding */ sensor_mixgo_button_get_presses), -/* harmony export */ sensor_mixgo_button_is_pressed: () => (/* binding */ sensor_mixgo_button_is_pressed), -/* harmony export */ sensor_mixgo_button_was_pressed: () => (/* binding */ sensor_mixgo_button_was_pressed), -/* harmony export */ sensor_mixgo_cc_mmc5603_calibrate_compass: () => (/* binding */ sensor_mixgo_cc_mmc5603_calibrate_compass), -/* harmony export */ sensor_mixgo_cc_mmc5603_get_angle: () => (/* binding */ sensor_mixgo_cc_mmc5603_get_angle), -/* harmony export */ sensor_mixgo_cc_mmc5603_get_magnetic: () => (/* binding */ sensor_mixgo_cc_mmc5603_get_magnetic), -/* harmony export */ sensor_mixgo_light: () => (/* binding */ sensor_mixgo_light), -/* harmony export */ sensor_mixgo_nova_LTR308: () => (/* binding */ sensor_mixgo_nova_LTR308), -/* harmony export */ sensor_mixgo_nova_pin_near: () => (/* binding */ sensor_mixgo_nova_pin_near), -/* harmony export */ sensor_mixgo_pin_near: () => (/* binding */ sensor_mixgo_pin_near), -/* harmony export */ sensor_mixgo_pin_near_double: () => (/* binding */ sensor_mixgo_pin_near_double), -/* harmony export */ sensor_mixgo_pin_near_single: () => (/* binding */ sensor_mixgo_pin_near_single), -/* harmony export */ sensor_mixgo_pin_pressed: () => (/* binding */ sensor_mixgo_pin_pressed), -/* harmony export */ sensor_mixgo_sant_color: () => (/* binding */ sensor_mixgo_sant_color), -/* harmony export */ sensor_mixgo_touch_slide: () => (/* binding */ sensor_mixgo_touch_slide), -/* harmony export */ sensor_mixgocar42_button_attachInterrupt: () => (/* binding */ sensor_mixgocar42_button_attachInterrupt), -/* harmony export */ sensor_mixgocar42_button_get_presses: () => (/* binding */ sensor_mixgocar42_button_get_presses), -/* harmony export */ sensor_mixgocar42_button_is_pressed: () => (/* binding */ sensor_mixgocar42_button_is_pressed), -/* harmony export */ sensor_mixgocar42_button_was_pressed: () => (/* binding */ sensor_mixgocar42_button_was_pressed), -/* harmony export */ sensor_mixgocar_battery_left: () => (/* binding */ sensor_mixgocar_battery_left), -/* harmony export */ sensor_mixgocar_pin_near: () => (/* binding */ sensor_mixgocar_pin_near), -/* harmony export */ sensor_mixgocar_pin_near_line: () => (/* binding */ sensor_mixgocar_pin_near_line), -/* harmony export */ sensor_mixgocar_pin_near_state_change: () => (/* binding */ sensor_mixgocar_pin_near_state_change), -/* harmony export */ sensor_mixgoce_pin_pressed: () => (/* binding */ sensor_mixgoce_pin_pressed), -/* harmony export */ sensor_mixgoce_temperature: () => (/* binding */ sensor_mixgoce_temperature), -/* harmony export */ sensor_mixgome_temperature: () => (/* binding */ sensor_mixgome_temperature), -/* harmony export */ sensor_mpython_pin_pressed: () => (/* binding */ sensor_mpython_pin_pressed), -/* harmony export */ sensor_mpython_qmi8658_get_gyro: () => (/* binding */ sensor_mpython_qmi8658_get_gyro), -/* harmony export */ sensor_mpython_qmi8658_temperature: () => (/* binding */ sensor_mpython_qmi8658_temperature), -/* harmony export */ sensor_onboard_compass_reset: () => (/* binding */ sensor_onboard_compass_reset), -/* harmony export */ sensor_onboard_mpu9250_calibrate_compass: () => (/* binding */ sensor_onboard_mpu9250_calibrate_compass), -/* harmony export */ sensor_onboard_mpu9250_field_strength: () => (/* binding */ sensor_onboard_mpu9250_field_strength), -/* harmony export */ sensor_onboard_mpu9250_gesture: () => (/* binding */ sensor_onboard_mpu9250_gesture), -/* harmony export */ sensor_onboard_mpu9250_get_acceleration: () => (/* binding */ sensor_onboard_mpu9250_get_acceleration), -/* harmony export */ sensor_onboard_mpu9250_get_gyro: () => (/* binding */ sensor_onboard_mpu9250_get_gyro), -/* harmony export */ sensor_onboard_mpu9250_get_magnetic: () => (/* binding */ sensor_onboard_mpu9250_get_magnetic), -/* harmony export */ sensor_onboard_mpu9250_temperature: () => (/* binding */ sensor_onboard_mpu9250_temperature), -/* harmony export */ sensor_pin_near: () => (/* binding */ sensor_pin_near), -/* harmony export */ sensor_pin_pressed: () => (/* binding */ sensor_pin_pressed), -/* harmony export */ sensor_read: () => (/* binding */ sensor_read), -/* harmony export */ sensor_rm_acc: () => (/* binding */ sensor_rm_acc), -/* harmony export */ sensor_rm_battery_left: () => (/* binding */ sensor_rm_battery_left), -/* harmony export */ sensor_rm_pin_near_double: () => (/* binding */ sensor_rm_pin_near_double), -/* harmony export */ sensor_rtc_init: () => (/* binding */ sensor_rtc_init), -/* harmony export */ sensor_sound: () => (/* binding */ sensor_sound), -/* harmony export */ sensor_temperature: () => (/* binding */ sensor_temperature) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _sensor_extern_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sensor_extern.js */ "../micropython/blocks/sensor_extern.js"); - - - - -const SENSOR_ONBOARD_HUE = '#947C54'; //'#9e77c9'//40; - -const sensor_mixgo_button_is_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_IS_PRESSED); - } -}; - -const sensor_mixgo_button_was_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const sensor_mixgo_button_get_presses = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('btn') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - } -}; - -const sensor_mixgo_button_attachInterrupt = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("btn") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INTERRUPT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT); - } -}; - -const sensor_mixgocar42_button_is_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_IS_PRESSED); - } -}; - -const sensor_mixgocar42_button_was_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const sensor_mixgocar42_button_get_presses = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES_TIME); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_PRESSES); - } -}; - -const sensor_mixgocar42_button_attachInterrupt = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INTERRUPT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT); - } -}; - -const sensor_mixgo_pin_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("button") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_TOUCHED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_sensor_pin_pressed); - } -}; - -const sensor_mixgoce_pin_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("button") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_TOUCHED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_sensor_pin_pressed); - } -}; - -const sensor_mpython_pin_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("button") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IS_TOUCHED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_sensor_pin_pressed); - } -}; - -const sensor_mixgo_touch_slide = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOUCH_SLIDE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP); - } -}; - - -const sensor_distance_hrsc04 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO); - } -}; - -// 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, "Week"], -// [Blockly.Msg.MIXLY_MIX1, "Mix1"], -// [Blockly.Msg.MIXLY_MIX2, "Mix2"], -// ]; - -const RTC_set_time = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETTIME) - .appendField('myRTC'); - this.appendValueInput("hour") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR); - this.appendValueInput("minute") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE); - this.appendValueInput("second") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETTIME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIX2); - } -}; - -const RTC_set_date = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETDATE) - .appendField('myRTC'); - this.appendValueInput("year") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR); - this.appendValueInput("month") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH); - this.appendValueInput("day") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETDATE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIX1); - } -}; - - - -const HCSR04 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHAOSHENGBO); - this.appendValueInput("PIN1", Number) - .appendField('Trig #') - .setCheck(Number); - this.appendValueInput("PIN2", Number) - .appendField('Echo #') - .setCheck(Number); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO); - } - -}; - -const sensor_mixgo_light = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LIGHT); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP); - } -}; - - -const number1 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["1", "touch1"], ["2", "touch2"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number2 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number3 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "12"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "14"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "13"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "15"], ["A", "32"], ["B", "33"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number4 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number5 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["0", "0"], ["1", "1"], ["2", "2"], ["3", "3"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number6 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["3", "3"], ["4", "4"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const number7 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["0", "0"], ["1", "1"]]), 'op') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW); - } -}; - -const sensor_mixgo_pin_near_single = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_NEAR); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_VALUE); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - } -}; - -const sensor_mixgo_pin_near_double = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "right"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - var TOOLTIPS = { - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const sensor_mixgo_pin_near = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, "l"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, "r"]]), "direction") - this.setOutput(true, Number); - this.setInputsInline(true); - // var thisBlock = this; - // this.setTooltip(function () { - // var mode = thisBlock.getFieldValue('direction'); - // var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - // var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR; - // var TOOLTIPS = { - // 'l': Blockly.Msg.mixpy_PL_TEXT_TOP, - // 'r': Blockly.Msg.mixpy_PL_TEXT_BOTTOM, - // }; - // return mode0 + TOOLTIPS[mode] + mode1 - // }); - } -}; - - -const sensor_mixgo_nova_pin_near = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "l"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "r"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - var TOOLTIPS = { - 'l': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'r': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const sensor_mixgo_nova_LTR308 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "l"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "r"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT; - var TOOLTIPS = { - 'l': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'r': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const sensor_mixgo_LTR308 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, "l"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, "r"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const sensor_mixgo_sant_color = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COLOR_SENSOR + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DATA); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -//传感器-实时时钟块_获取时间 -const onboard_RTC_get_time = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("RTC") - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCGETTIME); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP + ' (year, month, mday, hour, minute, second, weekday, yearday)'); - // var thisBlock = this; - // this.setTooltip(function() { - // var mode = thisBlock.getFieldValue('TIME_TYPE'); - // var mode0 = Blockly.Msg.MIXLY_RTCGETTIME; - // var TOOLTIPS = { - // 'Year':Blockly.Msg.MIXLY_YEAR, - // 'Month':Blockly.Msg.MIXLY_MONTH, - // 'Day':Blockly.Msg.MIXLY_DAY, - // 'Hour':Blockly.Msg.MIXLY_HOUR, - // 'Minute':Blockly.Msg.MIXLY_MINUTE, - // 'Second':Blockly.Msg.MIXLY_SECOND, - // 'Week':Blockly.Msg.MIXLY_WEEK, - // 'Mix1':Blockly.Msg.MIXLY_MIX1, - // 'Mix2':Blockly.Msg.MIXLY_MIX2 - // }; - // return mode0 +TOOLTIPS[mode]; - // }); - } -}; - -const onboard_RTC_get_timestamp = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCGETTIMESTAMP); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP); - } -}; - -const onboard_RTC_timestamp_totuple = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTC_TIMESTAMP); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_TO_TUPLE); - this.setInputsInline(true); - this.setOutput(true, Number); - } -}; - -const onboard_RTC_settime_string = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField('RTC'); - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_USE_STRING_TUPLE) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTCSETTIME); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const onboard_RTC_set_datetime = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("RTC") - this.appendValueInput('year') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR); - this.appendValueInput('month') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH); - this.appendValueInput('day') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY); - this.appendValueInput('hour') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR); - this.appendValueInput('minute') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE); - this.appendValueInput('second') - .setCheck(Number) - .appendField(" " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP); - } -}; - -const sensor_rtc_init = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("RTC") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .setCheck("var"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP); - } -}; - -const onboard_RTC_get_time_str = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTC_GET_TIME_STR); - this.setOutput(true, String); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP); - } -}; - -const onboard_RTC_get_timetuple_to_str = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_TIME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE) - .setCheck() - this.appendDummyInput() - .appendField( blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.A_TO_B + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_TIME + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_STRING) - this.setOutput(true, String); - this.setInputsInline(true); - } -}; - -const sensor_LTR308 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LIGHT); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP); - } -}; - -const sensor_sound = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SOUND); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP); - } -}; - -const sensor_aht11 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEM_HUM + " ") - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "humidity"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "temperature": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "humidity": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP - }; - return TOOLTIPS[mode] - }); - } -}; - - -const sensor_get_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - - - - - -const sensor_hp203 = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " ") - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "pressure()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ALTITUDE, "altitude()"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const rfid_readid = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD_UID); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const rfid_readcontent = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const rfid_write = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const rfid_write_return = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.RETURN_SUCCESS_OR_NOT); - this.setInputsInline(true); - this.setOutput(true, Boolean); - } -}; - -const sensor_get_acceleration = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "[0]"], - ["y", "[1]"], - ["z", "[2]"], - ["(x,y,z)", ""], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STRENGTH, "strength"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - '[0]': 'x', - '[1]': 'y', - '[2]': 'z', - '': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_eulerangles = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_GESTURE_ALL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH, '[0]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH + ', ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, ''] - ]), 'angle'); - - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - -const sensor_onboard_mpu9250_gesture = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, "shake"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, "up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, "down"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, "left"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, "right"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, "face up"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, "face down"]]), "gesture"); - this.setOutput(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('gesture'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_STATE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PERFORMANCE - var TOOLTIPS = { - 'shake': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_shake, - 'up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UP, - 'down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DOWN, - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RIGHT, - 'face up': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_up, - 'face down': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_face_down, - // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall, - // '3g': '3g', - // '6g': '6g', - // '8g': '8g' - }; - return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3; - }); - } -}; - -const sensor_onboard_mpu9250_get_acceleration = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION1; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_onboard_mpu9250_get_magnetic = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_onboard_mpu9250_get_gyro = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "x"], - ["y", "y"], - ["z", "z"], - ["(x,y,z)", "values"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO; - var TOOLTIPS = { - 'x': 'x', - 'y': 'y', - 'z': 'z', - '(x,y,z)': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_onboard_mpu9250_calibrate_compass = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS); - } -}; - - -const sensor_onboard_mpu9250_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.setOutput(true, Number); - this.setInputsInline(true); - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - } -}; - - -const sensor_onboard_mpu9250_field_strength = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass'); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('compass'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS; - var TOOLTIPS = { - 'strength': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, - 'heading': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE - }; - return mode0 + TOOLTIPS[mode]; - }); - } -}; - -const sensor_onboard_compass_reset = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField("MPU9250") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_COMPASS); - } -}; - -//mixgo_cc onboard_sensor blocks: -const sensor_mixgo_cc_mmc5603_get_magnetic = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "[0]"], - ["y", "[1]"], - ["z", "[2]"], - ["(x,y,z)", ""], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL, "all"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH; - var TOOLTIPS = { - '[0]': 'x', - '[1]': 'y', - '[2]': 'z', - '': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; -const sensor_mixgo_cc_mmc5603_get_angle = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET_COMPASS + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE) - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - -const sensor_mixgo_cc_mmc5603_calibrate_compass = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS); - } -}; - - -//mixgo_me onboard_sensor blocks: - - -const sensor_mixgome_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - -//mixgo_ce onboard_sensor blocks: - - -const sensor_mixgoce_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - - - - -const sensor_mpython_qmi8658_get_gyro = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "[0]"], - ["y", "[1]"], - ["z", "[2]"], - ["(x,y,z)", ""] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO; - var TOOLTIPS = { - '[0]': 'x', - '[1]': 'y', - '[2]': 'z', - '': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_mpython_qmi8658_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE) - this.setOutput(true, Number); - this.setInputsInline(true); - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE); - } -}; - - - - -const sensor_rm_pin_near_double = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "1"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "2"]]), "direction") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('direction'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - var TOOLTIPS = { - 'left': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, - 'right': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, - }; - return mode0 + TOOLTIPS[mode] + mode1 - }); - } -}; - -const sensor_rm_battery_left = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const sensor_rm_acc = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField("acc" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345_XA, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345_YA, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ACC_SHAKE, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345_XA + ',' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ADXL345_YA + ',' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ACC_SHAKE, ""] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_ACCELERATION); - - } -}; - -//car4.2 -const sensor_mixgocar_pin_near_line = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_MID, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR_VAL); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const sensor_mixgocar_pin_near = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_PROXIMITY_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const sensor_mixgocar_pin_near_state_change = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, "AS"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, "LP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, "OA"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - - -const sensor_mixgocar_battery_left = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -//mixbot onboard_sensor below: - - -const sensor_mixbot_patrol_calibrate = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE, "WHITE"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK, "BLACK"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET, "RESET_TO_FAB"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const sensor_mixbot_patrol_value = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR_VAL); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const sensor_mixbot_temperature = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Board_temperature) - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - - } -}; - - - -const sensor_mixbot_get_gyro = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["x", "[0]"], - ["y", "[1]"], - ["z", "[2]"], - ["(x,y,z)", ""] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENOR_GYRO; - var TOOLTIPS = { - '[0]': 'x', - '[1]': 'y', - '[2]': 'z', - '': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Shiliang_Direction, - }; - return mode0 + TOOLTIPS[mode] + mode1 + mode2; - }); - } -}; - -const sensor_bitbot_ALS = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ANALOG + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_LIGHT) - this.appendValueInput('mode') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LCD_NUMBERING); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_LIGHT_INTENSITY + "(%)"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const bitbot_als_num = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.als_num), 'PIN'); - this.setOutput(true, Number); - } -}; - -const sensor_button_is_pressed = sensor_mixgo_button_is_pressed; -const sensor_button_was_pressed = sensor_mixgo_button_was_pressed; -const sensor_button_get_presses = sensor_mixgo_button_get_presses; -const sensor_pin_pressed = sensor_mixgo_pin_pressed; -const sensor_pin_near = sensor_mixgo_pin_near; -const sensor_light = sensor_mixgo_light; -const dht11 = _sensor_extern_js__WEBPACK_IMPORTED_MODULE_2__.sensor_dht11; -const sensor_field_strength = _sensor_extern_js__WEBPACK_IMPORTED_MODULE_2__.sensor_mpu9250_field_strength; -const sensor_temperature = _sensor_extern_js__WEBPACK_IMPORTED_MODULE_2__.sensor_mpu9250_temperature - -//educore sensor_onboard -const educore_voice_sensor = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_EXTERN_SOUND); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const sensor_read = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_VALUE); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_light_sensor = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIGHT_SENSOR); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_gyroscope_sensor = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GYROSCOPE_SENSOR); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_gyroscope_sensor_read = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .setCheck("var"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Horizontal_inclination, "X"], - ["y", "[1]"], - ["z", "[2]"] - ]), "key"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_gyroscope_sensor_shake = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BE_SHAKED) - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const educore_button_sensor = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["a", "a"], - ["b", "b"], - ["c", "c"] - ]), "btn"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_button_was_pressed = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WAS_PRESSED); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SENOR_WAS_PRESSED); - } -}; - -const educore_rfid_sensor = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("PIN") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_INITIAL); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_rfid_sensor_scan = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("SUB") - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_READ); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const educore_rfid_sensor_scan_data = { - init: function () { - this.setColour(SENSOR_ONBOARD_HUE); - this.appendValueInput("SUB") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_READ + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_DATA_FROM); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_NUMBER,"serial_number"] - ]),"key"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const CI130X_IDENTIFY_AND_SAVE_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const CI130X_GET_WHETHER_IDENTIFY_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HELLO_XIAOZHI,"1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_XIAOZHIXIAOZHI ,"2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FIRST ,"3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SECOND ,"4"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_THIRD ,"5"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FOURTH ,"6"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_FIFTH ,"7"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SIXTH ,"8"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_SEVENTH ,"9"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_EIGHTH ,"10"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_NINTH ,"11"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_TENTH ,"12"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_ELEVENTH ,"13"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_TWELFTH ,"14"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_13TH ,"15"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_14TH ,"16"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_15TH ,"17"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_16TH ,"18"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_17TH ,"19"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_18TH ,"20"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_19TH ,"21"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_20TH ,"22"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_on_the_lights ,"23"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_off_the_lights ,"24"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_up_the_brightness ,"25"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_down_the_brightness ,"26"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_red ,"27"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_orange ,"28"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_yellow ,"29"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_green ,"30"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_cyan ,"31"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_blue ,"32"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_purple ,"33"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Set_it_to_white ,"34"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_on_the_fan ,"35"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Turn_off_the_fan ,"36"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_First_gear ,"37"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Wind_speed_second ,"38"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Third_gear ,"39"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Previous ,"40"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Next_page ,"41"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_smiley_face ,"42"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_crying_face ,"43"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Show_love ,"44"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Close_display ,"45"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Start_execution ,"46"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FORWARD ,"47"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BACKWARD ,"48"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNLEFT ,"49"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNRIGHT ,"50"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP ,"51"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Accelerate ,"52"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_retard ,"53"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD ,"54"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD ,"55"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_temperature ,"56"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_humidity ,"57"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_brightness ,"58"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_sound ,"59"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_time ,"60"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_distance ,"61"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_pressure ,"62"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_key ,"63"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_touch ,"64"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Query_color ,"65"] - ]),"cmd") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHETHER+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BE_IDENTIFIED); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const CI130X_GET_THE_RECOGNIZED_CMD_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECOGNIZED_STATE,"status1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WHETHER_BROADCAST,"status2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"] - ]),"key") - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP); - } -}; - -const CI130X_BROADCAST_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MP3_PLAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_SPEED,"154"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HYETAL,"155"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE,"156"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Humidity,"157"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude, "158"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SOUND, "159"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS, "160"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERVO,"162"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUTTON2,"164"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH,"165"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PAY,"166"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CARSH_CHANGE,"167"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COUNTDOWN,"168"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIMING,"169"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AT_THE_MOMENT,"170"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FORWARD ,"172"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BACKWARD ,"173"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNLEFT ,"174"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURNRIGHT ,"175"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STOP ,"176"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Accelerate ,"177"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_retard ,"178"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD ,"179"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD ,"180"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_JOIN,"181"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SHOW,"182"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LAMPLIGHT,"183"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ACCELERATION,"184"] - ]),"star"); - this.appendValueInput('NUM') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_NUMBER); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_UNIT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_YEAR,"117"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MONTH,"118"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAY,"119"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HOUR,"120"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINUTE,"121"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND,"122"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEEK2,"123"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RMB_UNIT,"124"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_setheading_degree,"125"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEAR,"126"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LAYER,"127"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GRAM,"128"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_METER,"129"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CENTIMETER,"130"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MILLIMETER,"131"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LUMEN,"132"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DECIBEL,"133"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_hectopascal,"134"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PERCENT,"135"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CELSIUS,"136"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_METER_PER_SEC,"137"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_on_display,"138"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Turn_off_display,"139"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SUCCESS,"140"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FAILED,"141"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WRONG,"142"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GOOD,"143"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_blockpy_set_add,"144"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DECREASE,"145"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED,"146"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_ORANGE,"147"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_YELLOW,"148"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN,"149"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_CYAN,"150"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_BLUE,"151"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_PURPLE,"152"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_WHITE,"153"] - ]),"end"); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const CI130X_SET_SYSTEM_CMD_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AipSpeech_asr+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SYSTEM + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CMD) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MILXY_ENTER_WAKE_UP,"1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_INCREASE_VOLUME,"202"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_REDUCE_VOLUME,"203"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAX_VOLUME,"204"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MINIMUM,"205"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OPEN_RESPONSE,"206"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CLOSE_RESPONSE,"207"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_QUIT_WAKE_UP,"208"] - ]),"cmd") - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/serial.js": -/*!***************************************!*\ - !*** ../micropython/blocks/serial.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ serial_any: () => (/* binding */ serial_any), -/* harmony export */ serial_begin: () => (/* binding */ serial_begin), -/* harmony export */ serial_print: () => (/* binding */ serial_print), -/* harmony export */ serial_print_byte: () => (/* binding */ serial_print_byte), -/* harmony export */ serial_print_hex: () => (/* binding */ serial_print_hex), -/* harmony export */ serial_println: () => (/* binding */ serial_println), -/* harmony export */ serial_read_from_ai: () => (/* binding */ serial_read_from_ai), -/* harmony export */ serial_readline: () => (/* binding */ serial_readline), -/* harmony export */ serial_readstr: () => (/* binding */ serial_readstr), -/* harmony export */ serial_readstr_until: () => (/* binding */ serial_readstr_until), -/* harmony export */ serial_receive_data_event: () => (/* binding */ serial_receive_data_event), -/* harmony export */ serial_send_to_ai: () => (/* binding */ serial_send_to_ai), -/* harmony export */ serial_softserial: () => (/* binding */ serial_softserial), -/* harmony export */ serial_softserial_new: () => (/* binding */ serial_softserial_new), -/* harmony export */ system_input: () => (/* binding */ system_input), -/* harmony export */ system_print: () => (/* binding */ system_print), -/* harmony export */ system_print_container: () => (/* binding */ system_print_container), -/* harmony export */ system_print_end: () => (/* binding */ system_print_end), -/* harmony export */ system_print_inline: () => (/* binding */ system_print_inline), -/* harmony export */ system_print_item: () => (/* binding */ system_print_item), -/* harmony export */ system_print_many: () => (/* binding */ system_print_many) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const SERIAL_HUE = 65; //'#58a8de'//65; - -const serial_print_byte = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("CONTENT", String) - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_WRITE + '(' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE + ')'); - //this.setFieldValue('1','mode') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - } -}; - -const serial_print = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("CONTENT", String) - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINT); - //this.setFieldValue('1','mode') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - } -}; - -const serial_println = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("CONTENT", String) - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINTLN); - //this.setFieldValue('1','mode') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_Huanhang_TOOLTIP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - } -}; - -//打印16进制数 -const serial_print_hex = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINTLN); - this.appendValueInput("CONTENT", Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_BIN, "bin"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_OCT, "oct"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_DEC, "int"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_HEX, "hex"]]), "STAT") - .setCheck(Number); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setFieldValue('hex', 'STAT') - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_HEX_TOOLTIP); - } -}; - -const serial_receive_data_event = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput('char_marker') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SERIAL_WHEN_CONTAIN_DATA) - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - } -}; - -const serial_readstr = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READSTR); - //this.setFieldValue('1','mode') - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERIAL_READ_STR); - } -}; - -const serial_any = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_AVAILABLE); - //this.setFieldValue('1','mode') - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_AVAILABLE1); - } -}; - -const serial_readline = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_READ_LINE); - //this.setFieldValue('1','mode') - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_SERIAL_READ_LINE1); - } -}; - -const serial_readstr_until = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_READSTR_UNTIL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["new line", "serial.delimiters(Delimiters.NewLine)"], - [",", "serial.delimiters(Delimiters.Comma)"], - ["$", "serial.delimiters(Delimiters.Dollar)"], - [":", "serial.delimiters(Delimiters.Colon)"], - [".", "serial.delimiters(Delimiters.Fullstop)"], - ["#", "serial.delimiters(Delimiters.Hash)"] - ]), "char_marker"); - - this.setInputsInline(true); - this.setOutput(true, String); - } -}; - -const serial_softserial_new = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("RX") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField("RX#") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendValueInput("TX") - .appendField("TX#") - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_softserial); - } -}; - -const serial_softserial = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1 (RX=23,TX=19)', '1'], ['uart2 (RX=5,TX=18)', '2']]), 'mode'); - //this.setFieldValue('1','mode') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_softserial); - } -}; - -const serial_begin = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate'); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_SET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_BEGIN); - } -}; - -const system_input = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_inout_raw_input) - .setCheck(String); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.INOUT_input_TOOLTIP); - } -} - -const system_print = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINTLN); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BLOCKPY_PRINT_TOOLTIP); - } -}; - -const system_print_inline = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINT); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - } -}; - -const system_print_end = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINT); - this.appendValueInput("END") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ENDSWITH); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP); - } -}; - -const system_print_many = { - - init: function () { - this.setColour(SERIAL_HUE); - - this.itemCount_ = 2; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['system_print_item'], this)); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP); - }, - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('system_print_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('system_print_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i) - .connection.connect(connections[i]); - } - } - }, - - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_INOUT_PRINT_EMPTY); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINTLN); - } - } - } - } -}; -const system_print_container = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SERIAL_PRINTLN); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const system_print_item = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const serial_send_to_ai = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendValueInput("CONTENT") - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMQX_PUBLISH); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_TO + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OTHER + 'MP' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DEVICE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'STAT') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const serial_read_from_ai = { - init: function () { - this.setColour(SERIAL_HUE); - this.appendDummyInput() - .appendField("Serial") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['uart1', '1']]), 'mode') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_READ + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OTHER + 'MP' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DEVICE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SD_DATA); - this.setOutput(true, Boolean); - } -}; - -/***/ }), - -/***/ "../micropython/blocks/system.js": -/*!***************************************!*\ - !*** ../micropython/blocks/system.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Panic_with_status_code: () => (/* binding */ Panic_with_status_code), -/* harmony export */ Timer_init: () => (/* binding */ Timer_init), -/* harmony export */ base_delay: () => (/* binding */ base_delay), -/* harmony export */ controls_delay: () => (/* binding */ controls_delay), -/* harmony export */ controls_delay_new: () => (/* binding */ controls_delay_new), -/* harmony export */ controls_millis: () => (/* binding */ controls_millis), -/* harmony export */ controls_uname: () => (/* binding */ controls_uname), -/* harmony export */ raw_block: () => (/* binding */ raw_block), -/* harmony export */ reset: () => (/* binding */ reset), -/* harmony export */ system_bitbot_shutdown: () => (/* binding */ system_bitbot_shutdown), -/* harmony export */ system_machine_reset: () => (/* binding */ system_machine_reset), -/* harmony export */ system_ticks_diff: () => (/* binding */ system_ticks_diff), -/* harmony export */ system_timer: () => (/* binding */ system_timer), -/* harmony export */ system_timer_init: () => (/* binding */ system_timer_init), -/* harmony export */ system_wdt_feed: () => (/* binding */ system_wdt_feed), -/* harmony export */ system_wdt_init: () => (/* binding */ system_wdt_init), -/* harmony export */ time_ticks_diff: () => (/* binding */ time_ticks_diff), -/* harmony export */ timer: () => (/* binding */ timer), -/* harmony export */ timer2: () => (/* binding */ timer2) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - - -const SYSTEM_HUE = 120; //'#EB8045'; - -const controls_delay_new = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY) - this.appendValueInput("DELAY_TIME", Number) - .setCheck(Number); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND, "s"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "ms"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "us"]]), 'Time'); - this.setFieldValue('s', 'Time') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_DELAY); - } -}; - -const controls_delay = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SECOND, "s"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "ms"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "us"]]), 'Time'); - this.appendValueInput("DELAY_TIME", Number) - .setCheck(Number); - this.setFieldValue('ms', 'Time') - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_DELAY); - } -}; - -const Panic_with_status_code = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendValueInput("STATUS_CODE", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Panic_with_status_code) - .setCheck(Number); - this.setPreviousStatement(true, null); - // this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Panic_with_status_code); - } -}; - -const reset = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_micro); - this.setPreviousStatement(true); - // this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Reset_micro); - } -}; - -const controls_millis = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RUNTIME); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "ms"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "us"]]), 'Time'); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_CONTROLS_MILLIS_TOOLTIP); - } -}; - -const raw_block = { - // Container. - init: function () { - this.setColour(SYSTEM_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendDummyInput() - .appendField('Code Block:'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput('12345'), 'TEXT'); - } -}; - -const controls_uname = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME); - - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME); - } -}; - -const timer = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendValueInput('VAR') - .appendField("Timer") - .setCheck("var"); - this.appendValueInput('period') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - // .appendField("Timer") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL); - this.appendValueInput('mode') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE); - this.appendValueInput('callback') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_INPUT_DO); - // this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TIMER_TOOLTIP); - } -}; - -const system_timer = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendValueInput('VAR') - .appendField("Timer") - .setCheck("var"); - // .appendField("I2C " + Blockly.Msg.MIXLY_SETUP) - this.appendValueInput("period") - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_ONE_SHOT, "ONE_SHOT"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_PERIODIC, "PERIODIC"]]), "mode"); - this.appendValueInput('callback') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SYSTEM_TIMER_TOOLTIP); - } -}; - -const system_ticks_diff = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendValueInput('END') - // .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TIME_TICKS_DIFF); - this.appendValueInput('START') - // .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TIME_MINUS); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SYSTEM_TICKS_DIFF_TOOLTIP); - } -}; - -const system_timer_init = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput("") - .appendField("Timer") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SYSTEM_TIMER_INIT_TOOLTIP); - } -}; - -const system_wdt_init = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_WDT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - this.appendValueInput('period') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_WDT_TIMEOUT) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_WDT_INIT_TOOLTIP); - } -}; - -const system_wdt_feed = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_WDT) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_FEED) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_WDT_FEED_TOOLTIP); - } -}; - -const system_machine_reset = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_RESET) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MACHINE_RESET_TOOLTIP); - } -}; - -const system_bitbot_shutdown = { - init: function () { - this.setColour(SYSTEM_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.BITBOT) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SHUTDOWN) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROPYTHON_BITBOT_SHUTDOWN_TOOLTIP); - } -}; - -const Timer_init = system_timer_init; -const timer2 = system_timer; -const time_ticks_diff = system_ticks_diff; -const base_delay = controls_delay; - -/***/ }), - -/***/ "../micropython/blocks/weather.js": -/*!****************************************!*\ - !*** ../micropython/blocks/weather.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Air_daily_content: () => (/* binding */ Air_daily_content), -/* harmony export */ Air_now_content: () => (/* binding */ Air_now_content), -/* harmony export */ Geo_moon_content: () => (/* binding */ Geo_moon_content), -/* harmony export */ Geo_sun_content: () => (/* binding */ Geo_sun_content), -/* harmony export */ Life_suggestion_content: () => (/* binding */ Life_suggestion_content), -/* harmony export */ Location_search_content: () => (/* binding */ Location_search_content), -/* harmony export */ Tide_daily_content: () => (/* binding */ Tide_daily_content), -/* harmony export */ WEATHER_DAILY: () => (/* binding */ WEATHER_DAILY), -/* harmony export */ WEATHER_HOUR: () => (/* binding */ WEATHER_HOUR), -/* harmony export */ WEATHER_NOW: () => (/* binding */ WEATHER_NOW), -/* harmony export */ Weather_alarm_content: () => (/* binding */ Weather_alarm_content), -/* harmony export */ Weather_daily: () => (/* binding */ Weather_daily), -/* harmony export */ Weather_daily_content: () => (/* binding */ Weather_daily_content), -/* harmony export */ Weather_now: () => (/* binding */ Weather_now), -/* harmony export */ Weather_now_content: () => (/* binding */ Weather_now_content) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const WEATHER_HUE = '#27b6ac'; - -const WEATHER_NOW = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catweather) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW, "weather_now"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM, "weather_alarm"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW, "air_now"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY, "tide_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_PLACE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SEARCH, "location_search"] - ]), "mode"); - this.appendValueInput('key') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_API_PRIVATE_KEY); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOGRAPHIC_LOCATION); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const WEATHER_DAILY = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catweather) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY, "weather_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION, "life_suggestion"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY, "air_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN, "geo_sun"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON, "geo_moon"] - ]), "mode"); - this.appendValueInput('key') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_API_PRIVATE_KEY); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOGRAPHIC_LOCATION); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DAILY); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const WEATHER_HOUR = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catweather) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_HOURS); - this.appendValueInput('key') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_API_PRIVATE_KEY); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOGRAPHIC_LOCATION); - this.appendValueInput('hour') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_HOURS); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Weather_now = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catweather) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW, "Weather_now"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM, "Weather_alarm"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW, "Air_now"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY, "Tide_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_PLACE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SEARCH, "Location_search"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION, "Life_suggestion"] - ]), "mode"); - this.appendValueInput('key') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_API_PRIVATE_KEY); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOGRAPHIC_LOCATION); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const Weather_now_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_PHENOMENON, "text"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_PHENOMENON_CODE, "code"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE_UNIT_, "temperature"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_FEEL, "feels_like"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PRESSURE_UNIT, "pressure"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_HUMIDITY, "humidity"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_VISIBILITY, "visibility"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastFx, "wind_direction"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_DIRECT_DEGREE, "wind_direction_degree"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_SPEED, "wind_speed"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_RATING, "wind_scale"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_CLOUDS, "clouds"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Air_now_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_AIRQUAILTY, "api"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_PM25, "pm25"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_PM10, "pm10"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_so2, "so2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_no2, "no2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_co, "co"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_o3, "o3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_pp, "primary_pollutant"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_quailty, "quality"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_last_update, "last_update"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Weather_alarm_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_ALARM_TITLE, "title"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_ALARM_TYPE, "type"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_ALARM_LEVEL, "level"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_ALARM_DESCRIPTION, "description"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEATHER_ALARM_PUB_DATE, "pub_date"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Life_suggestion_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_AC, "ac"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_AP, "air_pollution"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_AIRING, "airing"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_ALLERGY, "allergy"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_BEER, "beer"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_BOATING, "boating"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_CAR_WS, "car_washing"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_CHILL, "chill"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_COMFORT, "comfort"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_DATING, "dating"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_DRESSING, "dressing"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_FISHING, "fishing"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_FLU, "flu"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_HAIR_DRESS, "hair_dressing"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_KITEFLYING, "kiteflying"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_MAKEUP, "makeup"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_MOOD, "mood"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_MORNINIG_SPORT, "morning_sport"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_NIGHT_LIFE, "night_life"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_ROAD_CONDI, "road_condition"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_SHOPPING, "shopping"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_SPORT, "sport"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_SUNSCREEN, "sunscreen"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_TRAFFIC, "traffic"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_TRAVEL, "travel"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_UMBRELLA, "umbrella"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIFE_SUGGESTION_UV, "uv"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Tide_daily_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_DATE, "date"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_HEIGHT, "tide"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_0_TIME, "0,time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_0_HEIGHT, "0,height"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_1_TIME, "1,time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_1_HEIGHT, "1,height"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_2_TIME, "2,time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_2_HEIGHT, "2,height"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_3_TIME, "3,time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIDE_DAILY_3_HEIGHT, "3,height"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Location_search_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_PLACE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SEARCH + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_ID, "id"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_NAME, "name"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_COUNTRY, "country"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_PATH, "path"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_TIMEZONE, "timezone"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOCATION_SEARCH_TIMEZONE_O, "timezone_offset"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Weather_daily = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catweather) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY, "Weather_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY, "Air_daily"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN, "Geo_sun"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON, "Geo_moon"] - ]), "mode"); - this.appendValueInput('key') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_API_PRIVATE_KEY); - this.appendValueInput('addr') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GEOGRAPHIC_LOCATION); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DAILY); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const Weather_daily_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_DATE, "date"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAYTIME_WEATHER_PHENOMENON, "text_day"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DAYTIME_WEATHER_PHENOMENON_CODE, "code_day"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EVENING_WEATHER_PHENOMENON, "text_night"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EVENING_WEATHER_PHENOMENON_CODE, "code_night"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastHigh + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE_UNIT_, "high"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastLow + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEMPERATURE_UNIT_, "low"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PROBABILITY_OF_PRECIPITATION, "precip"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ForecastFx, "wind_direction"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_DIRECT_DEGREE, "wind_direction_degree"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_SPEED, "wind_speed"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIND_RATING, "wind_scale"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RAINFALL, "rainfall"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_HUMIDITY, "humidity"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Air_daily_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_AIRQUAILTY, "api"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_PM25, "pm25"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_PM10, "pm10"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_so2, "so2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_no2, "no2"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_co, "co"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_o3, "o3"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIR_NOW_quailty, "quality"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_DATE, "date"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Geo_sun_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_DATE, "date"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SUNRISE_T, "sunrise"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SUNSET_T, "sunset"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const Geo_moon_content = { - init: function () { - this.setColour(WEATHER_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON); - this.appendValueInput('day') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMETER_FREE, "none"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GPS_DATE, "date"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLT_MOONRISE_T, "rise"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOONSET_T, "set"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOON_FRACTION, "fraction"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOON_PHASE, "phase"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MOON_PHASE_NAME, "phase_name"] - ]), "content"); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -/***/ }), - -/***/ "../micropython/export.js": -/*!********************************!*\ - !*** ../micropython/export.js ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MicroPythonAIBlocks: () => (/* reexport module object */ _blocks_ai__WEBPACK_IMPORTED_MODULE_4__), -/* harmony export */ MicroPythonAIGenerators: () => (/* reexport module object */ _generators_ai__WEBPACK_IMPORTED_MODULE_30__), -/* harmony export */ MicroPythonAISensorBlocks: () => (/* reexport module object */ _blocks_ai_sensor__WEBPACK_IMPORTED_MODULE_3__), -/* harmony export */ MicroPythonAISensorGenerators: () => (/* reexport module object */ _generators_ai_sensor__WEBPACK_IMPORTED_MODULE_29__), -/* harmony export */ MicroPythonActuatorBlocks: () => (/* reexport module object */ _blocks_actuator__WEBPACK_IMPORTED_MODULE_2__), -/* harmony export */ MicroPythonActuatorExternBlocks: () => (/* reexport module object */ _blocks_actuator_extern__WEBPACK_IMPORTED_MODULE_0__), -/* harmony export */ MicroPythonActuatorExternGenerators: () => (/* reexport module object */ _generators_actuator_extern__WEBPACK_IMPORTED_MODULE_26__), -/* harmony export */ MicroPythonActuatorGenerators: () => (/* reexport module object */ _generators_actuator__WEBPACK_IMPORTED_MODULE_28__), -/* harmony export */ MicroPythonActuatorOnBoardBlocks: () => (/* reexport module object */ _blocks_actuator_onboard__WEBPACK_IMPORTED_MODULE_1__), -/* harmony export */ MicroPythonActuatorOnBoardGenerators: () => (/* reexport module object */ _generators_actuator_onboard__WEBPACK_IMPORTED_MODULE_27__), -/* harmony export */ MicroPythonBlynkBlocks: () => (/* reexport module object */ _blocks_blynk__WEBPACK_IMPORTED_MODULE_5__), -/* harmony export */ MicroPythonBlynkGenerators: () => (/* reexport module object */ _generators_blynk__WEBPACK_IMPORTED_MODULE_31__), -/* harmony export */ MicroPythonCCG1Blocks: () => (/* reexport module object */ _blocks_cc_g1__WEBPACK_IMPORTED_MODULE_6__), -/* harmony export */ MicroPythonCCG1Generators: () => (/* reexport module object */ _generators_cc_g1__WEBPACK_IMPORTED_MODULE_32__), -/* harmony export */ MicroPythonCEGOBlocks: () => (/* reexport module object */ _blocks_ce_go__WEBPACK_IMPORTED_MODULE_7__), -/* harmony export */ MicroPythonCEGOGenerators: () => (/* reexport module object */ _generators_ce_go__WEBPACK_IMPORTED_MODULE_33__), -/* harmony export */ MicroPythonCommunicateBlocks: () => (/* reexport module object */ _blocks_communicate__WEBPACK_IMPORTED_MODULE_8__), -/* harmony export */ MicroPythonCommunicateGenerators: () => (/* reexport module object */ _generators_communicate__WEBPACK_IMPORTED_MODULE_34__), -/* harmony export */ MicroPythonControlBlocks: () => (/* reexport module object */ _blocks_control__WEBPACK_IMPORTED_MODULE_9__), -/* harmony export */ MicroPythonControlGenerators: () => (/* reexport module object */ _generators_control__WEBPACK_IMPORTED_MODULE_35__), -/* harmony export */ MicroPythonDisplayBlocks: () => (/* reexport module object */ _blocks_display__WEBPACK_IMPORTED_MODULE_12__), -/* harmony export */ MicroPythonDisplayExternBlocks: () => (/* reexport module object */ _blocks_display_extern__WEBPACK_IMPORTED_MODULE_10__), -/* harmony export */ MicroPythonDisplayExternGenerators: () => (/* reexport module object */ _generators_display_extern__WEBPACK_IMPORTED_MODULE_36__), -/* harmony export */ MicroPythonDisplayGenerators: () => (/* reexport module object */ _generators_display__WEBPACK_IMPORTED_MODULE_38__), -/* harmony export */ MicroPythonDisplayOnBoardBlocks: () => (/* reexport module object */ _blocks_display_onboard__WEBPACK_IMPORTED_MODULE_11__), -/* harmony export */ MicroPythonDisplayOnBoardGenerators: () => (/* reexport module object */ _generators_display_onboard__WEBPACK_IMPORTED_MODULE_37__), -/* harmony export */ MicroPythonFactoryBlocks: () => (/* reexport module object */ _blocks_factory__WEBPACK_IMPORTED_MODULE_13__), -/* harmony export */ MicroPythonFactoryGenerators: () => (/* reexport module object */ _generators_factory__WEBPACK_IMPORTED_MODULE_39__), -/* harmony export */ MicroPythonInputBlocks: () => (/* reexport module object */ _blocks_inout__WEBPACK_IMPORTED_MODULE_14__), -/* harmony export */ MicroPythonInputGenerators: () => (/* reexport module object */ _generators_inout__WEBPACK_IMPORTED_MODULE_40__), -/* harmony export */ MicroPythonIotBlocks: () => (/* reexport module object */ _blocks_iot__WEBPACK_IMPORTED_MODULE_15__), -/* harmony export */ MicroPythonIotGenerators: () => (/* reexport module object */ _generators_iot__WEBPACK_IMPORTED_MODULE_41__), -/* harmony export */ MicroPythonNetworkBlocks: () => (/* reexport module object */ _blocks_network__WEBPACK_IMPORTED_MODULE_16__), -/* harmony export */ MicroPythonNetworkGenerators: () => (/* reexport module object */ _generators_network__WEBPACK_IMPORTED_MODULE_42__), -/* harmony export */ MicroPythonNovaG1Blocks: () => (/* reexport module object */ _blocks_nova_g1__WEBPACK_IMPORTED_MODULE_17__), -/* harmony export */ MicroPythonNovaG1Generators: () => (/* reexport module object */ _generators_nova_g1__WEBPACK_IMPORTED_MODULE_43__), -/* harmony export */ MicroPythonPeG1Blocks: () => (/* reexport module object */ _blocks_pe_g1__WEBPACK_IMPORTED_MODULE_18__), -/* harmony export */ MicroPythonPeG1Generators: () => (/* reexport module object */ _generators_pe_g1__WEBPACK_IMPORTED_MODULE_44__), -/* harmony export */ MicroPythonPinsBlocks: () => (/* reexport module object */ _blocks_pins__WEBPACK_IMPORTED_MODULE_19__), -/* harmony export */ MicroPythonPinsGenerators: () => (/* reexport module object */ _generators_pins__WEBPACK_IMPORTED_MODULE_45__), -/* harmony export */ MicroPythonSensorBlocks: () => (/* reexport module object */ _blocks_sensor__WEBPACK_IMPORTED_MODULE_22__), -/* harmony export */ MicroPythonSensorExternBlocks: () => (/* reexport module object */ _blocks_sensor_extern__WEBPACK_IMPORTED_MODULE_20__), -/* harmony export */ MicroPythonSensorExternGenerators: () => (/* reexport module object */ _generators_sensor_extern__WEBPACK_IMPORTED_MODULE_46__), -/* harmony export */ MicroPythonSensorGenerators: () => (/* reexport module object */ _generators_sensor__WEBPACK_IMPORTED_MODULE_48__), -/* harmony export */ MicroPythonSensorOnBoardBlocks: () => (/* reexport module object */ _blocks_sensor_onboard__WEBPACK_IMPORTED_MODULE_21__), -/* harmony export */ MicroPythonSensorOnBoardGenerators: () => (/* reexport module object */ _generators_sensor_onboard__WEBPACK_IMPORTED_MODULE_47__), -/* harmony export */ MicroPythonSerialBlocks: () => (/* reexport module object */ _blocks_serial__WEBPACK_IMPORTED_MODULE_23__), -/* harmony export */ MicroPythonSerialGenerators: () => (/* reexport module object */ _generators_serial__WEBPACK_IMPORTED_MODULE_49__), -/* harmony export */ MicroPythonSystemBlocks: () => (/* reexport module object */ _blocks_system__WEBPACK_IMPORTED_MODULE_24__), -/* harmony export */ MicroPythonSystemGenerators: () => (/* reexport module object */ _generators_system__WEBPACK_IMPORTED_MODULE_50__), -/* harmony export */ MicroPythonWeatherBlocks: () => (/* reexport module object */ _blocks_weather__WEBPACK_IMPORTED_MODULE_25__), -/* harmony export */ MicroPythonWeatherGenerators: () => (/* reexport module object */ _generators_weather__WEBPACK_IMPORTED_MODULE_51__) -/* harmony export */ }); -/* harmony import */ var _blocks_actuator_extern__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blocks/actuator_extern */ "../micropython/blocks/actuator_extern.js"); -/* harmony import */ var _blocks_actuator_onboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blocks/actuator_onboard */ "../micropython/blocks/actuator_onboard.js"); -/* harmony import */ var _blocks_actuator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blocks/actuator */ "../micropython/blocks/actuator.js"); -/* harmony import */ var _blocks_ai_sensor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blocks/ai_sensor */ "../micropython/blocks/ai_sensor.js"); -/* harmony import */ var _blocks_ai__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blocks/ai */ "../micropython/blocks/ai.js"); -/* harmony import */ var _blocks_blynk__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blocks/blynk */ "../micropython/blocks/blynk.js"); -/* harmony import */ var _blocks_cc_g1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blocks/cc_g1 */ "../micropython/blocks/cc_g1.js"); -/* harmony import */ var _blocks_ce_go__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blocks/ce_go */ "../micropython/blocks/ce_go.js"); -/* harmony import */ var _blocks_communicate__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./blocks/communicate */ "../micropython/blocks/communicate.js"); -/* harmony import */ var _blocks_control__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./blocks/control */ "../micropython/blocks/control.js"); -/* harmony import */ var _blocks_display_extern__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./blocks/display_extern */ "../micropython/blocks/display_extern.js"); -/* harmony import */ var _blocks_display_onboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./blocks/display_onboard */ "../micropython/blocks/display_onboard.js"); -/* harmony import */ var _blocks_display__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./blocks/display */ "../micropython/blocks/display.js"); -/* harmony import */ var _blocks_factory__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./blocks/factory */ "../micropython/blocks/factory.js"); -/* harmony import */ var _blocks_inout__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./blocks/inout */ "../micropython/blocks/inout.js"); -/* harmony import */ var _blocks_iot__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./blocks/iot */ "../micropython/blocks/iot.js"); -/* harmony import */ var _blocks_network__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./blocks/network */ "../micropython/blocks/network.js"); -/* harmony import */ var _blocks_nova_g1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./blocks/nova_g1 */ "../micropython/blocks/nova_g1.js"); -/* harmony import */ var _blocks_pe_g1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./blocks/pe_g1 */ "../micropython/blocks/pe_g1.js"); -/* harmony import */ var _blocks_pins__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./blocks/pins */ "../micropython/blocks/pins.js"); -/* harmony import */ var _blocks_sensor_extern__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./blocks/sensor_extern */ "../micropython/blocks/sensor_extern.js"); -/* harmony import */ var _blocks_sensor_onboard__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./blocks/sensor_onboard */ "../micropython/blocks/sensor_onboard.js"); -/* harmony import */ var _blocks_sensor__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./blocks/sensor */ "../micropython/blocks/sensor.js"); -/* harmony import */ var _blocks_serial__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./blocks/serial */ "../micropython/blocks/serial.js"); -/* harmony import */ var _blocks_system__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./blocks/system */ "../micropython/blocks/system.js"); -/* harmony import */ var _blocks_weather__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./blocks/weather */ "../micropython/blocks/weather.js"); -/* harmony import */ var _generators_actuator_extern__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./generators/actuator_extern */ "../micropython/generators/actuator_extern.js"); -/* harmony import */ var _generators_actuator_onboard__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./generators/actuator_onboard */ "../micropython/generators/actuator_onboard.js"); -/* harmony import */ var _generators_actuator__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./generators/actuator */ "../micropython/generators/actuator.js"); -/* harmony import */ var _generators_ai_sensor__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./generators/ai_sensor */ "../micropython/generators/ai_sensor.js"); -/* harmony import */ var _generators_ai__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./generators/ai */ "../micropython/generators/ai.js"); -/* harmony import */ var _generators_blynk__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./generators/blynk */ "../micropython/generators/blynk.js"); -/* harmony import */ var _generators_cc_g1__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./generators/cc_g1 */ "../micropython/generators/cc_g1.js"); -/* harmony import */ var _generators_ce_go__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./generators/ce_go */ "../micropython/generators/ce_go.js"); -/* harmony import */ var _generators_communicate__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./generators/communicate */ "../micropython/generators/communicate.js"); -/* harmony import */ var _generators_control__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./generators/control */ "../micropython/generators/control.js"); -/* harmony import */ var _generators_display_extern__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! ./generators/display_extern */ "../micropython/generators/display_extern.js"); -/* harmony import */ var _generators_display_onboard__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! ./generators/display_onboard */ "../micropython/generators/display_onboard.js"); -/* harmony import */ var _generators_display__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! ./generators/display */ "../micropython/generators/display.js"); -/* harmony import */ var _generators_factory__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! ./generators/factory */ "../micropython/generators/factory.js"); -/* harmony import */ var _generators_inout__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(/*! ./generators/inout */ "../micropython/generators/inout.js"); -/* harmony import */ var _generators_iot__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(/*! ./generators/iot */ "../micropython/generators/iot.js"); -/* harmony import */ var _generators_network__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(/*! ./generators/network */ "../micropython/generators/network.js"); -/* harmony import */ var _generators_nova_g1__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(/*! ./generators/nova_g1 */ "../micropython/generators/nova_g1.js"); -/* harmony import */ var _generators_pe_g1__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(/*! ./generators/pe_g1 */ "../micropython/generators/pe_g1.js"); -/* harmony import */ var _generators_pins__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(/*! ./generators/pins */ "../micropython/generators/pins.js"); -/* harmony import */ var _generators_sensor_extern__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(/*! ./generators/sensor_extern */ "../micropython/generators/sensor_extern.js"); -/* harmony import */ var _generators_sensor_onboard__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(/*! ./generators/sensor_onboard */ "../micropython/generators/sensor_onboard.js"); -/* harmony import */ var _generators_sensor__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(/*! ./generators/sensor */ "../micropython/generators/sensor.js"); -/* harmony import */ var _generators_serial__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(/*! ./generators/serial */ "../micropython/generators/serial.js"); -/* harmony import */ var _generators_system__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(/*! ./generators/system */ "../micropython/generators/system.js"); -/* harmony import */ var _generators_weather__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(/*! ./generators/weather */ "../micropython/generators/weather.js"); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ "../micropython/generators/actuator.js": -/*!*********************************************!*\ - !*** ../micropython/generators/actuator.js ***! - \*********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actuator_extern_get_led_bright: () => (/* binding */ actuator_extern_get_led_bright), -/* harmony export */ actuator_extern_led_bright: () => (/* binding */ actuator_extern_led_bright), -/* harmony export */ actuator_extern_led_brightness: () => (/* binding */ actuator_extern_led_brightness), -/* harmony export */ actuator_get_led_bright: () => (/* binding */ actuator_get_led_bright), -/* harmony export */ actuator_led_bright: () => (/* binding */ actuator_led_bright), -/* harmony export */ actuator_led_brightness: () => (/* binding */ actuator_led_brightness), -/* harmony export */ actuator_neopixel_init: () => (/* binding */ actuator_neopixel_init), -/* harmony export */ actuator_neopixel_rgb: () => (/* binding */ actuator_neopixel_rgb), -/* harmony export */ actuator_neopixel_write: () => (/* binding */ actuator_neopixel_write), -/* harmony export */ actuator_onboard_neopixel_rgb: () => (/* binding */ actuator_onboard_neopixel_rgb), -/* harmony export */ actuator_onboard_neopixel_rgb_all: () => (/* binding */ actuator_onboard_neopixel_rgb_all), -/* harmony export */ actuator_onboard_neopixel_write: () => (/* binding */ actuator_onboard_neopixel_write), -/* harmony export */ esp32_mixgo_music_play_list_show: () => (/* binding */ esp32_mixgo_music_play_list_show), -/* harmony export */ esp32_music_get_tempo: () => (/* binding */ esp32_music_get_tempo), -/* harmony export */ esp32_music_pitch: () => (/* binding */ esp32_music_pitch), -/* harmony export */ esp32_music_pitch_with_time: () => (/* binding */ esp32_music_pitch_with_time), -/* harmony export */ esp32_music_play_list: () => (/* binding */ esp32_music_play_list), -/* harmony export */ esp32_music_reset: () => (/* binding */ esp32_music_reset), -/* harmony export */ esp32_music_set_tempo: () => (/* binding */ esp32_music_set_tempo), -/* harmony export */ esp32_music_stop: () => (/* binding */ esp32_music_stop), -/* harmony export */ esp32_onboard_music_pitch: () => (/* binding */ esp32_onboard_music_pitch), -/* harmony export */ esp32_onboard_music_pitch_with_time: () => (/* binding */ esp32_onboard_music_pitch_with_time), -/* harmony export */ esp32_onboard_music_play_list: () => (/* binding */ esp32_onboard_music_play_list), -/* harmony export */ esp32_onboard_music_stop: () => (/* binding */ esp32_onboard_music_stop), -/* harmony export */ get_led_bright: () => (/* binding */ get_led_bright), -/* harmony export */ led_brightness: () => (/* binding */ led_brightness), -/* harmony export */ led_light: () => (/* binding */ led_light), -/* harmony export */ ledswitch: () => (/* binding */ ledswitch), -/* harmony export */ number: () => (/* binding */ number), -/* harmony export */ servo_move: () => (/* binding */ servo_move) -/* harmony export */ }); -const esp32_music_pitch = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'music.pitch(' + pin + ', ' + number_pitch + ')\n'; - return code; -} - -const esp32_music_pitch_with_time = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'music.pitch_time(' + pin + ', ' + number_pitch + ', ' + number_time + ')\n'; - return code; -} - -const esp32_music_stop = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'music.stop(' + pin + ')\n'; - return code; -} - -const esp32_music_set_tempo = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT); - var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT); - var code = "music.set_tempo(" + ticks + ", " + bpm + ")\n"; - return code; -} - -const esp32_music_get_tempo = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var code = "music.get_tempo()"; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_onboard_music_pitch = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC); - var code = 'music.pitch(' + number_pitch + ')\n'; - return code; -} - -const esp32_onboard_music_pitch_with_time = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var code = 'music.pitch_time(' + number_pitch + ', ' + number_time + ')\n'; - return code; -} - -const esp32_onboard_music_stop = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var code = 'music.stop(' + ')\n'; - return code; -} - -const esp32_onboard_music_play_list = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT); - var code = "music.play(" + lst + ")\n"; - return code; -} - -const esp32_music_play_list = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ASSIGNMENT); - var code = "music.play(" + lst + ", " + pin + ")\n"; - return code; -} - -const esp32_mixgo_music_play_list_show = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - generator.definitions_['import_matrix'] = 'import matrix'; - var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ASSIGNMENT); - // var display = generator.valueToCode(this, 'DISPLAY', generator.ORDER_ASSIGNMENT); - var code = "music.play_show(" + lst + ", " + pin + ")\n"; - return code; -} - -const esp32_music_reset = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - return "music.reset()\n"; -} - -const servo_move = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC); - var code = 'servo.servo_write_angle(' + dropdown_pin + ',' + value_degree + ')\n'; - return code; -} - -const number = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const ledswitch = function (_, generator) { - var code = this.getFieldValue('flag'); - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_extern_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - // var bright = this.getFieldValue('bright'); - var code = "mixgo.led(" + pin + ").setonoff(" + bright + ")\n"; - return code; -} - -const actuator_extern_get_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = "mixgo.led(" + pin + ").getonoff(" + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_extern_led_brightness = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = 'mixgo.led(' + pin + ').setbrightness(' + flag + ')\n'; - return code; -} - -const actuator_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - // var bright = this.getFieldValue('bright'); - var code = "mixgo.led" + op + ".setonoff(" + bright + ")\n"; - return code; -} - -const actuator_get_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var code = "mixgo.led" + op + ".getonoff(" + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_led_brightness = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = 'mixgo.led' + op + '.setbrightness(' + flag + ')\n'; - return code; -} - -const actuator_neopixel_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var code = v + ' = neopixel.NeoPixel(machine.Pin(' + dropdown_rgbpin + '), ' + value_ledcount + ', timing = True)\n'; - return code; -} - -const actuator_neopixel_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.write()\n'; - return code; -} - -const actuator_neopixel_rgb = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = v + '[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n'; - return code; -} - -const actuator_onboard_neopixel_write = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var code = 'mixgo.rgb.write()\n'; - return code; -} - -const actuator_onboard_neopixel_rgb = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = 'mixgo.rgb[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n'; - return code; -} - -const actuator_onboard_neopixel_rgb_all = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = 'mixgo.rgb.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\n'; - return code; -} - -const led_light = actuator_led_bright; -const get_led_bright = actuator_get_led_bright; -const led_brightness = actuator_led_brightness; - -/***/ }), - -/***/ "../micropython/generators/actuator_extern.js": -/*!****************************************************!*\ - !*** ../micropython/generators/actuator_extern.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ PIN_init: () => (/* binding */ PIN_init), -/* harmony export */ actuator_extern_get_led_bright: () => (/* binding */ actuator_extern_get_led_bright), -/* harmony export */ actuator_extern_get_led_state: () => (/* binding */ actuator_extern_get_led_state), -/* harmony export */ actuator_extern_led_bright: () => (/* binding */ actuator_extern_led_bright), -/* harmony export */ actuator_extern_led_brightness: () => (/* binding */ actuator_extern_led_brightness), -/* harmony export */ actuator_ms32006_dcmotor: () => (/* binding */ actuator_ms32006_dcmotor), -/* harmony export */ actuator_ms32006_init: () => (/* binding */ actuator_ms32006_init), -/* harmony export */ actuator_ms32006_stepper: () => (/* binding */ actuator_ms32006_stepper), -/* harmony export */ actuator_neopixel_init: () => (/* binding */ actuator_neopixel_init), -/* harmony export */ actuator_neopixel_rgb: () => (/* binding */ actuator_neopixel_rgb), -/* harmony export */ actuator_neopixel_rgb_all: () => (/* binding */ actuator_neopixel_rgb_all), -/* harmony export */ actuator_neopixel_write: () => (/* binding */ actuator_neopixel_write), -/* harmony export */ actuator_use_uart_init: () => (/* binding */ actuator_use_uart_init), -/* harmony export */ esp32_music_get_tempo_extern: () => (/* binding */ esp32_music_get_tempo_extern), -/* harmony export */ esp32_music_pitch: () => (/* binding */ esp32_music_pitch), -/* harmony export */ esp32_music_pitch_init: () => (/* binding */ esp32_music_pitch_init), -/* harmony export */ esp32_music_pitch_with_time: () => (/* binding */ esp32_music_pitch_with_time), -/* harmony export */ esp32_music_play_list: () => (/* binding */ esp32_music_play_list), -/* harmony export */ esp32_music_reset_extern: () => (/* binding */ esp32_music_reset_extern), -/* harmony export */ esp32_music_set_tempo_extern: () => (/* binding */ esp32_music_set_tempo_extern), -/* harmony export */ esp32_music_stop: () => (/* binding */ esp32_music_stop), -/* harmony export */ mixbot_actuator_extern_get_addr: () => (/* binding */ mixbot_actuator_extern_get_addr), -/* harmony export */ mixbot_actuator_extern_set_addr: () => (/* binding */ mixbot_actuator_extern_set_addr), -/* harmony export */ mixbot_addr_extern: () => (/* binding */ mixbot_addr_extern), -/* harmony export */ parrot_PIN_init: () => (/* binding */ parrot_PIN_init), -/* harmony export */ parrot_move_speed: () => (/* binding */ parrot_move_speed), -/* harmony export */ pin_led_bright: () => (/* binding */ pin_led_bright), -/* harmony export */ player_play_music: () => (/* binding */ player_play_music), -/* harmony export */ player_set_mode: () => (/* binding */ player_set_mode), -/* harmony export */ player_set_play: () => (/* binding */ player_set_play), -/* harmony export */ player_set_volume: () => (/* binding */ player_set_volume), -/* harmony export */ player_whether_stop: () => (/* binding */ player_whether_stop), -/* harmony export */ robot_led_extern: () => (/* binding */ robot_led_extern), -/* harmony export */ robot_led_extern_get_value: () => (/* binding */ robot_led_extern_get_value), -/* harmony export */ robot_motor_extern: () => (/* binding */ robot_motor_extern), -/* harmony export */ robot_motor_extern_get_speed: () => (/* binding */ robot_motor_extern_get_speed), -/* harmony export */ robot_servo_extern_absolute_run: () => (/* binding */ robot_servo_extern_absolute_run), -/* harmony export */ robot_servo_extern_get_status: () => (/* binding */ robot_servo_extern_get_status), -/* harmony export */ robot_servo_extern_relative_continue: () => (/* binding */ robot_servo_extern_relative_continue), -/* harmony export */ robot_servo_extern_relative_origin: () => (/* binding */ robot_servo_extern_relative_origin), -/* harmony export */ robot_servo_extern_relative_run: () => (/* binding */ robot_servo_extern_relative_run), -/* harmony export */ robot_servo_extern_stop: () => (/* binding */ robot_servo_extern_stop), -/* harmony export */ robot_servo_extern_stop_mode: () => (/* binding */ robot_servo_extern_stop_mode), -/* harmony export */ robot_traffic_light_extern: () => (/* binding */ robot_traffic_light_extern), -/* harmony export */ servo_PIN_init: () => (/* binding */ servo_PIN_init), -/* harmony export */ servo_get_angle: () => (/* binding */ servo_get_angle), -/* harmony export */ servo_get_speed: () => (/* binding */ servo_get_speed), -/* harmony export */ servo_init: () => (/* binding */ servo_init), -/* harmony export */ servo_move: () => (/* binding */ servo_move), -/* harmony export */ servo_move_angle: () => (/* binding */ servo_move_angle), -/* harmony export */ servo_set_angle: () => (/* binding */ servo_set_angle), -/* harmony export */ servo_set_speed: () => (/* binding */ servo_set_speed), -/* harmony export */ servo_speed_360: () => (/* binding */ servo_speed_360), -/* harmony export */ syn6288_builtin_voice: () => (/* binding */ syn6288_builtin_voice), -/* harmony export */ syn6288_get_voice: () => (/* binding */ syn6288_get_voice), -/* harmony export */ syn6288_set_voice: () => (/* binding */ syn6288_set_voice), -/* harmony export */ syn6288_tts_play: () => (/* binding */ syn6288_tts_play) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const servo_init = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - generator.definitions_['import_board'] = 'import board'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = v + ' = servo.Servo(board.' + dropdown_pin + ')\n'; - return code; -} - -const servo_speed_360 = function (_, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var speed = generator.valueToCode(this, 'SPEED', generator.ORDER_ATOMIC); - var code = v + '.set_speed(' + speed + ')\n'; - return code; -} - -const servo_set_angle = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var code = 'servo.servo180_angle(' + dropdown_pin + ',' + num + ')\n'; - return code; -} - -const servo_set_speed = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var code = 'servo.servo360_speed(' + dropdown_pin + ',' + num + ')\n'; - return code; -} - -const servo_get_angle = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'servo.servo180_angle(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const servo_get_speed = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'servo.servo360_speed(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_ms32006_init = function (_, generator) { - generator.definitions_['import ms32006'] = 'import ms32006'; - var address = this.getFieldValue('mode') - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sub1 = generator.valueToCode(this, 'SUB1', generator.ORDER_ATOMIC); - var code = sub + '=ms32006.MS32006(' + sub1 + ',addr=' + address + ')\n'; - return code; -} - -const actuator_ms32006_dcmotor = function (_, generator) { - generator.definitions_['import ms32006'] = 'import ms32006'; - var direction = this.getFieldValue('direction') - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = sub + '.dc_motor(' + direction + ',' + speed + ')\n'; - return code; -} - -const actuator_ms32006_stepper = function (_, generator) { - generator.definitions_['import ms32006'] = 'import ms32006'; - var mode = this.getFieldValue('mode') - var direction = this.getFieldValue('direction') - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var steps = generator.valueToCode(this, 'steps', generator.ORDER_ATOMIC); - var code = sub + '.move(' + mode + ',' + direction + ',' + speed + ',' + steps + ')\n'; - return code; -} - -const esp32_music_pitch_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - generator.definitions_['import_music'] = 'import music'; - var code = v + ' = music.MIDI(' + dropdown_rgbpin + ')\n'; - return code; -} - -const esp32_music_pitch = function (block, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var code = v + '.pitch(' + number_pitch + ')\n'; - return code; -} - -const esp32_music_pitch_with_time = function (block, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC); - var code = v + '.pitch_time(' + number_pitch + ', ' + number_time + ')\n'; - return code; -} - -const esp32_music_stop = function (block, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.stop(' + ')\n'; - return code; -} - -const esp32_music_set_tempo_extern = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT); - var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT); - var code = v + ".set_tempo(" + ticks + ", " + bpm + ")\n"; - return code; -} - -const esp32_music_get_tempo_extern = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + ".get_tempo()"; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_music_play_list = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + ".play(" + v + '.' + lst + ")\n"; - return code; -} - -const esp32_music_reset_extern = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return v + ".reset()\n"; -} - -const servo_move = function (_, generator) { - generator.definitions_['import_servo'] = 'import servo'; - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC); - var code = 'servo.servo_write_angle(' + dropdown_pin + ',' + value_degree + ')\n'; - return code; -} - -const actuator_extern_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - // var bright = this.getFieldValue('bright'); - var code = "mixgo.LED(" + pin + ").setonoff(" + bright + ")\n"; - return code; -} - -const actuator_extern_get_led_bright = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = "mixgo.LED(" + pin + ").getbrightness(" + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_extern_get_led_state = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = "mixgo.LED(" + pin + ").getonoff(" + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_extern_led_brightness = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = 'mixgo.LED(' + pin + ').setbrightness(' + flag + ')\n'; - return code; -} - -const actuator_neopixel_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var code = v + ' = neopixel.NeoPixel(machine.Pin(' + dropdown_rgbpin + '), ' + value_ledcount + ')\n'; - return code; -} - -const actuator_neopixel_rgb_all = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = v + '.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\n'; - return code; -} - -const actuator_neopixel_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.write()\n'; - return code; -} - -const actuator_neopixel_rgb = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_neopixel'] = 'import neopixel'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = v + '[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n'; - return code; -} - -const actuator_use_uart_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var key2 = this.getFieldValue('key2'); - if (key2=='SYN6288'){ - generator.definitions_['import_syn6288'] = 'import syn6288'; - var code = v + '=syn6288.SYN6288(' + key + ')\n'; - return code; - }else if(key2=='NS9300'){ - generator.definitions_['import_ns9300'] = 'import ns9300'; - var code = v + '=ns9300.NS9300(' + key + ')\n'; - return code; - } - -} - -const player_whether_stop = function(_,generator){ - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v+'.status('+key+')'; - return [code,generator.ORDER_ATOMIC]; -} - -const player_set_play = function(_,generator){ - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v+'.control('+key+')\n'; - return code; -} - -const player_set_volume = function(_,generator){ - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var vol = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC); - var code = v+'.volume('+vol+')\n'; - return code; -} - -const player_set_mode = function(_,generator){ - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v +'.mode('+key+')\n'; - return code; -} - -const player_play_music = function(_,generator){ - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var s = generator.valueToCode(this, 'song', generator.ORDER_ATOMIC); - var code = v +'.'+key+'('+s+')\n'; - return code; -} - -const syn6288_set_voice = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT); - var code = v + ".volume(" + voice + ")\n"; - return code; -} - -const syn6288_get_voice = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + ".volume()"; - return [code, generator.ORDER_ATOMIC]; -} - -const syn6288_builtin_voice = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT); - var code = v + ".hint_tones(" + voice + ',blocking=' + mode + ")\n"; - return code; -} - -const syn6288_tts_play = function (_, generator) { - generator.definitions_['import_music'] = 'import music'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".synthesis(" + data + ',music=' + voice + ',blocking=' + mode + ")\n"; - return code; -} - -//mixbot extern below: -const mixbot_addr_extern = function (_, generator) { - var code = this.getFieldValue('PIN'); - return [code, generator.ORDER_ATOMIC]; -} - -const robot_motor_extern = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_motor'] = 'from mixbot_ext import ext_motor'; - var code = 'ext_motor.run(' + mode + ',' + speed + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_motor'] = 'ext_motor_left = i2cdevice.Motor(ext_i2c_left)'; - var code = 'ext_motor_left.run(0,' + speed + ')\n'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_motor'] = 'ext_motor_right = i2cdevice.Motor(ext_i2c_right)'; - var code = 'ext_motor_right.run(0,' + speed + ')\n'; - } - return code; - } -} - -const robot_motor_extern_get_speed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - var code = 'ext_motor.run(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_motor'] = 'ext_motor_left = i2cdevice.Motor(ext_i2c_left)'; - var code = 'ext_motor_left.run()'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_motor'] = 'ext_motor_right = i2cdevice.Motor(ext_i2c_right)'; - var code = 'ext_motor_right.run()'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_traffic_light_extern = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var light = this.getFieldValue('light'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_traffic'] = 'from mixbot_ext import ext_traffic'; - var mode = this.getFieldValue('mode'); - var light = this.getFieldValue('light'); - var code = 'ext_traffic.led(' + mode + ','; - if (light == '0' || light == '1' || light == '2') { code += '0' + ',' } - else if (light == '3' || light == '4') { code += '1' + ',' } - else if (light == '5' || light == '6') { code += '2' + ',' } - if (light == '0') { code += '0' } - else if (light == '1' || light == '3' || light == '5') { code += '1' } - else if (light == '2' || light == '4' || light == '6') { code += '-1' } - code += ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_traffic'] = 'ext_traffic_left = i2cdevice.Traffic_LED(ext_i2c_left)'; - var code = 'ext_traffic_left.led(0,'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_traffic'] = 'ext_traffic_right = i2cdevice.Traffic_LED(ext_i2c_right)'; - var code = 'ext_traffic_right.led(0,'; - } - if (light == '0' || light == '1' || light == '2') { code += '0' + ',' } - else if (light == '3' || light == '4') { code += '1' + ',' } - else if (light == '5' || light == '6') { code += '2' + ',' } - if (light == '0') { code += '0' } - else if (light == '1' || light == '3' || light == '5') { code += '1' } - else if (light == '2' || light == '4' || light == '6') { code += '-1' } - code += ")\n"; - return code; - } -} - -const robot_led_extern = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var color = this.getFieldValue('color'); - var value = generator.valueToCode(this, 'value', generator.ORDER_ATOMIC); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_' + color + '_LED'] = 'from mixbot_ext import ' + color + '_LED'; - var code = color + '_LED.brightness(' + mode + ',' + value + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_' + color + '_LED'] = 'ext_' + color + '_LED_left = i2cdevice.' + color + '_LED(ext_i2c_left)'; - var code = 'ext_' + color + '_LED_left.brightness(' + '0,' + value + ")\n"; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_' + color + '_LED'] = 'ext_' + color + '_LED_right = i2cdevice.' + color + '_LED(ext_i2c_right)'; - var code = 'ext_' + color + '_LED_right.brightness(' + '0,' + value + ")\n"; - } - return code; - } -} - -const robot_led_extern_get_value = function (_, generator) { - var mode = this.getFieldValue('mode'); - var color = this.getFieldValue('color'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_' + color + '_LED'] = 'from mixbot_ext import ' + color + '_LED'; - var code = color + '_LED.brightness(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_' + color + '_LED'] = 'ext_' + color + '_LED_left = i2cdevice.' + color + '_LED(ext_i2c_left)'; - var code = 'ext_' + color + '_LED_left.brightness(0)'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_' + color + '_LED'] = 'ext_' + color + '_LED_right = i2cdevice.' + color + '_LED(ext_i2c_right)'; - var code = 'ext_' + color + '_LED_right.brightness(0)'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_servo_extern_get_status = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var status = this.getFieldValue('status'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.state(' + mode + ")" + status; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.state(0)' + status; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.state(0)' + status; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_servo_extern_stop_mode = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var status = this.getFieldValue('status'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.stop_mode(' + mode + "," + status + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.stop_mode(' + "0," + status + ")\n"; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.stop_mode(' + "0," + status + ")\n"; - } - return code; - } -} - -const robot_servo_extern_stop = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.stop(' + mode + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.stop(0)\n'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.stop(0)\n'; - } - return code; - } -} - -const robot_servo_extern_absolute_run = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var status = this.getFieldValue('status'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var direction = this.getFieldValue('direction'); - var angle = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.absolute_run(' + mode + "," + status + "," + speed + "," + direction + "," + angle + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.absolute_run(' + "0," + status + "," + speed + "," + direction + "," + angle + ")\n"; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.absolute_run(' + "0," + status + "," + speed + "," + direction + "," + angle + ")\n"; - } - return code; - } -} - -const robot_servo_extern_relative_origin = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.relative_origin(' + mode + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.relative_origin(0)\n'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.relative_origin(0)\n'; - } - return code; - } -} - -const robot_servo_extern_relative_run = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var status = this.getFieldValue('status'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var angle = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.relative_run(' + mode + "," + status + "," + speed + "," + angle + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.relative_run(' + "0," + status + "," + speed + "," + angle + ")\n"; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.relative_run(' + "0," + status + "," + speed + "," + angle + ")\n"; - } - return code; - } -} - -const robot_servo_extern_relative_continue = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var status = this.getFieldValue('status'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var direction = this.getFieldValue('direction'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo'; - var code = 'ext_servo.relative_continue(' + mode + "," + status + "," + speed + "," + direction + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)'; - var code = 'ext_servo_left.relative_continue(' + "0," + status + "," + speed + "," + direction + ")\n"; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)'; - var code = 'ext_servo_right.relative_continue(' + "0," + status + "," + speed + "," + direction + ")\n"; - } - return code; - } -} - -const mixbot_actuator_extern_get_addr = function (_, generator) { - var name = this.getFieldValue('name'); - generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name; - var code = name + '.addr_get()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_actuator_extern_set_addr = function (_, generator) { - var name = this.getFieldValue('name'); - generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name; - var oldaddr = generator.valueToCode(this, 'old', generator.ORDER_ATOMIC); - var newaddr = generator.valueToCode(this, 'new', generator.ORDER_ATOMIC); - var code = name + '.addr_set(' + oldaddr + ',' + newaddr + ')\n'; - return code; -} - -//educore -const PIN_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'pin('+ dropdown_pin +')'; - return [code, generator.ORDER_ATOMIC]; -} - -const pin_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = pin+".write_digital(value=" + bright + ")\n"; - return code; -} - -const servo_PIN_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'servo('+ dropdown_pin +')'; - return [code, generator.ORDER_ATOMIC]; -} - -const servo_move_angle = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var a = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC); - var code = sub+'.angle('+ a +')\n'; - return code; -} - -const parrot_PIN_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'parrot('+ dropdown_pin +')'; - return [code, generator.ORDER_ATOMIC]; -} - -const parrot_move_speed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = sub+'.speed('+ speed +')\n'; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/actuator_onboard.js": -/*!*****************************************************!*\ - !*** ../micropython/generators/actuator_onboard.js ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ actuator_dc_motor: () => (/* binding */ actuator_dc_motor), -/* harmony export */ actuator_dc_motor_stop: () => (/* binding */ actuator_dc_motor_stop), -/* harmony export */ actuator_get_led_bright: () => (/* binding */ actuator_get_led_bright), -/* harmony export */ actuator_get_led_state: () => (/* binding */ actuator_get_led_state), -/* harmony export */ actuator_led_bright: () => (/* binding */ actuator_led_bright), -/* harmony export */ actuator_led_brightness: () => (/* binding */ actuator_led_brightness), -/* harmony export */ actuator_mixbot_buzzer_on_off: () => (/* binding */ actuator_mixbot_buzzer_on_off), -/* harmony export */ actuator_mixgo_nova_mic_get: () => (/* binding */ actuator_mixgo_nova_mic_get), -/* harmony export */ actuator_mixgo_nova_mic_set: () => (/* binding */ actuator_mixgo_nova_mic_set), -/* harmony export */ actuator_mixgo_nova_onboard_music_pitch: () => (/* binding */ actuator_mixgo_nova_onboard_music_pitch), -/* harmony export */ actuator_mixgo_nova_onboard_music_stop: () => (/* binding */ actuator_mixgo_nova_onboard_music_stop), -/* harmony export */ actuator_mixgo_nova_play_audio: () => (/* binding */ actuator_mixgo_nova_play_audio), -/* harmony export */ actuator_mixgo_nova_play_online_audio: () => (/* binding */ actuator_mixgo_nova_play_online_audio), -/* harmony export */ actuator_mixgo_nova_record_audio: () => (/* binding */ actuator_mixgo_nova_record_audio), -/* harmony export */ actuator_mixgo_nova_voice_get: () => (/* binding */ actuator_mixgo_nova_voice_get), -/* harmony export */ actuator_mixgo_nova_voice_set: () => (/* binding */ actuator_mixgo_nova_voice_set), -/* harmony export */ actuator_mixgo_zero_led_color: () => (/* binding */ actuator_mixgo_zero_led_color), -/* harmony export */ actuator_onboard_neopixel_rgb: () => (/* binding */ actuator_onboard_neopixel_rgb), -/* harmony export */ actuator_onboard_neopixel_rgb_all: () => (/* binding */ actuator_onboard_neopixel_rgb_all), -/* harmony export */ actuator_onboard_neopixel_rgb_show_all_chase: () => (/* binding */ actuator_onboard_neopixel_rgb_show_all_chase), -/* harmony export */ actuator_onboard_neopixel_rgb_show_all_rainbow: () => (/* binding */ actuator_onboard_neopixel_rgb_show_all_rainbow), -/* harmony export */ actuator_onboard_neopixel_write: () => (/* binding */ actuator_onboard_neopixel_write), -/* harmony export */ actuator_stepper_keep: () => (/* binding */ actuator_stepper_keep), -/* harmony export */ actuator_stepper_stop: () => (/* binding */ actuator_stepper_stop), -/* harmony export */ analog_ble_keyboard_init: () => (/* binding */ analog_ble_keyboard_init), -/* harmony export */ analog_ble_keyboard_input: () => (/* binding */ analog_ble_keyboard_input), -/* harmony export */ analog_ble_keyboard_mouse_init: () => (/* binding */ analog_ble_keyboard_mouse_init), -/* harmony export */ analog_ble_keyboard_mouse_input: () => (/* binding */ analog_ble_keyboard_mouse_input), -/* harmony export */ analog_ble_keyboard_mouse_send_battery: () => (/* binding */ analog_ble_keyboard_mouse_send_battery), -/* harmony export */ analog_ble_keyboard_mouse_str: () => (/* binding */ analog_ble_keyboard_mouse_str), -/* harmony export */ analog_ble_keyboard_send_battery: () => (/* binding */ analog_ble_keyboard_send_battery), -/* harmony export */ analog_ble_keyboard_str: () => (/* binding */ analog_ble_keyboard_str), -/* harmony export */ analog_ble_mouse_init: () => (/* binding */ analog_ble_mouse_init), -/* harmony export */ analog_ble_mouse_input: () => (/* binding */ analog_ble_mouse_input), -/* harmony export */ analog_ble_mouse_keyboard_input: () => (/* binding */ analog_ble_mouse_keyboard_input), -/* harmony export */ analog_ble_mouse_send_battery: () => (/* binding */ analog_ble_mouse_send_battery), -/* harmony export */ analog_keyboard_input: () => (/* binding */ analog_keyboard_input), -/* harmony export */ analog_keyboard_str: () => (/* binding */ analog_keyboard_str), -/* harmony export */ analog_mouse_input: () => (/* binding */ analog_mouse_input), -/* harmony export */ bitbot_motor: () => (/* binding */ bitbot_motor), -/* harmony export */ bitbot_move: () => (/* binding */ bitbot_move), -/* harmony export */ bitbot_stop: () => (/* binding */ bitbot_stop), -/* harmony export */ ble_keyboard_connect: () => (/* binding */ ble_keyboard_connect), -/* harmony export */ ble_keyboard_get_mac: () => (/* binding */ ble_keyboard_get_mac), -/* harmony export */ ble_keyboard_mouse_connect: () => (/* binding */ ble_keyboard_mouse_connect), -/* harmony export */ ble_keyboard_mouse_get_mac: () => (/* binding */ ble_keyboard_mouse_get_mac), -/* harmony export */ ble_mouse_connect: () => (/* binding */ ble_mouse_connect), -/* harmony export */ ble_mouse_get_mac: () => (/* binding */ ble_mouse_get_mac), -/* harmony export */ cc_number: () => (/* binding */ cc_number), -/* harmony export */ educore_ble_keyboard_input: () => (/* binding */ educore_ble_keyboard_input), -/* harmony export */ educore_ble_sensor_connected: () => (/* binding */ educore_ble_sensor_connected), -/* harmony export */ educore_ble_sensor_init: () => (/* binding */ educore_ble_sensor_init), -/* harmony export */ educore_buzzer: () => (/* binding */ educore_buzzer), -/* harmony export */ educore_buzzer_play_tone: () => (/* binding */ educore_buzzer_play_tone), -/* harmony export */ educore_buzzer_play_tone_time: () => (/* binding */ educore_buzzer_play_tone_time), -/* harmony export */ educore_buzzer_stop: () => (/* binding */ educore_buzzer_stop), -/* harmony export */ educore_neopixel_clear: () => (/* binding */ educore_neopixel_clear), -/* harmony export */ educore_neopixel_rgb: () => (/* binding */ educore_neopixel_rgb), -/* harmony export */ educore_rgb_light: () => (/* binding */ educore_rgb_light), -/* harmony export */ esp32_music_get_tempo: () => (/* binding */ esp32_music_get_tempo), -/* harmony export */ esp32_music_reset: () => (/* binding */ esp32_music_reset), -/* harmony export */ esp32_music_set_tempo: () => (/* binding */ esp32_music_set_tempo), -/* harmony export */ esp32_onboard_music_pitch: () => (/* binding */ esp32_onboard_music_pitch), -/* harmony export */ esp32_onboard_music_pitch_with_time: () => (/* binding */ esp32_onboard_music_pitch_with_time), -/* harmony export */ esp32_onboard_music_play_list: () => (/* binding */ esp32_onboard_music_play_list), -/* harmony export */ esp32_onboard_music_stop: () => (/* binding */ esp32_onboard_music_stop), -/* harmony export */ general_key: () => (/* binding */ general_key), -/* harmony export */ general_key_tuple: () => (/* binding */ general_key_tuple), -/* harmony export */ get_power_output: () => (/* binding */ get_power_output), -/* harmony export */ ledswitch: () => (/* binding */ ledswitch), -/* harmony export */ mixbot_motor: () => (/* binding */ mixbot_motor), -/* harmony export */ mixbot_motor_status: () => (/* binding */ mixbot_motor_status), -/* harmony export */ mixbot_move: () => (/* binding */ mixbot_move), -/* harmony export */ mixbot_stop: () => (/* binding */ mixbot_stop), -/* harmony export */ mouse_key: () => (/* binding */ mouse_key), -/* harmony export */ number: () => (/* binding */ number), -/* harmony export */ rm_actuator_get_led_bright: () => (/* binding */ rm_actuator_get_led_bright), -/* harmony export */ rm_actuator_get_led_state: () => (/* binding */ rm_actuator_get_led_state), -/* harmony export */ rm_actuator_led_bright: () => (/* binding */ rm_actuator_led_bright), -/* harmony export */ rm_actuator_led_brightness: () => (/* binding */ rm_actuator_led_brightness), -/* harmony export */ rm_motor: () => (/* binding */ rm_motor), -/* harmony export */ set_all_power_output: () => (/* binding */ set_all_power_output), -/* harmony export */ set_power_output: () => (/* binding */ set_power_output), -/* harmony export */ special_key: () => (/* binding */ special_key) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const esp32_music_set_tempo = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT); - var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT); - var code = "onboard_music.set_tempo(" + ticks + ", " + bpm + ")\n"; - return code; -} - -const esp32_music_get_tempo = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var code = "onboard_music.get_tempo()"; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_onboard_music_pitch = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var code = 'onboard_music.pitch(' + number_pitch + ')\n'; - return code; -} - -const esp32_onboard_music_pitch_with_time = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC); - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_spk_midi'] = "from mixgo_zero_voice import spk_midi"; - var code = 'spk_midi.pitch_time(' + number_pitch + ', ' + number_time + ')\n'; - } else if (version == 'mixgo_nova') { - generator.definitions_['import_mixgo_nova_voice_spk_midi'] = "from mixgo_nova_voice import spk_midi"; - var code = 'spk_midi.pitch_time(' + number_pitch + ', ' + number_time + ')\n'; - } else { - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var code = 'onboard_music.pitch_time(' + number_pitch + ', ' + number_time + ')\n'; - } - return code; -} - -const esp32_onboard_music_stop = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var code = 'onboard_music.stop(' + ')\n'; - return code; -} - -const esp32_onboard_music_play_list = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT); - if (version == 'mixgo_sant') { - generator.definitions_['import_mixgo_sant_onboard_music'] = "from mixgo_sant import onboard_music"; - var code = "onboard_music.play(" + lst + ")\n"; - } else if (version == 'mixgo_nova') { - generator.definitions_['import_mixgo_nova_voice_spk_midi'] = "from mixgo_nova_voice import spk_midi"; - var code = "spk_midi.play(" + lst + ")\n"; - } else { - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - var code = "onboard_music.play(" + lst + ")\n"; - } - return code; -} - -const esp32_music_reset = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music'; - return "onboard_music.reset()\n"; -} - -const number = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const ledswitch = function (_, generator) { - var code = this.getFieldValue('flag'); - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "onboard_led.setonoff(" + op + "," + bright + ")\n"; - return code; -} - -const actuator_get_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led'; - var code = "onboard_led.getbrightness(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_get_led_state = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led'; - var code = "onboard_led.getonoff(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_led_brightness = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led'; - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "onboard_led.setbrightness(" + op + "," + flag + ")\n"; - return code; -} - -const actuator_mixgo_zero_led_color = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led'; - var color = this.getFieldValue('colorvalue'); - var code = "onboard_led.setcolor(" + op + "," + color + ")\n"; - return code; -} - -const cc_number = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const rm_actuator_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = this.getFieldValue('color'); - generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = op + "led.setonoff(" + bright + ")\n"; - return code; -} - -const rm_actuator_get_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = this.getFieldValue('color'); - generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led'; - var code = op + "led.getbrightness()"; - return [code, generator.ORDER_ATOMIC]; -} - -const rm_actuator_get_led_state = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = this.getFieldValue('color'); - generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led'; - var code = op + "led.getonoff()"; - return [code, generator.ORDER_ATOMIC]; -} - -const rm_actuator_led_brightness = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var op = this.getFieldValue('color'); - generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led'; - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = op + "led.setbrightness(" + flag + ")\n"; - return code; -} - -const actuator_onboard_neopixel_write = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb'; - var code = 'onboard_rgb.write()\n'; - return code; -} - -const actuator_onboard_neopixel_rgb = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb'; - var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = 'onboard_rgb[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\n'; - return code; -} - -const actuator_onboard_neopixel_rgb_all = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb'; - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = 'onboard_rgb.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\n'; - return code; -} - -const actuator_onboard_neopixel_rgb_show_all_chase = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb'; - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var code = 'onboard_rgb.color_chase(' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ', ' + number_time + ')\n'; - return code; -} - -const actuator_onboard_neopixel_rgb_show_all_rainbow = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb'; - var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var code = 'onboard_rgb.rainbow_cycle(' + number_time + ')\n'; - return code; -} - -const rm_motor = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - generator.definitions_['import_rm_e1_motor' + wheel] = 'from rm_e1 import motor' + wheel; - var v = this.getFieldValue('direction'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = "motor" + wheel + '.motion("' + v + '",' + speed + ")\n"; - return code; -} - -//c3 motor onboard -const actuator_stepper_keep = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car'; - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = 'car.motor_move("' + v + '",' + speed + ")\n"; - return code; -} - -const actuator_stepper_stop = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car'; - var code = 'car.motor_move("' + v + '"' + ")\n"; - return code; -} - -const actuator_dc_motor = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car'; - var v = this.getFieldValue('direction'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = "car.motor(car.MOTO_" + wheel + ',"' + v + '",' + speed + ")\n"; - return code; -} - -const actuator_dc_motor_stop = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car'; - var v = this.getFieldValue('direction'); - var code = "car.motor(car.MOTO_" + wheel + ',"' + v + '"' + ")\n"; - return code; -} - -//mixbot onboard_motor below: - -const mixbot_motor_status = function (_, generator) { - generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor'; - var code = 'motor.status()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_move = function (_, generator) { - var v = this.getFieldValue('VAR'); - var mode = this.getFieldValue('mode'); - generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor'; - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = 'motor.move("' + v + '",motor.' + mode + '_MODE,' + speed + ")\n"; - return code; -} - -const mixbot_stop = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor'; - if (v == 'N') { - var code = 'motor.move("N",motor.STOP_MODE)\n' - } else if (v == 'P') { - var code = 'motor.move("P",motor.BRAKE_MODE)\n' - } - return code; -} - -const mixbot_motor = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor'; - var mode = this.getFieldValue('mode'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = 'motor.run(' + wheel + ',motor.' + mode + '_MODE,' + speed + ")\n"; - return code; -} - -const actuator_mixbot_buzzer_on_off = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_spk_en'] = 'from ' + version + ' import spk_en'; - var op = this.getFieldValue('on_off'); - var code = "spk_en.value(" + op + ")\n"; - return code; -} - -//bitbot onboard_motor below: -const bitbot_move = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = 'onboard_bot51.move("' + v + '",' + speed + ")\n"; - return code; -} - -const bitbot_stop = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var code = 'onboard_bot51.move("' + v + '"' + ")\n"; - return code; -} - -const bitbot_motor = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - var direction = this.getFieldValue('direction'); - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = 'onboard_bot51.motor(' + wheel + ',"' + direction + '",' + speed + ")\n"; - return code; -} - -const actuator_mixgo_nova_mic_set = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_ob_code'] = "from mixgo_zero_voice import ob_code"; - } else { - generator.definitions_['import_mixgo_nova_voice_ob_code'] = "from mixgo_nova_voice import ob_code"; - } - - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "ob_code.mic_volume(" + bright + ")\n"; - return code; -} - -const actuator_mixgo_nova_mic_get = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_ob_code'] = "from mixgo_zero_voice import ob_code"; - } else { - generator.definitions_['import_mixgo_nova_voice_ob_code'] = "from mixgo_nova_voice import ob_code"; - } - var code = "ob_code.mic_volume()"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_mixgo_nova_voice_set = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_ob_code'] = "from mixgo_zero_voice import ob_code"; - } else { - generator.definitions_['import_mixgo_nova_voice_ob_code'] = "from mixgo_nova_voice import ob_code"; - } - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "ob_code.voice_volume(" + bright + ")\n"; - return code; -} - -const actuator_mixgo_nova_voice_get = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_ob_code'] = "from mixgo_zero_voice import ob_code"; - } else { - generator.definitions_['import_mixgo_nova_voice_ob_code'] = "from mixgo_nova_voice import ob_code"; - } - var code = "ob_code.voice_volume()"; - return [code, generator.ORDER_ATOMIC]; -} - -const actuator_mixgo_nova_record_audio = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_record_audio'] = "from mixgo_zero_voice import record_audio"; - } else { - generator.definitions_['import_mixgo_nova_voice_record_audio'] = "from mixgo_nova_voice import record_audio"; - } - var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'TIME', generator.ORDER_ASSIGNMENT); - var code = "record_audio(" + path + ", " + time + ")\n"; - return code; -} - -const actuator_mixgo_nova_play_audio = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_play_audio'] = "from mixgo_zero_voice import play_audio"; - } else { - generator.definitions_['import_mixgo_nova_voice_play_audio'] = "from mixgo_nova_voice import play_audio"; - } - var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT); - var code = "play_audio(" + path + ")\n"; - return code; -} - -const actuator_mixgo_nova_play_online_audio = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_play_audio_url'] = "from mixgo_zero_voice import play_audio_url"; - } else { - generator.definitions_['import_mixgo_nova_voice_play_audio_url'] = "from mixgo_nova_voice import play_audio_url"; - } - var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT); - var code = "play_audio_url(" + path + ")\n"; - return code; -} - -const actuator_mixgo_nova_onboard_music_pitch = function (block, generator) { - generator.definitions_['import_mixgo_nova_voice_spk_midi'] = "from mixgo_nova_voice import spk_midi"; - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var code = 'spk_midi.pitch(' + number_pitch + ')\n'; - return code; -} - -const actuator_mixgo_nova_onboard_music_stop = function (block, generator) { - generator.definitions_['import_mixgo_nova_voice_spk_midi'] = "from mixgo_nova_voice import spk_midi"; - var code = 'spk_midi.stop(' + ')\n'; - return code; -} - -const set_power_output = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var index = this.getFieldValue('index'); - var duty = generator.valueToCode(this, 'duty', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.usben(' + index + ',' + duty + ')\n'; - return code; -} - -const get_power_output = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var index = this.getFieldValue('index'); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.usben(' + index + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_all_power_output = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var duty = generator.valueToCode(this, 'duty', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.usben(freq = ' + duty + ')\n'; - return code; -} - -const analog_keyboard_input = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC); - var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = "onboard_bot.hid_keyboard(" + sp + "," + ge + "," + re + ")\n"; - return code; -} - -const special_key = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const general_key = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const analog_mouse_input = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = "onboard_bot.hid_mouse(keys=" + key + ",move=(" + x + "," + y + "),wheel=" + wheel + ",release=" + re + ")\n"; - return code; -} - -const mouse_key = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const analog_keyboard_str = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC); - var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = "onboard_bot.hid_keyboard_str(" + str + ",delay=" + t + ")\n"; - return code; -} - -const general_key_tuple = function (_, generator) { - // Create a list with any number of elements of any type. - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - if (this.itemCount_ != 1) { - var code = '(' + code.join(', ') + ')'; - } else { - var code = '(' + code.join(', ') + ',)'; - } - - return [code, generator.ORDER_ATOMIC]; -}; - -const analog_ble_keyboard_init = function (_, generator) { - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var kname = generator.valueToCode(this, 'kname', generator.ORDER_ATOMIC) - var code = 'ble_keyboard=Keyboard(' + kname + ')\n'; - return code; -} - -const ble_keyboard_get_mac = function (_, generator) { - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var code = 'ble_keyboard.mac'; - return [code, generator.ORDER_ATOMIC]; -} - -const ble_keyboard_connect = function (_, generator) { - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var code = 'ble_keyboard.is_connected()'; - return [code, generator.ORDER_ATOMIC]; -} - -const analog_ble_keyboard_input = function (_, generator) { - var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC); - var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var code = "ble_keyboard.notify_hid(" + sp + "," + ge + "," + re + ")\n"; - return code; -} - -const analog_ble_keyboard_str = function (_, generator) { - var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC); - var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var code = "ble_keyboard.notify_str(" + str + ",delay=" + t + ")\n"; - return code; -} - -const analog_ble_keyboard_send_battery = function (_, generator) { - var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC); - generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard'; - var code = "ble_keyboard.notify_battery(" + b + ")\n"; - return code; -} - -const analog_ble_mouse_init = function (_, generator) { - generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse'; - var name = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC) - var code = 'ble_mouse=Mouse(' + name + ')\n'; - return code; -} - -const ble_mouse_get_mac = function (_, generator) { - generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse'; - var code = 'ble_mouse.mac'; - return [code, generator.ORDER_ATOMIC]; -} - -const ble_mouse_connect = function (_, generator) { - generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse'; - var code = 'ble_mouse.is_connected()'; - return [code, generator.ORDER_ATOMIC]; -} - -const analog_ble_mouse_input = function (_, generator) { - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse'; - var code = "ble_mouse.notify_hid(" + key + ",(" + x + "," + y + ")," + wheel + "," + re + ")\n"; - return code; -} - -const analog_ble_mouse_send_battery = function (_, generator) { - var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC); - generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse'; - var code = "ble_mouse.notify_battery(" + b + ")\n"; - return code; -} - -const analog_ble_keyboard_mouse_init = function (_, generator) { - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var kname = generator.valueToCode(this, 'kname', generator.ORDER_ATOMIC) - var code = 'ble_hid = HID(' + kname + ')\n'; - return code; -} - -const ble_keyboard_mouse_get_mac = function (_, generator) { - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = 'ble_hid.mac'; - return [code, generator.ORDER_ATOMIC]; -} - -const ble_keyboard_mouse_connect = function (_, generator) { - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = 'ble_hid.is_connected()'; - return [code, generator.ORDER_ATOMIC]; -} - -const analog_ble_keyboard_mouse_send_battery = function (_, generator) { - var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC); - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = "ble_hid.battery_notify(" + b + ")\n"; - return code; -} - -const analog_ble_keyboard_mouse_input = function (_, generator) { - var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC); - var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = "ble_hid.keyboard_notify(" + sp + "," + ge + "," + re + ")\n"; - return code; -} - -const analog_ble_keyboard_mouse_str = function (_, generator) { - var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC); - var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = "ble_hid.keyboard_str(" + str + ",delay=" + t + ")\n"; - return code; -} - -const analog_ble_mouse_keyboard_input = function (_, generator) { - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC); - var re = this.getFieldValue('release'); - generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID'; - var code = "ble_hid.mouse_notify(" + key + ",(" + x + "," + y + ")," + wheel + "," + re + ")\n"; - return code; -} -//educore actuator -const educore_buzzer = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker'; - var code = "speaker()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_buzzer_play_tone = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker'; - var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC); - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var code = bu+'.tone(freq=[' + number_pitch + '])\n'; - return code; -} - -const educore_buzzer_play_tone_time = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker'; - var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC); - var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC); - var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC); - var code = bu+'.tone(freq=' + number_pitch + ', dur=' + number_time + ')\n'; - return code; -} - -const educore_buzzer_stop = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker'; - var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC); - var code = bu+'.stop()\n'; - return code; -} - -const educore_rgb_light = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb'; - var code = "rgb()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_neopixel_rgb = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb'; - var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC); - var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC); - var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC); - var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC); - var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC); - var code = rgb+'.write(index[' + value_led + '], r=int(' + value_rvalue + '), g=int(' + value_gvalue + '), b=int(' + value_bvalue + '))\n'; - return code; -} - -const educore_neopixel_clear = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb'; - var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC); - var code = rgb+'.clear()\n'; - return code; -} - -const educore_ble_sensor_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid'; - var n = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC); - var code = 'hid.(name='+ n +')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_ble_sensor_connected = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.isconnected()'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_ble_keyboard_input = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_keycode'] = 'from ' + version + ' import keycode'; - var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".keyboard_send("+ ge + ")\n"; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/ai.js": -/*!***************************************!*\ - !*** ../micropython/generators/ai.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MICROPYTHON_AI_Speech_asr: () => (/* binding */ MICROPYTHON_AI_Speech_asr), -/* harmony export */ MICROPYTHON_AI_Speech_unit: () => (/* binding */ MICROPYTHON_AI_Speech_unit), -/* harmony export */ MICROPYTHON_AI_client: () => (/* binding */ MICROPYTHON_AI_client) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const MICROPYTHON_AI_client = function (_, generator) { - var ctype = this.getFieldValue('CTYPE'); - generator.definitions_['import_baidu_speech'] = 'import baidu_speech'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var api_key = generator.valueToCode(this, 'API_KEY', generator.ORDER_ATOMIC); - var sound = ''; - if (ctype == "ASR") { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_sound'] = "from " + version + " import onboard_sound"; - sound += 'onboard_sound.adc' + ','; - } - var secret_key = generator.valueToCode(this, 'SECRET_KEY', generator.ORDER_ATOMIC); - var code = v + ' = ' + 'baidu_speech.' + ctype + '(' + sound + api_key + ', ' + secret_key + ')\n'; - return code; -} - -const MICROPYTHON_AI_Speech_unit = function (_, generator) { - generator.definitions_['import_baidu_speech'] = 'import baidu_speech'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC); - var s = generator.valueToCode(this, 'STR', generator.ORDER_ATOMIC); - var code = v + '.chatbot(' + id + ',' + s + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const MICROPYTHON_AI_Speech_asr = function (_, generator) { - var language = this.getFieldValue('LANGUAGE'); - generator.definitions_['import_baidu_speech'] = 'import baidu_speech'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var fn = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC) || '""'; - var code = v + '.recognize(record_time=' + fn + ',dev_pid=' + language + ')'; - return [code, generator.ORDER_ATOMIC]; -} - - - -/***/ }), - -/***/ "../micropython/generators/ai_sensor.js": -/*!**********************************************!*\ - !*** ../micropython/generators/ai_sensor.js ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ai_sensor_20object: () => (/* binding */ ai_sensor_20object), -/* harmony export */ ai_sensor_ailocal_class: () => (/* binding */ ai_sensor_ailocal_class), -/* harmony export */ ai_sensor_ailocal_class_result: () => (/* binding */ ai_sensor_ailocal_class_result), -/* harmony export */ ai_sensor_ailocal_train: () => (/* binding */ ai_sensor_ailocal_train), -/* harmony export */ ai_sensor_asr_recognize: () => (/* binding */ ai_sensor_asr_recognize), -/* harmony export */ ai_sensor_audio_play: () => (/* binding */ ai_sensor_audio_play), -/* harmony export */ ai_sensor_audio_record: () => (/* binding */ ai_sensor_audio_record), -/* harmony export */ ai_sensor_barcode: () => (/* binding */ ai_sensor_barcode), -/* harmony export */ ai_sensor_circle: () => (/* binding */ ai_sensor_circle), -/* harmony export */ ai_sensor_classifier_faces: () => (/* binding */ ai_sensor_classifier_faces), -/* harmony export */ ai_sensor_color: () => (/* binding */ ai_sensor_color), -/* harmony export */ ai_sensor_color_chases: () => (/* binding */ ai_sensor_color_chases), -/* harmony export */ ai_sensor_color_chases_result: () => (/* binding */ ai_sensor_color_chases_result), -/* harmony export */ ai_sensor_config: () => (/* binding */ ai_sensor_config), -/* harmony export */ ai_sensor_face: () => (/* binding */ ai_sensor_face), -/* harmony export */ ai_sensor_find_20objects: () => (/* binding */ ai_sensor_find_20objects), -/* harmony export */ ai_sensor_find_barcodes: () => (/* binding */ ai_sensor_find_barcodes), -/* harmony export */ ai_sensor_find_circles: () => (/* binding */ ai_sensor_find_circles), -/* harmony export */ ai_sensor_find_colors: () => (/* binding */ ai_sensor_find_colors), -/* harmony export */ ai_sensor_find_licenseplates: () => (/* binding */ ai_sensor_find_licenseplates), -/* harmony export */ ai_sensor_find_lines: () => (/* binding */ ai_sensor_find_lines), -/* harmony export */ ai_sensor_find_qrcodes: () => (/* binding */ ai_sensor_find_qrcodes), -/* harmony export */ ai_sensor_find_rects: () => (/* binding */ ai_sensor_find_rects), -/* harmony export */ ai_sensor_find_tags: () => (/* binding */ ai_sensor_find_tags), -/* harmony export */ ai_sensor_licenseplate: () => (/* binding */ ai_sensor_licenseplate), -/* harmony export */ ai_sensor_line: () => (/* binding */ ai_sensor_line), -/* harmony export */ ai_sensor_qrcode: () => (/* binding */ ai_sensor_qrcode), -/* harmony export */ ai_sensor_qrcode_lite: () => (/* binding */ ai_sensor_qrcode_lite), -/* harmony export */ ai_sensor_rect: () => (/* binding */ ai_sensor_rect), -/* harmony export */ ai_sensor_rgb: () => (/* binding */ ai_sensor_rgb), -/* harmony export */ ai_sensor_tag: () => (/* binding */ ai_sensor_tag), -/* harmony export */ ai_sensor_use_uart_init: () => (/* binding */ ai_sensor_use_uart_init), -/* harmony export */ ai_sensor_yolo_recognize: () => (/* binding */ ai_sensor_yolo_recognize), -/* harmony export */ ai_sensor_yolo_recognize_result: () => (/* binding */ ai_sensor_yolo_recognize_result) -/* harmony export */ }); -const ai_sensor_use_uart_init = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v + '=mixgo_ai.AI(' + key + ',quick=1)\n'; - return code; -} - -const ai_sensor_qrcode_lite = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var type = this.getFieldValue('TYPE'); - var code = sub + '.find_' + type + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_config = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); - var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); - var dropdown_uart = this.getFieldValue('mode'); - var code = v + '.configure(' + tx + ',' + rx + ',restart=' + dropdown_uart + ')\n'; - return code; -} - -const ai_sensor_rgb = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var led1 = generator.valueToCode(this, 'led1', generator.ORDER_ATOMIC); - var led2 = generator.valueToCode(this, 'led2', generator.ORDER_ATOMIC); - var code = v + '.led_rgb(' + led1 + ',' + led2 + ')\n'; - return code; -} - -const ai_sensor_qrcode = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_qrcodes = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_qrcodes()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_barcode = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_barcodes = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_barcodes()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_tag = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_tags = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_apriltags()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_line = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_lines = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC); - var code = v + '.find_lines(' + v1 + ',' + v2 + ',' + v3 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_circle = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_circles = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC); - var code = v + '.find_circles(' + v1 + ',' + v2 + ',' + v3 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_rect = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_rects = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var code = v + '.find_rects(' + v1 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_color = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_colors = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_colors()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_color_chases_result = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_color_chases = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC); - var code = v + '.color_track(' + v1 + ',' + v2 + ',' + v3 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_ailocal_train = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC); - var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC); - var code = v + '.ailocal_train(' + v1 + ',' + v2 + ',' + v3 + ',' + v4 + ')\n'; - return code; -} - -const ai_sensor_ailocal_class = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC); - var code = v + '.ailocal_class(' + v1 + ',' + v2 + ',' + v4 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_ailocal_class_result = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_audio_record = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = v + '.audio_record(path=' + v1 + ',times=' + v2 + ')\n'; - return code; -} - -const ai_sensor_audio_play = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = v + '.audio_play(path=' + v1 + ',volume=' + v2 + ')\n'; - return code; -} - -const ai_sensor_yolo_recognize = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC); - var code = v + '.yolo_recognize(' + v1 + ',' + v2 + ',' + v4 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_yolo_recognize_result = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_asr_recognize = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC); - var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = v + '.asr_recognize(' + v1 + ',threshold=' + v2 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_licenseplate = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_licenseplates = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_licenseplate()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_face = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_classifier_faces = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.face_detect()'; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_20object = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const ai_sensor_find_20objects = function (_, generator) { - generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.find_20object()'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/blynk.js": -/*!******************************************!*\ - !*** ../micropython/generators/blynk.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ mpython_blynk_app_data: () => (/* binding */ mpython_blynk_app_data), -/* harmony export */ mpython_blynk_app_notify: () => (/* binding */ mpython_blynk_app_notify), -/* harmony export */ mpython_blynk_email: () => (/* binding */ mpython_blynk_email), -/* harmony export */ mpython_blynk_get_timers: () => (/* binding */ mpython_blynk_get_timers), -/* harmony export */ mpython_blynk_on_connected: () => (/* binding */ mpython_blynk_on_connected), -/* harmony export */ mpython_blynk_on_disconnected: () => (/* binding */ mpython_blynk_on_disconnected), -/* harmony export */ mpython_blynk_run: () => (/* binding */ mpython_blynk_run), -/* harmony export */ mpython_blynk_sensor_data_to_app: () => (/* binding */ mpython_blynk_sensor_data_to_app), -/* harmony export */ mpython_blynk_set_property: () => (/* binding */ mpython_blynk_set_property), -/* harmony export */ mpython_blynk_setup: () => (/* binding */ mpython_blynk_setup), -/* harmony export */ mpython_blynk_stop_timers: () => (/* binding */ mpython_blynk_stop_timers), -/* harmony export */ mpython_blynk_sync_virtual: () => (/* binding */ mpython_blynk_sync_virtual), -/* harmony export */ mpython_blynk_terminal_widget_vpin: () => (/* binding */ mpython_blynk_terminal_widget_vpin), -/* harmony export */ mpython_blynktimer: () => (/* binding */ mpython_blynktimer), -/* harmony export */ mpython_blynktimer_run: () => (/* binding */ mpython_blynktimer_run) -/* harmony export */ }); -// Blynk 第二版 -// Blynk 自定义终端部件 Terminal -const mpython_blynk_terminal_widget_vpin = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC); - - generator.functions_['terminal_widget_vpin_' + virtual_pin] = - ` -ALLOWED_COMMANDS_LIST = ['ls', 'lsusb', 'ip a', 'ip abc'] - -@blynk.handle_event('write V${virtual_pin}') -def write_handler(pin, _values): - header = '' - result = '' - delimiter = '{}\\n'.format('=' * 30) - if _values and _values[0] in ALLOWED_COMMANDS_LIST: - cmd_params = _values[0].split(' ') - try: - result = subprocess.check_output(cmd_params).decode('utf-8') - header = '[output]\\n' - except subprocess.CalledProcessError as exe_err: - header = '[error]\\n' - result = 'Return Code: {}\\n'.format(exe_err.returncode) - except Exception as g_err: - print("Command caused '{}'".format(g_err)) - elif _values and _values[0] == 'help': - header = '[help -> allowed commands]\\n' - result = '{}\\n'.format('\\n'.join(ALLOWED_COMMANDS_LIST)) - - # communicate with terminal if help or some allowed command - if result: - output = '{}{}{}{}'.format(header, delimiter, result, delimiter) - print(output) - blynk.virtual_write(pin, output) - blynk.virtual_write(pin, '\\n') -` - - var code = ''; - return code; -} - -// Blynk 同步虚拟管脚的状态 -const mpython_blynk_sync_virtual = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC); - - var code = 'blynk.virtual_sync(' + virtual_pin + ')\n'; - return code; -} - -// 斷開连接 Blynk -const mpython_blynk_on_disconnected = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - - var branch = generator.statementToCode(this, 'DO'); - branch = generator.addLoopTrap(branch, this.id) || generator.PASS; - - generator.definitions_['blynk_on_disconnected'] = - '@blynk.handle_event("disconnect")\n' + - 'def connect_handler():\n' + - " print('Blynk disconnected')\n" + branch; - - return ''; -} - -// 连接上 Blynk -const mpython_blynk_on_connected = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - - var branch = generator.statementToCode(this, 'DO'); - branch = generator.addLoopTrap(branch, this.id) || generator.PASS; - - generator.definitions_['blynk_on_connected'] = - '@blynk.handle_event("connect")\n' + - 'def connect_handler():\n' + - " print('Blynk connected')\n" + branch; - - return ''; -} - -// Blynk 定时器的进程生效并运行 -const mpython_blynktimer_run = function () { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - // generator.definitions_['import_blynktimer'] = 'import blynktimer'; - - var code = 'blynk_timer.run()\n'; - return code; -} - -// Blynk 进程生效并运行 -const mpython_blynk_run = function () { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - - var code = 'blynk.run()\n'; - return code; -} - -// Blynk APP 显示通知 -const mpython_blynk_app_notify = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var notification = generator.valueToCode(this, 'notification', generator.ORDER_ATOMIC); - - var code = 'blynk.notify(' + notification + ')\n'; - return code; -} - -// 停止 Blynk 定时器 %1 -const mpython_blynk_stop_timers = function (_, generator) { - generator.definitions_['import_blynktimer'] = 'import blynktimer'; - generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)'; - - var timer_num = generator.valueToCode(this, 'timer_num', generator.ORDER_ATOMIC); - var code = `blynk_timer.stop('${timer_num}_blynk_timer${timer_num}')` + '\n'; - - return code; -} - -// 可用的 Blynk 定时器 -const mpython_blynk_get_timers = function (_, generator) { - generator.definitions_['import_blynktimer'] = 'import blynktimer'; - generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)'; - - var code = `blynk_timer.get_timers()`; - return [code, generator.ORDER_ATOMIC]; -} - -//blynk定时器 -const mpython_blynktimer = function (_, generator) { - generator.definitions_['import_blynktimer'] = 'import blynktimer'; - - var Num = generator.valueToCode(this, 'Num', generator.ORDER_ATOMIC); - var period = generator.valueToCode(this, 'period', generator.ORDER_ATOMIC); - var Timer_mode = this.getFieldValue('Timer_mode'); - - var branch = generator.statementToCode(this, 'DO'); - branch = generator.addLoopTrap(branch, this.id) || generator.PASS; - - generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)'; - - generator.definitions_['blynktimer_event' + Num] = - ` -@blynk_timer.register(interval=${period}, run_once=${Timer_mode}) -def blynk_timer${Num}(): -` - + branch; - - return ''; -} - -// 发送数据 %1 到 Bylnk APP 的虚拟管脚 %2 -const mpython_blynk_sensor_data_to_app = function (_, generator) { - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var sensor_data = generator.valueToCode(this, 'sensor_data', generator.ORDER_ATOMIC); - var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC); - var code = 'blynk.virtual_write(' + virtual_pin + ', ' + sensor_data + ')\n'; - return code; -} - -// 从 Bylnk APP 获取虚拟管脚 %1 的值 -const mpython_blynk_app_data = function (_, generator) { - - // generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC); - - var branch = generator.statementToCode(this, 'DO'); - branch = generator.addLoopTrap(branch, this.id) || generator.PASS; - - generator.definitions_['blynk_VIRTUAL_WRITE_' + virtual_pin] = - "@blynk.handle_event('write V" + virtual_pin + "')\n" + - 'def write_virtual_pin_handler(pin, _value):\n' + - ' for i in range(0, len(_value)):\n' + - ' try: _value[i] = eval(_value[i])\n' + - ' except: pass\n' + - ' if len(_value) == 1: _value = _value[0]\n' + branch; - //' print('+'"v' + virtual_pin + '_value: {}".format(_value))\n' - // var code = 'blynk.run()\n'; - return ''; -} - -// 向 %1 发邮件 主题 %2 正文 %3 -const mpython_blynk_email = function (_, generator) { - var body = generator.valueToCode(this, 'body', generator.ORDER_ATOMIC); - var subject = generator.valueToCode(this, 'subject', generator.ORDER_ATOMIC); - var TargetEmail = generator.valueToCode(this, 'TargetEmail', generator.ORDER_ATOMIC); - - var code = `blynk.email(${TargetEmail}, ${subject}, ${body})` + '\n'; - return code; -} - -// 给虚拟管脚添加 属性 %1 值 %2 -const mpython_blynk_set_property = function (_, generator) { - var attribute_value = generator.valueToCode(this, 'attribute_value', generator.ORDER_ATOMIC); - var attribute_name = generator.valueToCode(this, 'attribute_name', generator.ORDER_ATOMIC); - - var code = `blynk.set_property(pin, ${attribute_name}, ${attribute_value})` + '\n'; - - return code; -} - -// Bylnk设置 -const mpython_blynk_setup = function (_, generator) { - generator.definitions_['import_BlynkLib'] = 'import blynklib'; - var server = generator.valueToCode(this, 'server', generator.ORDER_ATOMIC); - var auth = generator.valueToCode(this, 'auth', generator.ORDER_ATOMIC); - var port = generator.valueToCode(this, 'port', generator.ORDER_ATOMIC); - - generator.definitions_['mpython_blynk_setup'] = - "blynk = blynklib.Blynk(" + auth + ", server=" + server + ", port=" + port + ")"; - - generator.definitions_['blynk_on_connected'] = - ` -@blynk.handle_event("connect") -def connect_handler(): - print('Blynk connected') -` - - generator.definitions_['blynk_on_disconnected'] = - ` -@blynk.handle_event("disconnect") -def connect_handler(): - print('Blynk disconnected') -` - - return ''; -} - -/***/ }), - -/***/ "../micropython/generators/cc_g1.js": -/*!******************************************!*\ - !*** ../micropython/generators/cc_g1.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ cc_g1_read_bat: () => (/* binding */ cc_g1_read_bat), -/* harmony export */ cc_g1_read_joystick: () => (/* binding */ cc_g1_read_joystick), -/* harmony export */ cc_g1_read_key: () => (/* binding */ cc_g1_read_key), -/* harmony export */ cc_g1_turnoff: () => (/* binding */ cc_g1_turnoff) -/* harmony export */ }); -const cc_g1_read_bat = function (_, generator) { - generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle'; - var code = 'handle.read_bat()'; - return [code, generator.ORDER_ATOMIC]; -} - -const cc_g1_read_joystick = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle'; - var code = 'handle.read_joystick()' + v + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const cc_g1_read_key = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle'; - var code = 'handle.read_key(' + v + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const cc_g1_turnoff = function (_, generator) { - generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle'; - var code = 'handle.shutdown()'; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/ce_go.js": -/*!******************************************!*\ - !*** ../micropython/generators/ce_go.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ce_go_dc_motor: () => (/* binding */ ce_go_dc_motor), -/* harmony export */ ce_go_get_led_bright: () => (/* binding */ ce_go_get_led_bright), -/* harmony export */ ce_go_get_led_state: () => (/* binding */ ce_go_get_led_state), -/* harmony export */ ce_go_hall_attachInterrupt: () => (/* binding */ ce_go_hall_attachInterrupt), -/* harmony export */ ce_go_hall_data: () => (/* binding */ ce_go_hall_data), -/* harmony export */ ce_go_hall_initialize: () => (/* binding */ ce_go_hall_initialize), -/* harmony export */ ce_go_led_bright: () => (/* binding */ ce_go_led_bright), -/* harmony export */ ce_go_led_brightness: () => (/* binding */ ce_go_led_brightness), -/* harmony export */ ce_go_light_number: () => (/* binding */ ce_go_light_number), -/* harmony export */ ce_go_pin_light: () => (/* binding */ ce_go_pin_light), -/* harmony export */ ce_go_pin_near: () => (/* binding */ ce_go_pin_near), -/* harmony export */ ce_go_pin_near_line: () => (/* binding */ ce_go_pin_near_line), -/* harmony export */ ce_go_pin_near_state_change: () => (/* binding */ ce_go_pin_near_state_change), -/* harmony export */ ce_go_stepper_keep: () => (/* binding */ ce_go_stepper_keep), -/* harmony export */ ce_go_stepper_stop: () => (/* binding */ ce_go_stepper_stop), -/* harmony export */ educore_car: () => (/* binding */ educore_car), -/* harmony export */ educore_car_pin_near: () => (/* binding */ educore_car_pin_near), -/* harmony export */ educore_car_pin_near_line: () => (/* binding */ educore_car_pin_near_line), -/* harmony export */ educore_car_stepper_keep: () => (/* binding */ educore_car_stepper_keep), -/* harmony export */ educore_car_stepper_stop: () => (/* binding */ educore_car_stepper_stop), -/* harmony export */ sensor_mixgome_eulerangles: () => (/* binding */ sensor_mixgome_eulerangles) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const ce_go_light_number = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var code = 'car.' + this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - } - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "car.setonoff(" + op + "," + bright + ")\n"; - return code; -} - -const ce_go_get_led_bright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var code = "car.getrightness(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_get_led_state = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var code = "car.getonoff(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_led_brightness = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "car.setbrightness(" + op + "," + flag + ")\n"; - return code; -} - -const ce_go_stepper_keep = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var v = this.getFieldValue('VAR'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = 'car.move("' + v + '",' + speed + ")\n"; - return code; -} - -const ce_go_stepper_stop = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var v = this.getFieldValue('VAR'); - var code = 'car.move("' + v + '")\n'; - return code; -} - -const ce_go_dc_motor = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_car'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_car'] = 'from mini_go import car'; - } - var wheel = this.getFieldValue('wheel'); - var v = this.getFieldValue('direction'); - if (wheel == 0) { - if (v == 'CW') { v = 'CCW' } - else if (v == 'CCW') { v = 'CW' } - } - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = "car.motor(car.MOTO[" + wheel + '],"' + v + '",' + speed + ")\n"; - return code; -} - -const ce_go_hall_attachInterrupt = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode; - } - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'hall_' + dropdown_mode + '.irq_cb(' + atta + ')\n' - return code; -} - -const ce_go_hall_initialize = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - var args = this.getFieldValue('args'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode; - } - var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC); - if (args == 'all') { - var code = 'hall_' + dropdown_mode + '.initial(' + 'turns' + '=' + num + ',distance=' + num + ')\n' - return code; - } - var code = 'hall_' + dropdown_mode + '.initial(' + args + '=' + num + ')\n' - return code; -} - -const ce_go_hall_data = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - var args = this.getFieldValue('args'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode; - } - var code = 'hall_' + dropdown_mode + '.' + args + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_pin_near_line = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall'] = 'from mini_go import car'; - } - var code = 'car.patrol()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_pin_near = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall'] = 'from mini_go import car'; - } - var code = 'car.obstacle()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_pin_near_state_change = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall'] = 'from mini_go import car'; - } - var code = 'car.ir_mode(car.' + key + ')\n'; - return code; -} - -const sensor_mixgome_eulerangles = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_mixgo_me_onboard_mxc6655xa'] = "from mixgo_me import onboard_mxc6655xa"; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_mixgo_ce_onboard_mxc6655xa'] = "from mixgo_ce import onboard_mxc6655xa"; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_onboard_mxc6655xa'] = 'from mini_go import onboard_mxc6655xa'; - } - var angle = this.getFieldValue('angle'); - var code = 'onboard_mxc6655xa.eulerangles(upright=True)' + angle; - return [code, generator.ORDER_ATOMIC]; -} - -const ce_go_pin_light = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me" || version == "mixgo_cc") { - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - } - else if (version == "mixgo_ce") { - generator.definitions_['import_ce_go_hall'] = 'from ce_go import car'; - }else if (version == "mixgo_mini"){ - generator.definitions_['import_mini_go_hall'] = 'from mini_go import car'; - } - var code = 'car.light()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -//educore car - -const educore_car = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car'; - var code = 'car()'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_car_stepper_keep = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car'; - var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT); - var v = this.getFieldValue('VAR'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = car+'.'+ v +'('+speed+")\n"; - return code; -} - -const educore_car_stepper_stop = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car'; - var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT); - var v = this.getFieldValue('VAR'); - var code = car+'.'+ v +"()\n"; - return code; -} - -const educore_car_pin_near_line = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car'; - var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT); - var key = this.getFieldValue('key'); - var code = car+'.get_itr_dnum(' + key + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_car_pin_near = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car'; - var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT); - var code = car+'.get_distance()'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/communicate.js": -/*!************************************************!*\ - !*** ../micropython/generators/communicate.js ***! - \************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ communicate_bluetooth_central_init: () => (/* binding */ communicate_bluetooth_central_init), -/* harmony export */ communicate_bluetooth_connect: () => (/* binding */ communicate_bluetooth_connect), -/* harmony export */ communicate_bluetooth_disconnect: () => (/* binding */ communicate_bluetooth_disconnect), -/* harmony export */ communicate_bluetooth_handle: () => (/* binding */ communicate_bluetooth_handle), -/* harmony export */ communicate_bluetooth_is_connected: () => (/* binding */ communicate_bluetooth_is_connected), -/* harmony export */ communicate_bluetooth_mac: () => (/* binding */ communicate_bluetooth_mac), -/* harmony export */ communicate_bluetooth_peripheral_init: () => (/* binding */ communicate_bluetooth_peripheral_init), -/* harmony export */ communicate_bluetooth_recv: () => (/* binding */ communicate_bluetooth_recv), -/* harmony export */ communicate_bluetooth_recv_only: () => (/* binding */ communicate_bluetooth_recv_only), -/* harmony export */ communicate_bluetooth_scan: () => (/* binding */ communicate_bluetooth_scan), -/* harmony export */ communicate_bluetooth_send: () => (/* binding */ communicate_bluetooth_send), -/* harmony export */ communicate_espnow_init: () => (/* binding */ communicate_espnow_init), -/* harmony export */ communicate_espnow_init_new: () => (/* binding */ communicate_espnow_init_new), -/* harmony export */ communicate_i2c_available: () => (/* binding */ communicate_i2c_available), -/* harmony export */ communicate_i2c_init: () => (/* binding */ communicate_i2c_init), -/* harmony export */ communicate_i2c_master_read: () => (/* binding */ communicate_i2c_master_read), -/* harmony export */ communicate_i2c_onboard: () => (/* binding */ communicate_i2c_onboard), -/* harmony export */ communicate_i2c_read: () => (/* binding */ communicate_i2c_read), -/* harmony export */ communicate_i2c_scan: () => (/* binding */ communicate_i2c_scan), -/* harmony export */ communicate_i2c_write: () => (/* binding */ communicate_i2c_write), -/* harmony export */ communicate_ir_recv_init: () => (/* binding */ communicate_ir_recv_init), -/* harmony export */ communicate_ir_send_init: () => (/* binding */ communicate_ir_send_init), -/* harmony export */ communicate_ow_init: () => (/* binding */ communicate_ow_init), -/* harmony export */ communicate_ow_read: () => (/* binding */ communicate_ow_read), -/* harmony export */ communicate_ow_reset: () => (/* binding */ communicate_ow_reset), -/* harmony export */ communicate_ow_scan: () => (/* binding */ communicate_ow_scan), -/* harmony export */ communicate_ow_select: () => (/* binding */ communicate_ow_select), -/* harmony export */ communicate_ow_write: () => (/* binding */ communicate_ow_write), -/* harmony export */ communicate_spi_buffer: () => (/* binding */ communicate_spi_buffer), -/* harmony export */ communicate_spi_init: () => (/* binding */ communicate_spi_init), -/* harmony export */ communicate_spi_onboard: () => (/* binding */ communicate_spi_onboard), -/* harmony export */ communicate_spi_read: () => (/* binding */ communicate_spi_read), -/* harmony export */ communicate_spi_read_output: () => (/* binding */ communicate_spi_read_output), -/* harmony export */ communicate_spi_readinto: () => (/* binding */ communicate_spi_readinto), -/* harmony export */ communicate_spi_readinto_output: () => (/* binding */ communicate_spi_readinto_output), -/* harmony export */ communicate_spi_set: () => (/* binding */ communicate_spi_set), -/* harmony export */ communicate_spi_write: () => (/* binding */ communicate_spi_write), -/* harmony export */ communicate_spi_write_readinto: () => (/* binding */ communicate_spi_write_readinto), -/* harmony export */ espnow_radio_channel: () => (/* binding */ espnow_radio_channel), -/* harmony export */ espnow_radio_channel_new: () => (/* binding */ espnow_radio_channel_new), -/* harmony export */ espnow_radio_on_off: () => (/* binding */ espnow_radio_on_off), -/* harmony export */ espnow_radio_rec: () => (/* binding */ espnow_radio_rec), -/* harmony export */ espnow_radio_recv: () => (/* binding */ espnow_radio_recv), -/* harmony export */ espnow_radio_recv_certain_msg: () => (/* binding */ espnow_radio_recv_certain_msg), -/* harmony export */ espnow_radio_recv_certain_msg_new: () => (/* binding */ espnow_radio_recv_certain_msg_new), -/* harmony export */ espnow_radio_recv_msg: () => (/* binding */ espnow_radio_recv_msg), -/* harmony export */ espnow_radio_recv_new: () => (/* binding */ espnow_radio_recv_new), -/* harmony export */ espnow_radio_send: () => (/* binding */ espnow_radio_send), -/* harmony export */ espnow_radio_txpower: () => (/* binding */ espnow_radio_txpower), -/* harmony export */ i2c_slave_onreceive: () => (/* binding */ i2c_slave_onreceive), -/* harmony export */ internal_variable: () => (/* binding */ internal_variable), -/* harmony export */ ir_recv_timeout: () => (/* binding */ ir_recv_timeout), -/* harmony export */ ir_transmit_busy: () => (/* binding */ ir_transmit_busy), -/* harmony export */ ir_transmit_conventional_data: () => (/* binding */ ir_transmit_conventional_data), -/* harmony export */ ir_transmit_raw_code: () => (/* binding */ ir_transmit_raw_code), -/* harmony export */ ir_transmit_study_code: () => (/* binding */ ir_transmit_study_code), -/* harmony export */ ir_whether_recv: () => (/* binding */ ir_whether_recv), -/* harmony export */ lora_init: () => (/* binding */ lora_init), -/* harmony export */ lora_packet: () => (/* binding */ lora_packet), -/* harmony export */ lora_recv: () => (/* binding */ lora_recv), -/* harmony export */ lora_send: () => (/* binding */ lora_send), -/* harmony export */ network_espnow_info: () => (/* binding */ network_espnow_info), -/* harmony export */ network_espnow_mac: () => (/* binding */ network_espnow_mac), -/* harmony export */ network_espnow_recv: () => (/* binding */ network_espnow_recv), -/* harmony export */ network_espnow_recv_handle: () => (/* binding */ network_espnow_recv_handle), -/* harmony export */ network_espnow_send: () => (/* binding */ network_espnow_send), -/* harmony export */ recv_fun: () => (/* binding */ recv_fun), -/* harmony export */ urequests_attribute: () => (/* binding */ urequests_attribute), -/* harmony export */ urequests_get: () => (/* binding */ urequests_get), -/* harmony export */ urequests_method: () => (/* binding */ urequests_method) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const communicate_i2c_onboard = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_i2c'] = 'from ' + version + ' import onboard_i2c'; - var code = 'onboard_i2c'; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_spi_onboard = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_i2c'] = 'from ' + version + ' import onboard_spi'; - var code = 'onboard_spi'; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_i2c_init = function (block, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin1 = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); - var dropdown_pin2 = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); - var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return "" + sub + " = machine.SoftI2C(scl = machine.Pin(" + dropdown_pin2 + "), sda = machine.Pin(" + dropdown_pin1 + "), freq = " + freq + ")\n"; -} - -const communicate_i2c_read = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return ["" + name + ".readfrom(" + address + ", " + data + ")", generator.ORDER_ATOMIC]; -} - -const communicate_i2c_write = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return "" + name + ".writeto(" + address + ", " + data + ")\n"; -} - -const communicate_i2c_scan = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return ["" + name + ".scan()", generator.ORDER_ATOMIC]; -} - -const communicate_i2c_master_read = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".read()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_i2c_available = function (block, generator) { - - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".available()"; - return [code, generator.ORDER_ATOMIC]; -} - -const i2c_slave_onreceive = function (block, generator) { - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - generator.setups_['setup_i2c_' + pin] = 'Wire.begin(' + pin + ');'; - generator.setups_['setup_i2c_onReceive_' + pin] = 'Wire.onReceive(i2cReceiveEvent_' + pin + ');'; - var funcName = 'i2cReceiveEvent_' + pin; - var branch = generator.statementToCode(this, 'DO'); - var code2 = 'void' + ' ' + funcName + '(int howMany) {\n' + branch + '}\n'; - generator.definitions_[funcName] = code2; - return ''; -} - -const communicate_spi_init = function (block, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC); - var mosi = generator.valueToCode(this, 'mosi', generator.ORDER_ATOMIC); - var miso = generator.valueToCode(this, 'miso', generator.ORDER_ATOMIC); - var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC); - return "" + name + " = machine.SoftSPI(baudrate=" + freq + ", sck=machine.Pin(" + sck + "), mosi=machine.Pin(" + mosi + "), miso=machine.Pin(" + miso + "))\n"; -} - -const communicate_spi_set = function (block, generator) { - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return "spi.init(baudrate=" + data + ")\n"; -} - -const communicate_spi_buffer = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return "" + varname + "=bytearray(" + data + ")\n"; -} - -const communicate_spi_read = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return ["" + varname + ".read(" + data + ")", generator.ORDER_ATOMIC]; -} - -const communicate_spi_read_output = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC); - return ["" + varname + ".read(" + data + "," + val + ")", generator.ORDER_ATOMIC]; -} - -const communicate_spi_readinto = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return ["" + varname + ".readinto(" + data + ")", generator.ORDER_ATOMIC]; -} - -const communicate_spi_readinto_output = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC); - return ["" + varname + ".readinto(" + data + "," + val + ")", generator.ORDER_ATOMIC]; -} - -const communicate_spi_write = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - return ["" + varname + ".write(" + data + ".encode('utf-8'))", generator.ORDER_ATOMIC]; -} - -const communicate_spi_write_readinto = function (block, generator) { - var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC); - // var op=this.getFieldValue('op'); - // if(op=="byte"){ - return ["" + varname + ".write_readinto(" + data + ".encode('utf-8')," + val + ")", generator.ORDER_ATOMIC]; - // }else{ - // return [""+varname+".write_readinto(" + data + ","+val+")", generator.ORDER_ATOMIC]; - // } -} - -const communicate_ow_init = function (block, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_onewire'] = "import onewire"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var varName = generator.valueToCode(this, 'BUS', generator.ORDER_ATOMIC); - var code = "" + name + "=onewire.OneWire(machine.Pin(" + varName + "))\n"; - return code; -} - -const communicate_ow_scan = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".scan()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_ow_reset = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".reset()\n"; - return code; -} - -const communicate_ow_read = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".readbyte()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_ow_write = function (block, generator) { - var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var op = this.getFieldValue('op'); - var code = "" + name + "." + op + "(" + varName + ")\n"; - return code; -} - -const communicate_ow_select = function (block, generator) { - var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + name + ".select_rom(" + varName + ".encode('utf-8'))\n"; - return code; -} - -const communicate_ir_recv_init = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var bit = this.getFieldValue('type'); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (sub == "" && bit == "RC5") { - var code = "ir_rx = irremote.RC5_RX(" + pin + ")\n"; - } - else if (sub == "") { - var code = "ir_rx = irremote.NEC_RX(" + pin + "," + bit + ")\n"; - } - else { - var code = "ir_rx = irremote.NEC_RX(" + pin + "," + bit + "," + sub + ")\n"; - } - return code; -} - -const internal_variable = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var index = this.getFieldValue('index'); - var code = "ir_rx.code[" + index + "]"; - return [code, generator.ORDER_ATOMIC]; -} - -const recv_fun = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var en = this.getFieldValue('en'); - var code = "ir_rx.enable(" + en + ")\n"; - return code; -} - -const ir_whether_recv = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var code = "ir_rx.any()"; - return [code, generator.ORDER_ATOMIC]; -} - -const ir_recv_timeout = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var code = "ir_rx.timeout(" + time + ")\n"; - return code; -} - -const communicate_ir_send_init = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var sam = this.getFieldValue('type'); - var power = generator.valueToCode(this, 'power', generator.ORDER_ATOMIC); - if (sam == "RC5") { - var code = "ir_tx = irremote.RC5_TX(" + pin + "," + power + ")\n"; - } - else { - var code = "ir_tx = irremote.NEC_TX(" + pin + "," + sam + "," + power + ")\n"; - } - return code; -} - -const ir_transmit_conventional_data = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var cmd = generator.valueToCode(this, 'cmd', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var toggle = generator.valueToCode(this, 'toggle', generator.ORDER_ATOMIC); - var code = "ir_tx.transmit(" + cmd + "," + addr + "," + toggle + ")\n"; - return code; -} - -const ir_transmit_study_code = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var s_code = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC); - var code = "ir_tx.transmit(pulses=" + s_code + ")\n"; - return code; -} - -const ir_transmit_raw_code = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var raw = generator.valueToCode(this, 'raw', generator.ORDER_ATOMIC); - var code = "ir_tx.transmit(raw=" + raw + ")\n"; - return code; -} - -const ir_transmit_busy = function (block, generator) { - generator.definitions_['import_irremote'] = 'import irremote'; - var code = "ir_tx.busy()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_bluetooth_central_init = function (block, generator) { - generator.definitions_['import_ble_central'] = 'import ble_central'; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + " = ble_central.BLESimpleCentral()\n"; - return code; -} - -const communicate_bluetooth_peripheral_init = function (block, generator) { - generator.definitions_['import_ble_peripheral'] = 'import ble_peripheral'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + " = ble_peripheral.BLESimplePeripheral(" + data + ")\n"; - return code; -} - -const communicate_bluetooth_scan = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + ".scan()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_bluetooth_connect = function (block, generator) { - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - var code = name + ".connect(" + mode + '=' + data + ")\n"; - return code; -} - -const communicate_bluetooth_disconnect = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + '.disconnect()\n'; - return code; -} - -const communicate_bluetooth_mac = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return [name + ".mac", generator.ORDER_ATOMIC]; -} - -const communicate_bluetooth_is_connected = function (block, generator) { - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + ".is_connected()"; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_bluetooth_send = function (block, generator) { - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + ".send(" + data + ")\n"; - return code; -} - -const communicate_bluetooth_recv_only = function (block, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = v + '.recv()'; - return [code, generator.ORDER_ATOMIC]; -} - -const communicate_bluetooth_recv = function (block, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC); - var code = v + '.recv(' + method + ')\n'; - return code; -} - -const communicate_bluetooth_handle = function (block, generator) { - generator.definitions_['import_ble_handle'] = 'import ble_handle'; - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC); - var code = v + '=ble_handle.Handle()\n' + v + '.recv(' + method + ')\n'; - return code; -} - -//espnow -const communicate_espnow_init = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC); - var power = this.getFieldValue('op'); - var code = "" + name + "=radio.ESPNow(channel=" + varName + ",txpower=" + power + ")\n"; - return code; -} - -const communicate_espnow_init_new = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC); - var varName2 = generator.valueToCode(this, 'DB', generator.ORDER_ATOMIC); - var code = "" + name + "=radio.ESPNow(channel=" + varName + ',txpower=' + varName2 + ")\n"; - return code; -} - -const network_espnow_mac = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return [name + ".mac", generator.ORDER_ATOMIC]; -} - -const network_espnow_info = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return [name + ".info()", generator.ORDER_ATOMIC]; -} - -const network_espnow_recv = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var mode = this.getFieldValue('mode'); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + ".recv()" + mode; - return [code, generator.ORDER_ATOMIC]; -} - -const network_espnow_send = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var mac = generator.valueToCode(this, 'mac', generator.ORDER_ATOMIC); - var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC); - var code = name + ".send(" + mac + "," + content + ")\n"; - return code; -} - -const network_espnow_recv_handle = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC); - var code = name + ".recv_cb(" + method + ")\n"; - return code; -} - -//radio -const espnow_radio_channel = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['var_declare_ESPNow_radio'] = "ESPNow_radio=radio.ESPNow()"; - var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC); - var code = "ESPNow_radio.set_channel(channel=" + varName + ")\n"; - return code; -} - -const espnow_radio_txpower = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['var_declare_ESPNow_radio'] = "ESPNow_radio=radio.ESPNow()"; - var power = this.getFieldValue('op'); - var code = "ESPNow_radio.set_channel(txpower=" + power + ")\n"; - return code; -} - -const espnow_radio_channel_new = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - var varName2 = generator.valueToCode(this, 'DB', generator.ORDER_ATOMIC); - generator.definitions_['var_declare_ESPNow_radio'] = "ESPNow_radio=radio.ESPNow(channel=1,txpower=" + varName2 + ")"; - var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC); - var code = "ESPNow_radio.set_channel(" + varName + ")\n"; - return code; -} - -const espnow_radio_on_off = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var op = this.getFieldValue('on_off'); - var code = "ESPNow_radio.active(" + op + ")\n"; - return code; -} - -const espnow_radio_send = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var varName = generator.valueToCode(this, 'send', generator.ORDER_ATOMIC); - var code = 'ESPNow_radio.send("ffffffffffff",' + varName + ")\n"; - return code; -} - -const espnow_radio_rec = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var code = "ESPNow_radio.recv()"; - return [code, generator.ORDER_ATOMIC]; -} - -const espnow_radio_recv_msg = function (block, generator) { - var code = "ESPNow_radio_msg"; - return [code, generator.ORDER_ATOMIC]; -} - -const espnow_radio_recv = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['import_ubinascii'] = 'import ubinascii'; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var doCode = generator.statementToCode(block, 'DO') || generator.PASS; - generator.definitions_['def_ESPNow_radio_recv'] = 'def ESPNow_radio_recv(mac,ESPNow_radio_msg):\n' + doCode; - generator.definitions_['def_ESPNow_radio_recv_all'] = '_radio_msg_list = []\n' + 'def ESPNow_radio_recv_callback(mac,ESPNow_radio_msg):\n' + ' global _radio_msg_list\n' + ' try: ESPNow_radio_recv(mac,ESPNow_radio_msg)\n' + ' except: pass\n' + ' if str(ESPNow_radio_msg) in _radio_msg_list:\n' + " eval('radio_recv_' + bytes.decode(ubinascii.hexlify(ESPNow_radio_msg)) + '()')\n"; - generator.definitions_['ESPNow_radio_recv_callback'] = "ESPNow_radio.recv_cb(ESPNow_radio_recv_callback)\n"; - - return ''; -} - -var writeUTF = function (str, isGetBytes) { - var back = []; - var byteSize = 0; - for (var i = 0; i < str.length; i++) { - var code = str.charCodeAt(i); - if (0x00 <= code && code <= 0x7f) { - byteSize += 1; - back.push(code); - } else if (0x80 <= code && code <= 0x7ff) { - byteSize += 2; - back.push((192 | (31 & (code >> 6)))); - back.push((128 | (63 & code))) - } else if ((0x800 <= code && code <= 0xd7ff) || (0xe000 <= code && code <= 0xffff)) { - byteSize += 3; - back.push((224 | (15 & (code >> 12)))); - back.push((128 | (63 & (code >> 6)))); - back.push((128 | (63 & code))) - } - } - for (i = 0; i < back.length; i++) { - back[i] &= 0xff; - } - if (isGetBytes) { - return back; - } - if (byteSize <= 0xff) { - return [0, byteSize].concat(back); - } - return [byteSize >> 8, byteSize & 0xff].concat(back); -} - -var toUTF8Hex = function (str) { - var charBuf = writeUTF(str, true); - var re = ''; - for (var i = 0; i < charBuf.length; i++) { - var x = (charBuf[i] & 0xFF).toString(16); - if (x.length === 1) { - x = '0' + x; - } - re += x; - } - return re; -} - -const espnow_radio_recv_certain_msg = function (block, generator) { - generator.definitions_['import_radio'] = "import radio"; - generator.definitions_['import_ubinascii'] = 'import ubinascii'; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var doCode = generator.statementToCode(block, 'DO') || generator.PASS; - generator.definitions_['def_ESPNow_radio_recv_all'] = '_radio_msg_list = []\n' + 'def ESPNow_radio_recv_callback(mac,ESPNow_radio_msg):\n' + ' global _radio_msg_list\n' + ' try: ESPNow_radio_recv(mac,ESPNow_radio_msg)\n' + ' except: pass\n' + ' if str(ESPNow_radio_msg) in _radio_msg_list:\n' + " eval('radio_recv_' + bytes.decode(ubinascii.hexlify(ESPNow_radio_msg)) + '()')\n"; - generator.definitions_['ESPNow_radio_recv_callback'] = "ESPNow_radio.recv_cb(ESPNow_radio_recv_callback)\n"; - var message = block.getFieldValue('msg'); - var message_utf8 = toUTF8Hex(message); - generator.definitions_['def_radio_recv_' + message_utf8] = - '_radio_msg_list.append(\'' + message + '\')\n' + - 'def radio_recv_' + message_utf8 + '():\n' + doCode; - return ''; -} - -const espnow_radio_recv_new = function (block, generator) { - generator.definitions_['import_radio'] = 'import radio'; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var doCode = generator.statementToCode(block, 'DO') || generator.PASS; - generator.definitions_['def_ESPNow_radio_recv'] = 'def ESPNow_radio_recv(mac, ESPNow_radio_msg):\n' - + `${doCode}\nESPNow_radio.recv_cb("__all__", ESPNow_radio_recv)\n`; - return ''; -} - -const espnow_radio_recv_certain_msg_new = function (block, generator) { - generator.definitions_['import_radio'] = 'import radio'; - generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()'; - var doCode = generator.statementToCode(block, 'DO') || generator.PASS; - var message = block.getFieldValue('msg'); - generator.definitions_['def_ESPNow_radio_recv_' + message] = 'def ESPNow_radio_recv(mac, ESPNow_radio_msg):\n' - + `${doCode}\nESPNow_radio.recv_cb("${message}", ESPNow_radio_recv)\n`; - return ''; -} - -const lora_init = function (block, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC); - var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC); - var fr = generator.valueToCode(this, 'frequency', generator.ORDER_ATOMIC); - var r = generator.valueToCode(this, 'rate', generator.ORDER_ATOMIC); - var f = generator.valueToCode(this, 'factor', generator.ORDER_ATOMIC); - var p = generator.valueToCode(this, 'power', generator.ORDER_ATOMIC); - var bandwidth = this.getFieldValue('bandwidth'); - var code; - generator.definitions_['import_rfm98'] = 'import rfm98'; - var code = v + ' = rfm98.RFM98(' + sv + ',cs_pin=' + pv + ',frequency_mhz=' + fr + ',signal_bandwidth=' + bandwidth + ',coding_rate=' + r + ',spreading_factor=' + f + ',tx_power=' + p + ')\n'; - return code; -} - -const lora_packet = function (block, generator) { - generator.definitions_['import_rfm98'] = 'import rfm98'; - var key = this.getFieldValue('key'); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return [name + "." + key + '()', generator.ORDER_ATOMIC]; -} - -const lora_send = function (block, generator) { - generator.definitions_['import_rfm98'] = 'import rfm98'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = name + ".send(" + data + ")\n"; - return code; -} - -const lora_recv = function (block, generator) { - generator.definitions_['import_rfm98'] = 'import rfm98'; - var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return [name + '.recv()', generator.ORDER_ATOMIC]; -} - -const urequests_get = function (block, generator) { - generator.definitions_.import_requests = "import urequests"; - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var str = generator.valueToCode(this, 'DOMAIN', generator.ORDER_ATOMIC); - var code = varName + '= ' + 'urequests.get(' + str + ')\n'; - return code; -} - -const urequests_attribute = function (block, generator) { - generator.definitions_.import_requests = "import urequests"; - var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0'; - var attr = this.getFieldValue('ATTR'); - var code = varName + "." + attr; - return [code, generator.ORDER_ATOMIC]; -} - -const urequests_method = function (block, generator) { - generator.definitions_.import_requests = "import urequests"; - var method = this.getFieldValue('DIR'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "urequests." + method + "(" + str + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/control.js": -/*!********************************************!*\ - !*** ../micropython/generators/control.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ base_setup: () => (/* binding */ base_setup), -/* harmony export */ controls_flow_statements: () => (/* binding */ controls_flow_statements), -/* harmony export */ controls_for: () => (/* binding */ controls_for), -/* harmony export */ controls_forEach: () => (/* binding */ controls_forEach), -/* harmony export */ controls_if: () => (/* binding */ controls_if), -/* harmony export */ controls_repeat: () => (/* binding */ controls_repeat), -/* harmony export */ controls_type: () => (/* binding */ controls_type), -/* harmony export */ controls_typeLists: () => (/* binding */ controls_typeLists), -/* harmony export */ controls_whileUntil: () => (/* binding */ controls_whileUntil) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _mixly_python_generators_control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @mixly/python/generators/control */ "../python/generators/control.js"); - - - -const base_setup = function (_, generator) { - var branch = generator.statementToCode(this, 'DO'); - branch = branch.replace(/(^\s*)|(\s*$)/g, "").replace(/\n {4}/g, '\n');//去除两端空格 - if (branch) { - if (branch.endsWith('\n')) { - generator.setups_['setup_setup'] = branch; - } else { - generator.setups_['setup_setup'] = branch + '\n'; - } - } - return ''; -} - -// ok -const controls_if = function (a, generator) { - var b = 0, - c = "", - d, - e; - do - e = generator.valueToCode(a, "IF" + b, generator.ORDER_NONE) || "False", d = generator.statementToCode(a, "DO" + b) || generator.PASS, c += (0 == b ? "if " : "elif ") + e + ":\n" + d, ++b; - while (a.getInput("IF" + b)); - a.getInput("ELSE") && (d = generator.statementToCode(a, "ELSE") || generator.PASS, c += "else:\n" + d); - return c -} - -// ok -const controls_for = function (a, generator) { - var b = generator.variableDB_.getName(a.getFieldValue("VAR"), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE), - //var b = generator.valueToCode(a, "VAR", generator.ORDER_MEMBER) || "''", - c = generator.valueToCode(a, "FROM", generator.ORDER_NONE) || "0", - d = generator.valueToCode(a, "TO", generator.ORDER_NONE) || "0", - e = generator.valueToCode(a, "STEP", generator.ORDER_NONE) || "1", - f = generator.addLoopTrap(generator.statementToCode(a, "DO"), a.id) || generator.PASS, - g = "", - h = function (_, generator) { - return generator.provideFunction_("upRange", - ["def " + generator.FUNCTION_NAME_PLACEHOLDER_ + "(start, stop, step):", " while start <= stop:", " yield start", " start += abs(step)"]) - }, - k = function (_, generator) { - return generator.provideFunction_("downRange", ["def " + generator.FUNCTION_NAME_PLACEHOLDER_ + "(start, stop, step):", " while start >= stop:", " yield start", " start -= abs(step)"]) - } - a = function (a, b, c) { - return "(" + a + " <= " + b + ") and " + h() + "(" + a + ", " + b + ", " + c + ") or " + k() + "(" + a + ", " + b + ", " + c + ")" - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(c) && blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(d) && - blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(e)) - c = parseFloat(c), d = parseFloat(d), e = Math.abs(parseFloat(e)), 0 === c % 1 && 0 === d % 1 && 0 === e % 1 ? (c <= d ? (d++, a = 0 == c && 1 == e ? d : c + ", " + d, 1 != e && (a += ", " + e)) : (d--, a = c + ", " + d + ", -" + e), a = "range(" + a + ")") : (a = c < d ? h() : k(), a += "(" + c + ", " + d + ", " + e + ")"); - else { - var l = function (a, c) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(a)) - a = parseFloat(a); - else { - var d = generator.variableDB_.getDistinctName(b + c, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - g += d + " = " + a + "\n"; - a = d - } - return a - } - c = l(c, "_start"); - d = l(d, "_end"); - l(e, "_inc"); - a = "number" == typeof c && "number" == typeof d ? c < d ? h(c, d, e) : k(c, d, e) : a(c, d, e) - } - return g += "for " + b + " in " + a + ":\n" + f -} - -// ok -const controls_repeat = _mixly_python_generators_control__WEBPACK_IMPORTED_MODULE_1__.controls_repeat_ext; - -const controls_whileUntil = function (a, generator) { - var b = "UNTIL" == a.getFieldValue("MODE"), - c = generator.valueToCode(a, "BOOL", b ? generator.ORDER_LOGICAL_NOT : generator.ORDER_NONE) || "False", - d = generator.addLoopTrap(generator.statementToCode(a, "DO"), a.id) || generator.PASS; - b && (c = "not " + c); - return "while " + c + ":\n" + d -} - -// ok -const controls_flow_statements = function (a) { - switch (a.getFieldValue("FLOW")) { - case "BREAK": - return "break\n"; - case "CONTINUE": - return "continue\n" - } - throw "Unknown flow statement."; -} - -//ok -const controls_forEach = function (block, generator) { - // For each loop. - var variable0 = generator.variableDB_.getName( - block.getFieldValue('VAR'), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var argument0 = generator.valueToCode(block, 'LIST', - generator.ORDER_RELATIONAL) || '[]'; - var branch = generator.statementToCode(block, 'DO'); - branch = generator.addLoopTrap(branch, block.id) || - generator.PASS; - var code = 'for ' + variable0 + ' in ' + argument0 + ':\n' + branch; - return code; -} - -// ok -const controls_type = function (_, generator) { - var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '1000' - var code = 'type(' + data + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const controls_typeLists = function (_, generator) { - generator.definitions_['import_microbit_*'] = 'from microbit import *'; - var type = this.getFieldValue('type'); - // generator.definitions_['func_type' + type] = code; - return [type, generator.ORDER_ATOMIC]; -} - - -/***/ }), - -/***/ "../micropython/generators/display.js": -/*!********************************************!*\ - !*** ../micropython/generators/display.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ display_animate: () => (/* binding */ display_animate), -/* harmony export */ display_blink_rate: () => (/* binding */ display_blink_rate), -/* harmony export */ display_bright_point: () => (/* binding */ display_bright_point), -/* harmony export */ display_bright_screen: () => (/* binding */ display_bright_screen), -/* harmony export */ display_circle: () => (/* binding */ display_circle), -/* harmony export */ display_clear: () => (/* binding */ display_clear), -/* harmony export */ display_draw_4strings: () => (/* binding */ display_draw_4strings), -/* harmony export */ display_fill: () => (/* binding */ display_fill), -/* harmony export */ display_get_pixel: () => (/* binding */ display_get_pixel), -/* harmony export */ display_get_screen_image: () => (/* binding */ display_get_screen_image), -/* harmony export */ display_get_screen_pixel: () => (/* binding */ display_get_screen_pixel), -/* harmony export */ display_image_builtins: () => (/* binding */ display_image_builtins), -/* harmony export */ display_image_create: () => (/* binding */ display_image_create), -/* harmony export */ display_line: () => (/* binding */ display_line), -/* harmony export */ display_line_arbitrarily: () => (/* binding */ display_line_arbitrarily), -/* harmony export */ display_matrix_use_i2c_init: () => (/* binding */ display_matrix_use_i2c_init), -/* harmony export */ display_oled_drawPixel: () => (/* binding */ display_oled_drawPixel), -/* harmony export */ display_oled_showBitmap: () => (/* binding */ display_oled_showBitmap), -/* harmony export */ display_onoff: () => (/* binding */ display_onoff), -/* harmony export */ display_rect: () => (/* binding */ display_rect), -/* harmony export */ display_scroll_string: () => (/* binding */ display_scroll_string), -/* harmony export */ display_scroll_string_delay: () => (/* binding */ display_scroll_string_delay), -/* harmony export */ display_scroll_string_extern: () => (/* binding */ display_scroll_string_extern), -/* harmony export */ display_show_image: () => (/* binding */ display_show_image), -/* harmony export */ display_show_image_or_string: () => (/* binding */ display_show_image_or_string), -/* harmony export */ display_show_image_or_string_delay: () => (/* binding */ display_show_image_or_string_delay), -/* harmony export */ display_show_static: () => (/* binding */ display_show_static), -/* harmony export */ display_tm1650_power: () => (/* binding */ display_tm1650_power), -/* harmony export */ display_tm1650_show_dot: () => (/* binding */ display_tm1650_show_dot), -/* harmony export */ display_tm1650_show_num: () => (/* binding */ display_tm1650_show_num), -/* harmony export */ display_tm_use_i2c_init: () => (/* binding */ display_tm_use_i2c_init), -/* harmony export */ display_triangle: () => (/* binding */ display_triangle), -/* harmony export */ display_use_i2c_init: () => (/* binding */ display_use_i2c_init), -/* harmony export */ image_arithmetic: () => (/* binding */ image_arithmetic), -/* harmony export */ image_shift: () => (/* binding */ image_shift) -/* harmony export */ }); -const display_show_image_or_string = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "matrix.show(" + data + ")\n"; - return code; -} - -const display_scroll_string = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "matrix.scroll(" + data + ")\n"; - return code; -} - -const display_show_static = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "matrix.showstatic(" + data + ")\n"; - return code; -} - -const display_show_image_or_string_delay = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = "matrix.show(" + data + ',' + time + ")\n"; - return code; -} - -const display_scroll_string_delay = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = "matrix.scroll(" + data + ',' + time + ")\n"; - return code; -} - -const display_image_create = function (block, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var colours = { - "#000000": "0", - //"#440000": "1", - //"#660000": "2", - //"#880000": "3", - //"#aa0000": "4", - //"#bb0000": "5", - //"#cc0000": "6", - //"#dd0000": "7", - //"#ee0000": "8", - "#ff0000": "1" - } - var colour_00 = colours[block.getFieldValue("00")]; - var colour_01 = colours[block.getFieldValue("01")]; - var colour_02 = colours[block.getFieldValue("02")]; - var colour_03 = colours[block.getFieldValue("03")]; - var colour_04 = colours[block.getFieldValue("04")]; - var colour_05 = colours[block.getFieldValue("05")]; - var colour_06 = colours[block.getFieldValue("06")]; - var colour_07 = colours[block.getFieldValue("07")]; - var colour_08 = colours[block.getFieldValue("08")]; - var colour_09 = colours[block.getFieldValue("09")]; - var colour_0a = colours[block.getFieldValue("0a")]; - var colour_0b = colours[block.getFieldValue("0b")]; - var colour_0c = colours[block.getFieldValue("0c")]; - var colour_0d = colours[block.getFieldValue("0d")]; - var colour_0e = colours[block.getFieldValue("0e")]; - var colour_0f = colours[block.getFieldValue("0f")]; - var colour_10 = colours[block.getFieldValue("10")]; - var colour_11 = colours[block.getFieldValue("11")]; - var colour_12 = colours[block.getFieldValue("12")]; - var colour_13 = colours[block.getFieldValue("13")]; - var colour_14 = colours[block.getFieldValue("14")]; - var colour_15 = colours[block.getFieldValue("15")]; - var colour_16 = colours[block.getFieldValue("16")]; - var colour_17 = colours[block.getFieldValue("17")]; - var colour_18 = colours[block.getFieldValue("18")]; - var colour_19 = colours[block.getFieldValue("19")]; - var colour_1a = colours[block.getFieldValue("1a")]; - var colour_1b = colours[block.getFieldValue("1b")]; - var colour_1c = colours[block.getFieldValue("1c")]; - var colour_1d = colours[block.getFieldValue("1d")]; - var colour_1e = colours[block.getFieldValue("1e")]; - var colour_1f = colours[block.getFieldValue("1f")]; - var colour_20 = colours[block.getFieldValue("20")]; - var colour_21 = colours[block.getFieldValue("21")]; - var colour_22 = colours[block.getFieldValue("22")]; - var colour_23 = colours[block.getFieldValue("23")]; - var colour_24 = colours[block.getFieldValue("24")]; - var colour_25 = colours[block.getFieldValue("25")]; - var colour_26 = colours[block.getFieldValue("26")]; - var colour_27 = colours[block.getFieldValue("27")]; - var colour_28 = colours[block.getFieldValue("28")]; - var colour_29 = colours[block.getFieldValue("29")]; - var colour_2a = colours[block.getFieldValue("2a")]; - var colour_2b = colours[block.getFieldValue("2b")]; - var colour_2c = colours[block.getFieldValue("2c")]; - var colour_2d = colours[block.getFieldValue("2d")]; - var colour_2e = colours[block.getFieldValue("2e")]; - var colour_2f = colours[block.getFieldValue("2f")]; - var colour_30 = colours[block.getFieldValue("30")]; - var colour_31 = colours[block.getFieldValue("31")]; - var colour_32 = colours[block.getFieldValue("32")]; - var colour_33 = colours[block.getFieldValue("33")]; - var colour_34 = colours[block.getFieldValue("34")]; - var colour_35 = colours[block.getFieldValue("35")]; - var colour_36 = colours[block.getFieldValue("36")]; - var colour_37 = colours[block.getFieldValue("37")]; - var colour_38 = colours[block.getFieldValue("38")]; - var colour_39 = colours[block.getFieldValue("39")]; - var colour_3a = colours[block.getFieldValue("3a")]; - var colour_3b = colours[block.getFieldValue("3b")]; - var colour_3c = colours[block.getFieldValue("3c")]; - var colour_3d = colours[block.getFieldValue("3d")]; - var colour_3e = colours[block.getFieldValue("3e")]; - var colour_3f = colours[block.getFieldValue("3f")]; - var colour_40 = colours[block.getFieldValue("40")]; - var colour_41 = colours[block.getFieldValue("41")]; - var colour_42 = colours[block.getFieldValue("42")]; - var colour_43 = colours[block.getFieldValue("43")]; - var colour_44 = colours[block.getFieldValue("44")]; - var colour_45 = colours[block.getFieldValue("45")]; - var colour_46 = colours[block.getFieldValue("46")]; - var colour_47 = colours[block.getFieldValue("47")]; - var colour_48 = colours[block.getFieldValue("48")]; - var colour_49 = colours[block.getFieldValue("49")]; - var colour_4a = colours[block.getFieldValue("4a")]; - var colour_4b = colours[block.getFieldValue("4b")]; - var colour_4c = colours[block.getFieldValue("4c")]; - var colour_4d = colours[block.getFieldValue("4d")]; - var colour_4e = colours[block.getFieldValue("4e")]; - var colour_4f = colours[block.getFieldValue("4f")]; - var colour_50 = colours[block.getFieldValue("50")]; - var colour_51 = colours[block.getFieldValue("51")]; - var colour_52 = colours[block.getFieldValue("52")]; - var colour_53 = colours[block.getFieldValue("53")]; - var colour_54 = colours[block.getFieldValue("54")]; - var colour_55 = colours[block.getFieldValue("55")]; - var colour_56 = colours[block.getFieldValue("56")]; - var colour_57 = colours[block.getFieldValue("57")]; - var colour_58 = colours[block.getFieldValue("58")]; - var colour_59 = colours[block.getFieldValue("59")]; - var colour_5a = colours[block.getFieldValue("5a")]; - var colour_5b = colours[block.getFieldValue("5b")]; - var colour_5c = colours[block.getFieldValue("5c")]; - var colour_5d = colours[block.getFieldValue("5d")]; - var colour_5e = colours[block.getFieldValue("5e")]; - var colour_5f = colours[block.getFieldValue("5f")]; - var colour_60 = colours[block.getFieldValue("60")]; - var colour_61 = colours[block.getFieldValue("61")]; - var colour_62 = colours[block.getFieldValue("62")]; - var colour_63 = colours[block.getFieldValue("63")]; - var colour_64 = colours[block.getFieldValue("64")]; - var colour_65 = colours[block.getFieldValue("65")]; - var colour_66 = colours[block.getFieldValue("66")]; - var colour_67 = colours[block.getFieldValue("67")]; - var colour_68 = colours[block.getFieldValue("68")]; - var colour_69 = colours[block.getFieldValue("69")]; - var colour_6a = colours[block.getFieldValue("6a")]; - var colour_6b = colours[block.getFieldValue("6b")]; - var colour_6c = colours[block.getFieldValue("6c")]; - var colour_6d = colours[block.getFieldValue("6d")]; - var colour_6e = colours[block.getFieldValue("6e")]; - var colour_6f = colours[block.getFieldValue("6f")]; - var colour_70 = colours[block.getFieldValue("70")]; - var colour_71 = colours[block.getFieldValue("71")]; - var colour_72 = colours[block.getFieldValue("72")]; - var colour_73 = colours[block.getFieldValue("73")]; - var colour_74 = colours[block.getFieldValue("74")]; - var colour_75 = colours[block.getFieldValue("75")]; - var colour_76 = colours[block.getFieldValue("76")]; - var colour_77 = colours[block.getFieldValue("77")]; - var colour_78 = colours[block.getFieldValue("78")]; - var colour_79 = colours[block.getFieldValue("79")]; - var colour_7a = colours[block.getFieldValue("7a")]; - var colour_7b = colours[block.getFieldValue("7b")]; - var colour_7c = colours[block.getFieldValue("7c")]; - var colour_7d = colours[block.getFieldValue("7d")]; - var colour_7e = colours[block.getFieldValue("7e")]; - var colour_7f = colours[block.getFieldValue("7f")]; - var code = 'matrix.Image("' + colour_00 + colour_01 + colour_02 + colour_03 + colour_04 + colour_05 + colour_06 + colour_07 + colour_08 + colour_09 + colour_0a + colour_0b + colour_0c + colour_0d + colour_0e + colour_0f + ':' + colour_10 + colour_11 + colour_12 + colour_13 + colour_14 + colour_15 + colour_16 + colour_17 + colour_18 + colour_19 + colour_1a + colour_1b + colour_1c + colour_1d + colour_1e + colour_1f + ':' + colour_20 + colour_21 + colour_22 + colour_23 + colour_24 + colour_25 + colour_26 + colour_27 + colour_28 + colour_29 + colour_2a + colour_2b + colour_2c + colour_2d + colour_2e + colour_2f + ':' + colour_30 + colour_31 + colour_32 + colour_33 + colour_34 + colour_35 + colour_36 + colour_37 + colour_38 + colour_39 + colour_3a + colour_3b + colour_3c + colour_3d + colour_3e + colour_3f + ':' + colour_40 + colour_41 + colour_42 + colour_43 + colour_44 + colour_45 + colour_46 + colour_47 + colour_48 + colour_49 + colour_4a + colour_4b + colour_4c + colour_4d + colour_4e + colour_4f + ':' + colour_50 + colour_51 + colour_52 + colour_53 + colour_54 + colour_55 + colour_56 + colour_57 + colour_58 + colour_59 + colour_5a + colour_5b + colour_5c + colour_5d + colour_5e + colour_5f + ':' + colour_60 + colour_61 + colour_62 + colour_63 + colour_64 + colour_65 + colour_66 + colour_67 + colour_68 + colour_69 + colour_6a + colour_6b + colour_6c + colour_6d + colour_6e + colour_6f + ':' + colour_70 + colour_71 + colour_72 + colour_73 + colour_74 + colour_75 + colour_76 + colour_77 + colour_78 + colour_79 + colour_7a + colour_7b + colour_7c + colour_7d + colour_7e + colour_7f + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_image_builtins = function (block, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var dropdown_image = block.getFieldValue('image'); - var code = 'matrix.Image.' + dropdown_image; - return [code, generator.ORDER_ATOMIC]; -} - -const display_get_pixel = function (block, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = 'matrix.get_pixel(int(' + value_x + '), int(' + value_y + '))'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_bright_point = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'matrix.set_pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + ")\n"; - return code; -} - -const display_get_screen_pixel = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var code = 'matrix.get_brightness()'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_get_screen_image = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var code = 'matrix.get_screenimage()'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_bright_screen = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = 'matrix.set_brightness(' + x + ')\n'; - return code; -} - -const display_blink_rate = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = 'matrix.blink_rate(' + x + ')\n'; - return code; -} - -const display_clear = function (_, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var code = 'matrix.clear()\n'; - return code; -} - -const display_use_i2c_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var i2csub = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC); - var column = generator.valueToCode(this, 'column', generator.ORDER_ATOMIC); - var code = sub + " = ssd1306.SSD1306_I2C(" + row + "," + column + "," + i2csub + ")\n"; - return code; -} - -const display_draw_4strings = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var value_text_line1 = generator.valueToCode(this, 'Text_line1', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line2 = generator.valueToCode(this, 'Text_line2', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line3 = generator.valueToCode(this, 'Text_line3', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line4 = generator.valueToCode(this, 'Text_line4', generator.ORDER_ASSIGNMENT) || '\'\''; - var code = varName + '.show_str(' + value_text_line1 + ',' + value_text_line2 + ',' + value_text_line3 + ',' + value_text_line4 + ')\n' - return code; -} - -const display_line_arbitrarily = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC); - var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC); - var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC); - var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC); - var code = varName + '.show_line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', 1)\n'; - return code; -} - -const display_rect = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_width = generator.valueToCode(this, 'width', generator.ORDER_ATOMIC); - var value_height = generator.valueToCode(this, 'height', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - var code = ''; - switch (checkbox_fill) { - case "True": - code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n'; - break; - case "False": - code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n'; - break; - } - return code; -} - -const image_arithmetic = function (block, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var op = block.getFieldValue("OP"); - var imga = generator.valueToCode(block, 'A', generator.ORDER_ATOMIC); - var imgb = generator.valueToCode(block, 'B', generator.ORDER_ATOMIC); - var code = ''; - if (op == 'INTERSECTION') { - code = imga + '-(' + imga + '-' + imgb + ')'; - } - else { - code = imga + op + imgb; - } - return [code, generator.ORDER_ATOMIC]; -} - -const display_line = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_length = generator.valueToCode(this, 'length', generator.ORDER_ATOMIC); - var value_direction = this.getFieldValue("direction"); - var code = varName + '.show_' + value_direction + '(' + location_x + ', ' + location_y + ', ' + value_length + ', 1)\n'; - return code; -} - -const display_onoff = function (_, generator) { - var code = (this.getFieldValue('ONOFF') == 'ON') ? '1' : '0'; - return [code, generator.ORDER_ATOMIC]; -} - -const image_shift = function (block, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var op = block.getFieldValue("OP"); - var image = generator.valueToCode(block, 'img', generator.ORDER_ATOMIC); - var value = generator.valueToCode(block, 'val', generator.ORDER_ATOMIC); - var code = image + '.shift_' + op + '(' + value + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_fill = function (_, generator) { - var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var code = varName + '.show_fill(' + key + ')\n'; - return code; -} - -// export const switch = function (_, generator) { -// var code = this.getFieldValue('flag'); -// return [code, generator.ORDER_ATOMIC]; -// } - -const display_tm_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue("key"); - var code; - if (key == 'TM1650') { - generator.definitions_['import_tm1650'] = 'import tm1650'; - code = v + ' = tm1650.' + key + "(" + iv + ')\n'; - } else if (key == 'TM1637') { - generator.definitions_['import_tm1637'] = 'import tm1637'; - code = v + ' = tm1637.' + key + "(" + iv + ')\n'; - } - return code; -} - -const display_tm1650_power = function (_, generator) { - var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var stat = this.getFieldValue("STAT"); - var code = v + '.' + type + stat + "()\n"; - return code; -} - -const display_tm1650_show_num = function (_, generator) { - var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC); - var code = v + '.' + type + "_show_num(" + val + ")\n"; - return code; -} - -const display_tm1650_show_dot = function (_, generator) { - var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var n = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC); - var stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = v + '.' + type + "_show_dot(" + n + ", " + stat + ")\n"; - return code; -} - -const display_animate = function (_, generator) { - // Boolean values true and false. - var name = this.getFieldValue("ANIMATION"); - var code = 'matrix.Image.' + name; - return [code, generator.ORDER_ATOMIC]; -} - -const display_circle = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_r = generator.valueToCode(this, 'r', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - var code = ''; - switch (checkbox_fill) { - case "True": - code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n'; - break; - case "False": - code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n'; - break; - } - return code; -} - -const display_triangle = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var location_x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC); - var location_y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC); - var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC); - var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC); - var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC); - var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - var code = ''; - switch (checkbox_fill) { - case "True": - code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n'; - break; - case "False": - code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n'; - break; - } - return code; -} - -const display_oled_showBitmap = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'START_X', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'START_Y', generator.ORDER_ATOMIC); - var bmp = generator.valueToCode(this, 'bitmap_name', generator.ORDER_ATOMIC); - var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC); - var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC); - var code = varName + '.show_bitmap(' + location_x + ', ' + location_y + ', ' + bmp + ',' + w + ',' + h + ')\n'; - return code; -} - -const display_oled_drawPixel = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'POS_X', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'POS_Y', generator.ORDER_ATOMIC); - var code = varName + '.show_pixel(' + location_x + ', ' + location_y + ')\n'; - return code; -} - -// pe: -const display_matrix_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue("key"); - var code; - if (key == '32x12 Matrix') { - generator.definitions_['import_matrix32x12'] = 'import matrix32x12'; - code = v + ' = matrix32x12.Matrix(' + iv + ')\n'; - } else if (key == 'TM1637') { - generator.definitions_['import_tm1637'] = 'import tm1637'; - code = v + ' = tm1637.' + key + "(" + iv + ')\n'; - } - return code; -} - -const display_show_image = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_matrix32x12'] = 'import matrix32x12'; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".set_buffer(" + data + ")\n"; - return code; -} - -const display_scroll_string_extern = function (_, generator) { - generator.definitions_['import_matrix32x12'] = 'import matrix32x12'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".scroll(" + data + ")\n"; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/display_extern.js": -/*!***************************************************!*\ - !*** ../micropython/generators/display_extern.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ display_animate: () => (/* binding */ display_animate), -/* harmony export */ display_circle: () => (/* binding */ display_circle), -/* harmony export */ display_color_seclet: () => (/* binding */ display_color_seclet), -/* harmony export */ display_draw_4strings: () => (/* binding */ display_draw_4strings), -/* harmony export */ display_fill: () => (/* binding */ display_fill), -/* harmony export */ display_lcd_use_i2c_init: () => (/* binding */ display_lcd_use_i2c_init), -/* harmony export */ display_line: () => (/* binding */ display_line), -/* harmony export */ display_line_arbitrarily: () => (/* binding */ display_line_arbitrarily), -/* harmony export */ display_matrix_extern_bright_point: () => (/* binding */ display_matrix_extern_bright_point), -/* harmony export */ display_matrix_extern_bright_screen: () => (/* binding */ display_matrix_extern_bright_screen), -/* harmony export */ display_matrix_extern_clear: () => (/* binding */ display_matrix_extern_clear), -/* harmony export */ display_matrix_extern_get_pixel: () => (/* binding */ display_matrix_extern_get_pixel), -/* harmony export */ display_matrix_extern_get_screen_pixel: () => (/* binding */ display_matrix_extern_get_screen_pixel), -/* harmony export */ display_matrix_extern_image_builtins: () => (/* binding */ display_matrix_extern_image_builtins), -/* harmony export */ display_matrix_extern_scroll_string: () => (/* binding */ display_matrix_extern_scroll_string), -/* harmony export */ display_matrix_extern_scroll_string_delay: () => (/* binding */ display_matrix_extern_scroll_string_delay), -/* harmony export */ display_matrix_extern_shift: () => (/* binding */ display_matrix_extern_shift), -/* harmony export */ display_matrix_extern_show_frame_string: () => (/* binding */ display_matrix_extern_show_frame_string), -/* harmony export */ display_matrix_extern_show_frame_string_delay: () => (/* binding */ display_matrix_extern_show_frame_string_delay), -/* harmony export */ display_matrix_extern_show_image: () => (/* binding */ display_matrix_extern_show_image), -/* harmony export */ display_matrix_extern_show_image_or_string_delay: () => (/* binding */ display_matrix_extern_show_image_or_string_delay), -/* harmony export */ display_matrix_use_i2c_init: () => (/* binding */ display_matrix_use_i2c_init), -/* harmony export */ display_oled_drawPixel: () => (/* binding */ display_oled_drawPixel), -/* harmony export */ display_oled_showBitmap: () => (/* binding */ display_oled_showBitmap), -/* harmony export */ display_oled_use_i2c_init: () => (/* binding */ display_oled_use_i2c_init), -/* harmony export */ display_onoff: () => (/* binding */ display_onoff), -/* harmony export */ display_rect: () => (/* binding */ display_rect), -/* harmony export */ display_tm1650_power: () => (/* binding */ display_tm1650_power), -/* harmony export */ display_tm1650_set_brightness: () => (/* binding */ display_tm1650_set_brightness), -/* harmony export */ display_tm1650_show_dot: () => (/* binding */ display_tm1650_show_dot), -/* harmony export */ display_tm1650_show_num: () => (/* binding */ display_tm1650_show_num), -/* harmony export */ display_tm_use_i2c_init: () => (/* binding */ display_tm_use_i2c_init), -/* harmony export */ display_triangle: () => (/* binding */ display_triangle), -/* harmony export */ display_use_i2c_init: () => (/* binding */ display_use_i2c_init), -/* harmony export */ extern_oled_bright_point: () => (/* binding */ extern_oled_bright_point), -/* harmony export */ extern_oled_clear: () => (/* binding */ extern_oled_clear), -/* harmony export */ extern_oled_get_pixel: () => (/* binding */ extern_oled_get_pixel), -/* harmony export */ extern_oled_hvline: () => (/* binding */ extern_oled_hvline), -/* harmony export */ extern_oled_line: () => (/* binding */ extern_oled_line), -/* harmony export */ extern_oled_scroll_string: () => (/* binding */ extern_oled_scroll_string), -/* harmony export */ extern_oled_scroll_string_delay: () => (/* binding */ extern_oled_scroll_string_delay), -/* harmony export */ extern_oled_shape_rect: () => (/* binding */ extern_oled_shape_rect), -/* harmony export */ extern_oled_shift: () => (/* binding */ extern_oled_shift), -/* harmony export */ extern_oled_show_frame_string: () => (/* binding */ extern_oled_show_frame_string), -/* harmony export */ extern_oled_show_frame_string_delay: () => (/* binding */ extern_oled_show_frame_string_delay), -/* harmony export */ extern_oled_show_image: () => (/* binding */ extern_oled_show_image), -/* harmony export */ extern_oled_show_image_or_string_delay: () => (/* binding */ extern_oled_show_image_or_string_delay), -/* harmony export */ extern_oled_show_image_xy: () => (/* binding */ extern_oled_show_image_xy), -/* harmony export */ extern_oled_show_string: () => (/* binding */ extern_oled_show_string), -/* harmony export */ image_shift: () => (/* binding */ image_shift), -/* harmony export */ lcd_backlight: () => (/* binding */ lcd_backlight), -/* harmony export */ lcd_clear: () => (/* binding */ lcd_clear), -/* harmony export */ lcd_print_string: () => (/* binding */ lcd_print_string), -/* harmony export */ lcd_show_image_or_string_delay: () => (/* binding */ lcd_show_image_or_string_delay), -/* harmony export */ matrix_extern_image_arithmetic: () => (/* binding */ matrix_extern_image_arithmetic), -/* harmony export */ matrix_extern_image_invert: () => (/* binding */ matrix_extern_image_invert), -/* harmony export */ tft_fill: () => (/* binding */ tft_fill), -/* harmony export */ tft_line_arbitrarily: () => (/* binding */ tft_line_arbitrarily), -/* harmony export */ tft_scroll_string_delay: () => (/* binding */ tft_scroll_string_delay), -/* harmony export */ tft_show_frame_string_delay: () => (/* binding */ tft_show_frame_string_delay), -/* harmony export */ tft_show_image_or_string_delay: () => (/* binding */ tft_show_image_or_string_delay), -/* harmony export */ tft_show_image_xy: () => (/* binding */ tft_show_image_xy), -/* harmony export */ tft_use_spi_init: () => (/* binding */ tft_use_spi_init) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const display_matrix_use_i2c_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue("key"); - var font = ''; - if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) { - font = '0x700000' - } else if (['mixgo_sant'].indexOf(version) >= 0) { - font = '0xE00000' - } else { - font = '0x3A0000' - } - var code; - if (key == '32x12 Matrix') { - generator.definitions_['import_matrix32x12'] = 'import matrix32x12'; - code = v + ' = matrix32x12.Matrix(' + iv + ',font_address=' + font + ')\n'; - } else if (key == '16x8 Matrix') { - generator.definitions_['import_matrix16x8'] = 'import matrix16x8'; - code = v + ' = matrix16x8.Matrix(' + iv + ')\n'; - } - return code; -} - -const display_matrix_extern_show_image = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".shows(" + data + ")\n"; - return code; -} - -const display_matrix_extern_show_image_or_string_delay = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - var code = v + ".shows(" + data + ',space = ' + space + ',center = ' + op + ")\n"; - return code; -} - -const display_matrix_extern_show_frame_string = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".frame(" + data + ")\n"; - return code; -} - -const display_matrix_extern_show_frame_string_delay = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = v + ".frame(" + data + ',delay = ' + time + ")\n"; - return code; -} - -const display_matrix_extern_scroll_string = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".scroll(" + data + ")\n"; - return code; -} - -const display_matrix_extern_scroll_string_delay = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var code = v + ".scroll(" + data + ',speed =' + time + ',space = ' + space + ")\n"; - return code; -} - -const display_matrix_extern_clear = function (block, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.fill(0)\n' + v + '.show()\n'; - return code; -} - -const display_matrix_extern_shift = function (a, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var op = a.getFieldValue("OP"); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = v + '.' + op + '(' + value + ')\n'; - return code; -} - -const display_matrix_extern_get_pixel = function (block, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = v + '.pixel(int(' + value_x + '), int(' + value_y + '))'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_matrix_extern_bright_point = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = v + '.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + ")\n" + v + '.show()\n'; - return code; -} - -const display_matrix_extern_get_screen_pixel = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.get_brightness()'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_matrix_extern_bright_screen = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = v + '.set_brightness(' + x + ')\n'; - return code; -} - -const display_matrix_extern_image_builtins = function (block, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_image = block.getFieldValue('image'); - var code = v + '.' + dropdown_image; - return [code, generator.ORDER_ATOMIC]; -} - -const matrix_extern_image_arithmetic = function (a, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var op = a.getFieldValue("OP"); - var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC); - var imgb = generator.valueToCode(a, 'B', generator.ORDER_ATOMIC); - var code = v + '.map_' + op + '(' + imga + ',' + imgb + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const matrix_extern_image_invert = function (a, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC); - var code = v + '.map_invert(' + imga + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -//oled -const display_use_i2c_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var i2csub = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC); - var column = generator.valueToCode(this, 'column', generator.ORDER_ATOMIC); - var code = sub + " = ssd1306.SSD1306_I2C(" + row + "," + column + "," + i2csub + ")\n"; - return code; -} - -const display_draw_4strings = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var value_text_line1 = generator.valueToCode(this, 'Text_line1', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line2 = generator.valueToCode(this, 'Text_line2', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line3 = generator.valueToCode(this, 'Text_line3', generator.ORDER_ASSIGNMENT) || '\'\''; - var value_text_line4 = generator.valueToCode(this, 'Text_line4', generator.ORDER_ASSIGNMENT) || '\'\''; - var code = varName + '.show_str(' + value_text_line1 + ',' + value_text_line2 + ',' + value_text_line3 + ',' + value_text_line4 + ')\n' - return code; -} - -const display_line_arbitrarily = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC); - var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC); - var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC); - var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC); - var code = varName + '.show_line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', 1)\n'; - return code; -} - -const display_rect = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_width = generator.valueToCode(this, 'width', generator.ORDER_ATOMIC); - var value_height = generator.valueToCode(this, 'height', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - switch (checkbox_fill) { - case "True": - var code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n'; - return code; - case "False": - var code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\n'; - return code; - } -} - - -const display_line = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_length = generator.valueToCode(this, 'length', generator.ORDER_ATOMIC); - var value_direction = this.getFieldValue("direction"); - var code = varName + '.show_' + value_direction + '(' + location_x + ', ' + location_y + ', ' + value_length + ', 1)\n'; - return code; -} - -const display_onoff = function (_, generator) { - var code = (this.getFieldValue('ONOFF') == 'ON') ? '1' : '0'; - return [code, generator.ORDER_ATOMIC]; -} - -const image_shift = function (a, generator) { - generator.definitions_['import_matrix'] = 'import matrix'; - var op = a.getFieldValue("OP"); - var image = generator.valueToCode(a, 'img', generator.ORDER_ATOMIC); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = image + '.shift_' + op + '(' + value + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_fill = function (_, generator) { - var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var code = varName + '.show_fill(' + key + ')\n'; - return code; -} - -// export const switch = function (_, generator) { -// var code = this.getFieldValue('flag'); -// return [code, generator.ORDER_ATOMIC]; -// }; - -const display_animate = function (_, generator) { - // Boolean values true and false. - var name = this.getFieldValue("ANIMATION"); - var code = 'matrix.Image.' + name; - return [code, generator.ORDER_ATOMIC]; -} - -const display_circle = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC); - var value_r = generator.valueToCode(this, 'r', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - switch (checkbox_fill) { - case "True": - var code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n'; - return code; - case "False": - var code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\n'; - return code; - } -} - -const display_triangle = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var location_x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC); - var location_y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC); - var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC); - var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC); - var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC); - var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC); - var checkbox_fill = this.getFieldValue("fill") == 'TRUE' ? 'True' : 'False'; - var size = this.getFieldValue('OP'); - switch (checkbox_fill) { - case "True": - var code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n'; - return code; - case "False": - var code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\n'; - return code; - } -} - -const display_oled_showBitmap = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'START_X', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'START_Y', generator.ORDER_ATOMIC); - var bmp = generator.valueToCode(this, 'bitmap_name', generator.ORDER_ATOMIC); - var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC); - var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC); - var code = varName + '.show_bitmap(' + location_x + ', ' + location_y + ', ' + bmp + ',' + w + ',' + h + ')\n'; - return code; -} - -const display_oled_drawPixel = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_ssd1306'] = 'import ssd1306'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var location_x = generator.valueToCode(this, 'POS_X', generator.ORDER_ATOMIC); - var location_y = generator.valueToCode(this, 'POS_Y', generator.ORDER_ATOMIC); - var code = varName + '.show_pixel(' + location_x + ', ' + location_y + ')\n'; - return code; -} - -//tm1650 -const display_tm_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue("key"); - var code; - if (key == 'TM1650') { - generator.definitions_['import_tm1650'] = 'import tm1650'; - code = v + ' = tm1650.' + key + "(" + iv + ')\n'; - } else if (key == 'TM1637') { - generator.definitions_['import_tm1637'] = 'import tm1637'; - code = v + ' = tm1637.' + key + "(" + iv + ')\n'; - } - return code; -} - -const display_tm1650_power = function (_, generator) { - // var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var stat = this.getFieldValue("STAT"); - var code = v + '.' + stat + "()\n"; - return code; -} - -const display_tm1650_show_num = function (_, generator) { - // var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC); - var code = v + ".shownum(" + val + ")\n"; - return code; -} - -const display_tm1650_show_dot = function (_, generator) { - // var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var n = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC); - var stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = v + '.showDP(' + n + ", " + stat + ")\n"; - return code; -} - -const display_tm1650_set_brightness = function (_, generator) { - // var type = this.getFieldValue("TYPE"); - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC); - var code = v + ".intensity(" + val + ")\n"; - return code; -} - -const tft_use_spi_init = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var font = ''; - if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) { - font = '0x700000' - } else if (['mixgo_sant'].indexOf(version) >= 0) { - font = '0xE00000' - } else { - font = '0x3A0000' - } - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC); - var pv = generator.valueToCode(this, 'PINCS', generator.ORDER_ATOMIC); - var dv = generator.valueToCode(this, 'PINDC', generator.ORDER_ATOMIC); - var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC); - var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC); - var op = this.getFieldValue('rotate'); - var code = v + ' = st7789.ST7789(' + sv + ',' + w + ',' + h + ',dc_pin=' + dv + ',cs_pin=' + pv + ',rotation=' + op + ',font_address=' + font + ')\n'; - return code; -} - -const tft_show_image_xy = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = v + ".image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = v + ".image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const display_color_seclet = function (_, generator) { - var colour = this.getFieldValue('COLOR'); - var code = '0x' + colour.slice(1) + '' - var rgb565 = (code & 0xf80000) >> 8 | (code & 0xfc00) >> 5 | (code & 0xff) >> 3 - return ['0x' + rgb565.toString(16), generator.ORDER_ATOMIC]; -} - -const tft_show_image_or_string_delay = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var op = this.getFieldValue('center'); - if (color.slice(0, 2) == "0x") { - var code = v + ".shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = v + ".shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const tft_show_frame_string_delay = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = v + ".frame(" + data + ',size = ' + size + ',delay = ' + time + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = v + ".frame(" + data + ',size = ' + size + ',delay = ' + time + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const tft_scroll_string_delay = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = v + ".scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = v + ".scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const tft_fill = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v + '.fill(st7789.' + key + ')\n'; - return code; -} - -const tft_line_arbitrarily = function (_, generator) { - generator.definitions_['import_st7789'] = 'import st7789'; - var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC); - var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC); - var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC); - var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = varName + '.line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', color=' + color + ')\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = varName + '.line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', color=0x' + rgb565.toString(16) + ')\n'; - } - return code; -} - -const display_lcd_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue("key"); - var addr = generator.valueToCode(this, 'ADDR', generator.ORDER_ATOMIC); - var code; - generator.definitions_['import_i2clcd'] = 'import i2clcd'; - code = v + ' = i2clcd.LCD' + "(" + iv + ',lcd_width=' + key + ',i2c_addr=' + addr +')\n'; - return code; -} - -const lcd_show_image_or_string_delay = function (_, generator) { - generator.definitions_['import_i2clcd'] = 'import i2clcd'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - var code = v + ".shows(" + data + ',column = ' + x + ',line = ' + y + ',center = ' + op + ")\n"; - return code; -} - -const lcd_print_string = function (_, generator) { - generator.definitions_['import_i2clcd'] = 'import i2clcd'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var delay = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = v + ".print(" + data + ',column = ' + x + ',line = ' + y + ',delay=' + delay + ")\n"; - return code; -} - -const lcd_backlight = function (_, generator) { - generator.definitions_['import_i2clcd'] = 'import i2clcd'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = v + '.backlight(' + key + ')\n'; - return code; -} - -const lcd_clear = function (block, generator) { - generator.definitions_['import_i2clcd'] = 'import i2clcd'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.clear()\n'; - return code; -} - -const display_oled_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'ADDR', generator.ORDER_ATOMIC); - var m =this.getFieldValue("driver"); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var font = ''; - if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) { - font = '0x700000' - } else if (['mixgo_sant'].indexOf(version) >= 0) { - font = '0xE00000' - } else { - font = '0x3A0000' - } - var code; - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - code = v + ' = oled128x64.OLED' + "(" + iv + ',address=' + addr + ',font_address=' + font + ',types='+m+')\n'; - - return code; -} - -const extern_oled_show_image = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".image(" + data + ")\n"; - return code; -} - -const extern_oled_show_image_xy = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var code = v + ".image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ")\n"; - return code; -} - -const extern_oled_show_string = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".shows(" + data + ")\n"; - return code; -} - -const extern_oled_show_image_or_string_delay = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - var code = v + ".shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ")\n"; - return code; -} - -const extern_oled_show_frame_string = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".frame(" + data + ")\n"; - return code; -} - -const extern_oled_show_frame_string_delay = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = v + ".frame(" + data + ',size = ' + size + ',delay = ' + time + ")\n"; - return code; -} - -const extern_oled_scroll_string = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = v + ".scroll(" + data + ")\n"; - return code; -} - -const extern_oled_scroll_string_delay = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var code = v + ".scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ")\n"; - return code; -} - -const extern_oled_clear = function (block, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.fill(0)\n' + v + '.show()\n'; - return code; -} - -const extern_oled_shift = function (a, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var op = a.getFieldValue("OP"); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = v + '.' + op + '(' + value + ')\n'; - return code; -} - -const extern_oled_get_pixel = function (block, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = v + '.pixel(int(' + value_x + '), int(' + value_y + '))'; - return [code, generator.ORDER_ATOMIC]; -} - -const extern_oled_bright_point = function (_, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = v + '.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + ")\n" + v + '.show()\n'; - return code; -} - -const extern_oled_shape_rect = function (block, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC); - var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var shape = block.getFieldValue('shape'); - var code = v + '.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + state + ')\n' + v + '.show()\n'; - return code; -} - -const extern_oled_hvline = function (block, generator) { //水平线 - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var hv = block.getFieldValue('dir_h_v'); - var code = v + '.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + state + ')\n' + v + '.show()\n'; - return code; -} - -const extern_oled_line = function (block, generator) { - generator.definitions_['import_oled128x64'] = 'import oled128x64'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC); - var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC); - var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC); - var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var code = v + '.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + state + ')\n' + v + '.show()\n'; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/display_onboard.js": -/*!****************************************************!*\ - !*** ../micropython/generators/display_onboard.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ bitbot_display_image_create: () => (/* binding */ bitbot_display_image_create), -/* harmony export */ display_bright_point: () => (/* binding */ display_bright_point), -/* harmony export */ display_bright_screen: () => (/* binding */ display_bright_screen), -/* harmony export */ display_clear: () => (/* binding */ display_clear), -/* harmony export */ display_get_pixel: () => (/* binding */ display_get_pixel), -/* harmony export */ display_get_screen_pixel: () => (/* binding */ display_get_screen_pixel), -/* harmony export */ display_image_builtins: () => (/* binding */ display_image_builtins), -/* harmony export */ display_image_builtins_all: () => (/* binding */ display_image_builtins_all), -/* harmony export */ display_image_create: () => (/* binding */ display_image_create), -/* harmony export */ display_scroll_string: () => (/* binding */ display_scroll_string), -/* harmony export */ display_scroll_string_delay: () => (/* binding */ display_scroll_string_delay), -/* harmony export */ display_shift: () => (/* binding */ display_shift), -/* harmony export */ display_show_frame_string: () => (/* binding */ display_show_frame_string), -/* harmony export */ display_show_frame_string_delay: () => (/* binding */ display_show_frame_string_delay), -/* harmony export */ display_show_image: () => (/* binding */ display_show_image), -/* harmony export */ display_show_image_or_string_delay: () => (/* binding */ display_show_image_or_string_delay), -/* harmony export */ draw_pointer: () => (/* binding */ draw_pointer), -/* harmony export */ image_arithmetic: () => (/* binding */ image_arithmetic), -/* harmony export */ image_invert: () => (/* binding */ image_invert), -/* harmony export */ mixbot_display_bright_screen: () => (/* binding */ mixbot_display_bright_screen), -/* harmony export */ mixbot_display_get_ambientbright: () => (/* binding */ mixbot_display_get_ambientbright), -/* harmony export */ mixbot_display_get_screen_pixel: () => (/* binding */ mixbot_display_get_screen_pixel), -/* harmony export */ mixbot_display_image_create: () => (/* binding */ mixbot_display_image_create), -/* harmony export */ mixbot_display_rotate: () => (/* binding */ mixbot_display_rotate), -/* harmony export */ mixgo_display_image_create_new: () => (/* binding */ mixgo_display_image_create_new), -/* harmony export */ mixgome_display_font: () => (/* binding */ mixgome_display_font), -/* harmony export */ mixgome_display_image_create: () => (/* binding */ mixgome_display_image_create), -/* harmony export */ mixgomini_display_image_create: () => (/* binding */ mixgomini_display_image_create), -/* harmony export */ mpython_display_hvline: () => (/* binding */ mpython_display_hvline), -/* harmony export */ mpython_display_line: () => (/* binding */ mpython_display_line), -/* harmony export */ mpython_display_shape_rect: () => (/* binding */ mpython_display_shape_rect), -/* harmony export */ mpython_pbm_image: () => (/* binding */ mpython_pbm_image), -/* harmony export */ onboard_oled_bright_point: () => (/* binding */ onboard_oled_bright_point), -/* harmony export */ onboard_oled_scroll_string_delay: () => (/* binding */ onboard_oled_scroll_string_delay), -/* harmony export */ onboard_oled_show_frame_string_delay: () => (/* binding */ onboard_oled_show_frame_string_delay), -/* harmony export */ onboard_oled_show_image: () => (/* binding */ onboard_oled_show_image), -/* harmony export */ onboard_oled_show_image_or_string_delay: () => (/* binding */ onboard_oled_show_image_or_string_delay), -/* harmony export */ onboard_oled_show_image_xy: () => (/* binding */ onboard_oled_show_image_xy), -/* harmony export */ onboard_oled_show_string: () => (/* binding */ onboard_oled_show_string), -/* harmony export */ onboard_tft_bright_point: () => (/* binding */ onboard_tft_bright_point), -/* harmony export */ onboard_tft_bright_screen: () => (/* binding */ onboard_tft_bright_screen), -/* harmony export */ onboard_tft_clear: () => (/* binding */ onboard_tft_clear), -/* harmony export */ onboard_tft_clock_clear: () => (/* binding */ onboard_tft_clock_clear), -/* harmony export */ onboard_tft_clock_draw: () => (/* binding */ onboard_tft_clock_draw), -/* harmony export */ onboard_tft_clock_get_rtctime: () => (/* binding */ onboard_tft_clock_get_rtctime), -/* harmony export */ onboard_tft_clock_init: () => (/* binding */ onboard_tft_clock_init), -/* harmony export */ onboard_tft_clock_set_time: () => (/* binding */ onboard_tft_clock_set_time), -/* harmony export */ onboard_tft_display_hvline: () => (/* binding */ onboard_tft_display_hvline), -/* harmony export */ onboard_tft_display_line: () => (/* binding */ onboard_tft_display_line), -/* harmony export */ onboard_tft_display_shape_circle: () => (/* binding */ onboard_tft_display_shape_circle), -/* harmony export */ onboard_tft_display_shape_rect: () => (/* binding */ onboard_tft_display_shape_rect), -/* harmony export */ onboard_tft_fill: () => (/* binding */ onboard_tft_fill), -/* harmony export */ onboard_tft_get_pixel: () => (/* binding */ onboard_tft_get_pixel), -/* harmony export */ onboard_tft_get_screen_pixel: () => (/* binding */ onboard_tft_get_screen_pixel), -/* harmony export */ onboard_tft_scroll_string: () => (/* binding */ onboard_tft_scroll_string), -/* harmony export */ onboard_tft_scroll_string_delay: () => (/* binding */ onboard_tft_scroll_string_delay), -/* harmony export */ onboard_tft_shift: () => (/* binding */ onboard_tft_shift), -/* harmony export */ onboard_tft_show_frame_string: () => (/* binding */ onboard_tft_show_frame_string), -/* harmony export */ onboard_tft_show_frame_string_delay: () => (/* binding */ onboard_tft_show_frame_string_delay), -/* harmony export */ onboard_tft_show_image: () => (/* binding */ onboard_tft_show_image), -/* harmony export */ onboard_tft_show_image_or_string_delay: () => (/* binding */ onboard_tft_show_image_or_string_delay), -/* harmony export */ onboard_tft_show_image_xy: () => (/* binding */ onboard_tft_show_image_xy) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const display_show_image = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - if (version == "educore"){ - generator.definitions_['import_' + version + 'oled'] = "from " + version + " import oled"; - var code = "oled.print(" + data + ")\n"; - }else{ - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = "onboard_matrix.shows(" + data + ")\n"; - } - return code; -} - -const display_show_image_or_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - if (version == "mixgo_sant" || version == "mixgo_nova") { - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var code = "onboard_tft.shows(" + data + ",space = " + space + ',center = ' + op + ")\n"; - return code; - }else if (version == "educore"){ - generator.definitions_['import_' + version + 'oled'] = "from " + version + " import oled"; - var code = "oled.print(" + data + ',space = ' + space + ',center = ' + op + ")\n"; - } - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = "onboard_matrix.shows(" + data + ',space = ' + space + ',center = ' + op + ")\n"; - return code; -} - -const display_show_frame_string = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mpython' || version == 'educore') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.frame(" + data + ")\n"; - } else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_matrix.frame(" + data + ")\n"; - } - return code; -} - -const display_show_frame_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - if (version == 'mpython' || version == 'educore') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.frame(" + data + ',delay = ' + time + ")\n"; - } else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = "onboard_matrix.frame(" + data + ',delay = ' + time + ")\n"; - } - return code; -} - -const display_scroll_string = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mpython'|| version == 'educore') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.scroll(" + data + ")\n"; - } else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_matrix.scroll(" + data + ")\n"; - } - return code; -} - -const display_scroll_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - if (version == 'mpython'|| version == 'educore') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var code = "onboard_oled.scroll(" + data + ',speed =' + time + ',space = ' + space + ")\n"; - }else{ - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = "onboard_matrix.scroll(" + data + ',speed =' + time + ',space = ' + space + ")\n"; - } - return code; -} - -const display_image_builtins = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var dropdown_image = block.getFieldValue('image'); - var code = 'onboard_matrix.' + dropdown_image; - return [code, generator.ORDER_ATOMIC]; -} - -const display_image_builtins_all = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var dropdown_image = block.getFieldValue('image'); - var code = 'onboard_matrix.' + dropdown_image; - return [code, generator.ORDER_ATOMIC]; -} - -const display_image_create = function (block, generator) { - var colours = { - "#000000": "0", - //"#440000": "1", - //"#660000": "2", - //"#880000": "3", - //"#aa0000": "4", - //"#bb0000": "5", - //"#cc0000": "6", - //"#dd0000": "7", - //"#ee0000": "8", - "#ff0000": "1" - } - function pad(num) { - let newNum = ''; - if (num.length % 2 === 1) { - num = '0' + num; - } - if (num.length < 8) { - let k = 8 - num.length - for (let i = 1; i <= k; i++) { - num = '0' + num; - } - } - - for (let i = 1; i <= num.length; i++) - if (i % 2 === 0 && i !== num.length) - newNum = newNum + num[i - 1] + ',0x'; - else - newNum += num[i - 1]; - return '0x' + newNum; - } - let colorList = []; - for (let i = 0; i < 12; i++) { - let colorRow = ''; - let colorNum = 0; - let correct = 0; - - for (let j = 0; j < 32; j++) { - if (j < 8) { - correct = 7 - j - } - else if (j < 16) { - correct = 23 - j - } - else if (j < 24) { - correct = 39 - j - } - else if (j < 32) { - correct = 55 - j - } - colorNum += Number(colours[block.getFieldValue(i + '-' + j)]) * Math.pow(2, 31 - correct); - - } - colorRow += pad(colorNum.toString(16)); - colorList.unshift(colorRow); - } - let codelist = []; - for (let i = 0; i < colorList.length; i++) { - codelist[i] = colorList[colorList.length - 1 - i]; - } - //var code = "bytearray(b'" + colorList.join('') + "')"; - var code = '[' + codelist + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_clear = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mpython') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var code = 'onboard_oled.fill(0)\n' + 'onboard_oled.show()\n'; - } - else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = 'onboard_matrix.fill(0)\n' + 'onboard_matrix.show()\n'; - } - return code; -} - -const image_arithmetic = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var op = a.getFieldValue("OP"); - var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC); - var imgb = generator.valueToCode(a, 'B', generator.ORDER_ATOMIC); - var code = 'onboard_matrix.map_' + op + '(' + imga + ',' + imgb + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const image_invert = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC); - var code = 'onboard_matrix.map_invert(' + imga + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_shift = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mpython') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var op = a.getFieldValue("OP"); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = 'onboard_oled.' + op + '(' + value + ')\n'; - } else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var op = a.getFieldValue("OP"); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = 'onboard_matrix.' + op + '(' + value + ')\n'; - } - return code; -} - -// export const onboard_oled_shift = function (a) { -// var version = Boards.getSelectedBoardKey().split(':')[2] - -// return code; -// }; - -const display_get_pixel = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == 'mpython') { - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = 'onboard_oled.pixel(int(' + value_x + '), int(' + value_y + '))'; - } else { - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = 'onboard_matrix.pixel(int(' + value_x + '), int(' + value_y + '))'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const display_bright_point = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'onboard_matrix.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + ")\n" + 'onboard_matrix.show()\n'; - return code; -} - -const display_get_screen_pixel = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = 'onboard_matrix.get_brightness()'; - return [code, generator.ORDER_ATOMIC]; -} - -const display_bright_screen = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = 'onboard_matrix.set_brightness(' + x + ')\n'; - return code; -} - -//mixgo_me onboard_matrix below: - -const mixgome_display_image_create = function (block, generator) { - var colours = { - "#000000": "0", - "#ff0000": "1" - } - function pad(num) { - let newNum = ''; - if (num.length % 2 === 1) { - num = '0' + num; - } - - for (let i = 1; i <= num.length; i++) - if (i % 2 === 0 && i !== num.length) - newNum = newNum + num[i - 1] + '\\x'; - else - newNum += num[i - 1]; - return '\\x' + newNum; - } - let colorList = []; - for (let i = 0; i < 5; i++) { - let colorRow = ''; - let colorNum = 0; - for (let j = 0; j < 8; j++) { - colorNum += Number(colours[block.getFieldValue((4 - i) + '-' + j)]) * Math.pow(2, j); - } - colorRow += pad(colorNum.toString(16)); - colorList.unshift(colorRow); - } - - var code = "bytearray(b'" + colorList.join('') + "')"; - return [code, generator.ORDER_ATOMIC]; -} - -const mixgomini_display_image_create = function (block, generator) { - var blinkColor = '#ff0000'; - var code = ''; - for (let i = 0; i < 12; i++) { - let value = 0; - for (let j = 0; j < 8; j++) { - if (block.getFieldValue(`${j}-${i}`) !== blinkColor) { - continue; - } - value += 1 << j; - } - let temp = value.toString(16); - code += '\\x' + Array(2 - temp.length).fill(0).join('') + temp; - } - code = `bytearray(b'${code}')`; - return [code, generator.ORDER_ATOMIC]; -} - -const mixgome_display_font = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var op = a.getFieldValue("OP"); - var code = 'onboard_matrix.font(' + op + ')\n'; - return code; -} - -const mixgo_display_image_create_new = function (block, generator) { - var colours = { - "#000000": "0", - "#ff0000": "1" - } - function pad(num) { - let newNum = ''; - if (num.length % 2 === 1) { - num = '0' + num; - } - while (num.length < 4) { - num = '0' + num; - } - for (let i = 1; i <= num.length; i++) - if (i % 2 === 0 && i !== num.length) - newNum = newNum + num[i - 1] + '\\x'; - else - newNum += num[i - 1]; - return '\\x' + newNum; - } - let colorList = []; - for (let i = 0; i < 8; i++) { - let colorRow = ''; - let colorNum = 0; - for (let j = 0; j < 16; j++) { - var c = (j + 8) % 16 - colorNum += Number(colours[block.getFieldValue((7 - i) + '-' + c)]) * Math.pow(2, j); - } - colorRow += pad(colorNum.toString(16)); - colorList.unshift(colorRow); - } - - var code = "bytearray(b'" + colorList.join('') + "')"; - return [code, generator.ORDER_ATOMIC]; -} - -//mpython - -const mpython_pbm_image = function (block, generator) { - var code = block.getFieldValue('path'); - var sort = ['expression_picture', 'eye_picture', 'informatio_picture', 'object_picture', 'progres_picture'] - var img = [["Angry", "Bored", "Confused", "Happy", "Heart", "Paper", "Rock", "Sad", "Scissors", "Silly", "Sleep", "Small_heart", "Small_paper", "Small_rock", "Small_scissors", "Smile", "Surprise", "Wonderful"], ["Eyes_Angry", "Awake", "Black_eye", "Bottom_left", "Bottom_right", "Crazy_1", "Crazy_2", "Disappointed", "Dizzy", "Down", "Hurt", "Evil", "Knocked_out", "Love", "Middle_left", "Middle_right", "Neutral", "Nuclear", "Pinch_left", "Pinch_middle", "Pinch_right", "Tear", "Tired_middle", "Tired_left", "Tired_right", "Toxic", "Up", "Winking"], ["Accept", "Backward", "Decline", "Forward", "Left", "No_go", "Question_mark", "Right", "Stop_1", "Stop_2", "Thumbs_down", "Thumbs_up", "Warning"], ["Bomb", "Boom", "Fire", "Flowers", "Forest", "Lightning", "Light_off", "Light_on", "Night", "Pirate", "Snow", "Target"], ["Bar_0", "Bar_1", "Bar_2", "Bar_3", "Bar_4", "Dial_0", "Dial_1", "Dial_2", "Dial_3", "Dial_4", "Dots_0", "Dots_1", "Dots_2", "Dots_3", "Hourglass_0", "Hourglass_1", "Hourglass_2", "Timer_0", "Timer_1", "Timer_2", "Timer_3", "Timer_4", "Water_level_0", "Water_level_1", "Water_level_2", "Water_level_3"]] - for (var i = 0; i < 5; i++) { - if (img[i].indexOf(code) != -1) { - var tag = i; - break; - } - } - generator.definitions_['import_' + sort[tag] + '_' + code] = "from " + sort[tag] + " import " + code; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_oled_show_image = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.image(" + data + ")\n"; - return code; -} - -const onboard_oled_show_image_xy = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ")\n"; - return code; -} - -const onboard_oled_show_string = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.shows(" + data + ")\n"; - return code; -} - -const onboard_oled_show_image_or_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - var code = "onboard_oled.shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ")\n"; - return code; -} - -const onboard_oled_show_frame_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.frame(" + data + ',size = ' + size + ',delay = ' + time + ")\n"; - return code; -} - -const onboard_oled_scroll_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var code = "onboard_oled.scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ")\n"; - return code; -} - -const onboard_oled_bright_point = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'onboard_oled.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + ")\n" + 'onboard_oled.show()\n'; - return code; -} - -const mpython_display_shape_rect = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC); - var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var shape = block.getFieldValue('shape'); - var code = 'onboard_oled.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + state + ')\n' + 'onboard_oled.show()\n'; - return code; -} - -const mpython_display_hvline = function (block, generator) { //水平线 - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var hv = block.getFieldValue('dir_h_v'); - var code = 'onboard_oled.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + state + ')\n' + 'onboard_oled.show()\n'; - return code; -} - -const mpython_display_line = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_oled"; - var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC); - var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC); - var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC); - var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC); - var state = block.getFieldValue('state'); - var code = 'onboard_oled.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + state + ')\n' + 'onboard_oled.show()\n'; - return code; -} - -//mixbot onboard_matrix below: - -const mixbot_display_image_create = function (block, generator) { - var colours = { - "#000000": "0", - "#ff0000": "1" - } - function pad(num) { - let newNum = ''; - if (num.length % 2 === 1) { - num = '0' + num; - } - - for (let i = 1; i <= num.length; i++) - if (i % 2 === 0 && i !== num.length) - newNum = newNum + num[i - 1] + '\\x'; - else - newNum += num[i - 1]; - return '\\x' + newNum; - } - let colorList = []; - for (let i = 0; i < 5; i++) { - let colorRow = ''; - let colorNum = 0; - for (let j = 0; j < 5; j++) { - colorNum += Number(colours[block.getFieldValue((4 - i) + '-' + j)]) * Math.pow(2, j); - } - colorRow += pad(colorNum.toString(16)); - colorList.unshift(colorRow); - } - - var code = "b'" + colorList.join('') + "'"; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_display_get_screen_pixel = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = 'onboard_matrix.screenbright()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_display_get_ambientbright = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var code = 'onboard_matrix.ambientbright()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_display_bright_screen = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = 'onboard_matrix.screenbright(' + x + ')\n'; - return code; -} - -const mixbot_display_rotate = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_matrix'] = "from " + version + " import onboard_matrix"; - var op = a.getFieldValue("OP"); - var code = 'onboard_matrix.direction(' + op + ')\n'; - return code; -} - -const bitbot_display_image_create = function (block, generator) { - var colours = { - "#000000": "0", - "#ff0000": "1" - } - function pad(num) { - - if (num.length == 1) { - return '\\x0' + num + '\\x00'; - } - if (num.length == 2) { - return '\\x' + num + '\\x00'; - } - if (num.length == 3) { - return '\\x' + num[1] + num[2] + '\\x0' + num[0]; - } - } - let colorList = []; - for (let i = 0; i < 12; i++) { - let colorRow = ''; - let colorNum = 0; - for (let j = 0; j < 12; j++) { - colorNum += Number(colours[block.getFieldValue((11 - i) + '-' + j)]) * Math.pow(2, j); - } - colorRow += pad(colorNum.toString(16)); - colorList.unshift(colorRow); - } - - var code = "b'" + colorList.join('') + "'"; - return [code, generator.ORDER_ATOMIC]; -} - -//mixgo_nova onboard tft below: -const onboard_tft_show_image = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_tft.image(" + data + ", color=0xffff)\n"; - return code; -} - -const onboard_tft_show_image_xy = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = "onboard_tft.image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = "onboard_tft.image(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_show_image_or_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var op = this.getFieldValue('center'); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = "onboard_tft.shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = "onboard_tft.shows(" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_show_frame_string = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_tft.frame(" + data + ",color=0xffff)\n"; - return code; -} - -const onboard_tft_show_frame_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = "onboard_tft.frame(" + data + ',size = ' + size + ',delay = ' + time + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = "onboard_tft.frame(" + data + ',size = ' + size + ',delay = ' + time + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_scroll_string = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_oled'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var code = "onboard_tft.scroll(" + data + ",color=0xffff)\n"; - return code; -} - -const onboard_tft_scroll_string_delay = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT); - var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = "onboard_tft.scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = "onboard_tft.scroll(" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_display_shape_rect = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC); - var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var shape = block.getFieldValue('shape'); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + color + ')\n' + 'onboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', 0x' + rgb565.toString(16) + ')\n' + 'onboard_tft.show()\n'; - } - return code; -} - -const onboard_tft_display_hvline = function (block, generator) { //水平线 - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var hv = block.getFieldValue('dir_h_v'); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + color + ')\n' + 'onboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', 0x' + rgb565.toString(16) + ')\n' + 'onboard_tft.show()\n'; - } - return code; -} - -const onboard_tft_display_line = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC); - var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC); - var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC); - var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + color + ')\n' + 'onboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', 0x' + rgb565.toString(16) + ')\n' + 'onboard_tft.show()\n'; - } - return code; -} - -const onboard_tft_clear = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var code = 'onboard_tft.fill(0)\n' + 'onboard_tft.show()\n'; - return code; -} - -const onboard_tft_shift = function (a, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var op = a.getFieldValue("OP"); - var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC); - var code = 'onboard_tft.' + op + '(' + value + ')\n'; - return code; -} - -const onboard_tft_get_pixel = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var code = 'hex(onboard_tft.pixel(int(' + value_x + '), int(' + value_y + ')))'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_tft_bright_point = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), ' + color + ")\n" + 'onboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), 0x' + rgb565.toString(16) + ")\n" + 'onboard_tft.show()\n'; - } - return code; -} - -const onboard_tft_get_screen_pixel = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var code = 'onboard_tft.get_brightness()'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_tft_bright_screen = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var code = 'onboard_tft.set_brightness(' + x + ')\n'; - return code; -} - -const onboard_tft_fill = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.fill(' + color + ')\nonboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.fill(0x' + rgb565.toString(16) + ')\nonboard_tft.show()\n'; - } - return code; -} - -const onboard_tft_clock_init = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_Clock'] = "from " + version + " import Clock"; - var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT); - var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT); - var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = sub + "=Clock(" + x + ',' + y + ',' + size + ',' + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = sub + "=Clock(" + x + ',' + y + ',' + size + ',0x' + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_clock_get_rtctime = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_Clock'] = "from " + version + " import Clock"; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT); - var code = sub + ".set_rtctime()\n"; - return code; -} - -const onboard_tft_clock_set_time = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_Clock'] = "from " + version + " import Clock"; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT); - var h = generator.valueToCode(this, 'h', generator.ORDER_ASSIGNMENT); - var m = generator.valueToCode(this, 'm', generator.ORDER_ASSIGNMENT); - var s = generator.valueToCode(this, 's', generator.ORDER_ASSIGNMENT); - var code = sub + ".set_time(" + h + ',' + m + ',' + s + ")\n"; - return code; -} - -const onboard_tft_clock_draw = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_Clock'] = "from " + version + " import Clock"; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT); - var code = sub + ".draw_clock()\n"; - return code; -} - -const onboard_tft_clock_clear = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_Clock'] = "from " + version + " import Clock"; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (color.slice(0, 2) == "0x") { - var code = sub + ".clear(" + color + ")\n"; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = sub + ".clear(0x" + rgb565.toString(16) + ")\n"; - } - return code; -} - -const onboard_tft_display_shape_circle = function (block, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_tft'] = "from " + version + " import onboard_tft"; - var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC); - var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC); - var R = generator.valueToCode(block, 'r', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var shape = block.getFieldValue('shape'); - if (color.slice(0, 2) == "0x") { - var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', ' + color + ',' + shape + ')\n' + 'onboard_tft.show()\n'; - } else { - const rgbValues = color.match(/\d+/g); - const r = parseInt(rgbValues[0]); - const g = parseInt(rgbValues[1]); - const b = parseInt(rgbValues[2]); - var rgb = "0x" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, "0"); - var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3; - var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', 0x' + rgb565.toString(16) + ',' + shape + ')\n' + 'onboard_tft.show()\n'; - } - return code; -} - -const draw_pointer = function(_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_onboard_matrix'] = "from "+version+" import onboard_matrix"; - var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT); - var code = "onboard_matrix.pointern(angle=" + angle + ")\n"; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/factory.js": -/*!********************************************!*\ - !*** ../micropython/generators/factory.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ factory_block: () => (/* binding */ factory_block), -/* harmony export */ factory_block_return: () => (/* binding */ factory_block_return), -/* harmony export */ factory_block_return_with_textarea: () => (/* binding */ factory_block_return_with_textarea), -/* harmony export */ factory_block_with_textarea: () => (/* binding */ factory_block_with_textarea), -/* harmony export */ factory_callMethod_noreturn: () => (/* binding */ factory_callMethod_noreturn), -/* harmony export */ factory_callMethod_return: () => (/* binding */ factory_callMethod_return), -/* harmony export */ factory_declare: () => (/* binding */ factory_declare), -/* harmony export */ factory_from_import: () => (/* binding */ factory_from_import), -/* harmony export */ factory_function_noreturn: () => (/* binding */ factory_function_noreturn), -/* harmony export */ factory_function_return: () => (/* binding */ factory_function_return), -/* harmony export */ factory_import: () => (/* binding */ factory_import), -/* harmony export */ folding_block: () => (/* binding */ folding_block) -/* harmony export */ }); -const factory_from_import = function (_, generator) { - var path = this.getFieldValue('path'); - var module = this.getFieldValue('module'); - generator.definitions_['import_' + path + '_' + module] = 'from ' + path + ' import ' + module; - return ''; -} - -const factory_import = function (_, generator) { - var module = this.getFieldValue('module'); - generator.definitions_['import_' + module] = 'import ' + module; - return ''; -} - -const factory_function_noreturn = function (_, generator) { - var NAME = this.getFieldValue('NAME'); - var code = new Array(this.itemCount_); - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || ''; - } - return NAME + '(' + code.join(', ') + ')\n'; -} - -const factory_function_return = function (_, generator) { - var NAME = this.getFieldValue('NAME'); - var code = new Array(this.itemCount_); - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || ''; - } - return [NAME + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC]; -} - -const factory_declare = function () { - var TYPE = this.getFieldValue('TYPE'); - var NAME = this.getFieldValue('NAME'); - return NAME + ' = ' + TYPE + '()\n'; -} - -const factory_callMethod_noreturn = function (_, generator) { - var NAME = this.getFieldValue('NAME'); - var METHOD = this.getFieldValue('METHOD'); - var code = new Array(this.itemCount_); - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || ''; - } - return NAME + '.' + METHOD + '(' + code.join(', ') + ')\n'; -} - -const factory_callMethod_return = function (_, generator) { - var NAME = this.getFieldValue('NAME'); - var METHOD = this.getFieldValue('METHOD'); - var code = new Array(this.itemCount_); - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || ''; - } - return [NAME + '.' + METHOD + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC]; -} - -const factory_block = function () { - var VALUE = this.getFieldValue('VALUE'); - //if(!(VALUE.charAt(VALUE.length-1)==";")){ - //VALUE=VALUE+';'; - //} - return VALUE + '\n'; -} - -const factory_block_return = function (_, generator) { - var VALUE = this.getFieldValue('VALUE'); - return [VALUE, generator.ORDER_ATOMIC]; -} - -const factory_block_with_textarea = function () { - var VALUE = this.getFieldValue('VALUE'); - //if(!(VALUE.charAt(VALUE.length-1)==";")){ - //VALUE=VALUE+';'; - //} - return VALUE + '\n'; -} - -const factory_block_return_with_textarea = function (_, generator) { - var VALUE = this.getFieldValue('VALUE'); - return [VALUE, generator.ORDER_ATOMIC]; -} - -const folding_block = function (_, generator) { - var comment = this.getFieldValue('peien'); - comment = "#" + comment; - var branch = generator.statementToCode(this, 'DO'); - branch = branch.replace(/(^\s*)|(\s*$)/g, "");//去除两端空格 - branch = branch.replace(/(\n\s\s\s\s)/g, "\n");//去除换行时空格 - return comment + '\n' + branch + '\n'; -} - -/***/ }), - -/***/ "../micropython/generators/inout.js": -/*!******************************************!*\ - !*** ../micropython/generators/inout.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ inout_analog_atten: () => (/* binding */ inout_analog_atten), -/* harmony export */ inout_analog_read: () => (/* binding */ inout_analog_read), -/* harmony export */ inout_analog_read_init: () => (/* binding */ inout_analog_read_init), -/* harmony export */ inout_analog_write: () => (/* binding */ inout_analog_write), -/* harmony export */ inout_analog_write_init: () => (/* binding */ inout_analog_write_init), -/* harmony export */ inout_analog_write_set: () => (/* binding */ inout_analog_write_set), -/* harmony export */ inout_digital_init: () => (/* binding */ inout_digital_init), -/* harmony export */ inout_digital_read: () => (/* binding */ inout_digital_read), -/* harmony export */ inout_digital_write: () => (/* binding */ inout_digital_write), -/* harmony export */ inout_highlow: () => (/* binding */ inout_highlow), -/* harmony export */ inout_pin_attachInterrupt: () => (/* binding */ inout_pin_attachInterrupt), -/* harmony export */ inout_pin_pressed: () => (/* binding */ inout_pin_pressed), -/* harmony export */ inout_pin_pressed_init: () => (/* binding */ inout_pin_pressed_init), -/* harmony export */ inout_pwm_analog_write: () => (/* binding */ inout_pwm_analog_write), -/* harmony export */ inout_pwm_analog_write_init: () => (/* binding */ inout_pwm_analog_write_init), -/* harmony export */ inout_pwm_analog_write_set_freq: () => (/* binding */ inout_pwm_analog_write_set_freq) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -// ok -const inout_highlow = function (_, generator) { - // Boolean values HIGH and LOW. - var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const inout_digital_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = ""; - code += dropdown_pin + '.value(' + dropdown_stat + ')\n' - return code; -} - -// ok -const inout_digital_read = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = ""; - code = dropdown_pin + '.value()'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const inout_pwm_analog_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //var dropdown_stat = this.getFieldValue('STAT'); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);'; - var code = dropdown_pin + '.duty_u16(' + value_num + ')\n'; - return code; -} - -// ok -const inout_analog_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //var dropdown_stat = this.getFieldValue('STAT'); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);'; - var code = dropdown_pin + '.write(' + value_num + ')\n'; - return code; -} - -// ok -const inout_analog_write_set = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\n'; - //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\n'; - return code; -} - -const inout_pwm_analog_write_set_freq = function (_, generator) { - //generator.definitions_['import_machine_Pin'] = "from machine import Pin"; - // generator.definitions_['import_machine_PWM'] = "from machine import PWM"; - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var code = dropdown_pin + '.freq(' + value_num + ')\n'; - //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\n'; - return code; -} - -// ok -const inout_analog_read = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //generator.setups_['setup_input_'+dropdown_pin] = 'pinMode('+dropdown_pin+', INPUT);'; - var code = dropdown_pin + '.read_u16()'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const inout_pin_pressed = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC); - var code = pin + '.read()'; - return [code, generator.ORDER_ATOMIC]; -} - -const inout_pin_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - //var funcName = 'attachInterrupt_func_' + dropdown_pin; - //var branch = generator.statementToCode(this, 'DO') || generator.PASS; - //var code2 = 'def' + ' ' + funcName + '(p):\n' + branch + '\n'; - //generator.setups_[funcName] = code2; - return code; -} - -const inout_digital_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('MODE'); - var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\n'; - return code; -} - -const inout_pwm_analog_write_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'pwm#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'pwm#') ? 'pwm' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.PWM(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -// ok -const inout_analog_write_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -const inout_analog_read_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'adc#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'adc#') ? 'adc' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.ADC(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -const inout_analog_atten = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //var dropdown_stat = this.getFieldValue('STAT'); - var value_atten = this.getFieldValue('atten') - var code = dropdown_pin + '.atten(' + value_atten + ')\n'; - return code; -} - -// ok -const inout_pin_pressed_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/iot.js": -/*!****************************************!*\ - !*** ../micropython/generators/iot.js ***! - \****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE: () => (/* binding */ IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE), -/* harmony export */ IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE: () => (/* binding */ IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE), -/* harmony export */ IOT_EMQX_PING: () => (/* binding */ IOT_EMQX_PING), -/* harmony export */ IOT_FORMATTING: () => (/* binding */ IOT_FORMATTING), -/* harmony export */ IOT_FORMAT_STRING: () => (/* binding */ IOT_FORMAT_STRING), -/* harmony export */ IOT_MIXIO_NTP: () => (/* binding */ IOT_MIXIO_NTP), -/* harmony export */ IOT_MIXIO_PUBLISH: () => (/* binding */ IOT_MIXIO_PUBLISH), -/* harmony export */ IOT_MIXIO_SUBSCRIBE: () => (/* binding */ IOT_MIXIO_SUBSCRIBE), -/* harmony export */ iot_client_onboard: () => (/* binding */ iot_client_onboard), -/* harmony export */ iot_http_client: () => (/* binding */ iot_http_client), -/* harmony export */ iot_http_data: () => (/* binding */ iot_http_data), -/* harmony export */ iot_mixio_check: () => (/* binding */ iot_mixio_check), -/* harmony export */ iot_mixio_connect: () => (/* binding */ iot_mixio_connect), -/* harmony export */ iot_mixio_connect_only: () => (/* binding */ iot_mixio_connect_only), -/* harmony export */ iot_mixio_disconnect: () => (/* binding */ iot_mixio_disconnect), -/* harmony export */ iot_mixio_format_msg: () => (/* binding */ iot_mixio_format_msg), -/* harmony export */ iot_mixio_format_topic: () => (/* binding */ iot_mixio_format_topic), -/* harmony export */ iot_mixly_key: () => (/* binding */ iot_mixly_key), -/* harmony export */ iot_mqtt_client: () => (/* binding */ iot_mqtt_client), -/* harmony export */ iot_mqtt_data: () => (/* binding */ iot_mqtt_data), -/* harmony export */ iot_onenet_check: () => (/* binding */ iot_onenet_check), -/* harmony export */ iot_onenet_connect: () => (/* binding */ iot_onenet_connect), -/* harmony export */ iot_onenet_disconnect: () => (/* binding */ iot_onenet_disconnect), -/* harmony export */ iot_onenet_publish: () => (/* binding */ iot_onenet_publish), -/* harmony export */ iot_onenet_publish_dict: () => (/* binding */ iot_onenet_publish_dict), -/* harmony export */ iot_wifi_connect: () => (/* binding */ iot_wifi_connect) -/* harmony export */ }); -const iot_wifi_connect = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); - var code = 'mixiot.wlan_connect(' + username + ',' + password + ')\n'; - return code; -} - -const iot_onenet_connect = function (_, generator) { - generator.definitions_['import_onenet'] = "import onenet"; - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var client = generator.valueToCode(this, 'CLIENT', generator.ORDER_ATOMIC); - var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); - var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || 'None'; - var code = v + ' = onenet.init_MQTT_client(' + client + ', ' + server + ', ' + username + ', ' + password + ', ' + topic + ', ' + subscribe + ')\n'; - return code; -} - -const iot_onenet_disconnect = function (_, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_onenet'] = "import onenet"; - var code = v + '.do_disconnect()\n'; - return code; -} - -const iot_onenet_publish_dict = function (_, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var d = generator.valueToCode(this, 'DICT', generator.ORDER_ATOMIC); - var check = this.getFieldValue("is_print") == 'TRUE' ? 'True' : 'False'; - generator.definitions_['import_onenet'] = "import onenet"; - var code = v + '.publish(' + d + ', is_print = ' + check + ')\n'; - return code; -} - -const iot_onenet_check = function (_, generator) { - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - generator.definitions_['import_onenet'] = "import onenet"; - var code = v + '.check_msg()\n'; - return code; -} - -const iot_onenet_publish = function (_, generator) { - // Create a list with any number of elements of any type. - - //var size=window.parseFloat(this.getFieldValue('SIZE')); - generator.definitions_['import_onenet'] = "import onenet"; - var ck = new Array(this.itemCount_); - var cv = new Array(this.itemCount_); - var ct = new Array(this.itemCount_); - - var default_value = '0'; - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - - for (let n = 0; n < this.itemCount_; n++) { - var keyName = this.getFieldValue('KEY' + n); - ck[n] = keyName; - } - for (let n = 0; n < this.itemCount_; n++) { - cv[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = v + ".publish({"; - for (let n = 0; n < this.itemCount_; n++) { - ct[n] = ck[n] + ': ' + cv[n]; - } - //var code = "c.publish('$dp', pubData("+ '{' + code.join(', ') + '})\n'; - //var code =''+varName+'['+size+"]"+'='+ '{' + code.join(', ') + '}\n'; - //generator.setups_['setup_lists'+varName] = code; - code = code + ct.join(', ') + "})\n"; - return code; -} - -const iot_mixio_connect = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - generator.definitions_['import_machine'] = "import machine"; - generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify"; - var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); - var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); - var project = generator.valueToCode(this, 'PROJECT', generator.ORDER_ATOMIC); - //var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0'; - var a = "'" + username.replace("'", "").replace("'", "") + "/" + project.replace("'", "").replace("'", "") + "/'" - var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n'; - return code; -} - -const IOT_MIXIO_PUBLISH = function (_, generator) { - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC); - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.publish(MQTT_USR_PRJ + ' + topic + ', ' + msg + ')\n'; - return code; -} - -const IOT_MIXIO_SUBSCRIBE = function (_, generator) { - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC); - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\n'; - code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\n'; - return code; -} - -const iot_mixio_disconnect = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.disconnect(MQTT_USR_PRJ)\n'; - return code; -} - -const iot_mixio_connect_only = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.connect()\n'; - return code; -} - -const iot_mixio_check = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.check_msg()\n'; - return code; -} - -const iot_mixio_format_topic = function (_, generator) { - var code = 'mqtt_client.decode("utf-8").split("/")[-1]'; - return [code, generator.ORDER_ATOMIC]; -} - -const iot_mixio_format_msg = function (_, generator) { - var code = 'mqtt_client.decode("utf-8")'; - return [code, generator.ORDER_ATOMIC]; -} - -const IOT_FORMATTING = function (_, generator) { - generator.definitions_['import_mixpy'] = "import mixpy"; - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = 'mixpy.format_content(' + v + ', mqtt_client.client_id)'; - return [code, generator.ORDER_ATOMIC]; -} - -const IOT_FORMAT_STRING = function (_, generator) { - generator.definitions_['import_mixpy'] = "import mixpy"; - var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = 'mixpy.format_str(' + v + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) { - var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); - // var port = '1883'; - var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC); - generator.definitions_['import_mixiot'] = "import mixiot"; - generator.definitions_['import_machine'] = "import machine"; - generator.definitions_['import_urequests'] = "import urequests"; - generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify"; - generator.definitions_['import_mixpy_analyse_sharekey'] = "from mixpy import analyse_sharekey"; - // var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]' - // var socket_pool = 'socketpool.SocketPool(wifi.radio)' - // var ssl_context = 'ssl.create_default_context()' - var code = 'sk = analyse_sharekey(\'http://'+server.substring(1, server.length-1)+'/mixio-php/sharekey.php?sk=' + share_code + '\')\n'+ - 'MQTT_USR_PRJ = sk[0]+\'/\'+sk[1]+\'/\'\n' + - 'mqtt_client = mixiot.init_MQTT_client(' + server + ', sk[0], sk[2]' + ', MQTT_USR_PRJ)\n'; - return code; -} - -const iot_mixly_key = function (_, generator) { - var code = this.getFieldValue('VISITOR_ID'); - return [code, generator.ORDER_ATOMIC]; -} - -const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - generator.definitions_['import_machine'] = "import machine"; - generator.definitions_['import_ubinascii_hexlify'] = "from ubinascii import hexlify"; - var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); - // var port = '1883'; - var username = '"MixIO_public"'; - var password = '"MixIO_public"'; - var mixly_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC); - var a = '"MixIO/' + mixly_code + '/default/"' - // var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]' - // var socket_pool = 'socketpool.SocketPool(wifi.radio)' - // var ssl_context = 'ssl.create_default_context()' - var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n'; - return code; -} - -const IOT_EMQX_PING = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var code = 'mqtt_client.pingSync()'; - return [code, generator.ORDER_ATOMIC]; -} - -const IOT_MIXIO_NTP = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var code = 'mixiot.ntp(' + addr + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const iot_client_onboard = function (_, generator) { - var code = 'mqtt_client'; - return [code, generator.ORDER_ATOMIC]; -} - -const iot_http_client = function (_, generator) { - generator.definitions_['import_debugnet'] = "import debugnet"; - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = 'HTTP_client = debugnet.request("GET",' + addr + ',debug=' + key + ')\n'; - return code; -} - -const iot_http_data = function (_, generator) { - generator.definitions_['import_debugnet'] = "import debugnet"; - var key = this.getFieldValue('key'); - var code = 'HTTP_client.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const iot_mqtt_client = function (_, generator) { - generator.definitions_['import_debugnet'] = "import debugnet"; - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key2'); - var code = 'mqtt_client = debugnet.init_MQTT_client(' + addr + ', "MixIO_public", "MixIO_public", "MixIO/3QBAGKRL/default/",debug=' + key + ')\n'; - code += 'mqtt_client.subscribe("$SYS/hello")\n'; - return code; -} - -const iot_mqtt_data = function (_, generator) { - generator.definitions_['import_mixiot'] = "import mixiot"; - var key = this.getFieldValue('key'); - var code = 'mqtt_client.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/network.js": -/*!********************************************!*\ - !*** ../micropython/generators/network.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ educore_mqtt_connect: () => (/* binding */ educore_mqtt_connect), -/* harmony export */ educore_mqtt_connect_success: () => (/* binding */ educore_mqtt_connect_success), -/* harmony export */ educore_mqtt_subscribe_message: () => (/* binding */ educore_mqtt_subscribe_message), -/* harmony export */ educore_mqtt_topic_publish: () => (/* binding */ educore_mqtt_topic_publish), -/* harmony export */ educore_mqtt_topic_subscribe: () => (/* binding */ educore_mqtt_topic_subscribe), -/* harmony export */ educore_wifi_connect: () => (/* binding */ educore_wifi_connect), -/* harmony export */ network_ap_connect: () => (/* binding */ network_ap_connect), -/* harmony export */ network_connect: () => (/* binding */ network_connect), -/* harmony export */ network_get_connect: () => (/* binding */ network_get_connect), -/* harmony export */ network_get_wifi: () => (/* binding */ network_get_wifi), -/* harmony export */ network_init: () => (/* binding */ network_init), -/* harmony export */ network_is_active: () => (/* binding */ network_is_active), -/* harmony export */ network_open: () => (/* binding */ network_open), -/* harmony export */ network_scan: () => (/* binding */ network_scan), -/* harmony export */ network_server: () => (/* binding */ network_server), -/* harmony export */ network_socket_accept: () => (/* binding */ network_socket_accept), -/* harmony export */ network_socket_bind: () => (/* binding */ network_socket_bind), -/* harmony export */ network_socket_close: () => (/* binding */ network_socket_close), -/* harmony export */ network_socket_connect: () => (/* binding */ network_socket_connect), -/* harmony export */ network_socket_init: () => (/* binding */ network_socket_init), -/* harmony export */ network_socket_listen: () => (/* binding */ network_socket_listen), -/* harmony export */ network_socket_receive: () => (/* binding */ network_socket_receive), -/* harmony export */ network_socket_receive_from: () => (/* binding */ network_socket_receive_from), -/* harmony export */ network_socket_send: () => (/* binding */ network_socket_send), -/* harmony export */ network_socket_send_to: () => (/* binding */ network_socket_send_to), -/* harmony export */ network_stop: () => (/* binding */ network_stop), -/* harmony export */ network_wifi_connect: () => (/* binding */ network_wifi_connect), -/* harmony export */ ntptime_address: () => (/* binding */ ntptime_address), -/* harmony export */ ntptime_time: () => (/* binding */ ntptime_time), -/* harmony export */ requests_attribute: () => (/* binding */ requests_attribute), -/* harmony export */ requests_attribute2: () => (/* binding */ requests_attribute2), -/* harmony export */ requests_get: () => (/* binding */ requests_get), -/* harmony export */ requests_get2: () => (/* binding */ requests_get2), -/* harmony export */ requests_method: () => (/* binding */ requests_method), -/* harmony export */ requests_post: () => (/* binding */ requests_post) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const network_init = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - return "" + varName + " = network.WLAN(network." + mode + "_IF);\n"; -} - -// export const network_connect = function() { -// generator.definitions_['import_network'] = "import network"; -// // generator.setups_['class_wlan'] ='wlan.active(True)\n'; -// var varName =generator.valueToCode(this, 'VAR',generator.ORDER_ATOMIC); -// var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC); -// var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC); -// return "if not "+varName+".isconnected():\n"+ -// " "+varName+".connect("+id+","+password+")\n"+ -// " while not "+varName+".isconnected():\n"+ -// " pass\n"; -// } - -const network_connect = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - // generator.setups_['class_wlan'] ='wlan.active(True)\n'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC); - return "" + varName + ".connect(" + id + "," + password + ")\n" -} - -const network_wifi_connect = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = varName + '.isconnected()'; - return [code, generator.ORDER_ATOMIC]; -} - -const network_get_connect = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - var code = "" + varName + ".ifconfig()[" + mode + "]"; - return [code, generator.ORDER_ATOMIC] -} - -const network_stop = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return "" + varName + ".disconnect()\n"; -} - -const network_open = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var op = this.getFieldValue('op'); - var code = "" + varName + ".active(" + op + ")\n"; - return code; -} - -const network_is_active = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + varName + ".active()"; - return [code, generator.ORDER_ATOMIC]; -} - -const network_get_wifi = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var op = this.getFieldValue('op'); - var code = "" + varName + ".config('" + op + "')"; - return [code, generator.ORDER_ATOMIC] -} - -const network_ap_connect = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - // generator.setups_['class_wlan'] ='ap = network.WLAN(network.AP_IF)\n'+'ap.active(True)\n'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var essid = generator.valueToCode(this, 'essid', generator.ORDER_ATOMIC); - var channel = generator.valueToCode(this, 'channel', generator.ORDER_ATOMIC); - return "" + varName + ".config(essid = " + essid + ", channel = " + channel + ")\n"; -} - -const network_scan = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + varName + ".scan()"; - return [code, generator.ORDER_ATOMIC]; - -} - -const network_server = function (_, generator) { - generator.definitions_['import_server_*'] = 'from server import *'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - // generator.setups_['class_wlan'] ='SSID="ying"\n'+'PASSWORD="201411132040"\n'; - return 'if not ' + varName + '.isconnected():\n' - + ' connectWifi(SSID, PASSWORD)\n' - + 'ip=' + varName + '.ifconfig()[0]\n' - + 'print(ip)\n' - + 'time.sleep(1)\n' - + 'DATA=listenData()\n' -} - -const network_socket_init = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('mode'); - if (mode == 'UDP') { - mode = 'socket.SOCK_DGRAM' - } - else if (mode == 'TCP') { - mode = 'socket.SOCK_STREAM' - } - return "" + varName + " = socket.socket(socket.AF_INET," + mode + ")\n"; -} - -const network_socket_bind = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC); - return "" + varName + ".bind(" + address + ")\n"; -} - -const network_socket_connect = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC); - return "" + varName + ".connect(socket.getaddrinfo" + address + "[0][-1])\n"; -} - -const network_socket_listen = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var queue = generator.valueToCode(this, 'queue', generator.ORDER_ATOMIC); - return "" + varName + ".listen(" + queue + ")\n"; -} - -const network_socket_accept = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + varName + ".accept()"; - return [code, generator.ORDER_ASSIGNMENT]; -} - -const network_socket_receive = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC); - var code = "" + varName + ".recv(" + size + ")"; - return [code, generator.ORDER_ASSIGNMENT]; -} - -const network_socket_send = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC); - var code = "" + varName + ".send(" + content + ")\n"; - return code; -} - -const network_socket_receive_from = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC); - var code = "" + varName + ".recvfrom(" + size + ")"; - return [code, generator.ORDER_ASSIGNMENT]; -} - -const network_socket_send_to = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC); - var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC); - var code = "" + varName + ".sendto(" + content + "," + address + ")\n"; - return code; -} - -const network_socket_close = function (_, generator) { - generator.definitions_['import_network'] = "import network"; - generator.definitions_['import_socket'] = "import socket"; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "" + varName + ".close()\n"; - return code; -} - -const requests_get = function (_, generator) { - generator.definitions_.import_requests = "import requests"; - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var str = generator.valueToCode(this, 'DOMAIN', generator.ORDER_ATOMIC); - var code = varName + '= ' + 'requests.get(' + str + ')\n'; - - return code; -} - -const requests_attribute = function (_, generator) { - generator.definitions_.import_requests = "import requests"; - var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0'; - var attr = this.getFieldValue('ATTR'); - var code = varName + "." + attr; - return [code, generator.ORDER_ATOMIC]; -} - -const requests_method = function (_, generator) { - generator.definitions_.import_requests = "import requests"; - var method = this.getFieldValue('DIR'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "requests." + method + "(" + str + ')\n'; - return code; -} - -const ntptime_time = function (_, generator) { - generator.definitions_['import_ntptime'] = "import ntptime"; - var str = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var code = "ntptime.time(host=" + str + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const ntptime_address = function (_, generator) { - var code = "'" + this.getFieldValue('op') + "'"; - return [code, generator.ORDER_ATOMIC]; -} - -const requests_get2 = function (_, generator) { - generator.definitions_['import_urequests'] = "import urequests"; - var dropdown_type = this.getFieldValue('TYPE'); - var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC); - var code = 'urequests.' + dropdown_type + '(' + str + ')'; - return [code, generator.ORDER_ATOMIC]; - -}; - -const requests_attribute2 = function (_, generator) { - generator.definitions_['import_urequests'] = "import urequests"; - var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0'; - var attr = this.getFieldValue('ATTR'); - var code = varName + "." + attr; - return [code, generator.ORDER_ATOMIC]; -}; - -const requests_post = function (_, generator) { - generator.definitions_['import_urequests'] = "import urequests"; - var dropdown_type = this.getFieldValue('TYPE'); - var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC); - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var code = 'urequests.' + dropdown_type + '(' + str + ',data=' + data + ')'; - return [code, generator.ORDER_ATOMIC]; - -}; - -const educore_wifi_connect = function (_, generator) { - generator.definitions_['import_educore_wifi'] = "from educore import wifi"; - var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); - var timeout = generator.valueToCode(this, 'TIMEOUT', generator.ORDER_ATOMIC); - var code = 'wifi.connect(ssid='+username+', psd='+password+', timeout='+timeout+')\n'; - return code; -} - -const educore_mqtt_connect = function (_, generator) { - generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient"; - var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC); - var port = generator.valueToCode(this, 'PORT', generator.ORDER_ATOMIC); - var client_id = generator.valueToCode(this, 'CLIENT_ID', generator.ORDER_ATOMIC); - var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC); - var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC); - // var a = "'" + username.replace("'", "").replace("'", "") + "/" + project.replace("'", "").replace("'", "") + "/'" - // var code = 'MQTT_USR_PRJ = ' + a + '\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\n'; - var code = 'mqttclient.connect(server='+server+', port='+port+',client_id='+client_id+',user='+username+',psd='+password+')\n' - return code; -} - -const educore_mqtt_subscribe_message = function (_, generator) { - generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient"; - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var message = generator.valueToCode(this, 'MESSAGE', generator.ORDER_ATOMIC); - var code = 'mqttclient.'+message+'(' + topic + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_mqtt_topic_subscribe = function (_, generator) { - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC); - generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient"; - // var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\n'; - // code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\n'; - var code = 'mqttclient.received(topic='+topic+', callback='+method+')\n'; - return code; -} - -const educore_mqtt_topic_publish = function (_, generator) { - generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient"; - var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC); - var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC); - var code = 'mqtt_client.publish(topic=' + topic + ',content=' + msg + ')\n'; - return code; -} - -const educore_mqtt_connect_success = function (_, generator) { - generator.definitions_['import_educore_mqttclient'] = "from educore import mqttclient"; - var code = 'mqtt_client.connescted()'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/nova_g1.js": -/*!********************************************!*\ - !*** ../micropython/generators/nova_g1.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ get_potential_num: () => (/* binding */ get_potential_num), -/* harmony export */ nova_g1_motor: () => (/* binding */ nova_g1_motor), -/* harmony export */ nova_g1_spk_en: () => (/* binding */ nova_g1_spk_en), -/* harmony export */ nova_g1_usb: () => (/* binding */ nova_g1_usb) -/* harmony export */ }); -const get_potential_num = function (_, generator) { - generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1'; - var code = 'ext_g1.varistor()'; - return [code, generator.ORDER_ATOMIC]; -} - -const nova_g1_motor = function (_, generator) { - generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1'; - var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var v = this.getFieldValue('direction'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = "ext_g1.motor(" + wheel + ',"' + v + '",' + speed + ")\n"; - return code; -} - -const nova_g1_usb = function (_, generator) { - generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1'; - var p = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var percent = generator.valueToCode(this, 'percent', generator.ORDER_ATOMIC); - var code = "ext_g1.usb_pwm(" + p + ',' + percent + ")\n"; - return code; -} - -const nova_g1_spk_en = function (_, generator) { - generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1'; - var state = this.getFieldValue('state'); - var code = "ext_g1.spk_en(" + state + ")\n"; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/pe_g1.js": -/*!******************************************!*\ - !*** ../micropython/generators/pe_g1.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ pe_g1_battery_left: () => (/* binding */ pe_g1_battery_left), -/* harmony export */ pe_g1_dc_motor: () => (/* binding */ pe_g1_dc_motor), -/* harmony export */ pe_g1_dc_motor_speed: () => (/* binding */ pe_g1_dc_motor_speed), -/* harmony export */ pe_g1_servo_get_angle: () => (/* binding */ pe_g1_servo_get_angle), -/* harmony export */ pe_g1_servo_get_speed: () => (/* binding */ pe_g1_servo_get_speed), -/* harmony export */ pe_g1_servo_set_angle: () => (/* binding */ pe_g1_servo_set_angle), -/* harmony export */ pe_g1_servo_set_speed: () => (/* binding */ pe_g1_servo_set_speed), -/* harmony export */ pe_g1_use_i2c_init: () => (/* binding */ pe_g1_use_i2c_init) -/* harmony export */ }); -const pe_g1_use_i2c_init = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var code = v + ' = pe_g1.PE_G1(' + iv + ')\n'; - return code; -} - -const pe_g1_battery_left = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + '.read_bat()'; - return [code, generator.ORDER_ATOMIC]; -} - -const pe_g1_dc_motor = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var s = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var v = this.getFieldValue('direction'); - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = s + ".motor(" + wheel + ',"' + v + '",' + speed + ")\n"; - return code; -} - -const pe_g1_dc_motor_speed = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var s = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var v = 'NC'; - var code = s + ".motor(" + wheel + ',"' + v + '"' + ")\n"; - return [code, generator.ORDER_ATOMIC]; -} - -const pe_g1_servo_set_angle = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var code = v + '.servo180(' + dropdown_pin + ',' + num + ')\n'; - return code; -} - -const pe_g1_servo_set_speed = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var code = v + '.servo360(' + dropdown_pin + ',' + num + ')\n'; - return code; -} - -const pe_g1_servo_get_angle = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = v + '.servo180(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const pe_g1_servo_get_speed = function (_, generator) { - generator.definitions_['import_pe_g1'] = 'import pe_g1'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = v + '.servo360(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/pins.js": -/*!*****************************************!*\ - !*** ../micropython/generators/pins.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ espnow_channel: () => (/* binding */ espnow_channel), -/* harmony export */ pins_analog: () => (/* binding */ pins_analog), -/* harmony export */ pins_analog_pin: () => (/* binding */ pins_analog_pin), -/* harmony export */ pins_axis: () => (/* binding */ pins_axis), -/* harmony export */ pins_brightness: () => (/* binding */ pins_brightness), -/* harmony export */ pins_builtinimg: () => (/* binding */ pins_builtinimg), -/* harmony export */ pins_button: () => (/* binding */ pins_button), -/* harmony export */ pins_dac: () => (/* binding */ pins_dac), -/* harmony export */ pins_dac_pin: () => (/* binding */ pins_dac_pin), -/* harmony export */ pins_digital: () => (/* binding */ pins_digital), -/* harmony export */ pins_digital_dot: () => (/* binding */ pins_digital_dot), -/* harmony export */ pins_digital_pin: () => (/* binding */ pins_digital_pin), -/* harmony export */ pins_exlcdh: () => (/* binding */ pins_exlcdh), -/* harmony export */ pins_exlcdv: () => (/* binding */ pins_exlcdv), -/* harmony export */ pins_imglist: () => (/* binding */ pins_imglist), -/* harmony export */ pins_interrupt: () => (/* binding */ pins_interrupt), -/* harmony export */ pins_one_more: () => (/* binding */ pins_one_more), -/* harmony export */ pins_playlist: () => (/* binding */ pins_playlist), -/* harmony export */ pins_pwm: () => (/* binding */ pins_pwm), -/* harmony export */ pins_pwm_pin: () => (/* binding */ pins_pwm_pin), -/* harmony export */ pins_radio_datarate: () => (/* binding */ pins_radio_datarate), -/* harmony export */ pins_radio_power: () => (/* binding */ pins_radio_power), -/* harmony export */ pins_serial: () => (/* binding */ pins_serial), -/* harmony export */ pins_tone_notes: () => (/* binding */ pins_tone_notes), -/* harmony export */ pins_touch: () => (/* binding */ pins_touch), -/* harmony export */ pins_touch_pin: () => (/* binding */ pins_touch_pin) -/* harmony export */ }); -const pins_digital = function (_, generator) { - var code = this.getFieldValue('PIN'); - return [code, generator.ORDER_ATOMIC]; -} - -const pins_button = pins_digital; -const pins_digital_pin = pins_digital; -const pins_analog_pin = pins_digital; -const pins_analog = pins_digital; -const pins_pwm_pin = pins_digital; -const pins_pwm = pins_digital; -const pins_dac_pin = pins_digital; -const pins_dac = pins_digital; -const pins_touch_pin = pins_digital; -const pins_touch = pins_digital; -const espnow_channel = pins_digital; -const pins_interrupt = pins_digital; -const pins_serial = pins_digital; -const pins_builtinimg = pins_digital; -const pins_imglist = pins_digital; -const pins_playlist = pins_digital; -const pins_axis = pins_digital; -const pins_exlcdh = pins_digital; -const pins_exlcdv = pins_digital; -const pins_brightness = pins_digital; -const pins_tone_notes = pins_digital; -const pins_radio_power = pins_digital; -const pins_radio_datarate = pins_digital; -const pins_one_more = pins_digital; -const pins_digital_dot = pins_digital; - -/***/ }), - -/***/ "../micropython/generators/sensor.js": -/*!*******************************************!*\ - !*** ../micropython/generators/sensor.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ RTC_get_time: () => (/* binding */ RTC_get_time), -/* harmony export */ RTC_set_date: () => (/* binding */ RTC_set_date), -/* harmony export */ RTC_set_datetime: () => (/* binding */ RTC_set_datetime), -/* harmony export */ RTC_set_time: () => (/* binding */ RTC_set_time), -/* harmony export */ dht11: () => (/* binding */ dht11), -/* harmony export */ number1: () => (/* binding */ number1), -/* harmony export */ sensor_adxl345_get_acceleration: () => (/* binding */ sensor_adxl345_get_acceleration), -/* harmony export */ sensor_bmp: () => (/* binding */ sensor_bmp), -/* harmony export */ sensor_button_get_presses: () => (/* binding */ sensor_button_get_presses), -/* harmony export */ sensor_button_is_pressed: () => (/* binding */ sensor_button_is_pressed), -/* harmony export */ sensor_button_was_pressed: () => (/* binding */ sensor_button_was_pressed), -/* harmony export */ sensor_compass_reset: () => (/* binding */ sensor_compass_reset), -/* harmony export */ sensor_dht11: () => (/* binding */ sensor_dht11), -/* harmony export */ sensor_distance_hrsc04: () => (/* binding */ sensor_distance_hrsc04), -/* harmony export */ sensor_ds18x20: () => (/* binding */ sensor_ds18x20), -/* harmony export */ sensor_light: () => (/* binding */ sensor_light), -/* harmony export */ sensor_lm35: () => (/* binding */ sensor_lm35), -/* harmony export */ sensor_mixgo_button_attachInterrupt: () => (/* binding */ sensor_mixgo_button_attachInterrupt), -/* harmony export */ sensor_mixgo_button_get_presses: () => (/* binding */ sensor_mixgo_button_get_presses), -/* harmony export */ sensor_mixgo_button_is_pressed: () => (/* binding */ sensor_mixgo_button_is_pressed), -/* harmony export */ sensor_mixgo_button_was_pressed: () => (/* binding */ sensor_mixgo_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_button_attachInterrupt: () => (/* binding */ sensor_mixgo_extern_button_attachInterrupt), -/* harmony export */ sensor_mixgo_extern_button_get_presses: () => (/* binding */ sensor_mixgo_extern_button_get_presses), -/* harmony export */ sensor_mixgo_extern_button_is_pressed: () => (/* binding */ sensor_mixgo_extern_button_is_pressed), -/* harmony export */ sensor_mixgo_extern_button_was_pressed: () => (/* binding */ sensor_mixgo_extern_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_light: () => (/* binding */ sensor_mixgo_extern_light), -/* harmony export */ sensor_mixgo_extern_pin_near: () => (/* binding */ sensor_mixgo_extern_pin_near), -/* harmony export */ sensor_mixgo_extern_sound: () => (/* binding */ sensor_mixgo_extern_sound), -/* harmony export */ sensor_mixgo_light: () => (/* binding */ sensor_mixgo_light), -/* harmony export */ sensor_mixgo_pin_near: () => (/* binding */ sensor_mixgo_pin_near), -/* harmony export */ sensor_mixgo_pin_pressed: () => (/* binding */ sensor_mixgo_pin_pressed), -/* harmony export */ sensor_mpu9250_attachGestureInterrupt: () => (/* binding */ sensor_mpu9250_attachGestureInterrupt), -/* harmony export */ sensor_mpu9250_calibrate_compass: () => (/* binding */ sensor_mpu9250_calibrate_compass), -/* harmony export */ sensor_mpu9250_field_strength: () => (/* binding */ sensor_mpu9250_field_strength), -/* harmony export */ sensor_mpu9250_gesture: () => (/* binding */ sensor_mpu9250_gesture), -/* harmony export */ sensor_mpu9250_get_acceleration: () => (/* binding */ sensor_mpu9250_get_acceleration), -/* harmony export */ sensor_mpu9250_get_gyro: () => (/* binding */ sensor_mpu9250_get_gyro), -/* harmony export */ sensor_mpu9250_get_magnetic: () => (/* binding */ sensor_mpu9250_get_magnetic), -/* harmony export */ sensor_mpu9250_temperature: () => (/* binding */ sensor_mpu9250_temperature), -/* harmony export */ sensor_pin_near: () => (/* binding */ sensor_pin_near), -/* harmony export */ sensor_pin_pressed: () => (/* binding */ sensor_pin_pressed), -/* harmony export */ sensor_rtc_init: () => (/* binding */ sensor_rtc_init), -/* harmony export */ sensor_sht: () => (/* binding */ sensor_sht), -/* harmony export */ sensor_use_i2c_init: () => (/* binding */ sensor_use_i2c_init) -/* harmony export */ }); -/* harmony import */ var _sensor_onboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sensor_onboard */ "../micropython/generators/sensor_onboard.js"); - - -const sensor_mixgo_button_is_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var code = 'mixgo.' + btn + '.is_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mixgo_button_was_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var code = 'mixgo.' + btn + '.was_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_button_get_presses = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'mixgo.' + btn + '.get_presses(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_button_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo'] = 'import mixgo'; - var dropdown_btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'mixgo.' + dropdown_btn + '.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - return code; -} - -//ok -const sensor_mixgo_extern_button_is_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').is_pressed(' + dropdown_stat + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mixgo_extern_button_was_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').was_pressed(' + dropdown_stat + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_button_get_presses = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'mixgo.Button(' + pin + ').get_presses(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_button_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - return code; -} - -//ok -const sensor_mpu9250_attachGestureInterrupt = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var gesture = this.getFieldValue('gesture'); - var branch = generator.statementToCode(this, 'DO'); - var d = branch || generator.PASS; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = 'if ' + v + '.mpu9250_is_gesture("' + gesture + '"):\n' + d; - return code; -} - -const sensor_mpu9250_gesture = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var gesture = this.getFieldValue('gesture'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_is_gesture("' + gesture + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mpu9250_get_acceleration = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_get_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_adxl345_get_acceleration = function (_, generator) { - generator.definitions_['import_adxl345'] = 'import adxl345'; - // generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code; - if (key == 'x') { - code = v + '.readX()'; - } else if (key == 'y') { - code = v + '.readY()'; - } else if (key == 'z') { - code = v + '.readZ()'; - } else if (key == 'values') { - code = v + '.readXYZ()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_get_magnetic = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_magnetic_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_get_gyro = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_gyro_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_calibrate_compass = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return '' + v + '.calibrate()\n'; -} - -const sensor_mpu9250_temperature = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - return [v + '.mpu9250_get_temperature()', generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_field_strength = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "compass") - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var compass = this.getFieldValue('compass'); - var a; - if (compass == 'strength') { - a = v + '.get_field_strength()'; - } - else if (compass == 'heading') { - a = v + '.heading()'; - } - return [a, generator.ORDER_ATOMIC]; -} - -const sensor_distance_hrsc04 = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - generator.setups_['class_hrsc04'] = - 'class HCSR04:\n' + - ' def __init__(self, tpin=pin15, epin=pin14, spin=pin13):\n' + - ' self.trigger_pin = tpin\n' + - ' self.echo_pin = epin\n' + - ' self.sclk_pin = spin\n' + - '\n' + - ' def distance_mm(self):\n' + - ' spi.init(baudrate=125000, sclk=self.sclk_pin,\n' + - ' mosi=self.trigger_pin, miso=self.echo_pin)\n' + - ' pre = 0\n' + - ' post = 0\n' + - ' k = -1\n' + - ' length = 500\n' + - ' resp = bytearray(length)\n' + - ' resp[0] = 0xFF\n' + - ' spi.write_readinto(resp, resp)\n' + - ' # find first non zero value\n' + - ' try:\n' + - ' i, value = next((ind, v) for ind, v in enumerate(resp) if v)\n' + - ' except StopIteration:\n' + - ' i = -1\n' + - ' if i > 0:\n' + - ' pre = bin(value).count("1")\n' + - ' # find first non full high value afterwards\n' + - ' try:\n' + - ' k, value = next((ind, v)\n' + - ' for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n' + - ' post = bin(value).count("1") if k else 0\n' + - ' k = k + i\n' + - ' except StopIteration:\n' + - ' i = -1\n' + - ' dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n' + - ' return dist\n' + - '\n' + - 'sonar=HCSR04()\n' - return ['sonar.distance_mm()/10.0', generator.ORDER_ATOMIC]; -} - -const RTC_get_time = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "rtc") - generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc'; - var code = v + '.datetime()'; - return [code, generator.ORDER_ATOMIC]; -} - -const RTC_set_time = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var hour = generator.valueToCode(this, "hour", generator.ORDER_ASSIGNMENT); - var minute = generator.valueToCode(this, "minute", generator.ORDER_ASSIGNMENT); - var second = generator.valueToCode(this, "second", generator.ORDER_ASSIGNMENT); - generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT; - var code = 'str(ds.Hour(' + hour + '))+ str(ds.Minute(' + minute + ')) +str(ds.Second(' + second + '))\n'; - return code; -} - -const RTC_set_date = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var year = generator.valueToCode(this, "year", generator.ORDER_ASSIGNMENT); - var month = generator.valueToCode(this, "month", generator.ORDER_ASSIGNMENT); - var day = generator.valueToCode(this, "day", generator.ORDER_ASSIGNMENT); - generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT; - var code = 'str(ds.Year(' + year + '))+ str(ds.Month(' + month + ')) +str(ds.Day(' + day + '))\n'; - return code; -} - -const sensor_compass_reset = function (block, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return '' + v + '.reset_calibrate()\n'; -} - -const HCSR04 = function (_, generator) { - generator.definitions_['import_sonar'] = 'import sonar'; - var dropdown_pin1 = generator.valueToCode(this, "PIN1", generator.ORDER_ASSIGNMENT); - var dropdown_pin2 = generator.valueToCode(this, "PIN2", generator.ORDER_ASSIGNMENT); - var code = 'sonar.Sonar(' + dropdown_pin1 + ', ' + dropdown_pin2 + ').checkdist()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_dht11 = function (_, generator) { - generator.definitions_['import_dhtx'] = 'import dhtx'; - var sensor_type = this.getFieldValue('TYPE'); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var what = this.getFieldValue('WHAT'); - var code = 'dhtx.get_dht_' + what + "('" + sensor_type + "', " + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_light = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'mixgo.get_brightness(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_sound = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'mixgo.get_soundlevel(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const number1 = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); - var code = 'mixgo.' + pin + '.is_touched()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_pin_near = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'mixgo.' + 'Infrared(' + pin + ')()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_near = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var direction = this.getFieldValue('direction'); - var code = 'mixgo.' + 'infrared_' + direction + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const RTC_set_datetime = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var year = generator.valueToCode(this, "year", generator.ORDER_ASSIGNMENT); - var month = generator.valueToCode(this, "month", generator.ORDER_ASSIGNMENT); - var day = generator.valueToCode(this, "day", generator.ORDER_ASSIGNMENT); - var hour = generator.valueToCode(this, "hour", generator.ORDER_ASSIGNMENT); - var minute = generator.valueToCode(this, "minute", generator.ORDER_ASSIGNMENT); - var second = generator.valueToCode(this, "second", generator.ORDER_ASSIGNMENT); - var week = generator.valueToCode(this, "weekday", generator.ORDER_ASSIGNMENT); - var millisecond = generator.valueToCode(this, "millisecond", generator.ORDER_ASSIGNMENT); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "rtc") - generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc'; - var code = v + '.datetime((' + year + ',' + month + ',' + day + ',' + week + ',' + hour + ',' + minute + ',' + second + ',' + millisecond + '))\n'; - return code; -} - -const sensor_rtc_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - var code = v + ' = machine.RTC()\n'; - return code; -} - -const sensor_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_machine'] = 'import machine'; - var code; - if (key == 'MPU9250') { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - code = v + ' = mpu9250.' + key + "(" + iv + ')\n'; - } else if (key == 'BMP280') { - generator.definitions_['import_bmp280'] = 'import bmp280'; - code = v + ' = bmp280.' + key + "(" + iv + ')\n'; - } else if (key == 'SHT20') { - generator.definitions_['import_sht20'] = 'import sht20'; - code = v + ' = sht20.' + key + "(" + iv + ')\n'; - } else if (key == 'ADXL345') { - generator.definitions_['import_adxl345'] = 'import adxl345'; - code = v + ' = adxl345.' + key + "(" + iv + ')\n'; - } - return code; -} - -const sensor_bmp = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_bmp280'] = 'import bmp280'; - var code = v + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_sht = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_sht20'] = 'import sht20'; - var code = v + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_ds18x20 = function (_, generator) { - generator.definitions_['import_ds18x20x'] = 'import ds18x20x'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'ds18x20x.get_ds18x20_temperature(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_lm35 = function (_, generator) { - generator.definitions_['import_lm35'] = 'import lm35'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'lm35.get_LM35_temperature(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_button_is_pressed = sensor_mixgo_button_is_pressed; -const sensor_button_was_pressed = sensor_mixgo_button_was_pressed; -const sensor_button_get_presses = sensor_mixgo_button_get_presses; -const sensor_pin_pressed = sensor_mixgo_pin_pressed; -const sensor_pin_near = sensor_mixgo_pin_near; -const sensor_mixgo_light = _sensor_onboard__WEBPACK_IMPORTED_MODULE_0__.sensor_LTR308; -const sensor_light = sensor_mixgo_light; -// export const sensor_get_acceleration = sensor_mixgo_get_acceleration; -const dht11 = sensor_dht11; - -/***/ }), - -/***/ "../micropython/generators/sensor_extern.js": -/*!**************************************************!*\ - !*** ../micropython/generators/sensor_extern.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CI130X_BROADCAST: () => (/* binding */ CI130X_BROADCAST), -/* harmony export */ CI130X_GET_THE_RECOGNIZED_CMD: () => (/* binding */ CI130X_GET_THE_RECOGNIZED_CMD), -/* harmony export */ CI130X_GET_WHETHER_IDENTIFY: () => (/* binding */ CI130X_GET_WHETHER_IDENTIFY), -/* harmony export */ CI130X_IDENTIFY_AND_SAVE: () => (/* binding */ CI130X_IDENTIFY_AND_SAVE), -/* harmony export */ CI130X_SET_SYSTEM_CMD: () => (/* binding */ CI130X_SET_SYSTEM_CMD), -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ PS2_Button: () => (/* binding */ PS2_Button), -/* harmony export */ PS2_Buttons: () => (/* binding */ PS2_Buttons), -/* harmony export */ PS2_Buttons_new: () => (/* binding */ PS2_Buttons_new), -/* harmony export */ PS2_State: () => (/* binding */ PS2_State), -/* harmony export */ PS2_init: () => (/* binding */ PS2_init), -/* harmony export */ PS2_init_new: () => (/* binding */ PS2_init_new), -/* harmony export */ PS2_stk: () => (/* binding */ PS2_stk), -/* harmony export */ PS2_stk_new: () => (/* binding */ PS2_stk_new), -/* harmony export */ PS2_vibration: () => (/* binding */ PS2_vibration), -/* harmony export */ PS2_vibration_new: () => (/* binding */ PS2_vibration_new), -/* harmony export */ RTC_get_time: () => (/* binding */ RTC_get_time), -/* harmony export */ RTC_set_date: () => (/* binding */ RTC_set_date), -/* harmony export */ RTC_set_datetime: () => (/* binding */ RTC_set_datetime), -/* harmony export */ RTC_set_time: () => (/* binding */ RTC_set_time), -/* harmony export */ camera_sensor_init: () => (/* binding */ camera_sensor_init), -/* harmony export */ camera_sensor_result: () => (/* binding */ camera_sensor_result), -/* harmony export */ educore_body_sensor: () => (/* binding */ educore_body_sensor), -/* harmony export */ educore_button_sensor_extern: () => (/* binding */ educore_button_sensor_extern), -/* harmony export */ educore_camera_sensor: () => (/* binding */ educore_camera_sensor), -/* harmony export */ educore_infrared_sensor: () => (/* binding */ educore_infrared_sensor), -/* harmony export */ educore_soilhum_sensor: () => (/* binding */ educore_soilhum_sensor), -/* harmony export */ educore_temp_sensor: () => (/* binding */ educore_temp_sensor), -/* harmony export */ educore_temphum_sensor: () => (/* binding */ educore_temphum_sensor), -/* harmony export */ educore_ultrasonic_sensor: () => (/* binding */ educore_ultrasonic_sensor), -/* harmony export */ esp32_s2_weather_init: () => (/* binding */ esp32_s2_weather_init), -/* harmony export */ esp32_s2_weather_rain: () => (/* binding */ esp32_s2_weather_rain), -/* harmony export */ esp32_s2_weather_wd: () => (/* binding */ esp32_s2_weather_wd), -/* harmony export */ esp32_s2_weather_ws: () => (/* binding */ esp32_s2_weather_ws), -/* harmony export */ extern_rfid_read: () => (/* binding */ extern_rfid_read), -/* harmony export */ extern_rfid_readcontent: () => (/* binding */ extern_rfid_readcontent), -/* harmony export */ extern_rfid_readid: () => (/* binding */ extern_rfid_readid), -/* harmony export */ extern_rfid_status: () => (/* binding */ extern_rfid_status), -/* harmony export */ extern_rfid_write: () => (/* binding */ extern_rfid_write), -/* harmony export */ extern_rfid_write_return: () => (/* binding */ extern_rfid_write_return), -/* harmony export */ gnss_get_data: () => (/* binding */ gnss_get_data), -/* harmony export */ gnss_have_data: () => (/* binding */ gnss_have_data), -/* harmony export */ interaction_whether_to_interaction: () => (/* binding */ interaction_whether_to_interaction), -/* harmony export */ interaction_whether_to_interaction_SANT: () => (/* binding */ interaction_whether_to_interaction_SANT), -/* harmony export */ mixbot_sensor_extern_get_addr: () => (/* binding */ mixbot_sensor_extern_get_addr), -/* harmony export */ mixbot_sensor_extern_set_addr: () => (/* binding */ mixbot_sensor_extern_set_addr), -/* harmony export */ pm25_get_data: () => (/* binding */ pm25_get_data), -/* harmony export */ radar_set_DETECTION_THRESHOLD: () => (/* binding */ radar_set_DETECTION_THRESHOLD), -/* harmony export */ radar_set_DETECTION_THRESHOLD_SANT: () => (/* binding */ radar_set_DETECTION_THRESHOLD_SANT), -/* harmony export */ robot_button_extern_get_value: () => (/* binding */ robot_button_extern_get_value), -/* harmony export */ robot_color_extern_get_value: () => (/* binding */ robot_color_extern_get_value), -/* harmony export */ robot_infrared_extern_get_value: () => (/* binding */ robot_infrared_extern_get_value), -/* harmony export */ robot_infrared_extern_grey_get_value: () => (/* binding */ robot_infrared_extern_grey_get_value), -/* harmony export */ robot_potentiometer_extern_get_value: () => (/* binding */ robot_potentiometer_extern_get_value), -/* harmony export */ robot_sonar_extern_get_value: () => (/* binding */ robot_sonar_extern_get_value), -/* harmony export */ robot_sonar_extern_led: () => (/* binding */ robot_sonar_extern_led), -/* harmony export */ robot_touch_extern_get_value: () => (/* binding */ robot_touch_extern_get_value), -/* harmony export */ sensor_APDS9960_extern: () => (/* binding */ sensor_APDS9960_extern), -/* harmony export */ sensor_DS18X20: () => (/* binding */ sensor_DS18X20), -/* harmony export */ sensor_LTR308_extern: () => (/* binding */ sensor_LTR308_extern), -/* harmony export */ sensor_LTR390UV_extern: () => (/* binding */ sensor_LTR390UV_extern), -/* harmony export */ sensor_MAX30102_extern: () => (/* binding */ sensor_MAX30102_extern), -/* harmony export */ sensor_QMC5883L_extern: () => (/* binding */ sensor_QMC5883L_extern), -/* harmony export */ sensor_VL530LX_extern: () => (/* binding */ sensor_VL530LX_extern), -/* harmony export */ sensor_aht11_extern: () => (/* binding */ sensor_aht11_extern), -/* harmony export */ sensor_bmp: () => (/* binding */ sensor_bmp), -/* harmony export */ sensor_dht11: () => (/* binding */ sensor_dht11), -/* harmony export */ sensor_distance_hrsc04: () => (/* binding */ sensor_distance_hrsc04), -/* harmony export */ sensor_hp203_extern: () => (/* binding */ sensor_hp203_extern), -/* harmony export */ sensor_ltr381_extern: () => (/* binding */ sensor_ltr381_extern), -/* harmony export */ sensor_mixgo_extern_button_attachInterrupt: () => (/* binding */ sensor_mixgo_extern_button_attachInterrupt), -/* harmony export */ sensor_mixgo_extern_button_get_presses: () => (/* binding */ sensor_mixgo_extern_button_get_presses), -/* harmony export */ sensor_mixgo_extern_button_is_pressed: () => (/* binding */ sensor_mixgo_extern_button_is_pressed), -/* harmony export */ sensor_mixgo_extern_button_was_pressed: () => (/* binding */ sensor_mixgo_extern_button_was_pressed), -/* harmony export */ sensor_mixgo_extern_light: () => (/* binding */ sensor_mixgo_extern_light), -/* harmony export */ sensor_mixgo_extern_pin_near: () => (/* binding */ sensor_mixgo_extern_pin_near), -/* harmony export */ sensor_mixgo_extern_sound: () => (/* binding */ sensor_mixgo_extern_sound), -/* harmony export */ sensor_mixgoce_hot_wheel_degrees: () => (/* binding */ sensor_mixgoce_hot_wheel_degrees), -/* harmony export */ sensor_mixgoce_hot_wheel_is_touched: () => (/* binding */ sensor_mixgoce_hot_wheel_is_touched), -/* harmony export */ sensor_mpu9250_attachGestureInterrupt: () => (/* binding */ sensor_mpu9250_attachGestureInterrupt), -/* harmony export */ sensor_read_humiture: () => (/* binding */ sensor_read_humiture), -/* harmony export */ sensor_rtc_init: () => (/* binding */ sensor_rtc_init), -/* harmony export */ sensor_sht: () => (/* binding */ sensor_sht), -/* harmony export */ sensor_shtc3_extern: () => (/* binding */ sensor_shtc3_extern), -/* harmony export */ sensor_spl06_001_extern: () => (/* binding */ sensor_spl06_001_extern), -/* harmony export */ sensor_ucs12071_extern: () => (/* binding */ sensor_ucs12071_extern), -/* harmony export */ sensor_use_i2c_init: () => (/* binding */ sensor_use_i2c_init), -/* harmony export */ sensor_use_spi_init: () => (/* binding */ sensor_use_spi_init), -/* harmony export */ sensor_use_uart_init: () => (/* binding */ sensor_use_uart_init), -/* harmony export */ sensor_weather_solo_init: () => (/* binding */ sensor_weather_solo_init), -/* harmony export */ sensor_weather_solo_rain: () => (/* binding */ sensor_weather_solo_rain), -/* harmony export */ sensor_weather_solo_wd: () => (/* binding */ sensor_weather_solo_wd), -/* harmony export */ sensor_weather_solo_ws: () => (/* binding */ sensor_weather_solo_ws), -/* harmony export */ sensor_weigh_init: () => (/* binding */ sensor_weigh_init), -/* harmony export */ ultrasonic_sensor_read_distance: () => (/* binding */ ultrasonic_sensor_read_distance), -/* harmony export */ weather_data: () => (/* binding */ weather_data), -/* harmony export */ weather_have_data: () => (/* binding */ weather_have_data), -/* harmony export */ weather_set_label: () => (/* binding */ weather_set_label), -/* harmony export */ weather_uart_mixio: () => (/* binding */ weather_uart_mixio), -/* harmony export */ weigh_sensor_get_weight: () => (/* binding */ weigh_sensor_get_weight) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const sensor_mixgo_extern_button_is_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').is_pressed(' + dropdown_stat + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mixgo_extern_button_was_pressed = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').was_pressed(' + dropdown_stat + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_button_get_presses = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'mixgo.Button(' + pin + ').get_presses(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_button_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'mixgo.Button(' + pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - return code; -} - -const sensor_mpu9250_attachGestureInterrupt = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var gesture = this.getFieldValue('gesture'); - var branch = generator.statementToCode(this, 'DO'); - var d = branch || generator.PASS; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = 'if ' + v + '.mpu9250_is_gesture("' + gesture + '"):\n' + d; - return code; -} - -const sensor_distance_hrsc04 = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - generator.setups_['class_hrsc04'] = - 'class HCSR04:\n' + - ' def __init__(self, tpin=pin15, epin=pin14, spin=pin13):\n' + - ' self.trigger_pin = tpin\n' + - ' self.echo_pin = epin\n' + - ' self.sclk_pin = spin\n' + - '\n' + - ' def distance_mm(self):\n' + - ' spi.init(baudrate=125000, sclk=self.sclk_pin,\n' + - ' mosi=self.trigger_pin, miso=self.echo_pin)\n' + - ' pre = 0\n' + - ' post = 0\n' + - ' k = -1\n' + - ' length = 500\n' + - ' resp = bytearray(length)\n' + - ' resp[0] = 0xFF\n' + - ' spi.write_readinto(resp, resp)\n' + - ' # find first non zero value\n' + - ' try:\n' + - ' i, value = next((ind, v) for ind, v in enumerate(resp) if v)\n' + - ' except StopIteration:\n' + - ' i = -1\n' + - ' if i > 0:\n' + - ' pre = bin(value).count("1")\n' + - ' # find first non full high value afterwards\n' + - ' try:\n' + - ' k, value = next((ind, v)\n' + - ' for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n' + - ' post = bin(value).count("1") if k else 0\n' + - ' k = k + i\n' + - ' except StopIteration:\n' + - ' i = -1\n' + - ' dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n' + - ' return dist\n' + - '\n' + - 'sonar=HCSR04()\n' - return ['sonar.distance_mm()/10.0', generator.ORDER_ATOMIC]; -} - -const RTC_set_time = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var hour = generator.valueToCode(this, "hour", generator.ORDER_ASSIGNMENT); - var minute = generator.valueToCode(this, "minute", generator.ORDER_ASSIGNMENT); - var second = generator.valueToCode(this, "second", generator.ORDER_ASSIGNMENT); - generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT; - var code = 'str(ds.Hour(' + hour + '))+ str(ds.Minute(' + minute + ')) +str(ds.Second(' + second + '))\n'; - return code; -} - -const RTC_set_date = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var year = generator.valueToCode(this, "year", generator.ORDER_ASSIGNMENT); - var month = generator.valueToCode(this, "month", generator.ORDER_ASSIGNMENT); - var day = generator.valueToCode(this, "day", generator.ORDER_ASSIGNMENT); - generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT; - var code = 'str(ds.Year(' + year + '))+ str(ds.Month(' + month + ')) +str(ds.Day(' + day + '))\n'; - return code; -} - -const sensor_mixgo_extern_light = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'mixgo.get_brightness(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_sound = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'mixgo.get_soundlevel(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_extern_pin_near = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var direction = this.getFieldValue('direction'); - var code = 'mixgo.' + 'infrared_' + direction + '.near()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_rtc_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - var code = v + ' = machine.RTC()\n'; - return code; -} - -const sensor_bmp = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_bmp280'] = 'import bmp280'; - var code = v + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_sht = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_sht20'] = 'import sht20'; - var code = v + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -//pe -const sensor_use_i2c_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code; - if (key == 'MPU9250') { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - code = v + ' = mpu9250.' + key + "(" + iv + ')\n'; - } else if (key == 'BMP280') { - generator.definitions_['import_bmp280'] = 'import bmp280'; - code = v + ' = bmp280.' + key + "(" + iv + ')\n'; - } else if (key == 'SHT20') { - generator.definitions_['import_sht20'] = 'import sht20'; - code = v + ' = sht20.' + key + "(" + iv + ')\n'; - } else if (key == 'ADXL345') { - generator.definitions_['import_adxl345'] = 'import adxl345'; - code = v + ' = adxl345.' + key + "(" + iv + ')\n'; - } else if (key == 'LTR308') { - generator.definitions_['import_ltr308al'] = 'import ltr308al'; - code = v + ' = ltr308al.LTR_308ALS(' + iv + ')\n'; - } else if (key == 'LTR381RGB') { - generator.definitions_['import_ltr381rgb'] = 'import ltr381rgb'; - code = v + ' = ltr381rgb.LTR_381RGB(' + iv + ')\n'; - } else if(key == 'UCS12071'){ - generator.definitions_['import_ucs12071'] = 'import ucs12071'; - code = v + ' = ucs12071.UCS12071(' + iv + ')\n'; - } else if (key == 'LTR390UV'){ - generator.definitions_['import_ltr390uv'] = 'import ltr390uv'; - code = v + ' = ltr390uv.ALS_UVS(' + iv +')\n'; - } else if (key == 'HP203X') { - generator.definitions_['import_hp203x'] = 'import hp203x'; - code = v + ' = hp203x.HP203X(' + iv + ')\n'; - } else if(key == "SPL06_001"){ - generator.definitions_['import_spl06_001'] = 'import spl06_001'; - code = v + ' = spl06_001.SPL06(' + iv + ')\n'; - } else if (key == 'SHTC3') { - generator.definitions_['import_shtc3'] = 'import shtc3'; - code = v + ' = shtc3.' + key + "(" + iv + ')\n'; - } else if (key == 'AHT21') { - generator.definitions_['import_ahtx0'] = 'import ahtx0'; - code = v + ' = ahtx0.AHTx0(' + iv + ')\n'; - } else if (key == 'VL53L0X') { - generator.definitions_['import_vl53l0x'] = 'import vl53l0x'; - code = v + ' = vl53l0x.' + key + "(" + iv + ')\n'; - } else if (key == 'QMC5883L') { - generator.definitions_['import_qmc5883l'] = 'import qmc5883l'; - code = v + ' = qmc5883l.Compass(' + iv + ')\n'; - } else if (key == 'MAX30102') { - generator.definitions_['import_max30102'] = 'import max30102'; - code = v + ' = max30102.MAX30102(' + iv + ')\n'; - } else if (key == 'APDS9960') { - generator.definitions_['import_apds9960'] = 'import apds9960'; - code = v + ' = apds9960.APDS9960(' + iv + ')\n'; - } else if (key == 'RFID') { - generator.definitions_['import_rc522'] = 'import rc522'; - code = v + ' = rc522.RC522(' + iv + ')\n'; - }else if (key == 'CBR817') { - generator.definitions_['import_cbr817'] = 'import cbr817'; - code = v + ' = cbr817.' + key + "(" + iv + ')\n'; - }else if (key == 'CI130X'){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - code = v + ' = ci130x.' + key + "(" + iv + ')\n'; - } - return code; -} - -const radar_set_DETECTION_THRESHOLD = function (_, generator) { - generator.definitions_['import_cbr817'] = 'import cbr817'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = sub + '.threshold(' + value +')\n'+sub + '.delay_ms(' + value2 +')\n'; - return code; -} - -const radar_set_DETECTION_THRESHOLD_SANT = function (_, generator) { - generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw'; - var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = 'ext_mmw.threshold(' + value +')\n'+ 'ext_mmw.delay_ms(' + value2 +')\n'; - return code; -} - -const interaction_whether_to_interaction = function(_,generator){ - generator.definitions_['import_cbr817'] = 'import cbr817'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.result()'; - return [code,generator.ORDER_ATOMIC]; -} - -const interaction_whether_to_interaction_SANT = function(_,generator){ - generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw'; - var code = 'ext_mmw.result()'; - return [code,generator.ORDER_ATOMIC]; -} - -const CI130X_IDENTIFY_AND_SAVE = function(_,generator){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.cmd_id()\n'; - return code; -} - -const CI130X_GET_WHETHER_IDENTIFY = function(_,generator){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var cmd = this.getFieldValue('cmd'); - var code = sub+'.result('+cmd+')'; - return [code,generator.ORDER_ATOMIC]; -} - -const CI130X_GET_THE_RECOGNIZED_CMD = function(_,generator){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - if(key == 'status1'){ - var code = sub+'.status()[0]'; - }else if(key == 'status2'){ - var code = sub+'.status()[1]'; - }else{ - var code = sub+'.'+key +'()'; - } - return [code,generator.ORDER_ATOMIC]; -} - -const CI130X_BROADCAST = function(_,generator){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var star = this.getFieldValue('star'); - var end = this.getFieldValue('end'); - var code = sub+'.play('+star+','+num+','+end+')\n'; - return code; -} - -const CI130X_SET_SYSTEM_CMD = function(_,generator){ - generator.definitions_['import_ci130x'] = 'import ci130x'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var cmd = this.getFieldValue('cmd'); - var code = sub+'.sys_cmd('+cmd+')\n'; - return code; -} - -const sensor_MAX30102_extern = function (_, generator) { - generator.definitions_['import_max30102'] = 'import max30102'; - var key = this.getFieldValue('key'); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + '.heartrate()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_APDS9960_extern = function (_, generator) { - generator.definitions_['import_apds9960'] = 'import apds9960'; - var key = this.getFieldValue('key'); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + '.' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_LTR308_extern = function (_, generator) { - generator.definitions_['import_ltr308al'] = 'import ltr308al'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + '.getdata()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_hp203_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_hp203x'] = 'import hp203x'; - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_spl06_001_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_spl06_001'] = 'import spl06_001'; - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_ltr381_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_ltr381rgb'] = 'import ltr381rgb'; - var code = sub + '.getdata()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_ucs12071_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_ucs12071'] = 'import ucs12071'; - if (key == '0'){ - var code = sub + '.color()'; - } - else if(key == '1'){ - var code = sub + '.color_raw()'; - } - else if(key == '2'){ - var code = sub + '.als()'; - } - else{ - var code = sub + '.ir()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_LTR390UV_extern = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_time'] = 'import time'; - generator.definitions_['import_ltr390uv'] = 'import ltr390uv'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - if (key == 'E') { - var code = sub + '.ambient_light()'; - } else { - var code = sub + '.ultraviolet()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_QMC5883L_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_qmc5883l'] = 'import qmc5883l'; - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_shtc3_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_shtc3'] = 'import shtc3'; - var code = sub + '.' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_aht11_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_ahtx0'] = 'import ahtx0'; - var code = sub + '.' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_VL530LX_extern = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_vl53l0x'] = 'import vl53l0x'; - var code = sub + '.read()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_use_spi_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC); - var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code; - if (key == 'RFID') { - generator.definitions_['import_rc522'] = 'import rc522'; - var code = v + ' = rc522.RC522(' + sv + ',' + pv + ')\n'; - } else if (key == 'Weather') { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - generator.definitions_['import_ws_lora'] = 'import ws_lora'; - if (version == 'mixgo_pe') { - var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ')\n'; - } else if (version == 'mixgo_nova') { - var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ',' + version + '.onboard_i2c_soft' + ')\n'; - } else { - var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ',' + version + '.onboard_i2c' + ')\n'; - } - } - return code; -} - -const extern_rfid_read = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.read_card(' + sector + ',"' + key + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -const extern_rfid_readid = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.read_card(0, x="id")'; - return [code, generator.ORDER_ATOMIC]; -} - -const extern_rfid_readcontent = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.read_card(' + sector + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const extern_rfid_write = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.write_card(' + cnt + ',' + sector + ')\n'; - return code; -} - -const extern_rfid_write_return = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.write_card(' + cnt + ',' + sector + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const extern_rfid_status = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_rc522'] = 'import rc522'; - var code = sub + '.scan_card()==' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const weather_data = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_ws_lora'] = 'import ws_lora'; - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const weather_have_data = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_ws_lora'] = 'import ws_lora'; - var code = sub + '.any()'; - return [code, generator.ORDER_ATOMIC]; -} - -const weather_uart_mixio = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var base = generator.valueToCode(this, 'BASE', generator.ORDER_ATOMIC); - generator.definitions_['import_ws_lora'] = 'import ws_lora'; - var code = sub + '.uart_mixio(topic=' + base + ')\n'; - return code; -} - -const weather_set_label = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_ws_lora'] = 'import ws_lora'; - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = sub + '.label(' + code.join(', ') + ')\n'; - return code; -} - -const sensor_mixgoce_hot_wheel_is_touched = function (_, generator) { - var key = this.getFieldValue('key'); - var stat = this.getFieldValue('stat'); - generator.definitions_['import_tpwheel'] = 'import tpwheel'; - var code = 'tpwheel.TouchPadWheels(' + key + ').' + stat; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgoce_hot_wheel_degrees = function (_, generator) { - generator.definitions_['import_tpwheel'] = 'import tpwheel'; - var code = 'tpwheel.hot_wheels_degree()'; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_s2_weather_init = function (_, generator) { - generator.definitions_['import_weather'] = 'import weather'; - generator.definitions_['import_board_*'] = 'from board import *'; - var wd = generator.valueToCode(this, 'wd', generator.ORDER_ATOMIC); - var ws = generator.valueToCode(this, 'ws', generator.ORDER_ATOMIC); - var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC); - var code = "wd = weather.Weather_wd(" + wd + ")\n" - code += "ws = weather.Weather_ws(" + ws + ")\n" - code += "rain = weather.Weather_rain(" + rain + ")\n" - return code; -} - -const esp32_s2_weather_wd = function (_, generator) { - generator.definitions_['import_weather'] = 'import weather'; - var code = 'wd.wind_direction()'; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_s2_weather_rain = function (_, generator) { - generator.definitions_['import_weather'] = 'import weather'; - var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC); - var code = 'rain.rain_count(time_Hour=' + rain + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const esp32_s2_weather_ws = function (_, generator) { - generator.definitions_['import_weather'] = 'import weather'; - var key = this.getFieldValue('key'); - if (key == 'ALL') { - var code = 'ws.wind_speed()'; - } else { - var code = 'ws.wind_speed()[' + key + ']'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const HCSR04 = function (_, generator) { - generator.definitions_['import_sonar'] = 'import sonar'; - var dropdown_pin1 = generator.valueToCode(this, "PIN1", generator.ORDER_ASSIGNMENT); - var dropdown_pin2 = generator.valueToCode(this, "PIN2", generator.ORDER_ASSIGNMENT); - var code = 'sonar.Sonar(' + dropdown_pin1 + ',' + dropdown_pin2 + ').checkdist()'; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_init = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - //generator.definitions_['import_board'] = 'import board'; - var PS2_CLK = this.getFieldValue('PS2_CLK'); - var PS2_DOU = this.getFieldValue('PS2_DOU'); - var PS2_DIN = this.getFieldValue('PS2_DIN'); - var PS2_CS = this.getFieldValue('PS2_CS'); - var code = 'mixgope_ps = ps2.PS2Controller(' + PS2_CLK + ',' + PS2_DOU + ',' + PS2_DIN + ',' + PS2_CS + ')\n'; - return code; -} - -const PS2_vibration = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var ss = this.getFieldValue('smotorstate'); - var amp = generator.valueToCode(this, 'AMP', generator.ORDER_ATOMIC); - var code = "mixgope_ps.PS2_vibration(" + ss + ',' + amp + ")\n"; - return code; -} - -const PS2_Button = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var bt = this.getFieldValue('psbt'); - var code = "mixgope_ps.PS2_keydata()[0] & (ps2." + bt + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_Buttons = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var bt = this.getFieldValue('psbt'); - var code = "ps2." + bt; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_State = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var bt = this.getFieldValue('btstate'); - var code = "mixgope_ps.PS2_keydata()[" + bt + "]"; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_stk = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var stk = this.getFieldValue('psstk'); - var code = "mixgope_ps.PS2_keydata()[1][" + stk + "]"; - return [code, generator.ORDER_ATOMIC]; -} - -const RTC_set_datetime = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var year = generator.valueToCode(this, "year", generator.ORDER_ASSIGNMENT); - var month = generator.valueToCode(this, "month", generator.ORDER_ASSIGNMENT); - var day = generator.valueToCode(this, "day", generator.ORDER_ASSIGNMENT); - var hour = generator.valueToCode(this, "hour", generator.ORDER_ASSIGNMENT); - var minute = generator.valueToCode(this, "minute", generator.ORDER_ASSIGNMENT); - var second = generator.valueToCode(this, "second", generator.ORDER_ASSIGNMENT); - var week = generator.valueToCode(this, "weekday", generator.ORDER_ASSIGNMENT); - var millisecond = generator.valueToCode(this, "millisecond", generator.ORDER_ASSIGNMENT); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "rtc") - generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc'; - var code = v + '.datetime((' + year + ',' + month + ',' + day + ',' + week + ',' + hour + ',' + minute + ',' + second + ',' + millisecond + '))\n'; - return code; -} - -const RTC_get_time = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "rtc") - generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc'; - var code = v + '.datetime()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_dht11 = function (_, generator) { - generator.definitions_['import_dhtx'] = 'import dhtx'; - var sensor_type = this.getFieldValue('TYPE'); - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var what = this.getFieldValue('WHAT'); - var code = 'dhtx.' + sensor_type + "(" + dropdown_pin + ').' + what + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_init_new = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - //generator.definitions_['import_board'] = 'import board'; - var PS2_CLK = generator.valueToCode(this, 'CLK', generator.ORDER_ATOMIC); - var PS2_DOU = generator.valueToCode(this, 'DOU', generator.ORDER_ATOMIC); - var PS2_DIN = generator.valueToCode(this, 'DIN', generator.ORDER_ATOMIC); - var PS2_CS = generator.valueToCode(this, 'CS', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + ' = ps2.PS2Controller(' + PS2_CLK + ',' + PS2_DOU + ',' + PS2_DIN + ',' + PS2_CS + ')\n'; - return code; -} - -const PS2_vibration_new = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var ss = this.getFieldValue('smotorstate'); - var amp = generator.valueToCode(this, 'AMP', generator.ORDER_ATOMIC); - var code = sub + ".vibration(" + ss + ',' + amp + ")\n"; - return code; -} - -const PS2_Buttons_new = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var bt = this.getFieldValue('psbt'); - var code = sub + '.button(ps2.' + bt + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const PS2_stk_new = function (_, generator) { - generator.definitions_['import_ps2'] = 'import ps2'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var stk = this.getFieldValue('psstk'); - var code = sub + ".analog(ps2.PSS_" + stk + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_use_uart_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var s = this.getFieldValue('sensor'); - var code = '' - if (s == 'PM') { - generator.definitions_['import_pm2_5'] = 'import pm2_5'; - code = v + '=pm2_5.PM2_5(' + key + ')\n'; - } else if (s == 'GNSS') { - generator.definitions_['import_gnss'] = 'import gnss'; - code = v + '=gnss.NMEA0183(' + key + ')\n'; - } - return code; -} - -const pm25_get_data = function (_, generator) { - generator.definitions_['import_pm2_5'] = 'import pm2_5'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var pm = this.getFieldValue('pm'); - var code = v + ".concentration()" + pm; - return [code, generator.ORDER_ATOMIC]; -} - -const gnss_get_data = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - generator.definitions_['import_gnss'] = 'import gnss'; - var code = sub + '.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const gnss_have_data = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_gnss'] = 'import gnss'; - var code = sub + '.any()'; - return [code, generator.ORDER_ATOMIC]; -} - -//mixbot/feiyi extern below: -const robot_button_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var num = this.getFieldValue('num'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_button'] = 'from mixbot_ext import ext_button'; - var code = 'ext_button.value(' + mode + ")" + num; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_button'] = 'ext_button_left = i2cdevice.Buttonx5(ext_i2c_left)'; - var code = 'ext_button_left.value()' + num; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_button'] = 'ext_button_right = i2cdevice.Buttonx5(ext_i2c_right)'; - var code = 'ext_button_right.value()' + num; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_touch_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_collision'] = 'from mixbot_ext import ext_collision'; - var code = 'ext_collision.value(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_collision'] = 'ext_collision_left = i2cdevice.Button(ext_i2c_left)'; - var code = 'ext_collision_left.value()'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_collision'] = 'ext_collision_right = i2cdevice.Button(ext_i2c_right)'; - var code = 'ext_collision_right.value()'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_infrared_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixbot') { - var mode = this.getFieldValue('mode'); - generator.definitions_['import_mixbot_ext_ext_infrared'] = 'from mixbot_ext import ext_infrared'; - var code = 'ext_infrared.value(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - var mode = this.getFieldValue('mode'); - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var code = 'onboard_bot51.read_ps(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_infrared_extern_grey_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_grey_near'] = 'ext_grey_near_left = i2cdevice.Infrared(ext_i2c_left)'; - var code = 'ext_grey_near_left.value()'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_grey_near'] = 'ext_grey_near_right = i2cdevice.Infrared(ext_i2c_right)'; - var code = 'ext_grey_near_right.value()'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_potentiometer_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_potentiometer'] = 'from mixbot_ext import ext_potentiometer'; - var code = 'ext_potentiometer.value(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_potentiometer'] = 'ext_potentiometer_left = i2cdevice.Dimmer(ext_i2c_left)'; - var code = 'ext_potentiometer_left.value()'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_potentiometer'] = 'ext_potentiometer_right = i2cdevice.Dimmer(ext_i2c_right)'; - var code = 'ext_potentiometer_right.value()'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_color_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var color = this.getFieldValue('color'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_color'] = 'from mixbot_ext import ext_color'; - var code = 'ext_color.recognition(' + mode + ")" + color; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_color'] = 'ext_color_left = i2cdevice.Color_ID(ext_i2c_left)'; - var code = 'ext_color_left.recognition()' + color; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_color'] = 'ext_color_right = i2cdevice.Color_ID(ext_i2c_right)'; - var code = 'ext_color_right.recognition()' + color; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_sonar_extern_get_value = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_sonar'] = 'from mixbot_ext import ext_sonar'; - var code = 'ext_sonar.value(' + mode + ")"; - return [code, generator.ORDER_ATOMIC]; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_sonar'] = 'ext_sonar_left = i2cdevice.Sonar(ext_i2c_left)'; - var code = 'ext_sonar_left.value()'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_sonar'] = 'ext_sonar_right = i2cdevice.Sonar(ext_i2c_right)'; - var code = 'ext_sonar_right.value()'; - } - return [code, generator.ORDER_ATOMIC]; - } -} - -const robot_sonar_extern_led = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var mode = this.getFieldValue('mode'); - var light = generator.valueToCode(this, 'light', generator.ORDER_ATOMIC); - var op = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - if (version == 'mixbot') { - generator.definitions_['import_mixbot_ext_ext_sonar'] = 'from mixbot_ext import ext_sonar'; - var code = 'ext_sonar.led(' + mode + ',' + light + ',' + op + ")\n"; - return code; - } else if (version == 'feiyi') { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_i2cdevice'] = 'import i2cdevice'; - if (mode == "0") { - generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)'; - generator.definitions_['import_left_sonar'] = 'ext_sonar_left = i2cdevice.Sonar(ext_i2c_left)'; - var code = 'ext_sonar_left.led(0,' + light + ',' + op + ')\n'; - } else if (mode == "1") { - generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)'; - generator.definitions_['import_right_sonar'] = 'ext_sonar_right = i2cdevice.Sonar(ext_i2c_right)'; - var code = 'ext_sonar_right.led(0,' + light + ',' + op + ')\n'; - } - return code; - } -} - -const mixbot_sensor_extern_get_addr = function (_, generator) { - var name = this.getFieldValue('name'); - generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name; - var code = name + '.addr_get()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mixbot_sensor_extern_set_addr = function (_, generator) { - var name = this.getFieldValue('name'); - generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name; - var oldaddr = generator.valueToCode(this, 'old', generator.ORDER_ATOMIC); - var newaddr = generator.valueToCode(this, 'new', generator.ORDER_ATOMIC); - var code = name + '.addr_set(' + oldaddr + ',' + newaddr + ')\n'; - return code; -} - -const sensor_weather_solo_init = function (_, generator) { - generator.definitions_['import_ws_solo'] = 'import ws_solo'; - var wd = generator.valueToCode(this, 'wd', generator.ORDER_ATOMIC); - var ws = generator.valueToCode(this, 'ws', generator.ORDER_ATOMIC); - var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + ' = ws_solo.Weather_Solo(' + wd + ', ' + ws + ', ' + rain + ')\n'; - return code; -} - -const sensor_weather_solo_wd = function (_, generator) { - generator.definitions_['import_ws_solo'] = 'import ws_solo'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.wind_direction()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_weather_solo_ws = function (_, generator) { - generator.definitions_['import_ws_solo'] = 'import ws_solo'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.wind_speed()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_weather_solo_rain = function (_, generator) { - generator.definitions_['import_ws_solo'] = 'import ws_solo'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub + '.rain_count(' + time + ')' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - - -const sensor_DS18X20 = function(_, generator){ - generator.definitions_['import_DS18X20'] = 'from ds18b20 import DS18X20'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code ='DS18X20('+dropdown_pin+').temperature()'; - return [code, generator.ORDER_ATOMIC]; -}; - -//educore sensor_extern -const educore_body_sensor = function (_, generator) { - generator.definitions_['import_educore_tsd'] = 'from educore import tsd'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'tsd(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_soilhum_sensor = function (_, generator) { - generator.definitions_['import_educore_solihum'] = 'from educore import soilhum'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'soilhum(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_temphum_sensor = function (_, generator) { - generator.definitions_['import_educore_dht'] = 'from educore import dht'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'dht(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_infrared_sensor = function (_, generator) { - generator.definitions_['import_educore_tsd'] = 'from educore import tsd'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'tsd(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_button_sensor_extern = function (_, generator) { - generator.definitions_['import_educore_button'] = 'from educore import button'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'button(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_read_humiture = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub+".read()["+key+"]"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_ultrasonic_sensor = function (_, generator) { - generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'ultrasonic(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const ultrasonic_sensor_read_distance = function (_, generator) { - generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".diatance()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_temp_sensor = function (_, generator) { - generator.definitions_['import_educore_ds18b20'] = 'from educore import ds18b20'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'ds18b20(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_camera_sensor = function (_, generator) { - generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'smartcamera(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const camera_sensor_init = function (_, generator) { - generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub+'.init(' + key + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const camera_sensor_result = function (_, generator) { - generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.result()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_weigh_init = function (_, generator) { - generator.definitions_['import_hx270'] = 'import hx720'; - var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC); - var dat = generator.valueToCode(this, 'dat', generator.ORDER_ATOMIC); - var pc = generator.valueToCode(this, 'pc', generator.ORDER_ATOMIC); - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + ' = hx720.HX720(' + sck + ', ' + dat + ', ' + pc + ')\n'; - return code; -} - -const weigh_sensor_get_weight = function (_, generator) { - generator.definitions_['import_hx270'] = 'import hx720'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = v + ".read_weight(10)"; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/sensor_onboard.js": -/*!***************************************************!*\ - !*** ../micropython/generators/sensor_onboard.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ CI130X_BROADCAST_SANT: () => (/* binding */ CI130X_BROADCAST_SANT), -/* harmony export */ CI130X_GET_THE_RECOGNIZED_CMD_SANT: () => (/* binding */ CI130X_GET_THE_RECOGNIZED_CMD_SANT), -/* harmony export */ CI130X_GET_WHETHER_IDENTIFY_SANT: () => (/* binding */ CI130X_GET_WHETHER_IDENTIFY_SANT), -/* harmony export */ CI130X_IDENTIFY_AND_SAVE_SANT: () => (/* binding */ CI130X_IDENTIFY_AND_SAVE_SANT), -/* harmony export */ CI130X_SET_SYSTEM_CMD_SANT: () => (/* binding */ CI130X_SET_SYSTEM_CMD_SANT), -/* harmony export */ HCSR04: () => (/* binding */ HCSR04), -/* harmony export */ bitbot_als_num: () => (/* binding */ bitbot_als_num), -/* harmony export */ dht11: () => (/* binding */ dht11), -/* harmony export */ educore_button_sensor: () => (/* binding */ educore_button_sensor), -/* harmony export */ educore_button_was_pressed: () => (/* binding */ educore_button_was_pressed), -/* harmony export */ educore_gyroscope_sensor: () => (/* binding */ educore_gyroscope_sensor), -/* harmony export */ educore_gyroscope_sensor_read: () => (/* binding */ educore_gyroscope_sensor_read), -/* harmony export */ educore_gyroscope_sensor_shake: () => (/* binding */ educore_gyroscope_sensor_shake), -/* harmony export */ educore_light_sensor: () => (/* binding */ educore_light_sensor), -/* harmony export */ educore_rfid_sensor: () => (/* binding */ educore_rfid_sensor), -/* harmony export */ educore_rfid_sensor_scan: () => (/* binding */ educore_rfid_sensor_scan), -/* harmony export */ educore_rfid_sensor_scan_data: () => (/* binding */ educore_rfid_sensor_scan_data), -/* harmony export */ educore_voice_sensor: () => (/* binding */ educore_voice_sensor), -/* harmony export */ number1: () => (/* binding */ number1), -/* harmony export */ number2: () => (/* binding */ number2), -/* harmony export */ number3: () => (/* binding */ number3), -/* harmony export */ number4: () => (/* binding */ number4), -/* harmony export */ number5: () => (/* binding */ number5), -/* harmony export */ number6: () => (/* binding */ number6), -/* harmony export */ number7: () => (/* binding */ number7), -/* harmony export */ onboard_RTC_get_time: () => (/* binding */ onboard_RTC_get_time), -/* harmony export */ onboard_RTC_get_time_str: () => (/* binding */ onboard_RTC_get_time_str), -/* harmony export */ onboard_RTC_get_timestamp: () => (/* binding */ onboard_RTC_get_timestamp), -/* harmony export */ onboard_RTC_get_timetuple_to_str: () => (/* binding */ onboard_RTC_get_timetuple_to_str), -/* harmony export */ onboard_RTC_set_datetime: () => (/* binding */ onboard_RTC_set_datetime), -/* harmony export */ onboard_RTC_settime_string: () => (/* binding */ onboard_RTC_settime_string), -/* harmony export */ onboard_RTC_timestamp_totuple: () => (/* binding */ onboard_RTC_timestamp_totuple), -/* harmony export */ rfid_readcontent: () => (/* binding */ rfid_readcontent), -/* harmony export */ rfid_readid: () => (/* binding */ rfid_readid), -/* harmony export */ rfid_write: () => (/* binding */ rfid_write), -/* harmony export */ rfid_write_return: () => (/* binding */ rfid_write_return), -/* harmony export */ sensor_LTR308: () => (/* binding */ sensor_LTR308), -/* harmony export */ sensor_adxl345_get_acceleration: () => (/* binding */ sensor_adxl345_get_acceleration), -/* harmony export */ sensor_aht11: () => (/* binding */ sensor_aht11), -/* harmony export */ sensor_bitbot_ALS: () => (/* binding */ sensor_bitbot_ALS), -/* harmony export */ sensor_button_get_presses: () => (/* binding */ sensor_button_get_presses), -/* harmony export */ sensor_button_is_pressed: () => (/* binding */ sensor_button_is_pressed), -/* harmony export */ sensor_button_was_pressed: () => (/* binding */ sensor_button_was_pressed), -/* harmony export */ sensor_compass_reset: () => (/* binding */ sensor_compass_reset), -/* harmony export */ sensor_ds18x20: () => (/* binding */ sensor_ds18x20), -/* harmony export */ sensor_eulerangles: () => (/* binding */ sensor_eulerangles), -/* harmony export */ sensor_get_acceleration: () => (/* binding */ sensor_get_acceleration), -/* harmony export */ sensor_get_temperature: () => (/* binding */ sensor_get_temperature), -/* harmony export */ sensor_hp203: () => (/* binding */ sensor_hp203), -/* harmony export */ sensor_light: () => (/* binding */ sensor_light), -/* harmony export */ sensor_lm35: () => (/* binding */ sensor_lm35), -/* harmony export */ sensor_mixbot_get_gyro: () => (/* binding */ sensor_mixbot_get_gyro), -/* harmony export */ sensor_mixbot_patrol_calibrate: () => (/* binding */ sensor_mixbot_patrol_calibrate), -/* harmony export */ sensor_mixbot_patrol_value: () => (/* binding */ sensor_mixbot_patrol_value), -/* harmony export */ sensor_mixbot_temperature: () => (/* binding */ sensor_mixbot_temperature), -/* harmony export */ sensor_mixgo_LTR308: () => (/* binding */ sensor_mixgo_LTR308), -/* harmony export */ sensor_mixgo_button_attachInterrupt: () => (/* binding */ sensor_mixgo_button_attachInterrupt), -/* harmony export */ sensor_mixgo_button_get_presses: () => (/* binding */ sensor_mixgo_button_get_presses), -/* harmony export */ sensor_mixgo_button_is_pressed: () => (/* binding */ sensor_mixgo_button_is_pressed), -/* harmony export */ sensor_mixgo_button_was_pressed: () => (/* binding */ sensor_mixgo_button_was_pressed), -/* harmony export */ sensor_mixgo_cc_mmc5603_calibrate_compass: () => (/* binding */ sensor_mixgo_cc_mmc5603_calibrate_compass), -/* harmony export */ sensor_mixgo_cc_mmc5603_get_angle: () => (/* binding */ sensor_mixgo_cc_mmc5603_get_angle), -/* harmony export */ sensor_mixgo_cc_mmc5603_get_magnetic: () => (/* binding */ sensor_mixgo_cc_mmc5603_get_magnetic), -/* harmony export */ sensor_mixgo_light: () => (/* binding */ sensor_mixgo_light), -/* harmony export */ sensor_mixgo_nova_LTR308: () => (/* binding */ sensor_mixgo_nova_LTR308), -/* harmony export */ sensor_mixgo_nova_pin_near: () => (/* binding */ sensor_mixgo_nova_pin_near), -/* harmony export */ sensor_mixgo_pin_near: () => (/* binding */ sensor_mixgo_pin_near), -/* harmony export */ sensor_mixgo_pin_near_double: () => (/* binding */ sensor_mixgo_pin_near_double), -/* harmony export */ sensor_mixgo_pin_near_single: () => (/* binding */ sensor_mixgo_pin_near_single), -/* harmony export */ sensor_mixgo_pin_pressed: () => (/* binding */ sensor_mixgo_pin_pressed), -/* harmony export */ sensor_mixgo_sant_color: () => (/* binding */ sensor_mixgo_sant_color), -/* harmony export */ sensor_mixgo_touch_slide: () => (/* binding */ sensor_mixgo_touch_slide), -/* harmony export */ sensor_mixgocar42_button_attachInterrupt: () => (/* binding */ sensor_mixgocar42_button_attachInterrupt), -/* harmony export */ sensor_mixgocar42_button_get_presses: () => (/* binding */ sensor_mixgocar42_button_get_presses), -/* harmony export */ sensor_mixgocar42_button_is_pressed: () => (/* binding */ sensor_mixgocar42_button_is_pressed), -/* harmony export */ sensor_mixgocar42_button_was_pressed: () => (/* binding */ sensor_mixgocar42_button_was_pressed), -/* harmony export */ sensor_mixgocar_battery_left: () => (/* binding */ sensor_mixgocar_battery_left), -/* harmony export */ sensor_mixgocar_pin_near: () => (/* binding */ sensor_mixgocar_pin_near), -/* harmony export */ sensor_mixgocar_pin_near_line: () => (/* binding */ sensor_mixgocar_pin_near_line), -/* harmony export */ sensor_mixgocar_pin_near_state_change: () => (/* binding */ sensor_mixgocar_pin_near_state_change), -/* harmony export */ sensor_mixgoce_pin_pressed: () => (/* binding */ sensor_mixgoce_pin_pressed), -/* harmony export */ sensor_mixgoce_temperature: () => (/* binding */ sensor_mixgoce_temperature), -/* harmony export */ sensor_mixgome_temperature: () => (/* binding */ sensor_mixgome_temperature), -/* harmony export */ sensor_mpu9250_calibrate_compass: () => (/* binding */ sensor_mpu9250_calibrate_compass), -/* harmony export */ sensor_mpu9250_field_strength: () => (/* binding */ sensor_mpu9250_field_strength), -/* harmony export */ sensor_mpu9250_gesture: () => (/* binding */ sensor_mpu9250_gesture), -/* harmony export */ sensor_mpu9250_get_acceleration: () => (/* binding */ sensor_mpu9250_get_acceleration), -/* harmony export */ sensor_mpu9250_get_gyro: () => (/* binding */ sensor_mpu9250_get_gyro), -/* harmony export */ sensor_mpu9250_get_magnetic: () => (/* binding */ sensor_mpu9250_get_magnetic), -/* harmony export */ sensor_mpu9250_temperature: () => (/* binding */ sensor_mpu9250_temperature), -/* harmony export */ sensor_mpython_pin_pressed: () => (/* binding */ sensor_mpython_pin_pressed), -/* harmony export */ sensor_mpython_qmi8658_get_gyro: () => (/* binding */ sensor_mpython_qmi8658_get_gyro), -/* harmony export */ sensor_mpython_qmi8658_temperature: () => (/* binding */ sensor_mpython_qmi8658_temperature), -/* harmony export */ sensor_onboard_compass_reset: () => (/* binding */ sensor_onboard_compass_reset), -/* harmony export */ sensor_onboard_mpu9250_calibrate_compass: () => (/* binding */ sensor_onboard_mpu9250_calibrate_compass), -/* harmony export */ sensor_onboard_mpu9250_field_strength: () => (/* binding */ sensor_onboard_mpu9250_field_strength), -/* harmony export */ sensor_onboard_mpu9250_gesture: () => (/* binding */ sensor_onboard_mpu9250_gesture), -/* harmony export */ sensor_onboard_mpu9250_get_acceleration: () => (/* binding */ sensor_onboard_mpu9250_get_acceleration), -/* harmony export */ sensor_onboard_mpu9250_get_gyro: () => (/* binding */ sensor_onboard_mpu9250_get_gyro), -/* harmony export */ sensor_onboard_mpu9250_get_magnetic: () => (/* binding */ sensor_onboard_mpu9250_get_magnetic), -/* harmony export */ sensor_onboard_mpu9250_temperature: () => (/* binding */ sensor_onboard_mpu9250_temperature), -/* harmony export */ sensor_pin_near: () => (/* binding */ sensor_pin_near), -/* harmony export */ sensor_pin_pressed: () => (/* binding */ sensor_pin_pressed), -/* harmony export */ sensor_read: () => (/* binding */ sensor_read), -/* harmony export */ sensor_rm_acc: () => (/* binding */ sensor_rm_acc), -/* harmony export */ sensor_rm_battery_left: () => (/* binding */ sensor_rm_battery_left), -/* harmony export */ sensor_rm_pin_near_double: () => (/* binding */ sensor_rm_pin_near_double), -/* harmony export */ sensor_sound: () => (/* binding */ sensor_sound) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _sensor_extern_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sensor_extern.js */ "../micropython/generators/sensor_extern.js"); - - - -const sensor_mixgo_button_is_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var code = version + '.' + btn + '.is_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mixgo_button_was_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var code = version + '.' + btn + '.was_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_button_get_presses = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = version + '.' + btn + '.get_presses(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_button_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var dropdown_btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = version + '.' + dropdown_btn + '.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - return code; -} - -//ok -const sensor_mixgocar42_button_is_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var code = version + '.' + 'button.is_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mixgocar42_button_was_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var code = version + '.' + 'button.was_pressed()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgocar42_button_get_presses = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = version + '.' + 'button.get_presses(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgocar42_button_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = version + '.' + 'button.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - return code; -} - -const HCSR04 = function (_, generator) { - generator.definitions_['import_sonar'] = 'import sonar'; - var dropdown_pin1 = generator.valueToCode(this, "PIN1", generator.ORDER_ASSIGNMENT); - var dropdown_pin2 = generator.valueToCode(this, "PIN2", generator.ORDER_ASSIGNMENT); - var code = 'sonar.Sonar(' + dropdown_pin1 + ', ' + dropdown_pin2 + ').checkdist()'; - return [code, generator.ORDER_ATOMIC]; -} - -const number1 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number2 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number3 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number4 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number5 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number6 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const number7 = function (_, generator) { - var code = this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_near_single = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_als'] = "from " + version + " import onboard_als"; - var code = 'onboard_als.ps_nl()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_near_double = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var direction = this.getFieldValue('direction'); - var code = version + '.' + 'infrared_' + direction + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_near = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; - var code = 'onboard_als.ps()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_nova_pin_near = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var direction = this.getFieldValue('direction'); - generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction; - var code = 'onboard_als_' + direction + '.ps_nl()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_LTR308 = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; - var code = 'onboard_als.als()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_sant_color = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; - var code = 'onboard_als.color()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_nova_LTR308 = function (_, generator) { - var direction = this.getFieldValue('direction'); - generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction; - var code = 'onboard_als_' + direction + '.als_vis()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_ds18x20 = function (_, generator) { - generator.definitions_['import_ds18x20x'] = 'import ds18x20x'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'ds18x20x.get_ds18x20_temperature(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_lm35 = function (_, generator) { - generator.definitions_['import_lm35'] = 'import lm35'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'lm35.get_LM35_temperature(' + dropdown_pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_LTR308 = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo") { - generator.definitions_['import_mixgo'] = 'import mixgo'; - return ['mixgo.get_brightness()', generator.ORDER_ATOMIC]; - } else if (version == "mixgo_ce") { - generator.definitions_['import_mixgo_ce'] = 'import mixgo_ce'; - return ['mixgo_ce.get_brightness()', generator.ORDER_ATOMIC]; - } else if (version == "mpython") { - generator.definitions_['import_mpython_onboard_light'] = 'from mpython import onboard_light'; - return ['onboard_light.brightness()', generator.ORDER_ATOMIC]; - } - generator.definitions_['import_' + version + '_onboard_als'] = "from " + version + " import onboard_als"; - var code = 'onboard_als.als_vis()'; - return [code, generator.ORDER_ATOMIC]; - // else{return ['', generator.ORDER_ATOMIC];} -} - -const sensor_sound = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixbot') { - generator.definitions_['import_' + version + '_sound'] = 'from ' + version + ' import sound'; - var code = 'sound.loudness()'; - } else if (version == 'mixgo_zero') { - generator.definitions_['import_mixgo_zero_voice_sound_level'] = "from mixgo_zero_voice import sound_level"; - var code = 'sound_level()'; - } else if (version == 'mixgo_nova') { - generator.definitions_['import_mixgo_nova_voice_sound_level'] = "from mixgo_nova_voice import sound_level"; - var code = 'sound_level()'; - } else if (version == "mixgo") { - generator.definitions_['import_mixgo'] = 'import mixgo'; - return ['mixgo.get_soundlevel()', generator.ORDER_ATOMIC]; - } else if (version == "mpython") { - generator.definitions_['import_mpython_onboard_sound'] = 'from mpython import onboard_sound'; - return ['onboard_sound.soundlevel()', generator.ORDER_ATOMIC]; - } else if (version == "mixgo_mini") { - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.soundlevel()'; - } else { - generator.definitions_['import_' + version + '_onboard_sound'] = 'from ' + version + ' import onboard_sound'; - var code = 'onboard_sound.read()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -// export const sensor_mixgo_nova_sound = function (_, generator) { -// var version = Boards.getSelectedBoardKey().split(':')[2] -// return [code, generator.ORDER_ATOMIC]; -// } - -const sensor_hp203 = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var key = this.getFieldValue('key'); - if (version == "mixgo_mini") { - generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; - generator.definitions_['import_spl06_001'] = 'import spl06_001'; - generator.definitions_['import_onboard_bps'] = 'onboard_bps = spl06_001.SPL06(onboard_i2c)'; - } else { - generator.definitions_['import_' + version + '_onboard_bps'] = "from " + version + " import onboard_bps"; - } - var code = 'onboard_bps.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_aht11 = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var key = this.getFieldValue('key'); - if (version == 'mixgo_nova' || version == 'mixgo_zero') { - generator.definitions_['import_' + version + '_onboard_ths'] = "from " + version + " import onboard_ths"; - } else if (version == 'mixgo_mini') { - generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; - generator.definitions_['import_shtc3'] = 'import shtc3'; - generator.definitions_['import_onboard_ths'] = 'onboard_ths = shtc3.SHTC3(onboard_i2c)'; - } else { - generator.definitions_['import_' + version + '_onboard_ths'] = "from " + version + " import onboard_ths"; - } - var code = 'onboard_ths.' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_get_temperature = function (_, generator) { - generator.definitions_['import_feiyi_onboard_acc'] = 'from feiyi import onboard_acc'; - return ['onboard_acc.temperature()', generator.ORDER_ATOMIC]; -} - -const rfid_readid = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.read_card(0, x="id")'; - return [code, generator.ORDER_ATOMIC]; -} - -const rfid_readcontent = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.read_card(' + sector + ', x="content")'; - return [code, generator.ORDER_ATOMIC]; -} - -const rfid_write = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.write_card(' + cnt + ',' + sector + ')\n'; - return code; -} - -const rfid_write_return = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; - var code = 'onboard_rfid.write_card(' + cnt + ',' + sector + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_get_acceleration = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var key = this.getFieldValue('key'); - if (key == 'strength') { - if (version == 'mixbot') { - generator.definitions_['import_' + version + '_acc_gyr'] = 'from ' + version + ' import acc_gyr'; - var code = 'acc_gyr.strength()'; - } else { - generator.definitions_['import_' + version + '_onboard_acc'] = "from " + version + " import onboard_acc"; - var code = 'onboard_acc.strength()'; - } - return [code, generator.ORDER_ATOMIC]; - } - if (version == 'mixbot') { - generator.definitions_['import_' + version + '_acc_gyr'] = 'from ' + version + ' import acc_gyr'; - var code = 'acc_gyr.accelerometer()' + key; - } else if (version == 'mpython') { - generator.definitions_['import_mpython_motion'] = 'from mpython import motion'; - var code = 'motion.accelerometer()' + key; - } else { - generator.definitions_['import_' + version + '_onboard_acc'] = "from " + version + " import onboard_acc"; - var code = 'onboard_acc.acceleration()' + key; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_eulerangles = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_acc'] = "from " + version + " import onboard_acc"; - var angle = this.getFieldValue('angle'); - var code = 'onboard_acc.eulerangles()' + angle; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_gesture = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var gesture = this.getFieldValue('gesture'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_is_gesture("' + gesture + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const sensor_mpu9250_get_acceleration = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_get_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgoce_pin_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); - if ( true) { - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.touched(' + pin + ')'; - }else { var code; } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_touch_slide = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_mini'|| version == 'mixgo_sant') { - generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; - var code = 'onboard_bot.touch_slide()'; - } else { - generator.definitions_['import_' + version] = 'import ' + version; - var code = version + '.touch_slide(3,4)'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_pin_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version] = 'import ' + version; - var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); - var code = version + '.' + pin + '.is_touched()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpython_pin_pressed = function (_, generator) { - generator.definitions_['import_mpython'] = 'import mpython'; - var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); - var code = 'mpython.touch_' + pin + '.is_touched()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_adxl345_get_acceleration = function (_, generator) { - generator.definitions_['import_adxl345'] = 'import adxl345'; - // generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code; - if (key == 'x') { - code = v + '.readX()'; - } else if (key == 'y') { - code = v + '.readY()'; - } else if (key == 'z') { - code = v + '.readZ()'; - } else if (key == 'values') { - code = v + '.readXYZ()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_get_magnetic = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_magnetic_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_get_gyro = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - var code = v + '.mpu9250_gyro_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_calibrate_compass = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return '' + v + '.calibrate()\n'; -} - -const sensor_mpu9250_temperature = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "mpu") - generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu'; - return [v + '.mpu9250_get_temperature()', generator.ORDER_ATOMIC]; -} - -const sensor_mpu9250_field_strength = function (_, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - if (v == "compass") - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var compass = this.getFieldValue('compass'); - var a; - if (compass == 'strength') { - a = v + '.get_field_strength()'; - } else if (compass == 'heading') { - a = v + '.heading()'; - } - return [a, generator.ORDER_ATOMIC]; -} - -const sensor_compass_reset = function (block, generator) { - generator.definitions_['import_mpu9250'] = 'import mpu9250'; - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - return '' + v + '.reset_calibrate()\n'; -} - -const sensor_onboard_mpu9250_gesture = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var gesture = this.getFieldValue('gesture'); - generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu'; - var code = 'onboard_mpu.mpu9250_is_gesture("' + gesture + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_onboard_mpu9250_get_acceleration = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu'; - var code = 'onboard_mpu.mpu9250_get_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_onboard_mpu9250_get_magnetic = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu'; - var code = 'onboard_mpu.mpu9250_magnetic_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_onboard_mpu9250_get_gyro = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu'; - var code = 'onboard_mpu.mpu9250_gyro_' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_onboard_mpu9250_calibrate_compass = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass'; - return '' + 'onboard_compass.calibrate()\n'; -} - -const sensor_onboard_mpu9250_temperature = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu'; - return ['onboard_mpu.mpu9250_get_temperature()', generator.ORDER_ATOMIC]; -} - -const sensor_onboard_mpu9250_field_strength = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass'; - var compass = this.getFieldValue('compass'); - var a; - if (compass == 'strength') { - a = 'onboard_compass.get_field_strength()'; - } else if (compass == 'heading') { - a = 'onboard_compass.heading()'; - } - return [a, generator.ORDER_ATOMIC]; -} - -const sensor_onboard_compass_reset = function (block, generator) { - generator.definitions_['import_machine'] = 'import machine'; - generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass'; - return '' + 'onboard_compass.reset_calibrate()\n'; -} - -const onboard_RTC_set_datetime = function (_, generator) { - generator.definitions_['import_rtctime'] = "import rtctime"; - var year = generator.valueToCode(this, "year", generator.ORDER_ASSIGNMENT); - var month = generator.valueToCode(this, "month", generator.ORDER_ASSIGNMENT); - var day = generator.valueToCode(this, "day", generator.ORDER_ASSIGNMENT); - var hour = generator.valueToCode(this, "hour", generator.ORDER_ASSIGNMENT); - var minute = generator.valueToCode(this, "minute", generator.ORDER_ASSIGNMENT); - var second = generator.valueToCode(this, "second", generator.ORDER_ASSIGNMENT); - var code = 'rtctime.settime((' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + second + ',0,0))\n'; - return code; -} - -const onboard_RTC_settime_string = function (_, generator) { - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - generator.definitions_['import_rtctime'] = "import rtctime"; - var code = 'rtctime.settime(' + cnt + ')\n'; - return code; -} - -const onboard_RTC_get_time = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var code = 'time.localtime()'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_RTC_get_timestamp = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var time = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC); - var code = 'time.mktime(' + time + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_RTC_timestamp_totuple = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var ts = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = 'time.localtime(' + ts + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_RTC_get_time_str = function(_,generator){ - generator.definitions_['import_rtctime'] = 'import rtctime'; - var code = 'rtctime.strtime()'; - return [code, generator.ORDER_ATOMIC]; -} - -const onboard_RTC_get_timetuple_to_str = function(_,generator){ - generator.definitions_['import_rtctime'] = 'import rtctime'; - var ct = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - var code = 'rtctime.strtime('+ ct +')'; - return [code, generator.ORDER_ATOMIC]; -} - -//mixgo_cc onboard_sensor generators: - -const sensor_mixgo_cc_mmc5603_get_magnetic = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mpython') { - generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic'; - if (key == 'all') { - var code = 'magnetic.getstrength()'; - } else { - var code = 'magnetic.getdata()' + key; - } - } else if (version == 'mixgo_mini') { - generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; - generator.definitions_['import_mmc5603'] = 'import mmc5603'; - generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)'; - if (key == 'all') { - var code = 'onboard_mgs.getstrength()'; - } else { - var code = 'onboard_mgs.getdata()' + key; - } - } else { - generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs"; - if (key == 'all') { - var code = 'onboard_mgs.getstrength()'; - } else { - var code = 'onboard_mgs.getdata()' + key; - } - } - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mpython') { - generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic'; - var code = 'magnetic.getangle()'; - } else if (version == 'mixgo_mini') { - generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; - generator.definitions_['import_mmc5603'] = 'import mmc5603'; - generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)'; - } else { - generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs"; - } - var code = 'onboard_mgs.getangle()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgo_cc_mmc5603_calibrate_compass = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_mini') { - generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; - generator.definitions_['import_mmc5603'] = 'import mmc5603'; - generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)'; - } else { - generator.definitions_['import_' + version + '_onboard_mgs'] = "from " + version + " import onboard_mgs"; - } - var code = 'onboard_mgs.calibrate()\n'; - return code; -} - -//mixgo_me onboard_sensor generators: - -const sensor_mixgome_temperature = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_mini') { - generator.definitions_['import_mixgo_mini_onboard_temperature'] = 'from mixgo_mini import onboard_temperature'; - var code = 'onboard_temperature()'; - } else { - generator.definitions_['import_mixgo_me_onboard_acc'] = "from mixgo_me import onboard_acc"; - var code = 'onboard_acc.temperature()'; - } - return [code, generator.ORDER_ATOMIC]; -} - -//mixgo_ce onboard_sensor generators: -const sensor_mixgoce_temperature = function (_, generator) { - generator.definitions_['import_mixgo_ce'] = "import mixgo_ce"; - var code = 'mixgo_ce.get_temperature()'; - return [code, generator.ORDER_ATOMIC]; -} - -//mpython onboard_sensor: - -const sensor_mpython_qmi8658_get_gyro = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mpython_motion'] = 'from mpython import motion'; - var code = 'motion.gyroscope()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mpython_qmi8658_temperature = function (_, generator) { - generator.definitions_['import_mpython_motion'] = 'from mpython import motion'; - return ['motion.temperature()', generator.ORDER_ATOMIC]; -} - -const sensor_rm_pin_near_double = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - var direction = this.getFieldValue('direction'); - generator.definitions_['import_' + version + '_adc' + direction] = 'from ' + version + ' import adc' + direction; - var code = 'adc' + direction + '.read()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_rm_battery_left = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - if (version == 'feiyi') { - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var code = 'onboard_bot51.read_bat()'; - return [code, generator.ORDER_ATOMIC]; - } - generator.definitions_['import_' + version + '_battery'] = 'from ' + version + ' import battery'; - var code = 'battery.voltage()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_rm_acc = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_rm_e1_gyro'] = 'from rm_e1 import gyro'; - var code = 'gyro.acceleration()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -//car4.2 -const sensor_mixgocar_pin_near_line = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info'; - var code = 'onboard_info.patrol()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgocar_pin_near = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info'; - var code = 'onboard_info.obstacle()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixgocar_pin_near_state_change = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info'; - var code = 'onboard_info.ir_mode(onboard_info.' + key + ')\n'; - return code; -} - -const sensor_mixgocar_battery_left = function (_, generator) { - generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info'; - var code = 'onboard_info.read_bat()'; - return [code, generator.ORDER_ATOMIC]; -} - -//mixbot onboard_sensor below: - -const sensor_mixbot_patrol_calibrate = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol'; - var code = 'patrol.correct(patrol.CORRECTING_' + key + ')\n'; - return code; -} - -const sensor_mixbot_patrol_value = function (_, generator) { - var key = this.getFieldValue('key'); - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol'; - var code = 'patrol.getdata()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixbot_temperature = function (_, generator) { - generator.definitions_['import_mixbot_acc_gyr'] = "from mixbot import acc_gyr"; - var code = 'acc_gyr.temperature()'; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_mixbot_get_gyro = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mixbot_acc_gyr'] = "from mixbot import acc_gyr"; - var code = 'acc_gyr.gyroscope()' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_bitbot_ALS = function (_, generator) { - generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; - var mode = generator.valueToCode(this, 'mode', generator.ORDER_ATOMIC); - var code = 'onboard_bot51.' + 'read_als(' + mode + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const bitbot_als_num = function (_, generator) { - var code = this.getFieldValue('PIN'); - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_button_is_pressed = sensor_mixgo_button_is_pressed; -const sensor_button_was_pressed = sensor_mixgo_button_was_pressed; -const sensor_button_get_presses = sensor_mixgo_button_get_presses; -const sensor_pin_pressed = sensor_mixgo_pin_pressed; -const sensor_pin_near = sensor_mixgo_pin_near; -const sensor_mixgo_light = sensor_LTR308; -const sensor_light = sensor_mixgo_light; -const dht11 = _sensor_extern_js__WEBPACK_IMPORTED_MODULE_1__.sensor_dht11; - -//educore onboard_sensor -const educore_voice_sensor = function (_, generator) { - generator.definitions_['import_educore_sound'] = 'from educore import sound'; - var code = "sound()"; - return [code, generator.ORDER_ATOMIC]; -} - -const sensor_read = function (_, generator) { - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".read()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_light_sensor = function (_, generator) { - generator.definitions_['import_educore_light'] = 'from educore import light'; - var code = "light()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_gyroscope_sensor = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; - var code = "accelerometer()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_gyroscope_sensor_read = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub+"."+key+"()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_gyroscope_sensor_shake = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".shake()"; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_button_sensor = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button'; - var btn = this.getFieldValue('btn'); - var code = 'button(button.'+btn+')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_button_was_pressed = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub + '.status()'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_rfid_sensor = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; - var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'rfid(' + pin + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_rfid_sensor_scan = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.scanning()'; - return [code, generator.ORDER_ATOMIC]; -} - -const educore_rfid_sensor_scan_data = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; - var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = sub+'.'+key+'()'; - return [code, generator.ORDER_ATOMIC]; -} - -const CI130X_IDENTIFY_AND_SAVE_SANT = function(_,generator){ - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var code = 'onboard_asr.cmd_id()\n'; - return code; -} - -const CI130X_GET_WHETHER_IDENTIFY_SANT = function(_,generator){ - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var cmd = this.getFieldValue('cmd'); - var code = 'onboard_asr.result('+cmd+')'; - return [code,generator.ORDER_ATOMIC]; -} - -const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function(_,generator){ - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var key = this.getFieldValue('key'); - if(key == 'status1'){ - var code = 'onboard_asr.status()[0]'; - }else if(key == 'status2'){ - var code = 'onboard_asr.status()[1]'; - }else{ - var code = 'onboard_asr.'+key +'()'; - } - return [code,generator.ORDER_ATOMIC]; -} - -const CI130X_BROADCAST_SANT = function(_,generator){ - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var star = this.getFieldValue('star'); - var end = this.getFieldValue('end'); - var code = 'onboard_asr.play('+star+','+num+','+end+')\n'; - return code; -} - -const CI130X_SET_SYSTEM_CMD_SANT = function(_,generator){ - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; - var cmd = this.getFieldValue('cmd'); - var code = 'onboard_asr.sys_cmd('+cmd+')\n'; - return code; -} - -/***/ }), - -/***/ "../micropython/generators/serial.js": -/*!*******************************************!*\ - !*** ../micropython/generators/serial.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ serial_any: () => (/* binding */ serial_any), -/* harmony export */ serial_print: () => (/* binding */ serial_print), -/* harmony export */ serial_print_byte: () => (/* binding */ serial_print_byte), -/* harmony export */ serial_print_hex: () => (/* binding */ serial_print_hex), -/* harmony export */ serial_println: () => (/* binding */ serial_println), -/* harmony export */ serial_read_from_ai: () => (/* binding */ serial_read_from_ai), -/* harmony export */ serial_readline: () => (/* binding */ serial_readline), -/* harmony export */ serial_readstr: () => (/* binding */ serial_readstr), -/* harmony export */ serial_send_to_ai: () => (/* binding */ serial_send_to_ai), -/* harmony export */ serial_softserial: () => (/* binding */ serial_softserial), -/* harmony export */ serial_softserial_new: () => (/* binding */ serial_softserial_new), -/* harmony export */ system_input: () => (/* binding */ system_input), -/* harmony export */ system_print: () => (/* binding */ system_print), -/* harmony export */ system_print_end: () => (/* binding */ system_print_end), -/* harmony export */ system_print_inline: () => (/* binding */ system_print_inline), -/* harmony export */ system_print_many: () => (/* binding */ system_print_many) -/* harmony export */ }); -const serial_print = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""' - var code = "uart" + dropdown_uart + ".write(str(" + content + "))\n"; - return code; -} - -const serial_print_byte = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""' - var code = "uart" + dropdown_uart + ".write(" + content + ")\n"; - return code; -} - -const serial_println = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '""' - var code = "uart" + dropdown_uart + ".write(str(" + content + ")+'\\r\\n')\n"; - return code; -} - -const serial_print_hex = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var dropdown_stat = this.getFieldValue('STAT'); - var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0'; - var code = "uart" + dropdown_uart + ".write(str(" + dropdown_stat + "(" + content + "))+'\\r\\n')\n"; - return code; -} - -const serial_any = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var code = "uart" + dropdown_uart + ".any()"; - return [code, generator.ORDER_ATOMIC]; -} - -const serial_readstr = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var code = "uart" + dropdown_uart + ".read()"; - return [code, generator.ORDER_ATOMIC]; -} - -const serial_readline = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode'); - var code = "uart" + dropdown_uart + ".readline()"; - return [code, generator.ORDER_ATOMIC]; -} - -const serial_softserial = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_uart = this.getFieldValue('mode') - var baudrate = this.getFieldValue('baudrate'); - return "uart" + dropdown_uart + "=machine.UART(" + dropdown_uart + ", " + baudrate + ")\n"; -} - -const serial_softserial_new = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC); - var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC); - var dropdown_uart = this.getFieldValue('mode') - var baudrate = this.getFieldValue('baudrate'); - return "uart" + dropdown_uart + "=machine.UART(" + dropdown_uart + ", tx=" + tx + ", rx=" + rx + ", baudrate=" + baudrate + ")\n"; -} - -const system_input = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - return ['input(' + str + ')', generator.ORDER_ATOMIC]; -} - -const system_print = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var code = "print(" + str + ")\n"; - return code; -} - -const system_print_inline = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var code = "print(" + str + ',end ="")\n'; - return code; -} - -const system_print_end = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var end = generator.valueToCode(this, 'END', generator.ORDER_ATOMIC) || '""'; - var code = "print(" + str + ',end =' + end + ')\n'; - return code; -} - -const system_print_many = function (_, generator) { - var code = new Array(this.itemCount_); - var default_value = '0'; - - for (var n = 0; n < this.itemCount_; n++) { - - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - - var code = 'print(' + code.join(', ') + ')\n'; - return code; -} - -const serial_send_to_ai = function (_, generator) { - generator.definitions_['import_uart_com'] = 'import uart_com'; - var dropdown_uart = this.getFieldValue('mode'); - var dropdown_stat = this.getFieldValue('STAT'); - var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0'; - var code = "uart_com.send(uart" + dropdown_uart + ", " + content + ", repeat=" + dropdown_stat + ")\n"; - return code; -} - -const serial_read_from_ai = function (_, generator) { - generator.definitions_['import_uart_com'] = 'import uart_com'; - var dropdown_uart = this.getFieldValue('mode'); - var code = "uart_com.recv(uart" + dropdown_uart + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../micropython/generators/system.js": -/*!*******************************************!*\ - !*** ../micropython/generators/system.js ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Panic_with_status_code: () => (/* binding */ Panic_with_status_code), -/* harmony export */ Timer_init: () => (/* binding */ Timer_init), -/* harmony export */ base_delay: () => (/* binding */ base_delay), -/* harmony export */ controls_delay: () => (/* binding */ controls_delay), -/* harmony export */ controls_delay_new: () => (/* binding */ controls_delay_new), -/* harmony export */ controls_end_program: () => (/* binding */ controls_end_program), -/* harmony export */ controls_millis: () => (/* binding */ controls_millis), -/* harmony export */ controls_uname: () => (/* binding */ controls_uname), -/* harmony export */ reset: () => (/* binding */ reset), -/* harmony export */ system_bitbot_shutdown: () => (/* binding */ system_bitbot_shutdown), -/* harmony export */ system_device_name: () => (/* binding */ system_device_name), -/* harmony export */ system_device_serial_number: () => (/* binding */ system_device_serial_number), -/* harmony export */ system_event_bus_source: () => (/* binding */ system_event_bus_source), -/* harmony export */ system_event_bus_value: () => (/* binding */ system_event_bus_value), -/* harmony export */ system_machine_reset: () => (/* binding */ system_machine_reset), -/* harmony export */ system_on_event: () => (/* binding */ system_on_event), -/* harmony export */ system_raise_event: () => (/* binding */ system_raise_event), -/* harmony export */ system_reset: () => (/* binding */ system_reset), -/* harmony export */ system_run_in_background: () => (/* binding */ system_run_in_background), -/* harmony export */ system_ticks_diff: () => (/* binding */ system_ticks_diff), -/* harmony export */ system_timer: () => (/* binding */ system_timer), -/* harmony export */ system_timer_init: () => (/* binding */ system_timer_init), -/* harmony export */ system_timestamp: () => (/* binding */ system_timestamp), -/* harmony export */ system_value: () => (/* binding */ system_value), -/* harmony export */ system_wait: () => (/* binding */ system_wait), -/* harmony export */ system_wdt_feed: () => (/* binding */ system_wdt_feed), -/* harmony export */ system_wdt_init: () => (/* binding */ system_wdt_init), -/* harmony export */ time_ticks_diff: () => (/* binding */ time_ticks_diff), -/* harmony export */ timer: () => (/* binding */ timer), -/* harmony export */ timer2: () => (/* binding */ timer2) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const system_run_in_background = function (_, generator) { - var branch = generator.statementToCode(this, 'do'); - return 'control.inBackground(() => {\n' + branch + '})\n'; -} - -const system_reset = function () { - return 'control.reset()\n'; -} - -const system_wait = function (_, generator) { - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC) || mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.default.serial; - return 'control.waitMicros(' + data + ')\n'; -} - -const system_raise_event = function (_, generator) { - var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.default.serial; - var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.default.serial; - return 'control.raiseEvent(' + source + ', ' + value + ')\n'; -} - -const system_on_event = function (_, generator) { - var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.default.serial; - var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.default.serial; - var branch = generator.statementToCode(this, 'do'); - return 'control.onEvent(' + source + ', ' + value + ', () => {\n' + branch + ')\n'; -} - -const system_timestamp = function (_, generator) { - return ['control.eventTimestamp()', generator.ORDER_ATOMIC]; -} - -const system_value = function (_, generator) { - return ['control.eventValue()', generator.ORDER_ATOMIC]; -} - -const system_event_bus_source = function (_, generator) { - return [this.getFieldValue('key'), generator.ORDER_ATOMIC]; -} - -const system_event_bus_value = function (_, generator) { - return [this.getFieldValue('key'), generator.ORDER_ATOMIC]; -} - -const system_device_name = function (_, generator) { - return ['control.deviceName()', generator.ORDER_ATOMIC]; -} - -const system_device_serial_number = function (_, generator) { - return ['control.deviceSerialNumber()', generator.ORDER_ATOMIC]; -} - -//ok -const Panic_with_status_code = function (_, generator) { - var status_code = generator.valueToCode(this, 'STATUS_CODE', generator.ORDER_ATOMIC) || '1000' - var code = 'panic(' + status_code + ')\n'; - return code; -} - -//ok -const controls_millis = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var dropdown_time = this.getFieldValue('Time'); - switch (dropdown_time) { - case "ms": - var code = 'time.ticks_ms()'; - return [code, generator.ORDER_ATOMIC]; - case "us": - var code = 'time.ticks_us()'; - return [code, generator.ORDER_ATOMIC]; - } -} - -//ok -const controls_end_program = function () { - return 'while True:\n pass\n'; -} - -//ok -const reset = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - return 'reset()\n'; -} - -const controls_uname = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - return 'os.uname()'; -} - -const controls_delay = function (_, generator) { - // generator.definitions_.import_time = "import time"; - generator.definitions_['import_time'] = 'import time'; - var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000' - var dropdown_time = this.getFieldValue('Time'); - switch (dropdown_time) { - case "s": - var code = 'time.sleep(' + delay_time + ')\n'; - return code; - case "ms": - var code = 'time.sleep_ms(' + delay_time + ')\n'; - return code; - case "us": - var code = 'time.sleep_us(' + delay_time + ')\n'; - return code; - } -} - -const controls_delay_new = function (_, generator) { - // generator.definitions_.import_time = "import time"; - generator.definitions_['import_time'] = 'import time'; - var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000' - var dropdown_time = this.getFieldValue('Time'); - switch (dropdown_time) { - case "s": - var code = 'time.sleep(' + delay_time + ')\n'; - return code; - case "ms": - var code = 'time.sleep_ms(' + delay_time + ')\n'; - return code; - case "us": - var code = 'time.sleep_us(' + delay_time + ')\n'; - return code; - } -} - -const timer = function (_, generator) { - generator.definitions_['import_mixgo'] = 'import mixgo'; - var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None"; - var period = generator.valueToCode(this, "period", generator.ORDER_NONE) || "0"; - var mode = generator.valueToCode(this, "mode", generator.ORDER_NONE) || "None"; - var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None"; - // var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None"; - var code = v + ".init(period = " + period + ", mode = Timer." + mode + ", callback = " + callback + ")\n"; - return code; -} - -const system_timer = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None"; - var period = generator.valueToCode(this, "period", generator.ORDER_NONE) || "0"; - var mode = this.getFieldValue('mode'); - //var branch = generator.statementToCode(this, 'callback') || generator.PASS; - var callback = generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None"; - //var code = v + ".init(period = " + period + ", mode = machine.Timer." + mode + ", callback = " + v + "_callback_func)\n"; - //generator.setups_['timer_callback_func'] = 'def ' + v + '_callback_func(t):\n' + branch + '\n'; - var code = v + ".init(period = " + period + ", mode = machine.Timer." + mode + ", callback = " + callback + ")\n"; - return code; -} - -const system_ticks_diff = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var end = generator.valueToCode(this, "END", generator.ORDER_NONE) || "0"; - var start = generator.valueToCode(this, "START", generator.ORDER_NONE) || "0"; - var code = "time.ticks_diff(" + end + ", " + start + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const system_timer_init = function (_, generator) { - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - generator.definitions_['import_machine'] = 'import machine'; - var code = v + ' = machine.Timer(0)\n'; - return code; -} - -const system_wdt_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var period = generator.valueToCode(this, "period", generator.ORDER_NONE) || "0"; - var code = 'wdt = machine.WDT(timeout= ' + period + ')\n'; - return code; -} - -const system_wdt_feed = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var code = 'wdt.feed()\n'; - return code; -} - -const system_machine_reset = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var code = 'machine.reset()\n'; - return code; -} - -const system_bitbot_shutdown = function (_, generator) { - generator.definitions_['import_bitbot_onboard_bot51'] = 'from bitbot import onboard_bot51'; - var code = 'onboard_bot51.shutdown()\n'; - return code; -} - -const Timer_init = system_timer_init; -const timer2 = system_timer; -const time_ticks_diff = system_ticks_diff; -const base_delay = controls_delay; - -/***/ }), - -/***/ "../micropython/generators/weather.js": -/*!********************************************!*\ - !*** ../micropython/generators/weather.js ***! - \********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Air_daily_content: () => (/* binding */ Air_daily_content), -/* harmony export */ Air_now_content: () => (/* binding */ Air_now_content), -/* harmony export */ Geo_moon_content: () => (/* binding */ Geo_moon_content), -/* harmony export */ Geo_sun_content: () => (/* binding */ Geo_sun_content), -/* harmony export */ Life_suggestion_content: () => (/* binding */ Life_suggestion_content), -/* harmony export */ Location_search_content: () => (/* binding */ Location_search_content), -/* harmony export */ Tide_daily_content: () => (/* binding */ Tide_daily_content), -/* harmony export */ WEATHER_DAILY: () => (/* binding */ WEATHER_DAILY), -/* harmony export */ WEATHER_HOUR: () => (/* binding */ WEATHER_HOUR), -/* harmony export */ WEATHER_NOW: () => (/* binding */ WEATHER_NOW), -/* harmony export */ Weather_alarm_content: () => (/* binding */ Weather_alarm_content), -/* harmony export */ Weather_daily: () => (/* binding */ Weather_daily), -/* harmony export */ Weather_daily_content: () => (/* binding */ Weather_daily_content), -/* harmony export */ Weather_now: () => (/* binding */ Weather_now), -/* harmony export */ Weather_now_content: () => (/* binding */ Weather_now_content) -/* harmony export */ }); -const WEATHER_NOW = function (_, generator) { - generator.definitions_['import_seniverse_api'] = "import seniverse_api"; - var dropdown_mode = this.getFieldValue('mode'); - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var code = 'seniverse_api.' + dropdown_mode + '(' + key + ',' + addr + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const WEATHER_DAILY = function (_, generator) { - generator.definitions_['import_seniverse_api'] = "import seniverse_api"; - var dropdown_mode = this.getFieldValue('mode'); - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - var code = 'seniverse_api.' + dropdown_mode + '(' + key + ',' + addr + ',' + day + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const WEATHER_HOUR = function (_, generator) { - generator.definitions_['import_seniverse_api'] = "import seniverse_api"; - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var hour = generator.valueToCode(this, 'hour', generator.ORDER_ATOMIC); - var code = 'seniverse_api.weather_hourly(' + key + ',' + addr + ',' + hour + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const Weather_now = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var dropdown_mode = this.getFieldValue('mode'); - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var code = dropdown_mode + '.request(' + key + ',' + addr + ')\n'; - return code; -}; - -const Weather_now_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Weather_now.analysis()'; - } - else { - var code = 'Weather_now.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Air_now_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Air_now.analysis()'; - } - else { - var code = 'Air_now.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Weather_alarm_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Weather_alarm.analysis()'; - } - else { - var code = 'Weather_alarm.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Life_suggestion_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Life_suggestion.analysis()'; - } - else { - var code = 'Life_suggestion.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Tide_daily_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Tide_daily.analysis()'; - } - else { - var code = 'Tide_daily.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Location_search_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - if (content == 'none') { - var code = 'Location_search.analysis()'; - } - else { - var code = 'Location_search.analysis("' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Weather_daily = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var dropdown_mode = this.getFieldValue('mode'); - var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC); - var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - var code = dropdown_mode + '.request(' + key + ',' + addr + ',' + day + ')\n'; - return code; -}; - -const Weather_daily_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - if (content == 'none') { - var code = 'Weather_daily.analysis('+day+')'; - } - else { - var code = 'Weather_daily.analysis(' + day + ',"' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Air_daily_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - if (content == 'none') { - var code = 'Air_daily.analysis('+day+')'; - } - else { - var code = 'Air_daily.analysis(' + day + ',"' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Geo_sun_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - if (content == 'none') { - var code = 'Geo_sun.analysis('+day+')'; - } - else { - var code = 'Geo_sun.analysis(' + day + ',"' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -const Geo_moon_content = function (_, generator) { - generator.definitions_['import_seniverse_api*'] = "from seniverse_api import *"; - var content = this.getFieldValue('content'); - var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC); - if (content == 'none') { - var code = 'Geo_moon.analysis('+day+')'; - } - else { - var code = 'Geo_moon.analysis(' + day + ',"' + content + '")'; - } - return [code, generator.ORDER_ATOMIC]; -}; - -/***/ }), - -/***/ "./blocks/esp32_profile.js": -/*!*********************************!*\ - !*** ./blocks/esp32_profile.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const pins = {}; - -pins["MixGo MINI"] = { - description: "MicroPython[ESP32C3 MixGo MINI]", - digital_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18']), - input_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18']), - output_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18']), - pwm_input: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18'], 'pwm', 'pwm'), - analog_input: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4'], 'adc', 'adc'), - pwm_output: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18'], 'pwm', 'pwm'), - analog_output: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4'], 'adc', 'adc'), - espnow_channel: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['1-13']), - haskylens_model: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4']), - digital: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18'], 'pin', 'pin'), - pwm_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18']), - pwm: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-10', '18'], 'pwm', 'pwm'), - analog_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4']), - analog: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4'], 'adc', 'adc'), - button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]], - buttonB: [["B1", "B1key"], ["B2", "B2key"]], - axis: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4']), - exlcdh: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11']), - exlcdv: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-7']), - brightness: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-9']), - tts_voice: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-16']), - tts_builtin_music: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-47']), - tts_bgmusic: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-15']), - //builtinimg: [["HEART", "matrix.Image.HEART"],["HEART_SMALL", "matrix.Image.HEART_SMALL"],["HAPPY", "matrix.Image.HAPPY"],["SAD", "matrix.Image.SAD"],["SMILE", "matrix.Image.SMILE"],["SILLY", "matrix.Image.SILLY"],["FABULOUS", "matrix.Image.FABULOUS"],["SURPRISED", "matrix.Image.SURPRISED"],["ASLEEP", "matrix.Image.ASLEEP"],["ANGRY", "matrix.Image.ANGRY"],["CONFUSED", "matrix.Image.CONFUSED"],["NO", "matrix.Image.NO"],["YES", "matrix.Image.YES"],["LEFT_ARROW", "matrix.Image.LEFT_ARROW"],["RIGHT_ARROW", "matrix.Image.RIGHT_ARROW"],["DRESS", "matrix.Image.DRESS"],["TRANSFORMERS", "matrix.Image.TRANSFORMERS"],["SCISSORS", "matrix.Image.SCISSORS"],["EXIT", "matrix.Image.EXIT"],["TREE", "matrix.Image.TREE"],["PACMAN", "matrix.Image.PACMAN"],["TARGET", "matrix.Image.TARGET"],["TSHIRT", "matrix.Image.TSHIRT"],["ROLLERSKATE", "matrix.Image.ROLLERSKATE"],["DUCK", "matrix.Image.DUCK"],["HOUSE", "matrix.Image.HOUSE"],["TORTOISE", "matrix.Image.TORTOISE"],["BUTTERFLY", "matrix.Image.BUTTERFLY"],["STICKFIGURE", "matrix.Image.STICKFIGURE"],["GHOST", "matrix.Image.GHOST"],["PITCHFORK", "matrix.Image.PITCHFORK"],["MUSIC_QUAVERS", "matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER", "matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET", "matrix.Image.MUSIC_CROTCHET"],["COW", "matrix.Image.COW"],["RABBIT", "matrix.Image.RABBIT"],["SQUARE_SMALL", "matrix.Image.SQUARE_SMALL"],["SQUARE", "matrix.Image.SQUARE"],["DIAMOND_SMALL", "matrix.Image.DIAMOND_SMALL"],["DIAMOND", "matrix.Image.DIAMOND"],["CHESSBOARD", "matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT", "matrix.Image.TRIANGLE_LEFT"],["TRIANGLE", "matrix.Image.TRIANGLE"],["SNAKE", "matrix.Image.SNAKE"],["UMBRELLA", "matrix.Image.UMBRELLA"],["SKULL", "matrix.Image.SKULL"],["GIRAFFE", "matrix.Image.GIRAFFE"],["SWORD", "matrix.Image.SWORD"]], - builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["ANGRY", "onboard_matrix.ANGRY"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"], ["DOOR_OPEN", "onboard_matrix.DOOR_OPEN"], ["DOOR_OPENING", "onboard_matrix.DOOR_OPENING"], ["DOOR_CLOSE", "onboard_matrix.DOOR_CLOSE"]], - builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]], - imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]], - playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["BA_DING", "onboard_music.BA_DING"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]], - playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]], - 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"] - ], - serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]], - radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], - radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]], - one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]], - digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]] -}; - -pins["ESP32C2 Generic(2M)"] = { - description: "MicroPython[ESP32C3 MixGo CC]", - digital_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21']), - input_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21']), - output_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21']), - pwm_input: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'), - analog_input: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-5'], 'adc', 'adc'), - pwm_output: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'), - analog_output: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-5'], 'adc', 'adc'), - espnow_channel: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['1-13']), - haskylens_model: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4']), - digital: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21'], 'pin', 'pin'), - pwm_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21']), - pwm: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'), - analog_pin: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-5']), - analog: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-5'], 'adc', 'adc'), - button: [["B1", "B1key"], ["B2", "B2key"], ["A1", "A1key"], ["A2", "A2key"], ["A3", "A3key"], ["A4", "A4key"]], - buttonB: [["B1", "B1key"], ["B2", "B2key"]], - axis: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-4']), - exlcdh: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-31']), - exlcdv: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-11']), - brightness: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-9']), - tts_voice: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-16']), - tts_builtin_music: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-47']), - tts_bgmusic: mixly__WEBPACK_IMPORTED_MODULE_0__.Profile.generate(['0-15']), - //builtinimg: [["HEART", "matrix.Image.HEART"],["HEART_SMALL", "matrix.Image.HEART_SMALL"],["HAPPY", "matrix.Image.HAPPY"],["SAD", "matrix.Image.SAD"],["SMILE", "matrix.Image.SMILE"],["SILLY", "matrix.Image.SILLY"],["FABULOUS", "matrix.Image.FABULOUS"],["SURPRISED", "matrix.Image.SURPRISED"],["ASLEEP", "matrix.Image.ASLEEP"],["ANGRY", "matrix.Image.ANGRY"],["CONFUSED", "matrix.Image.CONFUSED"],["NO", "matrix.Image.NO"],["YES", "matrix.Image.YES"],["LEFT_ARROW", "matrix.Image.LEFT_ARROW"],["RIGHT_ARROW", "matrix.Image.RIGHT_ARROW"],["DRESS", "matrix.Image.DRESS"],["TRANSFORMERS", "matrix.Image.TRANSFORMERS"],["SCISSORS", "matrix.Image.SCISSORS"],["EXIT", "matrix.Image.EXIT"],["TREE", "matrix.Image.TREE"],["PACMAN", "matrix.Image.PACMAN"],["TARGET", "matrix.Image.TARGET"],["TSHIRT", "matrix.Image.TSHIRT"],["ROLLERSKATE", "matrix.Image.ROLLERSKATE"],["DUCK", "matrix.Image.DUCK"],["HOUSE", "matrix.Image.HOUSE"],["TORTOISE", "matrix.Image.TORTOISE"],["BUTTERFLY", "matrix.Image.BUTTERFLY"],["STICKFIGURE", "matrix.Image.STICKFIGURE"],["GHOST", "matrix.Image.GHOST"],["PITCHFORK", "matrix.Image.PITCHFORK"],["MUSIC_QUAVERS", "matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER", "matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET", "matrix.Image.MUSIC_CROTCHET"],["COW", "matrix.Image.COW"],["RABBIT", "matrix.Image.RABBIT"],["SQUARE_SMALL", "matrix.Image.SQUARE_SMALL"],["SQUARE", "matrix.Image.SQUARE"],["DIAMOND_SMALL", "matrix.Image.DIAMOND_SMALL"],["DIAMOND", "matrix.Image.DIAMOND"],["CHESSBOARD", "matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT", "matrix.Image.TRIANGLE_LEFT"],["TRIANGLE", "matrix.Image.TRIANGLE"],["SNAKE", "matrix.Image.SNAKE"],["UMBRELLA", "matrix.Image.UMBRELLA"],["SKULL", "matrix.Image.SKULL"],["GIRAFFE", "matrix.Image.GIRAFFE"],["SWORD", "matrix.Image.SWORD"]], - builtinimg: [["HEART", "onboard_matrix.HEART"], ["HEART_SMALL", "onboard_matrix.HEART_SMALL"], ["HAPPY", "onboard_matrix.HAPPY"], ["SAD", "onboard_matrix.SAD"], ["SMILE", "onboard_matrix.SMILE"], ["SILLY", "onboard_matrix.SILLY"], ["FABULOUS", "onboard_matrix.FABULOUS"], ["SURPRISED", "onboard_matrix.SURPRISED"], ["ASLEEP", "onboard_matrix.ASLEEP"], ["ANGRY", "onboard_matrix.ANGRY"], ["CONFUSED", "onboard_matrix.CONFUSED"], ["NO", "onboard_matrix.NO"], ["YES", "onboard_matrix.YES"]], - builtinimg_extern: [["HEART", "matrix32x12.Matrix.HEART"], ["HEART_SMALL", "matrix32x12.Matrix.HEART_SMALL"], ["HAPPY", "matrix32x12.Matrix.HAPPY"], ["SAD", "matrix32x12.Matrix.SAD"], ["SMILE", "matrix32x12.Matrix.SMILE"], ["SILLY", "matrix32x12.Matrix.SILLY"], ["FABULOUS", "matrix32x12.Matrix.FABULOUS"], ["SURPRISED", "matrix32x12.Matrix.SURPRISED"], ["ASLEEP", "matrix32x12.Matrix.ASLEEP"], ["ANGRY", "matrix32x12.Matrix.ANGRY"], ["CONFUSED", "matrix32x12.Matrix.CONFUSED"], ["NO", "matrix32x12.Matrix.NO"], ["YES", "matrix32x12.Matrix.YES"], ["LEFT_ARROW", "matrix32x12.Matrix.LEFT_ARROW"], ["RIGHT_ARROW", "matrix32x12.Matrix.RIGHT_ARROW"], ["DRESS", "matrix32x12.Matrix.DRESS"], ["TRANSFORMERS", "matrix32x12.Matrix.TRANSFORMERS"], ["SCISSORS", "matrix32x12.Matrix.SCISSORS"], ["EXIT", "matrix32x12.Matrix.EXIT"], ["TREE", "matrix32x12.Matrix.TREE"], ["PACMAN", "matrix32x12.Matrix.PACMAN"], ["TARGET", "matrix32x12.Matrix.TARGET"], ["TSHIRT", "matrix32x12.Matrix.TSHIRT"], ["ROLLERSKATE", "matrix32x12.Matrix.ROLLERSKATE"], ["DUCK", "matrix32x12.Matrix.DUCK"], ["HOUSE", "matrix32x12.Matrix.HOUSE"], ["TORTOISE", "matrix32x12.Matrix.TORTOISE"], ["BUTTERFLY", "matrix32x12.Matrix.BUTTERFLY"], ["STICKFIGURE", "matrix32x12.Matrix.STICKFIGURE"], ["GHOST", "matrix32x12.Matrix.GHOST"], ["PITCHFORK", "matrix32x12.Matrix.PITCHFORK"], ["onboard_music_QUAVERS", "matrix32x12.Matrix.onboard_music_QUAVERS"], ["onboard_music_QUAVER", "matrix32x12.Matrix.onboard_music_QUAVER"], ["onboard_music_CROTCHET", "matrix32x12.Matrix.onboard_music_CROTCHET"], ["COW", "matrix32x12.Matrix.COW"], ["RABBIT", "matrix32x12.Matrix.RABBIT"], ["SQUARE_SMALL", "matrix32x12.Matrix.SQUARE_SMALL"], ["SQUARE", "matrix32x12.Matrix.SQUARE"], ["DIAMOND_SMALL", "matrix32x12.Matrix.DIAMOND_SMALL"], ["DIAMOND", "matrix32x12.Matrix.DIAMOND"], ["CHESSBOARD", "matrix32x12.Matrix.CHESSBOARD"], ["TRIANGLE_LEFT", "matrix32x12.Matrix.TRIANGLE_LEFT"], ["TRIANGLE", "matrix32x12.Matrix.TRIANGLE"], ["SNAKE", "matrix32x12.Matrix.SNAKE"], ["UMBRELLA", "matrix32x12.Matrix.UMBRELLA"], ["SKULL", "matrix32x12.Matrix.SKULL"], ["GIRAFFE", "matrix32x12.Matrix.GIRAFFE"], ["SWORD", "matrix32x12.Matrix.SWORD"]], - imglist: [["ALL_CLOCKS", "matrix.Image.ALL_CLOCKS"], ["ALL_ARROWS", "matrix.Image.ALL_ARROWS"]], - playlist: [["DADADADUM", "onboard_music.DADADADUM"], ["ENTERTAINER", "onboard_music.ENTERTAINER"], ["PRELUDE", "onboard_music.PRELUDE"], ["ODE", "onboard_music.ODE"], ["NYAN", "onboard_music.NYAN"], ["RINGTONE", "onboard_music.RINGTONE"], ["FUNK", "onboard_music.FUNK"], ["BLUES", "onboard_music.BLUES"], ["BIRTHDAY", "onboard_music.BIRTHDAY"], ["WEDDING", "onboard_music.WEDDING"], ["FUNERAL", "onboard_music.FUNERAL"], ["PUNCHLINE", "onboard_music.PUNCHLINE"], ["PYTHON", "onboard_music.PYTHON"], ["BADDY", "onboard_music.BADDY"], ["CHASE", "onboard_music.CHASE"], ["BA_DING", "onboard_music.BA_DING"], ["WAWAWAWAA", "onboard_music.WAWAWAWAA"], ["JUMP_UP", "onboard_music.JUMP_UP"], ["JUMP_DOWN", "onboard_music.JUMP_DOWN"], ["POWER_UP", "onboard_music.POWER_UP"], ["POWER_DOWN", "onboard_music.POWER_DOWN"]], - playlist_extern: [["DADADADUM", "DADADADUM"], ["ENTERTAINER", "ENTERTAINER"], ["PRELUDE", "PRELUDE"], ["ODE", "ODE"], ["NYAN", "NYAN"], ["RINGTONE", "RINGTONE"], ["FUNK", "FUNK"], ["BLUES", "BLUES"], ["BIRTHDAY", "BIRTHDAY"], ["WEDDING", "WEDDING"], ["FUNERAL", "FUNERAL"], ["PUNCHLINE", "PUNCHLINE"], ["PYTHON", "PYTHON"], ["BADDY", "BADDY"], ["CHASE", "CHASE"], ["BA_DING", "BA_DING"], ["WAWAWAWAA", "WAWAWAWAA"], ["JUMP_UP", "JUMP_UP"], ["JUMP_DOWN", "JUMP_DOWN"], ["POWER_UP", "POWER_UP"], ["POWER_DOWN", "POWER_DOWN"]], - 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"] - ], - serial_pin: [["pin0", "0"], ["pin1", "1"], ["pin2", "2"], ["pin8", "8"], ["pin12", "12"], ["pin13", "13"], ["pin14", "14"], ["pin15", "15"], ["pin16", "16"]], - radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']], - radio_datarate: [["1Mbit", "RATE_1MBIT"], ["250Kbit", "RATE_250KBIT"], ["2Mbit", "RATE_2MBIT"]], - one_more: [["ONE_SHOT", "ONE_SHOT"], ["PERIODIC", "PERIODIC"]], - digital_dot: [["0", "0"], ["1", "1"], ["2", "2"]], -}; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (pins); - -/***/ }), - -/***/ "./blocks/inout.js": -/*!*************************!*\ - !*** ./blocks/inout.js ***! - \*************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ controls_pin_attachInterrupt: () => (/* binding */ controls_pin_attachInterrupt), -/* harmony export */ inout_analog_atten: () => (/* binding */ inout_analog_atten), -/* harmony export */ inout_analog_write: () => (/* binding */ inout_analog_write), -/* harmony export */ inout_analog_write_init: () => (/* binding */ inout_analog_write_init), -/* harmony export */ inout_analog_write_set: () => (/* binding */ inout_analog_write_set), -/* harmony export */ inout_analog_write_set_freq: () => (/* binding */ inout_analog_write_set_freq), -/* harmony export */ inout_digital_init: () => (/* binding */ inout_digital_init), -/* harmony export */ inout_digital_read: () => (/* binding */ inout_digital_read), -/* harmony export */ inout_digital_write: () => (/* binding */ inout_digital_write), -/* harmony export */ inout_highlow: () => (/* binding */ inout_highlow), -/* harmony export */ inout_pinMode: () => (/* binding */ inout_pinMode), -/* harmony export */ inout_pin_attachInterrupt: () => (/* binding */ inout_pin_attachInterrupt), -/* harmony export */ inout_pin_pressed: () => (/* binding */ inout_pin_pressed), -/* harmony export */ inout_pin_pressed_init: () => (/* binding */ inout_pin_pressed_init), -/* harmony export */ pin_pressed: () => (/* binding */ pin_pressed), -/* harmony export */ pin_pressed_init: () => (/* binding */ pin_pressed_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const BASE_HUE = 20; //'#ae3838';//40; - -const inout_highlow = { - init: function () { - this.setColour(BASE_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_HIGH, "HIGH"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LOW, "LOW"] - ]), 'BOOL') - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP); - } -}; - -const inout_digital_write = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("STAT") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck([Number, Boolean]); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP); - } -}; - -const inout_digital_read = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEIN) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MACHINE_VALUE) - this.setInputsInline(true); - this.setOutput(true, [Boolean, Number]); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP); - } -}; - -const inout_analog_write = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField("DAC" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_VALUE2) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP); - } -}; - -const inout_analog_write_set = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, "period"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, "period_microseconds"] - ]), "key"); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP); - } -}; - -const inout_analog_atten = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_REF_VOLTAGE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - ["3.3V", "machine.ADC.ATTN_11DB"], - ["2.2V", "machine.ADC.ATTN_6DB"], - ["1.5V", "machine.ADC.ATTN_2_5DB"], - ["1.2V", "machine.ADC.ATTN_0DB"] - ]), "atten"); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP); - } -}; - - -const inout_pin_pressed = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput('pin') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR); - // this.appendDummyInput() - // .appendField(Blockly.Msg.MIXLY_IS_TOUCHED); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MACHINE_VALUE) - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP); - } -}; - -const inout_pin_attachInterrupt = { - init: function () { - this.setColour(20); - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ATTACHINTERRUPT_PIN) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RISING, "machine.Pin.IRQ_RISING"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FALLING, "machine.Pin.IRQ_FALLING"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CHANGE, "(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"] - ]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP); - } -}; - -const inout_digital_init = { - init: function () { - this.setColour(20); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('pin#'), 'PIN_OBJ'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - // .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEOUT, "machine.Pin.OUT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Digital_PINMODEIN, "machine.Pin.IN"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEPULLUP, "machine.Pin.IN, machine.Pin.PULL_UP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PINMODEPULLDOWN, "machine.Pin.IN, machine.Pin.PULL_DOWN"] - ]), "MODE") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_analog_write_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('dac#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField("DAC" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('dac') - // .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_pin_pressed_init = { - init: function () { - this.setColour(BASE_HUE); - // this.appendValueInput("PIN", Number) - // .appendField(Blockly.Msg.MIXLY_SETUP) - // .appendField("PWM"+Blockly.Msg.MIXLY_Analog_PINMODEOUT) - // .appendField('pwm') - // .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('tc#'), 'PIN_OBJ') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_AS) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_TOUCH_SENSOR) - // .appendField('tc') - // .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),"PIN") - this.appendValueInput("PIN", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PIN) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) { - this.setTitleValue(newName, 'PIN_OBJ'); - } - } -}; - -const inout_analog_write_set_freq = { - init: function () { - this.setColour(BASE_HUE); - this.appendValueInput("PIN", Number) - .appendField("PWM" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Analog_PINMODEOUT) - .setCheck(Number); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_FREQUENCY + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT) - .setCheck(Number); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP); - } -}; - -const inout_pinMode = inout_digital_init; -const pin_pressed_init = inout_pin_pressed_init; -const pin_pressed = inout_pin_pressed; -const controls_pin_attachInterrupt = inout_pin_attachInterrupt; - - -/***/ }), - -/***/ "./blocks/me_go.js": -/*!*************************!*\ - !*** ./blocks/me_go.js ***! - \*************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ me_go_dc_motor: () => (/* binding */ me_go_dc_motor), -/* harmony export */ me_go_get_led_bright: () => (/* binding */ me_go_get_led_bright), -/* harmony export */ me_go_get_led_state: () => (/* binding */ me_go_get_led_state), -/* harmony export */ me_go_hall_attachInterrupt: () => (/* binding */ me_go_hall_attachInterrupt), -/* harmony export */ me_go_hall_data: () => (/* binding */ me_go_hall_data), -/* harmony export */ me_go_hall_initialize: () => (/* binding */ me_go_hall_initialize), -/* harmony export */ me_go_led_bright: () => (/* binding */ me_go_led_bright), -/* harmony export */ me_go_led_brightness: () => (/* binding */ me_go_led_brightness), -/* harmony export */ me_go_light_number: () => (/* binding */ me_go_light_number), -/* harmony export */ me_go_pin_light: () => (/* binding */ me_go_pin_light), -/* harmony export */ me_go_pin_near: () => (/* binding */ me_go_pin_near), -/* harmony export */ me_go_pin_near_line: () => (/* binding */ me_go_pin_near_line), -/* harmony export */ me_go_pin_near_state_change: () => (/* binding */ me_go_pin_near_state_change), -/* harmony export */ me_go_stepper_keep: () => (/* binding */ me_go_stepper_keep), -/* harmony export */ me_go_stepper_stop: () => (/* binding */ me_go_stepper_stop), -/* harmony export */ sensor_mixgome_eulerangles: () => (/* binding */ sensor_mixgome_eulerangles) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const MEGO_HUE = 100; - -// LED -const me_go_light_number = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_GREEN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "GLED[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.COLOUR_RGB_RED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EXTERN_LED, "RLED[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_LIGHT_HEADLIGHT, "WLED"] - ]), 'op') - this.setOutput(true); - } -}; - -const me_go_led_bright = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField('ME GO') - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_SETONOFF); - } -}; - -const me_go_get_led_bright = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField('ME GO') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const me_go_get_led_state = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendValueInput('led') - .appendField('ME GO') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PULSEIN_STAT) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_LED_GETONOFF); - } -}; - -const me_go_led_brightness = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING); - this.appendValueInput('led') - .appendField('ME GO') - this.appendValueInput('bright') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS) - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETTING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BUILDIN_LED + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BRIGHTNESS + '(0-10)'); - } -}; - -const me_go_stepper_keep = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_forward, "F"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_backward, "B"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_left, "L"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_right, "R"] - ]), "VAR"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const me_go_stepper_stop = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "VAR"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const me_go_dc_motor = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField("ME GO") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_DC) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_LEFT, "0"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLYCAR_WHEEL_RIGHT, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_MOTOR_EXTERN, "2"] - ]), "wheel"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_Direction) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_FORWARD, "CW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ROTATION_BACKWARD, "CCW"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_P, "P"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MOTOR_N, "N"] - ]), "direction"); - this.appendValueInput('speed') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEPPER_SET_SPEED); - this.appendDummyInput("") - .appendField("%") - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -} - -const me_go_hall_attachInterrupt = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_INTERRUPT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendValueInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const me_go_hall_initialize = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['turns', "turns"], ['distance', "distance"], ['turns,distance', 'all']]), "args"); - this.appendValueInput('num') - .setCheck(Number) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -}; - -const me_go_hall_data = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_HALL_SENSOR) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "A"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "B"]]), "mode"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([['turns', "turns"], ['distance', "distance"], ['speed', 'speed']]), "args"); - this.setOutput(true); - this.setInputsInline(true); - } -}; - -const me_go_pin_near_line = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_MID, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LINE_SENSOR_VAL); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const me_go_pin_near = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_FRONT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_FRONT, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_BACK, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_BACK, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_PROXIMITY_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_NEAR; - return mode0 + mode1 - }); - } -}; - -const me_go_pin_near_state_change = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, "AS"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, "LP"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, "OA"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY, "LS"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_SENSOR_MODE_OFF, "CL"] - ]), "key"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - } -}; - -const sensor_mixgome_eulerangles = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_GESTURE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH, '[0]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, '[1]'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_PITCH + ', ' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ME_GO_ROLL, ''] - ]), 'angle'); - // this.appendDummyInput("") - // .appendField(Blockly.Msg.BOARD_DIRECTION) - // .appendField(new Blockly.FieldDropdown([ - // [Blockly.Msg.OLED_VER,'True'], - // [Blockly.Msg.OLED_HOR,'False'], - // ]),'dir'); - this.appendDummyInput("") - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const me_go_pin_light = { - init: function () { - this.setColour(MEGO_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, "[0]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_LEFT_MID, "[1]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXGO_RIGHT_MID, "[2]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, "[3]"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ALL, ""] - ]), "key") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(function () { - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR; - return mode0 + mode1 - }); - } -}; - -/***/ }), - -/***/ "./blocks/mini_g2.js": -/*!***************************!*\ - !*** ./blocks/mini_g2.js ***! - \***************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ mini_g2_aht11: () => (/* binding */ mini_g2_aht11), -/* harmony export */ mini_g2_hp203: () => (/* binding */ mini_g2_hp203), -/* harmony export */ mini_g2_rfid_readcontent: () => (/* binding */ mini_g2_rfid_readcontent), -/* harmony export */ mini_g2_rfid_readid: () => (/* binding */ mini_g2_rfid_readid), -/* harmony export */ mini_g2_rfid_status: () => (/* binding */ mini_g2_rfid_status), -/* harmony export */ mini_g2_rfid_write: () => (/* binding */ mini_g2_rfid_write), -/* harmony export */ mini_g2_rfid_write_outcome: () => (/* binding */ mini_g2_rfid_write_outcome), -/* harmony export */ mini_g2_varistor: () => (/* binding */ mini_g2_varistor) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const MEG1_HUE = 40; - -const mini_g2_aht11 = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput("") - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEM_HUM + " AHT21") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETHUMIDITY, "humidity"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('key'); - var TOOLTIPS = { - "temperature": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP, - "relative_humidity": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP - }; - return TOOLTIPS[mode] - }); - } -}; - -const mini_g2_hp203 = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput("") - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_Altitude + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MSG.catSensor + " HP203X") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETPRESSURE, "pressure()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GETTEMPERATUE, "temperature()"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_ALTITUDE, "altitude()"], - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const mini_g2_varistor = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const mini_g2_rfid_readid = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD_UID); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const mini_g2_rfid_readcontent = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField("RFID" + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_READ_CARD); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -const mini_g2_rfid_write = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const mini_g2_rfid_write_outcome = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_RFID_WRITE); - this.appendValueInput('SECTOR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX) - this.appendValueInput('CONTENT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMMUNICATION_WRITE_NUM) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.RETURN_SUCCESS_OR_NOT) - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const mini_g2_rfid_status = { - init: function () { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - if (version == "mixgo_me") { var name = 'ME G1' } - this.setColour(MEG1_HUE); - this.appendDummyInput() - .appendField(name) - .appendField("RFID"); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_OK, "True"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_NOTAGERR, "None"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RFID_SCAN_ERROR, "False"] - ]), "key"); - this.setOutput(true, Number); - this.setInputsInline(true); - } -}; - -/***/ }), - -/***/ "./blocks/pins.js": -/*!************************!*\ - !*** ./blocks/pins.js ***! - \************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ analog_input: () => (/* binding */ analog_input), -/* harmony export */ analog_output: () => (/* binding */ analog_output), -/* harmony export */ espnow_channel: () => (/* binding */ espnow_channel), -/* harmony export */ haskylens_model: () => (/* binding */ haskylens_model), -/* harmony export */ i2c_A_pin: () => (/* binding */ i2c_A_pin), -/* harmony export */ i2c_B_pin: () => (/* binding */ i2c_B_pin), -/* harmony export */ pins_analog: () => (/* binding */ pins_analog), -/* harmony export */ pins_analog_pin: () => (/* binding */ pins_analog_pin), -/* harmony export */ pins_axis: () => (/* binding */ pins_axis), -/* harmony export */ pins_brightness: () => (/* binding */ pins_brightness), -/* harmony export */ pins_builtinimg: () => (/* binding */ pins_builtinimg), -/* harmony export */ pins_builtinimg_extern: () => (/* binding */ pins_builtinimg_extern), -/* harmony export */ pins_button: () => (/* binding */ pins_button), -/* harmony export */ pins_buttonB: () => (/* binding */ pins_buttonB), -/* harmony export */ pins_dac: () => (/* binding */ pins_dac), -/* harmony export */ pins_dac_pin: () => (/* binding */ pins_dac_pin), -/* harmony export */ pins_digital: () => (/* binding */ pins_digital), -/* harmony export */ pins_digital_dot: () => (/* binding */ pins_digital_dot), -/* harmony export */ pins_digital_pin: () => (/* binding */ pins_digital_pin), -/* harmony export */ pins_exlcdh: () => (/* binding */ pins_exlcdh), -/* harmony export */ pins_exlcdv: () => (/* binding */ pins_exlcdv), -/* harmony export */ pins_imglist: () => (/* binding */ pins_imglist), -/* harmony export */ pins_input_pin: () => (/* binding */ pins_input_pin), -/* harmony export */ pins_one_more: () => (/* binding */ pins_one_more), -/* harmony export */ pins_output_pin: () => (/* binding */ pins_output_pin), -/* harmony export */ pins_playlist: () => (/* binding */ pins_playlist), -/* harmony export */ pins_playlist_extern: () => (/* binding */ pins_playlist_extern), -/* harmony export */ pins_pwm: () => (/* binding */ pins_pwm), -/* harmony export */ pins_pwm_pin: () => (/* binding */ pins_pwm_pin), -/* harmony export */ pins_radio_datarate: () => (/* binding */ pins_radio_datarate), -/* harmony export */ pins_radio_power: () => (/* binding */ pins_radio_power), -/* harmony export */ pins_serial: () => (/* binding */ pins_serial), -/* harmony export */ pins_tone_notes: () => (/* binding */ pins_tone_notes), -/* harmony export */ pins_touch: () => (/* binding */ pins_touch), -/* harmony export */ pins_touch_pin: () => (/* binding */ pins_touch_pin), -/* harmony export */ pins_tts_bgmusic: () => (/* binding */ pins_tts_bgmusic), -/* harmony export */ pins_tts_builtin_music: () => (/* binding */ pins_tts_builtin_music), -/* harmony export */ pins_tts_voice: () => (/* binding */ pins_tts_voice), -/* harmony export */ pwm_input: () => (/* binding */ pwm_input), -/* harmony export */ pwm_output: () => (/* binding */ pwm_output), -/* harmony export */ spi_A_pin: () => (/* binding */ spi_A_pin), -/* harmony export */ spi_B_pin: () => (/* binding */ spi_B_pin), -/* harmony export */ spi_C_pin: () => (/* binding */ spi_C_pin), -/* harmony export */ spi_D_pin: () => (/* binding */ spi_D_pin) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const PINS_HUE = 230; - -const pins_digital = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital), 'PIN'); - this.setOutput(true); - } -}; - -const pins_digital_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_input_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.input_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_output_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.output_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const espnow_channel = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.espnow_channel), 'PIN'); - this.setOutput(true, Number); - } -}; - -const haskylens_model = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.haskylens_model), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pwm_input = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_input), 'PIN'); - this.setOutput(true); - } -}; - -const analog_input = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_input), 'PIN'); - this.setOutput(true); - } -}; - -const pwm_output = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_output), 'PIN'); - this.setOutput(true); - } -}; - -const analog_output = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_output), 'PIN'); - this.setOutput(true); - } -}; - -const i2c_A_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.i2c_A_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const i2c_B_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.i2c_B_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - - -const spi_A_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_A_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_B_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_B_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_C_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_C_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const spi_D_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.spi_D_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_analog = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog), 'PIN'); - this.setOutput(true); - } -}; - -const pins_analog_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.analog_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_dac = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.dac), 'PIN'); - this.setOutput(true); - } -}; - -const pins_dac_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.dac_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_button = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.button), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_buttonB = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.buttonB), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_pwm = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm), 'PIN'); - this.setOutput(true); - } -}; - -const pins_pwm_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.pwm_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_touch_pin = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.touch_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_touch = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.touch), 'PIN'); - this.setOutput(true); - } -}; - -const pins_serial = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.serial_pin), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_builtinimg = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.builtinimg), 'PIN'); - this.setOutput(true, "esp32_image"); - } -}; - -const pins_builtinimg_extern = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.builtinimg_extern), 'PIN'); - this.setOutput(true, "esp32_image"); - } -}; - -const pins_imglist = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.imglist), 'PIN'); - this.setOutput(true); - } -}; - -const pins_playlist = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.playlist), 'PIN'); - this.setOutput(true); - } -}; - -const pins_playlist_extern = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.playlist_extern), 'PIN'); - this.setOutput(true); - } -}; - -const pins_exlcdh = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.exlcdh), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_exlcdv = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.exlcdv), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_axis = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.axis), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_brightness = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.brightness), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_tts_voice = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.tts_voice), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_tts_builtin_music = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.tts_builtin_music), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_tts_bgmusic = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.tts_bgmusic), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_tone_notes = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.tone_notes), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_radio_power = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.radio_power), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_radio_datarate = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.radio_datarate), 'PIN'); - this.setOutput(true, Number); - } -}; - -const pins_one_more = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.one_more), 'PIN'); - this.setOutput(true); - } -}; - -const pins_digital_dot = { - init: function () { - this.setColour(PINS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default.digital_dot), 'PIN'); - this.setOutput(true, Number); - } -}; - -/***/ }), - -/***/ "./export.js": -/*!*******************!*\ - !*** ./export.js ***! - \*******************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ MicropythonESP32C2InoutBlocks: () => (/* reexport module object */ _blocks_inout__WEBPACK_IMPORTED_MODULE_1__), -/* harmony export */ MicropythonESP32C2InoutGenerators: () => (/* reexport module object */ _generators_inout__WEBPACK_IMPORTED_MODULE_5__), -/* harmony export */ MicropythonESP32C2MEGOBlocks: () => (/* reexport module object */ _blocks_me_go__WEBPACK_IMPORTED_MODULE_3__), -/* harmony export */ MicropythonESP32C2MEGOGenerators: () => (/* reexport module object */ _generators_me_go__WEBPACK_IMPORTED_MODULE_7__), -/* harmony export */ MicropythonESP32C2MiniG2Blocks: () => (/* reexport module object */ _blocks_mini_g2__WEBPACK_IMPORTED_MODULE_2__), -/* harmony export */ MicropythonESP32C2MiniG2Generators: () => (/* reexport module object */ _generators_mini_g2__WEBPACK_IMPORTED_MODULE_6__), -/* harmony export */ MicropythonESP32C2Pins: () => (/* reexport safe */ _blocks_esp32_profile__WEBPACK_IMPORTED_MODULE_0__["default"]), -/* harmony export */ MicropythonESP32C2PinsBlocks: () => (/* reexport module object */ _blocks_pins__WEBPACK_IMPORTED_MODULE_4__), -/* harmony export */ MicropythonESP32C2PinsGenerators: () => (/* reexport module object */ _generators_pins__WEBPACK_IMPORTED_MODULE_8__) -/* harmony export */ }); -/* harmony import */ var _blocks_esp32_profile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blocks/esp32_profile */ "./blocks/esp32_profile.js"); -/* harmony import */ var _blocks_inout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blocks/inout */ "./blocks/inout.js"); -/* harmony import */ var _blocks_mini_g2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blocks/mini_g2 */ "./blocks/mini_g2.js"); -/* harmony import */ var _blocks_me_go__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blocks/me_go */ "./blocks/me_go.js"); -/* harmony import */ var _blocks_pins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blocks/pins */ "./blocks/pins.js"); -/* harmony import */ var _generators_inout__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./generators/inout */ "./generators/inout.js"); -/* harmony import */ var _generators_mini_g2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./generators/mini_g2 */ "./generators/mini_g2.js"); -/* harmony import */ var _generators_me_go__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./generators/me_go */ "./generators/me_go.js"); -/* harmony import */ var _generators_pins__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./generators/pins */ "./generators/pins.js"); - - - - - - - - - - - - -/***/ }), - -/***/ "./generators/inout.js": -/*!*****************************!*\ - !*** ./generators/inout.js ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ inout_analog_atten: () => (/* binding */ inout_analog_atten), -/* harmony export */ inout_analog_write: () => (/* binding */ inout_analog_write), -/* harmony export */ inout_analog_write_init: () => (/* binding */ inout_analog_write_init), -/* harmony export */ inout_analog_write_set: () => (/* binding */ inout_analog_write_set), -/* harmony export */ inout_digital_init: () => (/* binding */ inout_digital_init), -/* harmony export */ inout_digital_read: () => (/* binding */ inout_digital_read), -/* harmony export */ inout_digital_write: () => (/* binding */ inout_digital_write), -/* harmony export */ inout_highlow: () => (/* binding */ inout_highlow), -/* harmony export */ inout_pin_attachInterrupt: () => (/* binding */ inout_pin_attachInterrupt), -/* harmony export */ inout_pin_pressed: () => (/* binding */ inout_pin_pressed), -/* harmony export */ inout_pin_pressed_init: () => (/* binding */ inout_pin_pressed_init) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -// ok -const inout_highlow = function (_, generator) { - // Boolean values HIGH and LOW. - var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const inout_digital_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC); - var code = ""; - code += dropdown_pin + '.value(' + dropdown_stat + ')\n' - return code; -} - -// ok -const inout_digital_read = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = ""; - code = dropdown_pin + '.value()'; - return [code, generator.ORDER_ATOMIC]; -} - -//ok -const inout_analog_write = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //var dropdown_stat = this.getFieldValue('STAT'); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);'; - var code = dropdown_pin + '.write(' + value_num + ')\n'; - return code; -} - -//ok -const inout_analog_write_set = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); - var key = this.getFieldValue('key'); - var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\n'; - //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\n'; - return code; -} - -//ok -const inout_pin_pressed = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC); - var code = pin + '.read()'; - return [code, generator.ORDER_ATOMIC]; -} - -const inout_pin_attachInterrupt = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('mode'); - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\n' - //var funcName = 'attachInterrupt_func_' + dropdown_pin; - //var branch = generator.statementToCode(this, 'DO') || generator.PASS; - //var code2 = 'def' + ' ' + funcName + '(p):\n' + branch + '\n'; - //generator.setups_[funcName] = code2; - return code; -} - -const inout_digital_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var dropdown_mode = this.getFieldValue('MODE'); - var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\n'; - return code; -} - -//ok -const inout_analog_write_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -const inout_analog_atten = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - //var dropdown_stat = this.getFieldValue('STAT'); - var value_atten = this.getFieldValue('atten') - var code = dropdown_pin + '.atten(' + value_atten + ')\n'; - return code; -} - -//ok -const inout_pin_pressed_init = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#'; - var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\n'; - return code; -} - -/***/ }), - -/***/ "./generators/me_go.js": -/*!*****************************!*\ - !*** ./generators/me_go.js ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ me_go_dc_motor: () => (/* binding */ me_go_dc_motor), -/* harmony export */ me_go_get_led_bright: () => (/* binding */ me_go_get_led_bright), -/* harmony export */ me_go_get_led_state: () => (/* binding */ me_go_get_led_state), -/* harmony export */ me_go_hall_attachInterrupt: () => (/* binding */ me_go_hall_attachInterrupt), -/* harmony export */ me_go_hall_data: () => (/* binding */ me_go_hall_data), -/* harmony export */ me_go_hall_initialize: () => (/* binding */ me_go_hall_initialize), -/* harmony export */ me_go_led_bright: () => (/* binding */ me_go_led_bright), -/* harmony export */ me_go_led_brightness: () => (/* binding */ me_go_led_brightness), -/* harmony export */ me_go_light_number: () => (/* binding */ me_go_light_number), -/* harmony export */ me_go_pin_light: () => (/* binding */ me_go_pin_light), -/* harmony export */ me_go_pin_near: () => (/* binding */ me_go_pin_near), -/* harmony export */ me_go_pin_near_line: () => (/* binding */ me_go_pin_near_line), -/* harmony export */ me_go_pin_near_state_change: () => (/* binding */ me_go_pin_near_state_change), -/* harmony export */ me_go_stepper_keep: () => (/* binding */ me_go_stepper_keep), -/* harmony export */ me_go_stepper_stop: () => (/* binding */ me_go_stepper_stop), -/* harmony export */ sensor_mixgome_eulerangles: () => (/* binding */ sensor_mixgome_eulerangles) -/* harmony export */ }); -const me_go_light_number = function (_, generator) { - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var code = 'car.' + this.getFieldValue('op'); - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_led_bright = function (_, generator) { - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "car.setonoff(" + op + "," + bright + ")\n"; - return code; -} - -const me_go_get_led_bright = function (_, generator) { - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var code = "car.getrightness(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_get_led_state = function (_, generator) { - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var code = "car.getonoff(" + op + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_led_brightness = function (_, generator) { - var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = "car.setbrightness(" + op + "," + flag + ")\n"; - return code; -} - -const me_go_stepper_keep = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT); - var code = 'car.move("' + v + '",' + speed + ")\n"; - return code; -} - -const me_go_stepper_stop = function (_, generator) { - var v = this.getFieldValue('VAR'); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var code = 'car.move("' + v + '")\n'; - return code; -} - -const me_go_dc_motor = function (_, generator) { - var wheel = this.getFieldValue('wheel'); - generator.definitions_['import_me_go_car'] = 'from me_go import car'; - var v = this.getFieldValue('direction'); - if (wheel == 0) { - if (v == 'CW') { v = 'CCW' } - else if (v == 'CCW') { v = 'CW' } - } - var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = "car.motor(car.MOTO[" + wheel + '],"' + v + '",' + speed + ")\n"; - return code; -} - -const me_go_hall_attachInterrupt = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC); - var code = 'hall_' + dropdown_mode + '.irq_cb(' + atta + ')\n' - return code; -} - -const me_go_hall_initialize = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - var args = this.getFieldValue('args'); - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC); - if (args == 'all') { - var code = 'hall_' + dropdown_mode + '.initial(' + 'turns' + '=' + num + ',distance=' + num + ')\n' - return code; - } - var code = 'hall_' + dropdown_mode + '.initial(' + args + '=' + num + ')\n' - return code; -} - -const me_go_hall_data = function (_, generator) { - var dropdown_mode = this.getFieldValue('mode'); - var args = this.getFieldValue('args'); - generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode; - var code = 'hall_' + dropdown_mode + '.' + args + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_pin_near_line = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - var code = 'car.patrol()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_pin_near = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - var code = 'car.obstacle()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_pin_near_state_change = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - var code = 'car.ir_mode(car.' + key + ')\n'; - return code; -} - -const sensor_mixgome_eulerangles = function (_, generator) { - generator.definitions_['import_mixgo_me_onboard_mxc6655xa'] = "from mixgo_me import onboard_mxc6655xa"; - var angle = this.getFieldValue('angle'); - var code = 'onboard_mxc6655xa.eulerangles(upright=True)' + angle; - return [code, generator.ORDER_ATOMIC]; -} - -const me_go_pin_light = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_me_go_hall'] = 'from me_go import car'; - var code = 'car.light()' + key + ''; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "./generators/mini_g2.js": -/*!*******************************!*\ - !*** ./generators/mini_g2.js ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ mini_g2_aht11: () => (/* binding */ mini_g2_aht11), -/* harmony export */ mini_g2_hp203: () => (/* binding */ mini_g2_hp203), -/* harmony export */ mini_g2_rfid_readcontent: () => (/* binding */ mini_g2_rfid_readcontent), -/* harmony export */ mini_g2_rfid_readid: () => (/* binding */ mini_g2_rfid_readid), -/* harmony export */ mini_g2_rfid_status: () => (/* binding */ mini_g2_rfid_status), -/* harmony export */ mini_g2_rfid_write: () => (/* binding */ mini_g2_rfid_write), -/* harmony export */ mini_g2_rfid_write_outcome: () => (/* binding */ mini_g2_rfid_write_outcome), -/* harmony export */ mini_g2_varistor: () => (/* binding */ mini_g2_varistor) -/* harmony export */ }); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_0__); - - -const mini_g2_aht11 = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_ahtx0.' + key + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_hp203 = function (_, generator) { - var key = this.getFieldValue('key'); - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_hp203x.' + key; - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_varistor = function (_, generator) { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.varistor()'; - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_rfid_readid = function (_, generator) { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - if (version == "mixgo_mini") { - generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; - var code = 'ext_rfid.read_card(0, x="id")'; - } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.read_card(0, x="id")'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_rfid_readcontent = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - if (version == "mixgo_mini") { - generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; - var code = 'ext_rfid.read_card(' + sector + ')'; - } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.read_card(' + sector + ')'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_rfid_write = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - if (version == "mixgo_mini") { - generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; - var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\n'; - } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\n'; - } - return code; -} - -const mini_g2_rfid_write_outcome = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); - var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - if (version == "mixgo_mini") { - generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; - var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')'; - } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const mini_g2_rfid_status = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_0__.Boards.getSelectedBoardKey().split(':')[2]; - var key = this.getFieldValue('key'); - if (version == "mixgo_mini") { - generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid'; - var code = 'ext_rfid.scan_card()==' + key; - } else { - generator.definitions_['import_mini_g2'] = 'import mini_g2'; - var code = 'mini_g2.ext_rc522.scan_card()==' + key; - } - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "./generators/pins.js": -/*!****************************!*\ - !*** ./generators/pins.js ***! - \****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ analog_input: () => (/* binding */ analog_input), -/* harmony export */ analog_output: () => (/* binding */ analog_output), -/* harmony export */ espnow_channel: () => (/* binding */ espnow_channel), -/* harmony export */ haskylens_model: () => (/* binding */ haskylens_model), -/* harmony export */ i2c_A_pin: () => (/* binding */ i2c_A_pin), -/* harmony export */ i2c_B_pin: () => (/* binding */ i2c_B_pin), -/* harmony export */ pins_analog: () => (/* binding */ pins_analog), -/* harmony export */ pins_analog_pin: () => (/* binding */ pins_analog_pin), -/* harmony export */ pins_axis: () => (/* binding */ pins_axis), -/* harmony export */ pins_brightness: () => (/* binding */ pins_brightness), -/* harmony export */ pins_builtinimg: () => (/* binding */ pins_builtinimg), -/* harmony export */ pins_builtinimg_extern: () => (/* binding */ pins_builtinimg_extern), -/* harmony export */ pins_button: () => (/* binding */ pins_button), -/* harmony export */ pins_buttonB: () => (/* binding */ pins_buttonB), -/* harmony export */ pins_dac: () => (/* binding */ pins_dac), -/* harmony export */ pins_dac_pin: () => (/* binding */ pins_dac_pin), -/* harmony export */ pins_digital: () => (/* binding */ pins_digital), -/* harmony export */ pins_digital_dot: () => (/* binding */ pins_digital_dot), -/* harmony export */ pins_digital_pin: () => (/* binding */ pins_digital_pin), -/* harmony export */ pins_exlcdh: () => (/* binding */ pins_exlcdh), -/* harmony export */ pins_exlcdv: () => (/* binding */ pins_exlcdv), -/* harmony export */ pins_imglist: () => (/* binding */ pins_imglist), -/* harmony export */ pins_input_pin: () => (/* binding */ pins_input_pin), -/* harmony export */ pins_interrupt: () => (/* binding */ pins_interrupt), -/* harmony export */ pins_one_more: () => (/* binding */ pins_one_more), -/* harmony export */ pins_output_pin: () => (/* binding */ pins_output_pin), -/* harmony export */ pins_playlist: () => (/* binding */ pins_playlist), -/* harmony export */ pins_playlist_extern: () => (/* binding */ pins_playlist_extern), -/* harmony export */ pins_pwm: () => (/* binding */ pins_pwm), -/* harmony export */ pins_pwm_input: () => (/* binding */ pins_pwm_input), -/* harmony export */ pins_pwm_pin: () => (/* binding */ pins_pwm_pin), -/* harmony export */ pins_radio_datarate: () => (/* binding */ pins_radio_datarate), -/* harmony export */ pins_radio_power: () => (/* binding */ pins_radio_power), -/* harmony export */ pins_serial: () => (/* binding */ pins_serial), -/* harmony export */ pins_tone_notes: () => (/* binding */ pins_tone_notes), -/* harmony export */ pins_touch: () => (/* binding */ pins_touch), -/* harmony export */ pins_touch_pin: () => (/* binding */ pins_touch_pin), -/* harmony export */ pins_tts_bgmusic: () => (/* binding */ pins_tts_bgmusic), -/* harmony export */ pins_tts_builtin_music: () => (/* binding */ pins_tts_builtin_music), -/* harmony export */ pins_tts_voice: () => (/* binding */ pins_tts_voice), -/* harmony export */ pwm_output: () => (/* binding */ pwm_output), -/* harmony export */ spi_A_pin: () => (/* binding */ spi_A_pin), -/* harmony export */ spi_B_pin: () => (/* binding */ spi_B_pin), -/* harmony export */ spi_C_pin: () => (/* binding */ spi_C_pin), -/* harmony export */ spi_D_pin: () => (/* binding */ spi_D_pin) -/* harmony export */ }); -const pins_digital = function (_, generator) { - var code = this.getFieldValue('PIN'); - return [code, generator.ORDER_ATOMIC]; -} - -const pins_button = pins_digital; -const pins_buttonB = pins_digital; -const pins_digital_pin = pins_digital; -const pins_input_pin = pins_digital; -const pins_output_pin = pins_digital; -const pins_pwm_input = pins_digital; -const espnow_channel = pins_digital; -const haskylens_model = pins_digital; -const analog_input = pins_digital; -const pwm_output = pins_digital; -const analog_output = pins_digital; -const i2c_A_pin = pins_digital; -const i2c_B_pin = pins_digital; -const spi_A_pin = pins_digital; -const spi_B_pin = pins_digital; -const spi_C_pin = pins_digital; -const spi_D_pin = pins_digital; -const pins_analog_pin = pins_digital; -const pins_analog = pins_digital; -const pins_pwm_pin = pins_digital; -const pins_pwm = pins_digital; -const pins_dac_pin = pins_digital; -const pins_dac = pins_digital; -const pins_touch_pin = pins_digital; -const pins_touch = pins_digital; -const pins_interrupt = pins_digital; -const pins_serial = pins_digital; -const pins_builtinimg = pins_digital; -const pins_builtinimg_extern = pins_digital; -const pins_imglist = pins_digital; -const pins_playlist = pins_digital; -const pins_playlist_extern = pins_digital; -const pins_axis = pins_digital; -const pins_exlcdh = pins_digital; -const pins_exlcdv = pins_digital; -const pins_brightness = pins_digital; -const pins_tts_voice = pins_digital; -const pins_tts_builtin_music = pins_digital; -const pins_tts_bgmusic = pins_digital; -const pins_tone_notes = pins_digital; -const pins_radio_power = pins_digital; -const pins_radio_datarate = pins_digital; -const pins_one_more = pins_digital; -const pins_digital_dot = pins_digital; - -/***/ }), - -/***/ "../python/blocks/control.js": -/*!***********************************!*\ - !*** ../python/blocks/control.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ base_setup: () => (/* binding */ base_setup), -/* harmony export */ controls_delay: () => (/* binding */ controls_delay), -/* harmony export */ controls_end_program: () => (/* binding */ controls_end_program), -/* harmony export */ controls_except: () => (/* binding */ controls_except), -/* harmony export */ controls_finally: () => (/* binding */ controls_finally), -/* harmony export */ controls_flow_statements: () => (/* binding */ controls_flow_statements), -/* harmony export */ controls_for: () => (/* binding */ controls_for), -/* harmony export */ controls_forEach: () => (/* binding */ controls_forEach), -/* harmony export */ controls_for_range: () => (/* binding */ controls_for_range), -/* harmony export */ controls_if: () => (/* binding */ controls_if), -/* harmony export */ controls_if_else: () => (/* binding */ controls_if_else), -/* harmony export */ controls_if_elseif: () => (/* binding */ controls_if_elseif), -/* harmony export */ controls_if_if: () => (/* binding */ controls_if_if), -/* harmony export */ controls_lambda: () => (/* binding */ controls_lambda), -/* harmony export */ controls_main: () => (/* binding */ controls_main), -/* harmony export */ controls_pass: () => (/* binding */ controls_pass), -/* harmony export */ controls_range: () => (/* binding */ controls_range), -/* harmony export */ controls_repeat_ext: () => (/* binding */ controls_repeat_ext), -/* harmony export */ controls_thread: () => (/* binding */ controls_thread), -/* harmony export */ controls_try: () => (/* binding */ controls_try), -/* harmony export */ controls_try_finally: () => (/* binding */ controls_try_finally), -/* harmony export */ controls_whileUntil: () => (/* binding */ controls_whileUntil), -/* harmony export */ datetime_fromtimestamp: () => (/* binding */ datetime_fromtimestamp), -/* harmony export */ do_while: () => (/* binding */ do_while), -/* harmony export */ garbage_collection: () => (/* binding */ garbage_collection), -/* harmony export */ gene_unique_identifier: () => (/* binding */ gene_unique_identifier), -/* harmony export */ get_mem_alloc: () => (/* binding */ get_mem_alloc), -/* harmony export */ get_mem_free: () => (/* binding */ get_mem_free), -/* harmony export */ get_unique_identifier: () => (/* binding */ get_unique_identifier) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const LOOPS_HUE = 120; - -const controls_main = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_NAME_MAIN); - this.appendStatementInput('DO') - .appendField(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_SETUP); - } -}; - -const base_setup = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP); - this.appendStatementInput('DO') - .appendField(''); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_SETUP); - } -}; - -const controls_delay = { - init: function () { - var UNIT = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_mSecond, 'delay'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_uSecond, 'delayMicroseconds'] - ]; - this.setColour(LOOPS_HUE); - this.appendValueInput("DELAY_TIME", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DELAY) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(UNIT), 'UNIT') - .setCheck(Number); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONTROL_DELAY); - this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id9"); - this.wiki = { - 'zh-hans': { - page: ['Arduino AVR', '控制', '延时'] - } - }; - } -}; - -const controls_end_program = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONTROL_END_PROGRAM); - this.setPreviousStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_CONTROL_END_TOOLTIP); - } -}; - -const controls_if = { - /** - * Block for if/elseif/else condition. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL); - this.setColour(LOOPS_HUE); - this.appendValueInput('IF0') - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_IF); - this.appendStatementInput('DO0') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_THEN); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setHelpUrl("https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#if"); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['controls_if_elseif', - 'controls_if_else'], this)); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - if (!thisBlock.elseifCount_ && !thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_1; - } else if (!thisBlock.elseifCount_ && thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_2; - } else if (thisBlock.elseifCount_ && !thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_3; - } else if (thisBlock.elseifCount_ && thisBlock.elseCount_) { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_TOOLTIP_4; - } - return ''; - }); - this.elseifCount_ = 0; - this.elseCount_ = 0; - }, - /** - * Create XML to represent the number of else-if and else inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - if (!this.elseifCount_ && !this.elseCount_) { - return null; - } - var container = document.createElement('mutation'); - if (this.elseifCount_) { - container.setAttribute('elseif', this.elseifCount_); - } - if (this.elseCount_) { - container.setAttribute('else', 1); - } - return container; - }, - /** - * Parse XML to restore the else-if and else inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var containerBlock = this; - var valueConnections = []; - var statementConnections = []; - // var elseStatementConnection = null; - if (this.elseCount_) { - // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection) - // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection; - this.removeInput('ELSE'); - } - for (var i = this.elseifCount_; i > 0; i--) { - if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection) - valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection); - else - valueConnections[i] = null; - this.removeInput('IF' + i); - if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection) - statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection); - else - statementConnections[i] = null; - this.removeInput('DO' + i); - } - this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10); - this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10); - //this.compose(containerBlock); - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_ELSEIF); - this.appendStatementInput('DO' + i) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_THEN); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_MSG_ELSE); - } - for (var i = valueConnections.length - 2; i > 0; i--) { - if (valueConnections[i]) - valueConnections[i].reconnect(this, 'IF' + i); - } - for (var i = statementConnections.length - 2; i > 0; i--) { - if (statementConnections[i]) - statementConnections[i].reconnect(this, 'DO' + i); - } - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = workspace.newBlock('controls_if_if'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 1; i <= this.elseifCount_; i++) { - var elseifBlock = workspace.newBlock('controls_if_elseif'); - elseifBlock.initSvg(); - connection.connect(elseifBlock.previousConnection); - connection = elseifBlock.nextConnection; - } - if (this.elseCount_) { - var elseBlock = workspace.newBlock('controls_if_else'); - elseBlock.initSvg(); - connection.connect(elseBlock.previousConnection); - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - // Disconnect the else input blocks and remove the inputs. - if (this.elseCount_) { - this.removeInput('ELSE'); - } - this.elseCount_ = 0; - // Disconnect all the elseif input blocks and remove the inputs. - for (var i = this.elseifCount_; i > 0; i--) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - } - this.elseifCount_ = 0; - // Rebuild the block's optional inputs. - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_if_elseif': - this.elseifCount_++; - valueConnections.push(clauseBlock.valueConnection_); - statementConnections.push(clauseBlock.statementConnection_); - break; - case 'controls_if_else': - this.elseCount_++; - elseStatementConnection = clauseBlock.statementConnection_; - break; - default: - throw Error('Unknown block type: ' + clauseBlock.type); - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - - this.updateShape_(); - // Reconnect any child blocks. - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 1; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_if_elseif': - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - clauseBlock.valueConnection_ = - inputIf && inputIf.connection.targetConnection; - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - i++; - break; - case 'controls_if_else': - var inputDo = this.getInput('ELSE'); - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - break; - default: - throw 'Unknown block type.'; - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - }, - /** - * Reconstructs the block with all child blocks attached. - */ - rebuildShape_: function () { - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - - if (this.getInput('ELSE')) { - elseStatementConnection = this.getInput('ELSE').connection.targetConnection; - } - var i = 1; - while (this.getInput('IF' + i)) { - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - console.log(inputIf.connection.targetConnection); - valueConnections.push(inputIf.connection.targetConnection); - statementConnections.push(inputDo.connection.targetConnection); - i++; - } - this.updateShape_(); - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - }, - /** - * Modify this block to have the correct number of inputs. - * @this Blockly.Block - * @private - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('ELSE')) { - this.removeInput('ELSE'); - } - var i = 1; - while (this.getInput('IF' + i)) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - i++; - } - // Rebuild block. - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Number, Boolean]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_ELSEIF']); - this.appendStatementInput('DO' + i) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_THEN']); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_ELSE']); - } - }, - /** - * Reconnects child blocks. - * @param {!Array} valueConnections List of value - * connectsions for if input. - * @param {!Array} statementConnections List of - * statement connections for do input. - * @param {?Blockly.RenderedConnection} elseStatementConnection Statement - * connection for else input. - */ - reconnectChildBlocks_: function (valueConnections, statementConnections, - elseStatementConnection) { - for (var i = 1; i <= this.elseifCount_; i++) { - valueConnections[i] && valueConnections[i].reconnect(this, 'IF' + i); - statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i); - } - elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE'); - } -}; - - -const controls_range = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('FROM') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_RANGE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_FROM); - this.appendValueInput('TO') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_TO); - this.appendValueInput('STEP') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_RANGE_STEP); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP); - } -}; - - -const controls_forEach = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('LIST') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOREACH_INPUT); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOREACH_INPUT_ITEM) - // .appendField(new Blockly.FieldTextInput('i'), 'VAR'); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(function () { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_TOOLTIP.replace('“%1”', ''); - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const controls_whileUntil = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('BOOL') - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_CURRENT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this.OPERATORS), 'MODE') - // this.appendDummyInput() - // .appendField(Blockly.Msg.CONTROLS_WHILE_SHI); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('MODE'); - var TOOLTIPS = { - 'WHILE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE, - 'UNTIL': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL - }; - return TOOLTIPS[op]; - }); - } -}; - -const controls_try_finally = { - /** - * Block for if/elseif/else condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TRY); - this.appendStatementInput('try'); - this.appendValueInput('IF1') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_EXCEPT); - this.appendStatementInput('DO1') - .appendField(''); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['controls_except', 'controls_finally'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP); - this.elseifCount_ = 1; - this.elseCount_ = 0; - }, - /** - * Create XML to represent the number of else-if and else inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - if (!this.elseifCount_ && !this.elseCount_) { - return null; - } - var container = document.createElement('mutation'); - if (this.elseifCount_) { - container.setAttribute('elseif', this.elseifCount_); - } - if (this.elseCount_) { - container.setAttribute('else', 1); - } - return container; - }, - /** - * Parse XML to restore the else-if and else inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var containerBlock = this; - var valueConnections = []; - var statementConnections = []; - // var elseStatementConnection = null; - if (this.elseCount_) { - // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection) - // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection; - this.removeInput('ELSE'); - } - for (var i = this.elseifCount_; i > 0; i--) { - if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection) - valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection); - else - valueConnections[i] = null; - this.removeInput('IF' + i); - if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection) - statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection); - else - statementConnections[i] = null; - this.removeInput('DO' + i); - } - this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10); - this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10); - //this.compose(containerBlock); - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Boolean, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_EXCEPT); - this.appendStatementInput('DO' + i) - .appendField(""); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_FINALLY); - } - for (var i = valueConnections.length - 2; i > 0; i--) { - if (valueConnections[i]) - valueConnections[i].reconnect(this, 'IF' + i); - } - for (var i = statementConnections.length - 2; i > 0; i--) { - if (statementConnections[i]) - statementConnections[i].reconnect(this, 'DO' + i); - } - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = workspace.newBlock('controls_try'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 1; i <= this.elseifCount_; i++) { - var elseifBlock = workspace.newBlock('controls_except'); - elseifBlock.initSvg(); - connection.connect(elseifBlock.previousConnection); - connection = elseifBlock.nextConnection; - } - if (this.elseCount_) { - var elseBlock = workspace.newBlock('controls_finally'); - elseBlock.initSvg(); - connection.connect(elseBlock.previousConnection); - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - // Disconnect the else input blocks and remove the inputs. - if (this.elseCount_) { - this.removeInput('ELSE'); - } - this.elseCount_ = 0; - // Disconnect all the elseif input blocks and remove the inputs. - for (var i = this.elseifCount_; i > 0; i--) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - } - this.elseifCount_ = 0; - // Rebuild the block's optional inputs. - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_except': - this.elseifCount_++; - valueConnections.push(clauseBlock.valueConnection_); - statementConnections.push(clauseBlock.statementConnection_); - break; - case 'controls_finally': - this.elseCount_++; - elseStatementConnection = clauseBlock.statementConnection_; - break; - default: - throw Error('Unknown block type: ' + clauseBlock.type); - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - - this.updateShape_(); - // Reconnect any child blocks. - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var clauseBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 1; - while (clauseBlock) { - switch (clauseBlock.type) { - case 'controls_except': - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - clauseBlock.valueConnection_ = - inputIf && inputIf.connection.targetConnection; - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - i++; - break; - case 'controls_finally': - var inputDo = this.getInput('ELSE'); - clauseBlock.statementConnection_ = - inputDo && inputDo.connection.targetConnection; - break; - default: - throw 'Unknown block type.'; - } - clauseBlock = clauseBlock.nextConnection && - clauseBlock.nextConnection.targetBlock(); - } - }, - /** - * Reconstructs the block with all child blocks attached. - */ - rebuildShape_: function () { - var valueConnections = [null]; - var statementConnections = [null]; - var elseStatementConnection = null; - - if (this.getInput('ELSE')) { - elseStatementConnection = this.getInput('ELSE').connection.targetConnection; - } - var i = 1; - while (this.getInput('IF' + i)) { - var inputIf = this.getInput('IF' + i); - var inputDo = this.getInput('DO' + i); - console.log(inputIf.connection.targetConnection); - valueConnections.push(inputIf.connection.targetConnection); - statementConnections.push(inputDo.connection.targetConnection); - i++; - } - this.updateShape_(); - this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection); - }, - /** - * Modify this block to have the correct number of inputs. - * @this Blockly.Block - * @private - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('ELSE')) { - this.removeInput('ELSE'); - } - var i = 1; - while (this.getInput('IF' + i)) { - this.removeInput('IF' + i); - this.removeInput('DO' + i); - i++; - } - // Rebuild block. - for (var i = 1; i <= this.elseifCount_; i++) { - this.appendValueInput('IF' + i) - .setCheck([Number, Boolean]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_EXCEPT); - this.appendStatementInput('DO' + i) - .appendField(''); - } - if (this.elseCount_) { - this.appendStatementInput('ELSE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_FINALLY); - } - }, - /** - * Reconnects child blocks. - * @param {!Array} valueConnections List of value - * connectsions for if input. - * @param {!Array} statementConnections List of - * statement connections for do input. - * @param {?Blockly.RenderedConnection} elseStatementConnection Statement - * connection for else input. - */ - reconnectChildBlocks_: function (valueConnections, statementConnections, - elseStatementConnection) { - for (var i = 1; i <= this.elseifCount_; i++) { - valueConnections[i] && valueConnections[i].reconnect(this, 'IF' + i); - statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i); - } - elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE'); - } -}; - -const controls_flow_statements = { - init: function () { - this.setColour(LOOPS_HUE); - var dropdown = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this.OPERATORS); - this.appendDummyInput() - .appendField(dropdown, 'FLOW') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP); - this.setPreviousStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP); - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('FLOW'); - var TOOLTIPS = { - 'BREAK': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK, - 'CONTINUE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE - }; - return TOOLTIPS[op]; - }); - }, - onchange: function () { - if (!this.workspace) { - // Block has been deleted. - return; - } - var legal = false; - // Is the block nested in a control statement? - var block = this; - do { - if (block.type == 'controls_repeat' || - block.type == 'controls_for' || - block.type == 'controls_forEach' || - block.type == 'controls_repeat_ext' || - block.type == 'controls_whileUntil' || - block.type == 'do_while') { - legal = true; - break; - } - block = block.getSurroundParent(); - } while (block); - if (legal) { - this.setWarningText(null); - } else { - this.setWarningText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING); - } - } -}; - - -const controls_for = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_WITH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('i'), 'VAR'); - this.appendValueInput('FROM') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_FROM); - this.appendValueInput('TO') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_TO); - this.appendValueInput('STEP') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEP); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_TOOLTIP.replace('%1', - thisBlock.getFieldValue('VAR')); - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const controls_for_range = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_WITH) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('i'), 'VAR'); - this.appendValueInput('FROM') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_FROM); - this.appendValueInput('TO') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_TO); - this.appendValueInput('STEP') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STEP); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace('%1', - thisBlock.getFieldValue('VAR')); - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - - -controls_whileUntil.OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL'] -]; - - - -controls_flow_statements.OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE'] -]; - - - -const controls_if_if = { - /** - * Mutator block for if container. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_IF_TITLE_IF); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_IF_TOOLTIP); - this.contextMenu = false; - } -}; - -const controls_if_elseif = { - /** - * Mutator bolck for else-if condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSEIF_TOOLTIP); - this.contextMenu = false; - } -}; - -const controls_if_else = { - /** - * Mutator block for else condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSE_TITLE_ELSE); - this.setPreviousStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_IF_ELSE_TOOLTIP); - this.contextMenu = false; - } -}; - - - -const controls_try = { - /** - * Mutator block for if container. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField('try'); - this.appendStatementInput('STACK'); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.contextMenu = false; - } -}; - -const controls_except = { - /** - * Mutator bolck for else-if condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_EXCEPT); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.contextMenu = false; - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP); - } -}; - -const controls_finally = { - /** - * Mutator block for else condition. - * @this Blockly.Block - */ - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_FINALLY); - this.setPreviousStatement(true); - this.contextMenu = false; - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP); - } -}; - - - -const controls_repeat_ext = { - /** - * Block for repeat n times (external number). - * @this Blockly.Block - */ - init: function () { - this.jsonInit({ - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_TITLE, - "args0": [ - { - "type": "input_value", - "name": "TIMES", - // "check": "Number" - } - ], - "previousStatement": null, - "nextStatement": null, - "colour": LOOPS_HUE, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_TOOLTIP, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_HELPURL - }); - this.appendStatementInput('DO'); - } -}; - - - -const controls_lambda = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('BOOL') - .appendField('lambda') - //.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'MODE'); - this.appendStatementInput('DO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STAT); - this.setOutput(true); - // this.setNextStatement(true); - } -}; - -const controls_pass = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_PASS); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP); - } -}; - -const controls_thread = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START) - this.appendValueInput('callback') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE) - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PARAMS); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP); - } -}; - -//do-while循环 -const do_while = { - init: function () { - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_TITLE_REPEAT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DO); - this.appendStatementInput("input_data") - .setCheck(null) - this.appendValueInput("select_data") - .setCheck(null) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_OPERATOR_UNTIL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, "true"], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, "false"]]), "type"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setColour(LOOPS_HUE); - this.setTooltip("do-while loop"); - this.setHelpUrl(""); - } -}; - -const garbage_collection = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_OP_GARBAGE_COLLECT); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - - -const get_mem_alloc = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_MEM_ALLOC); - this.setOutput(true) - } -}; - -const get_mem_free = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_MEM_FREE); - this.setOutput(true) - } -}; - -const get_unique_identifier = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DEVICE + 'ID'); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_UNIQUE_IDEN); - } -}; - -// export const base_type = controls_type; -// export const controls_TypeLists = controls_typeLists; - -const datetime_fromtimestamp = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RTC_TIMESTAMP); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TIMESTAMP_TO_DATA); - this.setInputsInline(true); - this.setOutput(true, Number); - } -}; - - -const gene_unique_identifier = { - init: function () { - this.setColour(LOOPS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET_UNIQUE_IDEN); - this.setOutput(true) - } -}; - -/***/ }), - -/***/ "../python/blocks/dicts.js": -/*!*********************************!*\ - !*** ../python/blocks/dicts.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ dicts_add_change_del: () => (/* binding */ dicts_add_change_del), -/* harmony export */ dicts_add_or_change: () => (/* binding */ dicts_add_or_change), -/* harmony export */ dicts_clear: () => (/* binding */ dicts_clear), -/* harmony export */ dicts_create_with: () => (/* binding */ dicts_create_with), -/* harmony export */ dicts_create_with_container: () => (/* binding */ dicts_create_with_container), -/* harmony export */ dicts_create_with_item: () => (/* binding */ dicts_create_with_item), -/* harmony export */ dicts_create_with_noreturn: () => (/* binding */ dicts_create_with_noreturn), -/* harmony export */ dicts_deldict: () => (/* binding */ dicts_deldict), -/* harmony export */ dicts_delete: () => (/* binding */ dicts_delete), -/* harmony export */ dicts_get: () => (/* binding */ dicts_get), -/* harmony export */ dicts_get_default: () => (/* binding */ dicts_get_default), -/* harmony export */ dicts_items: () => (/* binding */ dicts_items), -/* harmony export */ dicts_keys: () => (/* binding */ dicts_keys), -/* harmony export */ dicts_length: () => (/* binding */ dicts_length), -/* harmony export */ dicts_pop: () => (/* binding */ dicts_pop), -/* harmony export */ dicts_setdefault: () => (/* binding */ dicts_setdefault), -/* harmony export */ dicts_to_json: () => (/* binding */ dicts_to_json), -/* harmony export */ dicts_to_json2: () => (/* binding */ dicts_to_json2), -/* harmony export */ dicts_to_to: () => (/* binding */ dicts_to_to), -/* harmony export */ dicts_todict: () => (/* binding */ dicts_todict), -/* harmony export */ dicts_update: () => (/* binding */ dicts_update), -/* harmony export */ dicts_values: () => (/* binding */ dicts_values), -/* harmony export */ json_to_dicts: () => (/* binding */ json_to_dicts) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Ft,controls_typeLists:()=>Pt,lists_zip:()=>Yt,lists_zip_container:()=>vt,lists_zip_item:()=>Xt,unpack_iterable_object:()=>yt,variables_change:()=>Dt,variables_get:()=>At,variables_global:()=>ft,variables_set:()=>Nt});var i={};t.r(i),t.d(i,{base_setup:()=>Vt,controls_delay:()=>Bt,controls_end_program:()=>Gt,controls_except:()=>$t,controls_finally:()=>te,controls_flow_statements:()=>Kt,controls_for:()=>Jt,controls_forEach:()=>kt,controls_for_range:()=>qt,controls_if:()=>Ut,controls_if_else:()=>jt,controls_if_elseif:()=>zt,controls_if_if:()=>Qt,controls_lambda:()=>ie,controls_main:()=>bt,controls_pass:()=>ne,controls_range:()=>wt,controls_repeat_ext:()=>ee,controls_thread:()=>se,controls_try:()=>Zt,controls_try_finally:()=>Wt,controls_whileUntil:()=>Ht,datetime_fromtimestamp:()=>re,do_while:()=>_e,garbage_collection:()=>oe,gene_unique_identifier:()=>le,get_mem_alloc:()=>pe,get_mem_free:()=>ae,get_unique_identifier:()=>ue});var n={};t.r(n),t.d(n,{base_map:()=>Ye,generate_cartesian_product:()=>Xe,math_arithmetic:()=>he,math_bit:()=>Ee,math_constant:()=>Te,math_constant_mp:()=>Me,math_constrain:()=>Le,math_dec:()=>Re,math_indexer_number:()=>Ne,math_map:()=>Ae,math_max_min:()=>ge,math_number:()=>Ie,math_number_base_conversion:()=>Ce,math_random:()=>Se,math_random_seed:()=>De,math_round:()=>fe,math_selfcalcu:()=>me,math_to_int:()=>ce,math_trig:()=>Oe,text_to_number:()=>Fe,text_to_number_skulpt:()=>Pe,turn_to_int:()=>ve});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ge,char_to_ascii:()=>Ue,number_to_text:()=>we,os_system:()=>Ii,text:()=>xe,text_capital:()=>je,text_center:()=>Ze,text_char:()=>Ve,text_char_at:()=>We,text_char_at2:()=>He,text_char_at3:()=>ui,text_compareTo:()=>ai,text_compare_to:()=>ze,text_create_with_container:()=>_i,text_create_with_item:()=>oi,text_encode:()=>li,text_equals_starts_ends:()=>Qe,text_eval:()=>di,text_find:()=>$e,text_format:()=>si,text_format_noreturn:()=>ri,text_join:()=>Be,text_join_seq:()=>ti,text_length:()=>ke,text_random_char:()=>Ke,text_replace:()=>ei,text_split:()=>ii,text_strip:()=>ni,text_substring:()=>qe,text_substring2:()=>Je,text_substring3:()=>pi,text_textarea:()=>be});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Qi,content_in_lists:()=>ji,enumerate:()=>zi,list_many_input:()=>xi,list_tolist:()=>Gi,list_tolist2:()=>qi,list_trig:()=>vi,lists_2d_get_col_row_data:()=>Ei,lists_2d_get_data_with_col_row:()=>mi,lists_append_extend:()=>Si,lists_change_to:()=>yi,lists_change_to_general:()=>Vi,lists_clear:()=>fi,lists_create_with:()=>Oi,lists_create_with2:()=>Ui,lists_create_with_container:()=>ci,lists_create_with_item:()=>gi,lists_create_with_noreturn:()=>bi,lists_create_with_text:()=>Ri,lists_create_with_text2:()=>wi,lists_del_general:()=>Bi,lists_find:()=>Yi,lists_getIndex3:()=>ki,lists_getSublist3:()=>Hi,lists_get_index:()=>Mi,lists_get_random_item:()=>Li,lists_get_random_sublist:()=>Ai,lists_get_sublist:()=>hi,lists_insert_value:()=>Ni,lists_insert_value2:()=>Ki,lists_pop:()=>Pi,lists_remove_at:()=>Fi,lists_remove_at2:()=>Ji,lists_reverse:()=>Di,lists_setIndex3:()=>Wi,lists_set_index:()=>Ci,lists_sort:()=>Xi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>Tn,dicts_add_or_change:()=>on,dicts_clear:()=>un,dicts_create_with:()=>$i,dicts_create_with_container:()=>tn,dicts_create_with_item:()=>en,dicts_create_with_noreturn:()=>mn,dicts_deldict:()=>In,dicts_delete:()=>pn,dicts_get:()=>sn,dicts_get_default:()=>_n,dicts_items:()=>rn,dicts_keys:()=>nn,dicts_length:()=>dn,dicts_pop:()=>Mn,dicts_setdefault:()=>hn,dicts_to_json:()=>On,dicts_to_json2:()=>gn,dicts_to_to:()=>cn,dicts_todict:()=>En,dicts_update:()=>an,dicts_values:()=>ln,json_to_dicts:()=>Rn});var p={};t.r(p),t.d(p,{logic_boolean:()=>Dn,logic_compare:()=>Sn,logic_compare_continous:()=>Ln,logic_is:()=>Yn,logic_is_in:()=>Pn,logic_negate:()=>Nn,logic_null:()=>fn,logic_operation:()=>An,logic_tobool:()=>vn,logic_true_or_false:()=>Fn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>is,sdcard_use_spi_init:()=>es,storage_can_write_ornot:()=>wn,storage_change_dir:()=>$n,storage_close_file:()=>Hn,storage_delete_file:()=>Kn,storage_file_seek:()=>Qn,storage_file_tell:()=>qn,storage_file_write:()=>Vn,storage_fileopen:()=>yn,storage_fileopen_new:()=>xn,storage_fileopen_new_encoding:()=>bn,storage_get_a_line:()=>Un,storage_get_contents:()=>Gn,storage_get_contents_without_para:()=>Bn,storage_get_current_dir:()=>zn,storage_get_file_size:()=>Jn,storage_get_filename:()=>kn,storage_is_file:()=>ts,storage_list_all_files:()=>Wn,storage_make_dir:()=>jn,storage_open_file_with_os:()=>Xn,storage_rename:()=>Zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>us,procedures_callreturn:()=>rs,procedures_defnoreturn:()=>_s,procedures_defreturn:()=>os,procedures_ifreturn:()=>ls,procedures_mutatorarg:()=>as,procedures_mutatorcontainer:()=>ps,procedures_return:()=>ds});var r={};t.r(r),t.d(r,{tuple_change_to:()=>Ss,tuple_create_with:()=>Ts,tuple_create_with_container:()=>Ms,tuple_create_with_item:()=>hs,tuple_create_with_noreturn:()=>Ds,tuple_create_with_text2:()=>ms,tuple_create_with_text_return:()=>Es,tuple_del:()=>cs,tuple_find:()=>Ls,tuple_getIndex:()=>Os,tuple_getSublist:()=>Ns,tuple_get_random_item:()=>Fs,tuple_get_sublist:()=>fs,tuple_input:()=>Ys,tuple_join:()=>gs,tuple_length:()=>Rs,tuple_max:()=>Cs,tuple_totuple:()=>Ps,tuple_trig:()=>As});var l={};t.r(l),t.d(l,{set_add_discard:()=>ws,set_clear:()=>Bs,set_create_with:()=>Xs,set_create_with_container:()=>ys,set_create_with_item:()=>xs,set_create_with_text_return:()=>Ws,set_length:()=>bs,set_operate:()=>Gs,set_operate_update:()=>Us,set_pop:()=>Vs,set_sub:()=>ks,set_toset:()=>Ks,set_update:()=>Hs});var d={};t.r(d),t.d(d,{html_content:()=>js,html_content_more:()=>Zs,html_document:()=>qs,html_form:()=>t_,html_head_body:()=>zs,html_style:()=>$s,html_style_color:()=>i_,html_style_content:()=>e_,html_text:()=>n_,html_title:()=>Qs});var I={};t.r(I),t.d(I,{attribute_access:()=>m_,function_call:()=>T_,function_call_container:()=>M_,function_call_item:()=>h_,raw_block:()=>o_,raw_empty:()=>a_,raw_expression:()=>p_,raw_table:()=>__,text_comment:()=>u_,text_print_multiple:()=>l_,text_print_multiple_container:()=>d_,text_print_multiple_item:()=>I_,type_check:()=>r_});var T={};t.r(T),t.d(T,{controls_type:()=>g_,controls_typeLists:()=>C_,lists_zip:()=>S_,unpack_iterable_object:()=>L_,variables_change:()=>R_,variables_get:()=>E_,variables_global:()=>c_,variables_set:()=>O_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>y_,base_setup:()=>N_,controls_delay:()=>X_,controls_flow_statements:()=>v_,controls_for:()=>F_,controls_forEach:()=>G_,controls_for_range:()=>P_,controls_if:()=>D_,controls_interrupts:()=>V_,controls_lambda:()=>w_,controls_main:()=>A_,controls_millis:()=>x_,controls_nointerrupts:()=>B_,controls_pass:()=>H_,controls_range:()=>U_,controls_repeat:()=>Z_,controls_repeat_ext:()=>J_,controls_thread:()=>W_,controls_try_finally:()=>f_,controls_whileUntil:()=>Y_,datetime_fromtimestamp:()=>$_,do_while:()=>K_,garbage_collection:()=>q_,gene_unique_identifier:()=>to,get_mem_alloc:()=>Q_,get_mem_free:()=>z_,get_unique_identifier:()=>j_,reset:()=>b_,time_sleep:()=>k_});var h={};t.r(h),t.d(h,{base_map:()=>go,generate_cartesian_product:()=>So,math_arithmetic:()=>_o,math_bit:()=>so,math_constant:()=>io,math_constant_mp:()=>no,math_constrain:()=>Mo,math_dec:()=>uo,math_indexer_number:()=>Eo,math_map:()=>To,math_max_min:()=>lo,math_number:()=>eo,math_number_base_conversion:()=>ho,math_random:()=>Io,math_random_seed:()=>mo,math_round:()=>Oo,math_selfcalcu:()=>oo,math_single:()=>po,math_to_int:()=>ro,math_trig:()=>ao,text_to_number:()=>Ro,text_to_number_skulpt:()=>co,turn_to_int:()=>Co});var m={};t.r(m),t.d(m,{ascii_to_char:()=>fo,char_to_ascii:()=>Fo,number_to_text:()=>Po,os_system:()=>tp,text:()=>Lo,text_capital:()=>Go,text_center:()=>Uo,text_char:()=>No,text_char_at:()=>Xo,text_char_at2:()=>vo,text_char_at3:()=>jo,text_compareTo:()=>zo,text_compare_to:()=>bo,text_encode:()=>Zo,text_equals_starts_ends:()=>xo,text_eval:()=>$o,text_find:()=>wo,text_format:()=>Jo,text_format_noreturn:()=>qo,text_join:()=>Do,text_join_seq:()=>ko,text_length:()=>Yo,text_random_char:()=>yo,text_replace:()=>Ho,text_split:()=>Wo,text_strip:()=>Ko,text_substring:()=>Bo,text_substring2:()=>Vo,text_substring3:()=>Qo,text_textarea:()=>Ao});var E={};t.r(E),t.d(E,{content_in_lists:()=>Xp,enumerate:()=>vp,list_many_input:()=>Rp,list_tolist:()=>Pp,list_tolist2:()=>Yp,list_trig:()=>mp,lists_2d_get_col_row_data:()=>np,lists_2d_get_data_with_col_row:()=>ip,lists_append_extend:()=>ap,lists_change_to:()=>Op,lists_change_to_general:()=>gp,lists_clear:()=>Ip,lists_create_with:()=>sp,lists_create_with2:()=>Sp,lists_create_with_noreturn:()=>cp,lists_create_with_text:()=>_p,lists_create_with_text2:()=>Lp,lists_del_general:()=>Cp,lists_find:()=>Tp,lists_getIndex3:()=>Ap,lists_getSublist3:()=>Np,lists_get_index:()=>op,lists_get_random_item:()=>up,lists_get_random_sublist:()=>rp,lists_get_sublist:()=>ep,lists_insert_value:()=>lp,lists_insert_value2:()=>fp,lists_pop:()=>hp,lists_remove_at:()=>Mp,lists_remove_at2:()=>Fp,lists_reverse:()=>dp,lists_setIndex3:()=>Dp,lists_set_index:()=>pp,lists_sort:()=>Ep});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Jp,dicts_add_or_change:()=>Bp,dicts_clear:()=>wp,dicts_create_with:()=>yp,dicts_create_with_noreturn:()=>zp,dicts_deldict:()=>Kp,dicts_delete:()=>Gp,dicts_get:()=>bp,dicts_get_default:()=>Vp,dicts_items:()=>kp,dicts_keys:()=>xp,dicts_length:()=>Wp,dicts_pop:()=>qp,dicts_setdefault:()=>Qp,dicts_to_json:()=>Zp,dicts_to_json2:()=>ea,dicts_to_to:()=>ta,dicts_todict:()=>jp,dicts_update:()=>Up,dicts_values:()=>Hp,json_to_dicts:()=>$p});var R={};t.r(R),t.d(R,{logic_boolean:()=>oa,logic_compare:()=>ia,logic_compare_continous:()=>na,logic_is:()=>ra,logic_is_in:()=>ua,logic_negate:()=>_a,logic_null:()=>pa,logic_operation:()=>sa,logic_tobool:()=>la,logic_true_or_false:()=>aa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Xa,sdcard_use_spi_init:()=>va,storage_can_write_ornot:()=>Ra,storage_change_dir:()=>Da,storage_close_file:()=>ga,storage_delete_file:()=>Sa,storage_file_seek:()=>Na,storage_file_tell:()=>Aa,storage_file_write:()=>ha,storage_fileopen:()=>Ia,storage_fileopen_new:()=>Ta,storage_fileopen_new_encoding:()=>Ma,storage_get_a_line:()=>Oa,storage_get_contents:()=>Ea,storage_get_contents_without_para:()=>ma,storage_get_current_dir:()=>fa,storage_get_file_size:()=>La,storage_get_filename:()=>ca,storage_is_file:()=>Ya,storage_list_all_files:()=>Ca,storage_make_dir:()=>Fa,storage_open_file_with_os:()=>da,storage_rename:()=>Pa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Va,procedures_callreturn:()=>ba,procedures_defnoreturn:()=>xa,procedures_defreturn:()=>ya,procedures_ifreturn:()=>Ba,procedures_return:()=>Ga});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Qa,tuple_create_with:()=>Ua,tuple_create_with_noreturn:()=>$a,tuple_create_with_text2:()=>wa,tuple_create_with_text_return:()=>ka,tuple_del:()=>Ka,tuple_find:()=>za,tuple_getIndex:()=>Ha,tuple_getSublist:()=>Za,tuple_get_random_item:()=>eu,tuple_get_sublist:()=>tu,tuple_input:()=>nu,tuple_join:()=>Ja,tuple_length:()=>Wa,tuple_max:()=>qa,tuple_totuple:()=>iu,tuple_trig:()=>ja});var S={};t.r(S),t.d(S,{set_add_discard:()=>ru,set_clear:()=>pu,set_create_with:()=>su,set_create_with_text_return:()=>Iu,set_length:()=>_u,set_operate:()=>au,set_operate_update:()=>uu,set_pop:()=>ou,set_sub:()=>lu,set_toset:()=>Tu,set_update:()=>du});var L={};t.r(L),t.d(L,{html_content:()=>Eu,html_content_more:()=>Ou,html_document:()=>Mu,html_form:()=>cu,html_head_body:()=>mu,html_style:()=>Ru,html_style_content:()=>gu,html_text:()=>Cu,html_title:()=>hu});var A={};t.r(A),t.d(A,{attribute_access:()=>Fu,function_call:()=>fu,raw_block:()=>Su,raw_empty:()=>Au,raw_expression:()=>Lu,raw_table:()=>Nu,type_check:()=>Du});var N={};t.r(N),t.d(N,{PIN_init:()=>Pr,actuator_extern_get_led_bright:()=>wu,actuator_extern_get_led_state:()=>ku,actuator_extern_led_bright:()=>Uu,actuator_extern_led_brightness:()=>Hu,actuator_ms32006_dcmotor:()=>$u,actuator_ms32006_init:()=>Zu,actuator_ms32006_stepper:()=>tr,actuator_neopixel_init:()=>er,actuator_neopixel_rgb:()=>ir,actuator_neopixel_rgb_all:()=>nr,actuator_neopixel_write:()=>sr,actuator_use_uart_init:()=>_r,esp32_music_get_tempo_extern:()=>Vu,esp32_music_pitch:()=>Xu,esp32_music_pitch_init:()=>vu,esp32_music_pitch_with_time:()=>yu,esp32_music_play_list:()=>xu,esp32_music_reset_extern:()=>Bu,esp32_music_set_tempo_extern:()=>bu,esp32_music_stop:()=>Gu,mixbot_actuator_extern_get_addr:()=>fr,mixbot_actuator_extern_set_addr:()=>Fr,mixbot_addr_extern:()=>hr,parrot_PIN_init:()=>yr,parrot_move_speed:()=>xr,pin_led_bright:()=>Yr,player_insert_music:()=>lr,player_play_music:()=>rr,player_set_mode:()=>ur,player_set_play:()=>pr,player_set_volume:()=>ar,player_whether_stop:()=>or,robot_led_extern:()=>Rr,robot_led_extern_get_value:()=>cr,robot_motor_extern:()=>mr,robot_motor_extern_get_speed:()=>Er,robot_servo_extern_absolute_run:()=>Lr,robot_servo_extern_get_status:()=>gr,robot_servo_extern_relative_continue:()=>Dr,robot_servo_extern_relative_origin:()=>Ar,robot_servo_extern_relative_run:()=>Nr,robot_servo_extern_stop:()=>Sr,robot_servo_extern_stop_mode:()=>Cr,robot_traffic_light_extern:()=>Or,servo_PIN_init:()=>vr,servo_get_angle:()=>zu,servo_get_speed:()=>ju,servo_init:()=>Wu,servo_move:()=>Ku,servo_move_angle:()=>Xr,servo_set_angle:()=>qu,servo_set_speed:()=>Qu,servo_speed_360:()=>Ju,syn6288_builtin_voice:()=>Tr,syn6288_get_voice:()=>Ir,syn6288_set_voice:()=>dr,syn6288_tts_play:()=>Mr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>Tl,actuator_dc_motor_stop:()=>Ml,actuator_get_led_bright:()=>Ur,actuator_get_led_state:()=>wr,actuator_led_bright:()=>Gr,actuator_led_brightness:()=>kr,actuator_mixbot_buzzer_on_off:()=>Rl,actuator_mixgo_nova_mic_get:()=>Ll,actuator_mixgo_nova_mic_set:()=>Sl,actuator_mixgo_nova_onboard_music_pitch:()=>Pl,actuator_mixgo_nova_onboard_music_stop:()=>Yl,actuator_mixgo_nova_play_audio:()=>fl,actuator_mixgo_nova_play_online_audio:()=>Fl,actuator_mixgo_nova_record_audio:()=>Dl,actuator_mixgo_nova_voice_get:()=>Nl,actuator_mixgo_nova_voice_set:()=>Al,actuator_mixgo_zero_led_color:()=>Hr,actuator_onboard_neopixel_rgb:()=>zr,actuator_onboard_neopixel_rgb_all:()=>jr,actuator_onboard_neopixel_rgb_show_all_chase:()=>$r,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>Zr,actuator_onboard_neopixel_write:()=>tl,actuator_rm_onboard_neopixel_rgb:()=>el,actuator_rm_onboard_neopixel_rgb_all:()=>il,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>nl,actuator_stepper_keep:()=>dl,actuator_stepper_stop:()=>Il,analog_ble_keyboard_init:()=>Wl,analog_ble_keyboard_input:()=>ql,analog_ble_keyboard_mouse_init:()=>id,analog_ble_keyboard_mouse_input:()=>od,analog_ble_keyboard_mouse_send_battery:()=>_d,analog_ble_keyboard_mouse_str:()=>pd,analog_ble_keyboard_send_battery:()=>zl,analog_ble_keyboard_str:()=>Ql,analog_ble_mouse_init:()=>jl,analog_ble_mouse_input:()=>td,analog_ble_mouse_keyboard_input:()=>ad,analog_ble_mouse_send_battery:()=>ed,analog_keyboard_input:()=>xl,analog_keyboard_str:()=>Hl,analog_mouse_input:()=>wl,bitbot_motor:()=>Cl,bitbot_move:()=>cl,bitbot_stop:()=>gl,ble_keyboard_connect:()=>Jl,ble_keyboard_get_mac:()=>Kl,ble_keyboard_mouse_connect:()=>sd,ble_keyboard_mouse_get_mac:()=>nd,ble_mouse_connect:()=>$l,ble_mouse_get_mac:()=>Zl,cc_number:()=>Qr,educore_ble_keyboard_input:()=>Ed,educore_ble_sensor_connected:()=>md,educore_ble_sensor_init:()=>hd,educore_buzzer:()=>ud,educore_buzzer_play_tone:()=>rd,educore_buzzer_play_tone_time:()=>ld,educore_buzzer_stop:()=>dd,educore_neopixel_clear:()=>Md,educore_neopixel_rgb:()=>Td,educore_rgb_light:()=>Id,esp32_music_get_tempo:()=>_l,esp32_music_reset:()=>ol,esp32_music_set_tempo:()=>sl,esp32_onboard_music_pitch:()=>pl,esp32_onboard_music_pitch_with_time:()=>al,esp32_onboard_music_play_list:()=>rl,esp32_onboard_music_stop:()=>ul,general_key:()=>Vl,general_key_tuple:()=>Bl,generalkey_container:()=>Gl,generalkey_create_with_item:()=>Ul,get_power_output:()=>Xl,ledswitch:()=>Br,mixbot_motor:()=>Ol,mixbot_motor_status:()=>hl,mixbot_move:()=>ml,mixbot_stop:()=>El,mouse_key:()=>kl,number:()=>Vr,rm_actuator_get_led_bright:()=>Kr,rm_actuator_get_led_state:()=>Jr,rm_actuator_led_bright:()=>Wr,rm_actuator_led_brightness:()=>qr,rm_motor:()=>ll,set_all_power_output:()=>yl,set_power_output:()=>vl,special_key:()=>bl});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>Zd,ai_sensor_ailocal_class:()=>Ud,ai_sensor_ailocal_class_result:()=>wd,ai_sensor_ailocal_train:()=>Gd,ai_sensor_asr_recognize:()=>Jd,ai_sensor_audio_play:()=>Hd,ai_sensor_audio_record:()=>kd,ai_sensor_barcode:()=>Ad,ai_sensor_circle:()=>Yd,ai_sensor_classifier_faces:()=>jd,ai_sensor_color:()=>xd,ai_sensor_color_chases:()=>Bd,ai_sensor_color_chases_result:()=>Vd,ai_sensor_config:()=>Sd,ai_sensor_face:()=>zd,ai_sensor_find_20objects:()=>$d,ai_sensor_find_barcodes:()=>Nd,ai_sensor_find_circles:()=>vd,ai_sensor_find_colors:()=>bd,ai_sensor_find_licenseplates:()=>Qd,ai_sensor_find_lines:()=>Pd,ai_sensor_find_qrcodes:()=>Cd,ai_sensor_find_rects:()=>yd,ai_sensor_find_tags:()=>fd,ai_sensor_licenseplate:()=>qd,ai_sensor_line:()=>Fd,ai_sensor_qrcode:()=>cd,ai_sensor_qrcode_lite:()=>gd,ai_sensor_rect:()=>Xd,ai_sensor_rgb:()=>Ld,ai_sensor_tag:()=>Dd,ai_sensor_use_uart_init:()=>Rd,ai_sensor_yolo_recognize:()=>Wd,ai_sensor_yolo_recognize_result:()=>Kd});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>iI,MICROPYTHON_AI_Speech_unit:()=>eI,MICROPYTHON_AI_client:()=>tI});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>mI,mpython_blynk_app_notify:()=>rI,mpython_blynk_email:()=>II,mpython_blynk_get_timers:()=>TI,mpython_blynk_on_connected:()=>pI,mpython_blynk_on_disconnected:()=>oI,mpython_blynk_run:()=>uI,mpython_blynk_sensor_data_to_app:()=>hI,mpython_blynk_set_property:()=>dI,mpython_blynk_setup:()=>EI,mpython_blynk_stop_timers:()=>lI,mpython_blynk_sync_virtual:()=>_I,mpython_blynk_terminal_widget_vpin:()=>sI,mpython_blynktimer:()=>MI,mpython_blynktimer_run:()=>aI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>OI,cc_g1_read_bat:()=>RI,cc_g1_read_joystick:()=>cI,cc_g1_read_key:()=>gI,cc_g1_turnoff:()=>CI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>YI,ce_go_get_led_bright:()=>NI,ce_go_get_led_state:()=>DI,ce_go_hall_attachInterrupt:()=>vI,ce_go_hall_data:()=>yI,ce_go_hall_initialize:()=>XI,ce_go_led_bright:()=>AI,ce_go_led_brightness:()=>fI,ce_go_light_number:()=>LI,ce_go_pin_light:()=>GI,ce_go_pin_near:()=>bI,ce_go_pin_near_line:()=>xI,ce_go_pin_near_state_change:()=>VI,ce_go_stepper_keep:()=>FI,ce_go_stepper_stop:()=>PI,educore_car:()=>UI,educore_car_pin_near:()=>WI,educore_car_pin_near_line:()=>HI,educore_car_stepper_keep:()=>wI,educore_car_stepper_stop:()=>kI,sensor_mixgome_eulerangles:()=>BI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>NT,communicate_bluetooth_connect:()=>PT,communicate_bluetooth_disconnect:()=>YT,communicate_bluetooth_handle:()=>bT,communicate_bluetooth_is_connected:()=>XT,communicate_bluetooth_mac:()=>FT,communicate_bluetooth_peripheral_init:()=>DT,communicate_bluetooth_recv:()=>yT,communicate_bluetooth_recv_only:()=>xT,communicate_bluetooth_scan:()=>fT,communicate_bluetooth_send:()=>vT,communicate_espnow_init:()=>VT,communicate_espnow_init_new:()=>BT,communicate_i2c_available:()=>uT,communicate_i2c_init:()=>QI,communicate_i2c_master_read:()=>aT,communicate_i2c_onboard:()=>JI,communicate_i2c_read:()=>zI,communicate_i2c_scan:()=>ZI,communicate_i2c_write:()=>jI,communicate_ir_recv_init:()=>mT,communicate_ir_send_init:()=>gT,communicate_ow_init:()=>lT,communicate_ow_read:()=>IT,communicate_ow_reset:()=>hT,communicate_ow_scan:()=>dT,communicate_ow_select:()=>MT,communicate_ow_write:()=>TT,communicate_spi_buffer:()=>eT,communicate_spi_init:()=>$I,communicate_spi_onboard:()=>qI,communicate_spi_read:()=>iT,communicate_spi_read_output:()=>nT,communicate_spi_readinto:()=>sT,communicate_spi_readinto_output:()=>_T,communicate_spi_set:()=>tT,communicate_spi_write:()=>oT,communicate_spi_write_readinto:()=>pT,espnow_radio_channel:()=>WT,espnow_radio_channel_new:()=>JT,espnow_radio_on_off:()=>qT,espnow_radio_rec:()=>zT,espnow_radio_recv:()=>ZT,espnow_radio_recv_certain_msg:()=>$T,espnow_radio_recv_certain_msg_new:()=>eM,espnow_radio_recv_msg:()=>jT,espnow_radio_recv_new:()=>tM,espnow_radio_send:()=>QT,espnow_radio_txpower:()=>KT,i2c_available:()=>CM,i2c_init:()=>uM,i2c_master_reader2:()=>gM,i2c_read:()=>rM,i2c_scan:()=>dM,i2c_slave_onreceive:()=>rT,i2c_write:()=>lM,internal_variable:()=>ET,ir_recv_timeout:()=>cT,ir_transmit_busy:()=>AT,ir_transmit_conventional_data:()=>CT,ir_transmit_raw_code:()=>LT,ir_transmit_study_code:()=>ST,ir_whether_recv:()=>RT,lora_init:()=>iM,lora_packet:()=>nM,lora_recv:()=>_M,lora_send:()=>sM,network_espnow_info:()=>UT,network_espnow_mac:()=>GT,network_espnow_recv:()=>wT,network_espnow_recv_handle:()=>HT,network_espnow_send:()=>kT,recv_fun:()=>OT,spi_buffer:()=>MM,spi_init:()=>IM,spi_read:()=>hM,spi_read_output:()=>mM,spi_readinto:()=>EM,spi_readinto_output:()=>OM,spi_set:()=>TM,spi_write:()=>RM,spi_write_readinto:()=>cM,urequests_attribute:()=>pM,urequests_get:()=>oM,urequests_method:()=>aM});var y={};t.r(y),t.d(y,{display_animate:()=>$M,display_blink_rate:()=>QM,display_circle:()=>th,display_color_seclet:()=>dh,display_draw_4strings:()=>kM,display_fill:()=>ZM,display_get_screen_image:()=>qM,display_help:()=>ih,display_image_size:()=>HM,display_lcd_use_i2c_init:()=>Eh,display_line:()=>KM,display_line_arbitrarily:()=>JM,display_matrix_extern_bright_point:()=>yM,display_matrix_extern_bright_screen:()=>bM,display_matrix_extern_clear:()=>VM,display_matrix_extern_get_pixel:()=>XM,display_matrix_extern_get_screen_pixel:()=>xM,display_matrix_extern_image_builtins:()=>BM,display_matrix_extern_scroll_string:()=>fM,display_matrix_extern_scroll_string_delay:()=>FM,display_matrix_extern_shift:()=>vM,display_matrix_extern_show_frame_string:()=>PM,display_matrix_extern_show_frame_string_delay:()=>YM,display_matrix_extern_show_image:()=>NM,display_matrix_extern_show_image_or_string_delay:()=>DM,display_matrix_use_i2c_init:()=>AM,display_oled_drawPixel:()=>sh,display_oled_showBitmap:()=>nh,display_oled_use_i2c_init:()=>Ch,display_onoff:()=>jM,display_rect:()=>WM,display_rgb_color:()=>zM,display_tm1650_power:()=>oh,display_tm1650_set_brightness:()=>uh,display_tm1650_show_dot:()=>ah,display_tm1650_show_num:()=>ph,display_tm_use_i2c_init:()=>_h,display_triangle:()=>eh,display_use_i2c_init:()=>wM,extern_oled_bright_point:()=>Xh,extern_oled_clear:()=>yh,extern_oled_get_pixel:()=>vh,extern_oled_hvline:()=>bh,extern_oled_line:()=>Vh,extern_oled_scroll_string:()=>Dh,extern_oled_scroll_string_delay:()=>fh,extern_oled_shape_rect:()=>xh,extern_oled_shift:()=>Yh,extern_oled_show_frame_string:()=>Fh,extern_oled_show_frame_string_delay:()=>Ph,extern_oled_show_image:()=>Sh,extern_oled_show_image_or_string_delay:()=>Nh,extern_oled_show_image_xy:()=>Lh,extern_oled_show_string:()=>Ah,lcd_backlight:()=>ch,lcd_clear:()=>gh,lcd_print_string:()=>Rh,lcd_show_image_or_string_delay:()=>Oh,matrix_extern_image_arithmetic:()=>GM,matrix_extern_image_invert:()=>UM,tft_fill:()=>hh,tft_line_arbitrarily:()=>mh,tft_scroll_string_delay:()=>Th,tft_show_frame_string_delay:()=>Mh,tft_show_image_or_string_delay:()=>Ih,tft_show_image_xy:()=>lh,tft_use_spi_init:()=>rh});var x={};t.r(x),t.d(x,{bitbot_display_image_create:()=>Cm,display_bright_point:()=>$h,display_bright_screen:()=>em,display_clear:()=>im,display_get_pixel:()=>Zh,display_get_screen_pixel:()=>tm,display_image_builtins:()=>Jh,display_image_builtins_all:()=>qh,display_image_create:()=>Kh,display_scroll_string:()=>wh,display_scroll_string_delay:()=>kh,display_shift:()=>jh,display_show_frame_string:()=>Hh,display_show_frame_string_delay:()=>Wh,display_show_image:()=>Gh,display_show_image_or_string_delay:()=>Uh,draw_pointer:()=>Jm,image_arithmetic:()=>Qh,image_invert:()=>zh,mixbot_display_bright_screen:()=>cm,mixbot_display_get_ambientbright:()=>Rm,mixbot_display_get_screen_pixel:()=>Om,mixbot_display_image_create:()=>Em,mixbot_display_rotate:()=>gm,mixgo_display_image_create_new:()=>_m,mixgome_display_font:()=>om,mixgome_display_image_create:()=>nm,mixgomini_display_image_create:()=>sm,mpython_display_hvline:()=>Mm,mpython_display_line:()=>hm,mpython_display_shape_rect:()=>Tm,mpython_pbm_image:()=>mm,onboard_oled_bright_point:()=>Im,onboard_oled_scroll_string_delay:()=>lm,onboard_oled_show_frame_string_delay:()=>dm,onboard_oled_show_image:()=>pm,onboard_oled_show_image_or_string_delay:()=>rm,onboard_oled_show_image_xy:()=>am,onboard_oled_show_string:()=>um,onboard_tft_bright_point:()=>xm,onboard_tft_bright_screen:()=>Bm,onboard_tft_clear:()=>bm,onboard_tft_clock_clear:()=>Wm,onboard_tft_clock_draw:()=>Hm,onboard_tft_clock_get_rtctime:()=>wm,onboard_tft_clock_init:()=>Um,onboard_tft_clock_set_time:()=>km,onboard_tft_display_hvline:()=>Ym,onboard_tft_display_line:()=>vm,onboard_tft_display_shape_circle:()=>Km,onboard_tft_display_shape_rect:()=>Pm,onboard_tft_fill:()=>Gm,onboard_tft_get_pixel:()=>ym,onboard_tft_get_screen_pixel:()=>Vm,onboard_tft_scroll_string:()=>Nm,onboard_tft_scroll_string_delay:()=>Dm,onboard_tft_shift:()=>Xm,onboard_tft_show_frame_string:()=>fm,onboard_tft_show_frame_string_delay:()=>Fm,onboard_tft_show_image:()=>Sm,onboard_tft_show_image_or_string_delay:()=>Am,onboard_tft_show_image_xy:()=>Lm});var b={};t.r(b),t.d(b,{factory_block:()=>sE,factory_block_return:()=>_E,factory_block_return_with_textarea:()=>pE,factory_block_with_textarea:()=>oE,factory_callMethod_noreturn:()=>iE,factory_callMethod_return:()=>nE,factory_create_with_container:()=>Zm,factory_create_with_item:()=>$m,factory_declare:()=>eE,factory_from_import:()=>Qm,factory_function_noreturn:()=>jm,factory_function_return:()=>tE,factory_import:()=>zm,folding_block:()=>aE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>FE,inout_analog_atten:()=>EE,inout_analog_read:()=>mE,inout_analog_read_init:()=>SE,inout_analog_write:()=>TE,inout_analog_write_init:()=>CE,inout_analog_write_set:()=>ME,inout_analog_write_set_freq:()=>NE,inout_digital_init:()=>cE,inout_digital_read:()=>dE,inout_digital_write:()=>lE,inout_highlow:()=>rE,inout_pinMode:()=>AE,inout_pin_attachInterrupt:()=>RE,inout_pin_pressed:()=>OE,inout_pin_pressed_init:()=>LE,inout_pwm_analog_write:()=>IE,inout_pwm_analog_write_init:()=>gE,inout_pwm_analog_write_set_freq:()=>hE,pin_pressed:()=>fE,pin_pressed_init:()=>DE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>tO,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>$E,IOT_EMQX_PING:()=>jE,IOT_FORMATTING:()=>QE,IOT_FORMAT_STRING:()=>zE,IOT_MIXIO_NTP:()=>ZE,IOT_MIXIO_PUBLISH:()=>wE,IOT_MIXIO_SUBSCRIBE:()=>kE,iot_checkonenet:()=>rO,iot_client_onboard:()=>iO,iot_create_with_item:()=>GE,iot_http_client:()=>nO,iot_http_data:()=>sO,iot_mixio_check:()=>KE,iot_mixio_connect:()=>UE,iot_mixio_connect_only:()=>WE,iot_mixio_disconnect:()=>HE,iot_mixio_format_msg:()=>qE,iot_mixio_format_topic:()=>JE,iot_mixly_key:()=>eO,iot_mqtt_client:()=>_O,iot_mqtt_data:()=>oO,iot_onenet_check:()=>yE,iot_onenet_connect:()=>vE,iot_onenet_disconnect:()=>XE,iot_onenet_publish:()=>bE,iot_onenet_publish_dict:()=>xE,iot_onenetconnect:()=>aO,iot_onenetdisconnect:()=>uO,iot_publish:()=>lO,iot_publish_container:()=>VE,iot_publish_item:()=>BE,iot_wifi_connect:()=>YE,iot_wificonnect:()=>pO});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>HO,educore_mqtt_connect_success:()=>qO,educore_mqtt_subscribe_message:()=>WO,educore_mqtt_topic_publish:()=>JO,educore_mqtt_topic_subscribe:()=>KO,educore_wifi_connect:()=>kO,network_ap_connect:()=>gO,network_connect:()=>mO,network_get_connect:()=>OO,network_get_wifi:()=>cO,network_init:()=>IO,network_is_active:()=>MO,network_open:()=>TO,network_scan:()=>hO,network_server:()=>CO,network_socket_accept:()=>DO,network_socket_bind:()=>LO,network_socket_close:()=>vO,network_socket_connect:()=>AO,network_socket_init:()=>SO,network_socket_listen:()=>NO,network_socket_receive:()=>fO,network_socket_receive_from:()=>PO,network_socket_send:()=>FO,network_socket_send_to:()=>YO,network_stop:()=>RO,network_wifi_connect:()=>EO,ntptime_address:()=>VO,ntptime_time:()=>bO,requests_attribute:()=>yO,requests_attribute2:()=>wO,requests_get:()=>XO,requests_get2:()=>GO,requests_method:()=>xO,requests_post:()=>UO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>OR,CI130X_GET_THE_RECOGNIZED_CMD:()=>ER,CI130X_GET_WHETHER_IDENTIFY:()=>mR,CI130X_IDENTIFY_AND_SAVE:()=>hR,CI130X_SET_SYSTEM_CMD:()=>RR,HCSR04:()=>oc,PS2_Button:()=>rc,PS2_Buttons:()=>dc,PS2_Buttons_new:()=>hc,PS2_State:()=>lc,PS2_init:()=>pc,PS2_init_new:()=>Tc,PS2_stk:()=>Ic,PS2_stk_new:()=>mc,PS2_vibration:()=>uc,PS2_vibration_new:()=>Mc,camera_sensor_init:()=>Kc,camera_sensor_result:()=>Jc,educore_body_sensor:()=>xc,educore_button_sensor_extern:()=>Gc,educore_camera_sensor:()=>Wc,educore_infrared_sensor:()=>Bc,educore_soilhum_sensor:()=>bc,educore_temp_sensor:()=>Hc,educore_temphum_sensor:()=>Vc,educore_ultrasonic_sensor:()=>wc,esp32_s2_weather_init:()=>ic,esp32_s2_weather_rain:()=>sc,esp32_s2_weather_wd:()=>nc,esp32_s2_weather_ws:()=>_c,extern_rfid_read:()=>wR,extern_rfid_readcontent:()=>HR,extern_rfid_readid:()=>kR,extern_rfid_status:()=>JR,extern_rfid_write:()=>WR,extern_rfid_write_return:()=>KR,gnss_get_data:()=>cc,gnss_have_data:()=>Rc,interaction_whether_to_interaction:()=>TR,interaction_whether_to_interaction_SANT:()=>MR,mixbot_sensor_extern_get_addr:()=>Dc,mixbot_sensor_extern_set_addr:()=>fc,pm25_get_data:()=>Oc,radar_set_DETECTION_THRESHOLD:()=>dR,radar_set_DETECTION_THRESHOLD_SANT:()=>IR,robot_button_extern_get_value:()=>gc,robot_color_extern_get_value:()=>Nc,robot_infrared_extern_get_value:()=>Sc,robot_infrared_extern_grey_get_value:()=>Lc,robot_potentiometer_extern_get_value:()=>Ac,robot_sonar_extern_get_value:()=>Fc,robot_sonar_extern_led:()=>Pc,robot_touch_extern_get_value:()=>Cc,sensor_APDS9960_extern:()=>gR,sensor_DS18X20:()=>uR,sensor_LTR308_extern:()=>CR,sensor_LTR390UV_extern:()=>AR,sensor_MAX30102_extern:()=>cR,sensor_QMC5883L_extern:()=>YR,sensor_VL530LX_extern:()=>NR,sensor_adxl345_get_acceleration:()=>eR,sensor_aht11_extern:()=>fR,sensor_bmp:()=>pR,sensor_compass_reset:()=>GR,sensor_dht11:()=>nR,sensor_hp203_extern:()=>FR,sensor_light_level:()=>iR,sensor_lm35:()=>rR,sensor_ltr381_extern:()=>SR,sensor_mixgo_extern_button_attachInterrupt:()=>$O,sensor_mixgo_extern_button_get_presses:()=>ZO,sensor_mixgo_extern_button_is_pressed:()=>zO,sensor_mixgo_extern_button_was_pressed:()=>jO,sensor_mixgo_extern_light:()=>sR,sensor_mixgo_extern_pin_near:()=>oR,sensor_mixgo_extern_sound:()=>_R,sensor_mixgoce_hot_wheel_degrees:()=>ec,sensor_mixgoce_hot_wheel_is_touched:()=>tc,sensor_mpu9250_attachGestureInterrupt:()=>tR,sensor_mpu9250_calibrate_compass:()=>bR,sensor_mpu9250_field_strength:()=>BR,sensor_mpu9250_gesture:()=>vR,sensor_mpu9250_get_acceleration:()=>XR,sensor_mpu9250_get_gyro:()=>xR,sensor_mpu9250_get_magnetic:()=>yR,sensor_mpu9250_temperature:()=>VR,sensor_read_humiture:()=>Uc,sensor_sht:()=>aR,sensor_shtc3_extern:()=>DR,sensor_spl06_001_extern:()=>PR,sensor_ucs12071_extern:()=>LR,sensor_use_i2c_init:()=>lR,sensor_use_spi_init:()=>UR,sensor_use_uart_init:()=>Ec,sensor_weather_solo_init:()=>Yc,sensor_weather_solo_rain:()=>yc,sensor_weather_solo_wd:()=>vc,sensor_weather_solo_ws:()=>Xc,sensor_weigh_init:()=>qc,ultrasonic_sensor_read_distance:()=>kc,weather_data:()=>qR,weather_have_data:()=>QR,weather_set_label:()=>jR,weather_set_label_container:()=>ZR,weather_set_label_item:()=>$R,weather_uart_mixio:()=>zR,weigh_sensor_get_weight:()=>Qc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>HC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>kC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>wC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>UC,CI130X_SET_SYSTEM_CMD_SANT:()=>WC,HCSR04:()=>dg,RTC_set_date:()=>lg,RTC_set_time:()=>rg,bitbot_als_num:()=>RC,dht11:()=>NC,educore_button_sensor:()=>xC,educore_button_was_pressed:()=>bC,educore_gyroscope_sensor:()=>vC,educore_gyroscope_sensor_read:()=>XC,educore_gyroscope_sensor_shake:()=>yC,educore_light_sensor:()=>YC,educore_rfid_sensor:()=>VC,educore_rfid_sensor_scan:()=>BC,educore_rfid_sensor_scan_data:()=>GC,educore_voice_sensor:()=>FC,number1:()=>Tg,number2:()=>Mg,number3:()=>hg,number4:()=>mg,number5:()=>Eg,number6:()=>Og,number7:()=>Rg,onboard_RTC_get_time:()=>Dg,onboard_RTC_get_time_str:()=>Xg,onboard_RTC_get_timestamp:()=>fg,onboard_RTC_get_timetuple_to_str:()=>yg,onboard_RTC_set_datetime:()=>Yg,onboard_RTC_settime_string:()=>Pg,onboard_RTC_timestamp_totuple:()=>Fg,rfid_readcontent:()=>wg,rfid_readid:()=>Ug,rfid_write:()=>kg,rfid_write_return:()=>Hg,sensor_LTR308:()=>xg,sensor_aht11:()=>Vg,sensor_bitbot_ALS:()=>OC,sensor_button_get_presses:()=>CC,sensor_button_is_pressed:()=>cC,sensor_button_was_pressed:()=>gC,sensor_distance_hrsc04:()=>ug,sensor_eulerangles:()=>Kg,sensor_field_strength:()=>DC,sensor_get_acceleration:()=>Wg,sensor_get_temperature:()=>Bg,sensor_hp203:()=>Gg,sensor_light:()=>AC,sensor_mixbot_get_gyro:()=>EC,sensor_mixbot_patrol_calibrate:()=>MC,sensor_mixbot_patrol_value:()=>hC,sensor_mixbot_temperature:()=>mC,sensor_mixgo_LTR308:()=>Ag,sensor_mixgo_button_attachInterrupt:()=>tg,sensor_mixgo_button_get_presses:()=>$c,sensor_mixgo_button_is_pressed:()=>jc,sensor_mixgo_button_was_pressed:()=>Zc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>nC,sensor_mixgo_cc_mmc5603_get_angle:()=>iC,sensor_mixgo_cc_mmc5603_get_magnetic:()=>eC,sensor_mixgo_light:()=>Ig,sensor_mixgo_nova_LTR308:()=>Lg,sensor_mixgo_nova_pin_near:()=>Sg,sensor_mixgo_pin_near:()=>Cg,sensor_mixgo_pin_near_double:()=>gg,sensor_mixgo_pin_near_single:()=>cg,sensor_mixgo_pin_pressed:()=>_g,sensor_mixgo_sant_color:()=>Ng,sensor_mixgo_touch_slide:()=>ag,sensor_mixgocar42_button_attachInterrupt:()=>sg,sensor_mixgocar42_button_get_presses:()=>ng,sensor_mixgocar42_button_is_pressed:()=>eg,sensor_mixgocar42_button_was_pressed:()=>ig,sensor_mixgocar_battery_left:()=>TC,sensor_mixgocar_pin_near:()=>dC,sensor_mixgocar_pin_near_line:()=>lC,sensor_mixgocar_pin_near_state_change:()=>IC,sensor_mixgoce_pin_pressed:()=>og,sensor_mixgoce_temperature:()=>_C,sensor_mixgome_temperature:()=>sC,sensor_mpython_pin_pressed:()=>pg,sensor_mpython_qmi8658_get_gyro:()=>oC,sensor_mpython_qmi8658_temperature:()=>pC,sensor_onboard_compass_reset:()=>tC,sensor_onboard_mpu9250_calibrate_compass:()=>jg,sensor_onboard_mpu9250_field_strength:()=>$g,sensor_onboard_mpu9250_gesture:()=>Jg,sensor_onboard_mpu9250_get_acceleration:()=>qg,sensor_onboard_mpu9250_get_gyro:()=>zg,sensor_onboard_mpu9250_get_magnetic:()=>Qg,sensor_onboard_mpu9250_temperature:()=>Zg,sensor_pin_near:()=>LC,sensor_pin_pressed:()=>SC,sensor_read:()=>PC,sensor_rm_acc:()=>rC,sensor_rm_battery_left:()=>uC,sensor_rm_pin_near_double:()=>aC,sensor_rtc_init:()=>vg,sensor_sound:()=>bg,sensor_temperature:()=>fC});var k={};t.r(k),t.d(k,{serial_any:()=>$C,serial_begin:()=>sS,serial_print:()=>qC,serial_print_byte:()=>JC,serial_print_hex:()=>zC,serial_println:()=>QC,serial_read_from_ai:()=>IS,serial_readline:()=>tS,serial_readstr:()=>ZC,serial_readstr_until:()=>eS,serial_receive_data_event:()=>jC,serial_send_to_ai:()=>dS,serial_softserial:()=>nS,serial_softserial_new:()=>iS,system_input:()=>_S,system_print:()=>oS,system_print_container:()=>rS,system_print_end:()=>aS,system_print_inline:()=>pS,system_print_item:()=>lS,system_print_many:()=>uS});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>mS,Timer_init:()=>FS,base_delay:()=>vS,controls_delay:()=>hS,controls_delay_new:()=>MS,controls_millis:()=>OS,controls_uname:()=>cS,raw_block:()=>RS,reset:()=>ES,system_bitbot_shutdown:()=>fS,system_machine_reset:()=>DS,system_ticks_diff:()=>SS,system_timer:()=>CS,system_timer_init:()=>LS,system_wdt_feed:()=>NS,system_wdt_init:()=>AS,time_ticks_diff:()=>YS,timer:()=>gS,timer2:()=>PS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>JS,Air_now_content:()=>GS,Geo_moon_content:()=>QS,Geo_sun_content:()=>qS,Life_suggestion_content:()=>wS,Location_search_content:()=>HS,Tide_daily_content:()=>kS,WEATHER_DAILY:()=>xS,WEATHER_HOUR:()=>bS,WEATHER_NOW:()=>yS,Weather_alarm_content:()=>US,Weather_daily:()=>WS,Weather_daily_content:()=>KS,Weather_now:()=>VS,Weather_now_content:()=>BS});var K={};t.r(K),t.d(K,{PIN_init:()=>JL,actuator_extern_get_led_bright:()=>ML,actuator_extern_get_led_state:()=>hL,actuator_extern_led_bright:()=>TL,actuator_extern_led_brightness:()=>mL,actuator_ms32006_dcmotor:()=>nL,actuator_ms32006_init:()=>iL,actuator_ms32006_stepper:()=>sL,actuator_neopixel_init:()=>EL,actuator_neopixel_rgb:()=>cL,actuator_neopixel_rgb_all:()=>OL,actuator_neopixel_write:()=>RL,actuator_use_uart_init:()=>gL,esp32_music_get_tempo_extern:()=>rL,esp32_music_pitch:()=>oL,esp32_music_pitch_init:()=>_L,esp32_music_pitch_with_time:()=>pL,esp32_music_play_list:()=>lL,esp32_music_reset_extern:()=>dL,esp32_music_set_tempo_extern:()=>uL,esp32_music_stop:()=>aL,mixbot_actuator_extern_get_addr:()=>WL,mixbot_actuator_extern_set_addr:()=>KL,mixbot_addr_extern:()=>YL,parrot_PIN_init:()=>jL,parrot_move_speed:()=>ZL,pin_led_bright:()=>qL,player_play_music:()=>NL,player_set_mode:()=>AL,player_set_play:()=>SL,player_set_volume:()=>LL,player_whether_stop:()=>CL,robot_led_extern:()=>xL,robot_led_extern_get_value:()=>bL,robot_motor_extern:()=>vL,robot_motor_extern_get_speed:()=>XL,robot_servo_extern_absolute_run:()=>UL,robot_servo_extern_get_status:()=>VL,robot_servo_extern_relative_continue:()=>HL,robot_servo_extern_relative_origin:()=>wL,robot_servo_extern_relative_run:()=>kL,robot_servo_extern_stop:()=>GL,robot_servo_extern_stop_mode:()=>BL,robot_traffic_light_extern:()=>yL,servo_PIN_init:()=>QL,servo_get_angle:()=>tL,servo_get_speed:()=>eL,servo_init:()=>zS,servo_move:()=>IL,servo_move_angle:()=>zL,servo_set_angle:()=>ZS,servo_set_speed:()=>$S,servo_speed_360:()=>jS,syn6288_builtin_voice:()=>FL,syn6288_get_voice:()=>fL,syn6288_set_voice:()=>DL,syn6288_tts_play:()=>PL});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>AA,actuator_dc_motor_stop:()=>NA,actuator_get_led_bright:()=>uA,actuator_get_led_state:()=>rA,actuator_led_bright:()=>aA,actuator_led_brightness:()=>lA,actuator_mixbot_buzzer_on_off:()=>YA,actuator_mixgo_nova_mic_get:()=>bA,actuator_mixgo_nova_mic_set:()=>xA,actuator_mixgo_nova_onboard_music_pitch:()=>kA,actuator_mixgo_nova_onboard_music_stop:()=>HA,actuator_mixgo_nova_play_audio:()=>UA,actuator_mixgo_nova_play_online_audio:()=>wA,actuator_mixgo_nova_record_audio:()=>GA,actuator_mixgo_nova_voice_get:()=>BA,actuator_mixgo_nova_voice_set:()=>VA,actuator_mixgo_zero_led_color:()=>dA,actuator_onboard_neopixel_rgb:()=>OA,actuator_onboard_neopixel_rgb_all:()=>RA,actuator_onboard_neopixel_rgb_show_all_chase:()=>cA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>gA,actuator_onboard_neopixel_write:()=>EA,actuator_stepper_keep:()=>SA,actuator_stepper_stop:()=>LA,analog_ble_keyboard_init:()=>eN,analog_ble_keyboard_input:()=>sN,analog_ble_keyboard_mouse_init:()=>dN,analog_ble_keyboard_mouse_input:()=>hN,analog_ble_keyboard_mouse_send_battery:()=>MN,analog_ble_keyboard_mouse_str:()=>mN,analog_ble_keyboard_send_battery:()=>oN,analog_ble_keyboard_str:()=>_N,analog_ble_mouse_init:()=>pN,analog_ble_mouse_input:()=>rN,analog_ble_mouse_keyboard_input:()=>EN,analog_ble_mouse_send_battery:()=>lN,analog_keyboard_input:()=>qA,analog_keyboard_str:()=>$A,analog_mouse_input:()=>jA,bitbot_motor:()=>yA,bitbot_move:()=>vA,bitbot_stop:()=>XA,ble_keyboard_connect:()=>nN,ble_keyboard_get_mac:()=>iN,ble_keyboard_mouse_connect:()=>TN,ble_keyboard_mouse_get_mac:()=>IN,ble_mouse_connect:()=>uN,ble_mouse_get_mac:()=>aN,cc_number:()=>IA,educore_ble_keyboard_input:()=>DN,educore_ble_sensor_connected:()=>NN,educore_ble_sensor_init:()=>AN,educore_buzzer:()=>ON,educore_buzzer_play_tone:()=>RN,educore_buzzer_play_tone_time:()=>cN,educore_buzzer_stop:()=>gN,educore_neopixel_clear:()=>LN,educore_neopixel_rgb:()=>SN,educore_rgb_light:()=>CN,esp32_music_get_tempo:()=>tA,esp32_music_reset:()=>_A,esp32_music_set_tempo:()=>$L,esp32_onboard_music_pitch:()=>eA,esp32_onboard_music_pitch_with_time:()=>iA,esp32_onboard_music_play_list:()=>sA,esp32_onboard_music_stop:()=>nA,general_key:()=>zA,general_key_tuple:()=>tN,get_power_output:()=>KA,ledswitch:()=>pA,mixbot_motor:()=>PA,mixbot_motor_status:()=>DA,mixbot_move:()=>fA,mixbot_stop:()=>FA,mouse_key:()=>ZA,number:()=>oA,rm_actuator_get_led_bright:()=>MA,rm_actuator_get_led_state:()=>hA,rm_actuator_led_bright:()=>TA,rm_actuator_led_brightness:()=>mA,rm_motor:()=>CA,set_all_power_output:()=>JA,set_power_output:()=>WA,special_key:()=>QA});var q={};t.r(q),t.d(q,{ai_sensor_20object:()=>pD,ai_sensor_ailocal_class:()=>zN,ai_sensor_ailocal_class_result:()=>jN,ai_sensor_ailocal_train:()=>QN,ai_sensor_asr_recognize:()=>iD,ai_sensor_audio_play:()=>$N,ai_sensor_audio_record:()=>ZN,ai_sensor_barcode:()=>yN,ai_sensor_circle:()=>UN,ai_sensor_classifier_faces:()=>oD,ai_sensor_color:()=>WN,ai_sensor_color_chases:()=>qN,ai_sensor_color_chases_result:()=>JN,ai_sensor_config:()=>PN,ai_sensor_face:()=>_D,ai_sensor_find_20objects:()=>aD,ai_sensor_find_barcodes:()=>xN,ai_sensor_find_circles:()=>wN,ai_sensor_find_colors:()=>KN,ai_sensor_find_licenseplates:()=>sD,ai_sensor_find_lines:()=>GN,ai_sensor_find_qrcodes:()=>XN,ai_sensor_find_rects:()=>HN,ai_sensor_find_tags:()=>VN,ai_sensor_licenseplate:()=>nD,ai_sensor_line:()=>BN,ai_sensor_qrcode:()=>vN,ai_sensor_qrcode_lite:()=>FN,ai_sensor_rect:()=>kN,ai_sensor_rgb:()=>YN,ai_sensor_tag:()=>bN,ai_sensor_use_uart_init:()=>fN,ai_sensor_yolo_recognize:()=>tD,ai_sensor_yolo_recognize_result:()=>eD});var Q={};t.r(Q),t.d(Q,{MICROPYTHON_AI_Speech_asr:()=>lD,MICROPYTHON_AI_Speech_unit:()=>rD,MICROPYTHON_AI_client:()=>uD});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>CD,mpython_blynk_app_notify:()=>ED,mpython_blynk_email:()=>SD,mpython_blynk_get_timers:()=>RD,mpython_blynk_on_connected:()=>MD,mpython_blynk_on_disconnected:()=>TD,mpython_blynk_run:()=>mD,mpython_blynk_sensor_data_to_app:()=>gD,mpython_blynk_set_property:()=>LD,mpython_blynk_setup:()=>AD,mpython_blynk_stop_timers:()=>OD,mpython_blynk_sync_virtual:()=>ID,mpython_blynk_terminal_widget_vpin:()=>dD,mpython_blynktimer:()=>cD,mpython_blynktimer_run:()=>hD});var j={};t.r(j),t.d(j,{cc_g1_read_bat:()=>ND,cc_g1_read_joystick:()=>DD,cc_g1_read_key:()=>fD,cc_g1_turnoff:()=>FD});var Z={};t.r(Z),t.d(Z,{ce_go_dc_motor:()=>VD,ce_go_get_led_bright:()=>vD,ce_go_get_led_state:()=>XD,ce_go_hall_attachInterrupt:()=>BD,ce_go_hall_data:()=>UD,ce_go_hall_initialize:()=>GD,ce_go_led_bright:()=>YD,ce_go_led_brightness:()=>yD,ce_go_light_number:()=>PD,ce_go_pin_light:()=>KD,ce_go_pin_near:()=>kD,ce_go_pin_near_line:()=>wD,ce_go_pin_near_state_change:()=>HD,ce_go_stepper_keep:()=>xD,ce_go_stepper_stop:()=>bD,educore_car:()=>JD,educore_car_pin_near:()=>jD,educore_car_pin_near_line:()=>zD,educore_car_stepper_keep:()=>qD,educore_car_stepper_stop:()=>QD,sensor_mixgome_eulerangles:()=>WD});var $={};t.r($),t.d($,{communicate_bluetooth_central_init:()=>vf,communicate_bluetooth_connect:()=>xf,communicate_bluetooth_disconnect:()=>bf,communicate_bluetooth_handle:()=>kf,communicate_bluetooth_is_connected:()=>Bf,communicate_bluetooth_mac:()=>Vf,communicate_bluetooth_peripheral_init:()=>Xf,communicate_bluetooth_recv:()=>wf,communicate_bluetooth_recv_only:()=>Uf,communicate_bluetooth_scan:()=>yf,communicate_bluetooth_send:()=>Gf,communicate_espnow_init:()=>Hf,communicate_espnow_init_new:()=>Wf,communicate_i2c_available:()=>of,communicate_i2c_init:()=>tf,communicate_i2c_master_read:()=>_f,communicate_i2c_onboard:()=>ZD,communicate_i2c_read:()=>ef,communicate_i2c_scan:()=>sf,communicate_i2c_write:()=>nf,communicate_ir_recv_init:()=>Cf,communicate_ir_send_init:()=>Df,communicate_ow_init:()=>mf,communicate_ow_read:()=>Rf,communicate_ow_reset:()=>Of,communicate_ow_scan:()=>Ef,communicate_ow_select:()=>gf,communicate_ow_write:()=>cf,communicate_spi_buffer:()=>rf,communicate_spi_init:()=>af,communicate_spi_onboard:()=>$D,communicate_spi_read:()=>lf,communicate_spi_read_output:()=>df,communicate_spi_readinto:()=>If,communicate_spi_readinto_output:()=>Tf,communicate_spi_set:()=>uf,communicate_spi_write:()=>Mf,communicate_spi_write_readinto:()=>hf,espnow_radio_channel:()=>jf,espnow_radio_channel_new:()=>$f,espnow_radio_on_off:()=>tF,espnow_radio_rec:()=>iF,espnow_radio_recv:()=>sF,espnow_radio_recv_certain_msg:()=>_F,espnow_radio_recv_certain_msg_new:()=>pF,espnow_radio_recv_msg:()=>nF,espnow_radio_recv_new:()=>oF,espnow_radio_send:()=>eF,espnow_radio_txpower:()=>Zf,i2c_slave_onreceive:()=>pf,internal_variable:()=>Sf,ir_recv_timeout:()=>Nf,ir_transmit_busy:()=>Yf,ir_transmit_conventional_data:()=>ff,ir_transmit_raw_code:()=>Pf,ir_transmit_study_code:()=>Ff,ir_whether_recv:()=>Af,lora_init:()=>aF,lora_packet:()=>uF,lora_recv:()=>lF,lora_send:()=>rF,network_espnow_info:()=>Jf,network_espnow_mac:()=>Kf,network_espnow_recv:()=>qf,network_espnow_recv_handle:()=>zf,network_espnow_send:()=>Qf,recv_fun:()=>Lf,urequests_attribute:()=>IF,urequests_get:()=>dF,urequests_method:()=>TF});var tt={};t.r(tt),t.d(tt,{display_animate:()=>BF,display_circle:()=>GF,display_color_seclet:()=>jF,display_draw_4strings:()=>YF,display_fill:()=>VF,display_lcd_use_i2c_init:()=>nP,display_line:()=>yF,display_line_arbitrarily:()=>vF,display_matrix_extern_bright_point:()=>LF,display_matrix_extern_bright_screen:()=>NF,display_matrix_extern_clear:()=>gF,display_matrix_extern_get_pixel:()=>SF,display_matrix_extern_get_screen_pixel:()=>AF,display_matrix_extern_image_builtins:()=>DF,display_matrix_extern_scroll_string:()=>RF,display_matrix_extern_scroll_string_delay:()=>cF,display_matrix_extern_shift:()=>CF,display_matrix_extern_show_frame_string:()=>EF,display_matrix_extern_show_frame_string_delay:()=>OF,display_matrix_extern_show_image:()=>hF,display_matrix_extern_show_image_or_string_delay:()=>mF,display_matrix_use_i2c_init:()=>MF,display_oled_drawPixel:()=>kF,display_oled_showBitmap:()=>wF,display_oled_use_i2c_init:()=>aP,display_onoff:()=>xF,display_rect:()=>XF,display_tm1650_power:()=>WF,display_tm1650_set_brightness:()=>qF,display_tm1650_show_dot:()=>JF,display_tm1650_show_num:()=>KF,display_tm_use_i2c_init:()=>HF,display_triangle:()=>UF,display_use_i2c_init:()=>PF,extern_oled_bright_point:()=>RP,extern_oled_clear:()=>mP,extern_oled_get_pixel:()=>OP,extern_oled_hvline:()=>gP,extern_oled_line:()=>CP,extern_oled_scroll_string:()=>MP,extern_oled_scroll_string_delay:()=>hP,extern_oled_shape_rect:()=>cP,extern_oled_shift:()=>EP,extern_oled_show_frame_string:()=>IP,extern_oled_show_frame_string_delay:()=>TP,extern_oled_show_image:()=>uP,extern_oled_show_image_or_string_delay:()=>dP,extern_oled_show_image_xy:()=>rP,extern_oled_show_string:()=>lP,image_shift:()=>bF,lcd_backlight:()=>oP,lcd_clear:()=>pP,lcd_print_string:()=>_P,lcd_show_image_or_string_delay:()=>sP,matrix_extern_image_arithmetic:()=>fF,matrix_extern_image_invert:()=>FF,tft_fill:()=>eP,tft_line_arbitrarily:()=>iP,tft_scroll_string_delay:()=>tP,tft_show_frame_string_delay:()=>$F,tft_show_image_or_string_delay:()=>ZF,tft_show_image_xy:()=>zF,tft_use_spi_init:()=>QF});var et={};t.r(et),t.d(et,{bitbot_display_image_create:()=>pY,display_bright_point:()=>VP,display_bright_screen:()=>GP,display_clear:()=>vP,display_get_pixel:()=>bP,display_get_screen_pixel:()=>BP,display_image_builtins:()=>FP,display_image_builtins_all:()=>PP,display_image_create:()=>YP,display_scroll_string:()=>DP,display_scroll_string_delay:()=>fP,display_shift:()=>xP,display_show_frame_string:()=>AP,display_show_frame_string_delay:()=>NP,display_show_image:()=>SP,display_show_image_or_string_delay:()=>LP,draw_pointer:()=>PY,image_arithmetic:()=>XP,image_invert:()=>yP,mixbot_display_bright_screen:()=>_Y,mixbot_display_get_ambientbright:()=>sY,mixbot_display_get_screen_pixel:()=>nY,mixbot_display_image_create:()=>iY,mixbot_display_rotate:()=>oY,mixgo_display_image_create_new:()=>HP,mixgome_display_font:()=>kP,mixgome_display_image_create:()=>UP,mixgomini_display_image_create:()=>wP,mpython_display_hvline:()=>tY,mpython_display_line:()=>eY,mpython_display_shape_rect:()=>$P,mpython_pbm_image:()=>WP,onboard_oled_bright_point:()=>ZP,onboard_oled_scroll_string_delay:()=>jP,onboard_oled_show_frame_string_delay:()=>zP,onboard_oled_show_image:()=>KP,onboard_oled_show_image_or_string_delay:()=>QP,onboard_oled_show_image_xy:()=>JP,onboard_oled_show_string:()=>qP,onboard_tft_bright_point:()=>cY,onboard_tft_bright_screen:()=>CY,onboard_tft_clear:()=>EY,onboard_tft_clock_clear:()=>fY,onboard_tft_clock_draw:()=>DY,onboard_tft_clock_get_rtctime:()=>AY,onboard_tft_clock_init:()=>LY,onboard_tft_clock_set_time:()=>NY,onboard_tft_display_hvline:()=>hY,onboard_tft_display_line:()=>mY,onboard_tft_display_shape_circle:()=>FY,onboard_tft_display_shape_rect:()=>MY,onboard_tft_fill:()=>SY,onboard_tft_get_pixel:()=>RY,onboard_tft_get_screen_pixel:()=>gY,onboard_tft_scroll_string:()=>IY,onboard_tft_scroll_string_delay:()=>TY,onboard_tft_shift:()=>OY,onboard_tft_show_frame_string:()=>lY,onboard_tft_show_frame_string_delay:()=>dY,onboard_tft_show_image:()=>aY,onboard_tft_show_image_or_string_delay:()=>rY,onboard_tft_show_image_xy:()=>uY});var it={};t.r(it),t.d(it,{factory_block:()=>BY,factory_block_return:()=>GY,factory_block_return_with_textarea:()=>wY,factory_block_with_textarea:()=>UY,factory_callMethod_noreturn:()=>bY,factory_callMethod_return:()=>VY,factory_declare:()=>xY,factory_from_import:()=>YY,factory_function_noreturn:()=>XY,factory_function_return:()=>yY,factory_import:()=>vY,folding_block:()=>kY});var nt={};t.r(nt),t.d(nt,{inout_analog_atten:()=>sv,inout_analog_read:()=>jY,inout_analog_read_init:()=>nv,inout_analog_write:()=>qY,inout_analog_write_init:()=>iv,inout_analog_write_set:()=>QY,inout_digital_init:()=>tv,inout_digital_read:()=>KY,inout_digital_write:()=>WY,inout_highlow:()=>HY,inout_pin_attachInterrupt:()=>$Y,inout_pin_pressed:()=>ZY,inout_pin_pressed_init:()=>_v,inout_pwm_analog_write:()=>JY,inout_pwm_analog_write_init:()=>ev,inout_pwm_analog_write_set_freq:()=>zY});var st={};t.r(st),t.d(st,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Sv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>gv,IOT_EMQX_PING:()=>Lv,IOT_FORMATTING:()=>Rv,IOT_FORMAT_STRING:()=>cv,IOT_MIXIO_NTP:()=>Av,IOT_MIXIO_PUBLISH:()=>Iv,IOT_MIXIO_SUBSCRIBE:()=>Tv,iot_client_onboard:()=>Nv,iot_http_client:()=>Dv,iot_http_data:()=>fv,iot_mixio_check:()=>mv,iot_mixio_connect:()=>dv,iot_mixio_connect_only:()=>hv,iot_mixio_disconnect:()=>Mv,iot_mixio_format_msg:()=>Ov,iot_mixio_format_topic:()=>Ev,iot_mixly_key:()=>Cv,iot_mqtt_client:()=>Fv,iot_mqtt_data:()=>Pv,iot_onenet_check:()=>rv,iot_onenet_connect:()=>pv,iot_onenet_disconnect:()=>av,iot_onenet_publish:()=>lv,iot_onenet_publish_dict:()=>uv,iot_wifi_connect:()=>ov});var _t={};t.r(_t),t.d(_t,{educore_mqtt_connect:()=>aX,educore_mqtt_connect_success:()=>dX,educore_mqtt_subscribe_message:()=>uX,educore_mqtt_topic_publish:()=>lX,educore_mqtt_topic_subscribe:()=>rX,educore_wifi_connect:()=>pX,network_ap_connect:()=>Gv,network_connect:()=>vv,network_get_connect:()=>yv,network_get_wifi:()=>Bv,network_init:()=>Yv,network_is_active:()=>Vv,network_open:()=>bv,network_scan:()=>Uv,network_server:()=>wv,network_socket_accept:()=>Jv,network_socket_bind:()=>Hv,network_socket_close:()=>Zv,network_socket_connect:()=>Wv,network_socket_init:()=>kv,network_socket_listen:()=>Kv,network_socket_receive:()=>qv,network_socket_receive_from:()=>zv,network_socket_send:()=>Qv,network_socket_send_to:()=>jv,network_stop:()=>xv,network_wifi_connect:()=>Xv,ntptime_address:()=>nX,ntptime_time:()=>iX,requests_attribute:()=>tX,requests_attribute2:()=>_X,requests_get:()=>$v,requests_get2:()=>sX,requests_method:()=>eX,requests_post:()=>oX});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>yX,CI130X_GET_THE_RECOGNIZED_CMD:()=>XX,CI130X_GET_WHETHER_IDENTIFY:()=>vX,CI130X_IDENTIFY_AND_SAVE:()=>YX,CI130X_SET_SYSTEM_CMD:()=>xX,HCSR04:()=>dy,PS2_Button:()=>My,PS2_Buttons:()=>hy,PS2_Buttons_new:()=>Sy,PS2_State:()=>my,PS2_init:()=>Iy,PS2_init_new:()=>gy,PS2_stk:()=>Ey,PS2_stk_new:()=>Ly,PS2_vibration:()=>Ty,PS2_vibration_new:()=>Cy,RTC_get_time:()=>Ry,RTC_set_date:()=>RX,RTC_set_datetime:()=>Oy,RTC_set_time:()=>OX,camera_sensor_init:()=>ex,camera_sensor_result:()=>ix,educore_body_sensor:()=>Wy,educore_button_sensor_extern:()=>Qy,educore_camera_sensor:()=>tx,educore_infrared_sensor:()=>qy,educore_soilhum_sensor:()=>Ky,educore_temp_sensor:()=>$y,educore_temphum_sensor:()=>Jy,educore_ultrasonic_sensor:()=>jy,esp32_s2_weather_init:()=>ay,esp32_s2_weather_rain:()=>ry,esp32_s2_weather_wd:()=>uy,esp32_s2_weather_ws:()=>ly,extern_rfid_read:()=>zX,extern_rfid_readcontent:()=>ZX,extern_rfid_readid:()=>jX,extern_rfid_status:()=>ey,extern_rfid_write:()=>$X,extern_rfid_write_return:()=>ty,gnss_get_data:()=>Dy,gnss_have_data:()=>fy,interaction_whether_to_interaction:()=>FX,interaction_whether_to_interaction_SANT:()=>PX,mixbot_sensor_extern_get_addr:()=>Vy,mixbot_sensor_extern_set_addr:()=>By,pm25_get_data:()=>Ny,radar_set_DETECTION_THRESHOLD:()=>DX,radar_set_DETECTION_THRESHOLD_SANT:()=>fX,robot_button_extern_get_value:()=>Fy,robot_color_extern_get_value:()=>yy,robot_infrared_extern_get_value:()=>Yy,robot_infrared_extern_grey_get_value:()=>vy,robot_potentiometer_extern_get_value:()=>Xy,robot_sonar_extern_get_value:()=>xy,robot_sonar_extern_led:()=>by,robot_touch_extern_get_value:()=>Py,sensor_APDS9960_extern:()=>VX,sensor_DS18X20:()=>Hy,sensor_LTR308_extern:()=>BX,sensor_LTR390UV_extern:()=>HX,sensor_MAX30102_extern:()=>bX,sensor_QMC5883L_extern:()=>WX,sensor_VL530LX_extern:()=>qX,sensor_aht11_extern:()=>JX,sensor_bmp:()=>LX,sensor_dht11:()=>cy,sensor_distance_hrsc04:()=>EX,sensor_hp203_extern:()=>GX,sensor_ltr381_extern:()=>wX,sensor_mixgo_extern_button_attachInterrupt:()=>hX,sensor_mixgo_extern_button_get_presses:()=>MX,sensor_mixgo_extern_button_is_pressed:()=>IX,sensor_mixgo_extern_button_was_pressed:()=>TX,sensor_mixgo_extern_light:()=>cX,sensor_mixgo_extern_pin_near:()=>CX,sensor_mixgo_extern_sound:()=>gX,sensor_mixgoce_hot_wheel_degrees:()=>py,sensor_mixgoce_hot_wheel_is_touched:()=>oy,sensor_mpu9250_attachGestureInterrupt:()=>mX,sensor_read_humiture:()=>zy,sensor_rtc_init:()=>SX,sensor_sht:()=>AX,sensor_shtc3_extern:()=>KX,sensor_spl06_001_extern:()=>UX,sensor_ucs12071_extern:()=>kX,sensor_use_i2c_init:()=>NX,sensor_use_spi_init:()=>QX,sensor_use_uart_init:()=>Ay,sensor_weather_solo_init:()=>Gy,sensor_weather_solo_rain:()=>ky,sensor_weather_solo_wd:()=>Uy,sensor_weather_solo_ws:()=>wy,sensor_weigh_init:()=>nx,ultrasonic_sensor_read_distance:()=>Zy,weather_data:()=>iy,weather_have_data:()=>ny,weather_set_label:()=>_y,weather_uart_mixio:()=>sy,weigh_sensor_get_weight:()=>sx});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>nV,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>iV,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>eV,CI130X_IDENTIFY_AND_SAVE_SANT:()=>tV,CI130X_SET_SYSTEM_CMD_SANT:()=>sV,HCSR04:()=>Ix,bitbot_als_num:()=>Xb,dht11:()=>wb,educore_button_sensor:()=>Qb,educore_button_was_pressed:()=>zb,educore_gyroscope_sensor:()=>Kb,educore_gyroscope_sensor_read:()=>Jb,educore_gyroscope_sensor_shake:()=>qb,educore_light_sensor:()=>Wb,educore_rfid_sensor:()=>jb,educore_rfid_sensor_scan:()=>Zb,educore_rfid_sensor_scan_data:()=>$b,educore_voice_sensor:()=>kb,number1:()=>Tx,number2:()=>Mx,number3:()=>hx,number4:()=>mx,number5:()=>Ex,number6:()=>Ox,number7:()=>Rx,onboard_RTC_get_time:()=>rb,onboard_RTC_get_time_str:()=>Ib,onboard_RTC_get_timestamp:()=>lb,onboard_RTC_get_timetuple_to_str:()=>Tb,onboard_RTC_set_datetime:()=>ab,onboard_RTC_settime_string:()=>ub,onboard_RTC_timestamp_totuple:()=>db,rfid_readcontent:()=>xx,rfid_readid:()=>yx,rfid_write:()=>bx,rfid_write_return:()=>Vx,sensor_LTR308:()=>Fx,sensor_adxl345_get_acceleration:()=>Jx,sensor_aht11:()=>vx,sensor_bitbot_ALS:()=>vb,sensor_button_get_presses:()=>bb,sensor_button_is_pressed:()=>yb,sensor_button_was_pressed:()=>xb,sensor_compass_reset:()=>$x,sensor_ds18x20:()=>Dx,sensor_eulerangles:()=>Gx,sensor_get_acceleration:()=>Bx,sensor_get_temperature:()=>Xx,sensor_hp203:()=>Yx,sensor_light:()=>Ub,sensor_lm35:()=>fx,sensor_mixbot_get_gyro:()=>Yb,sensor_mixbot_patrol_calibrate:()=>fb,sensor_mixbot_patrol_value:()=>Fb,sensor_mixbot_temperature:()=>Pb,sensor_mixgo_LTR308:()=>Lx,sensor_mixgo_button_attachInterrupt:()=>ax,sensor_mixgo_button_get_presses:()=>px,sensor_mixgo_button_is_pressed:()=>_x,sensor_mixgo_button_was_pressed:()=>ox,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>mb,sensor_mixgo_cc_mmc5603_get_angle:()=>hb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Mb,sensor_mixgo_light:()=>Gb,sensor_mixgo_nova_LTR308:()=>Nx,sensor_mixgo_nova_pin_near:()=>Sx,sensor_mixgo_pin_near:()=>Cx,sensor_mixgo_pin_near_double:()=>gx,sensor_mixgo_pin_near_single:()=>cx,sensor_mixgo_pin_pressed:()=>Wx,sensor_mixgo_sant_color:()=>Ax,sensor_mixgo_touch_slide:()=>Hx,sensor_mixgocar42_button_attachInterrupt:()=>dx,sensor_mixgocar42_button_get_presses:()=>lx,sensor_mixgocar42_button_is_pressed:()=>ux,sensor_mixgocar42_button_was_pressed:()=>rx,sensor_mixgocar_battery_left:()=>Db,sensor_mixgocar_pin_near:()=>Ab,sensor_mixgocar_pin_near_line:()=>Lb,sensor_mixgocar_pin_near_state_change:()=>Nb,sensor_mixgoce_pin_pressed:()=>kx,sensor_mixgoce_temperature:()=>Ob,sensor_mixgome_temperature:()=>Eb,sensor_mpu9250_calibrate_compass:()=>zx,sensor_mpu9250_field_strength:()=>Zx,sensor_mpu9250_gesture:()=>Ux,sensor_mpu9250_get_acceleration:()=>wx,sensor_mpu9250_get_gyro:()=>Qx,sensor_mpu9250_get_magnetic:()=>qx,sensor_mpu9250_temperature:()=>jx,sensor_mpython_pin_pressed:()=>Kx,sensor_mpython_qmi8658_get_gyro:()=>Rb,sensor_mpython_qmi8658_temperature:()=>cb,sensor_onboard_compass_reset:()=>pb,sensor_onboard_mpu9250_calibrate_compass:()=>sb,sensor_onboard_mpu9250_field_strength:()=>ob,sensor_onboard_mpu9250_gesture:()=>tb,sensor_onboard_mpu9250_get_acceleration:()=>eb,sensor_onboard_mpu9250_get_gyro:()=>nb,sensor_onboard_mpu9250_get_magnetic:()=>ib,sensor_onboard_mpu9250_temperature:()=>_b,sensor_pin_near:()=>Bb,sensor_pin_pressed:()=>Vb,sensor_read:()=>Hb,sensor_rm_acc:()=>Sb,sensor_rm_battery_left:()=>Cb,sensor_rm_pin_near_double:()=>gb,sensor_sound:()=>Px});var at={};t.r(at),t.d(at,{serial_any:()=>uV,serial_print:()=>_V,serial_print_byte:()=>oV,serial_print_hex:()=>aV,serial_println:()=>pV,serial_read_from_ai:()=>RV,serial_readline:()=>lV,serial_readstr:()=>rV,serial_send_to_ai:()=>OV,serial_softserial:()=>dV,serial_softserial_new:()=>IV,system_input:()=>TV,system_print:()=>MV,system_print_end:()=>mV,system_print_inline:()=>hV,system_print_many:()=>EV});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>YV,Timer_init:()=>JV,base_delay:()=>zV,controls_delay:()=>bV,controls_delay_new:()=>VV,controls_end_program:()=>XV,controls_millis:()=>vV,controls_uname:()=>xV,reset:()=>yV,system_bitbot_shutdown:()=>KV,system_device_name:()=>FV,system_device_serial_number:()=>PV,system_event_bus_source:()=>DV,system_event_bus_value:()=>fV,system_machine_reset:()=>WV,system_on_event:()=>LV,system_raise_event:()=>SV,system_reset:()=>gV,system_run_in_background:()=>cV,system_ticks_diff:()=>UV,system_timer:()=>GV,system_timer_init:()=>wV,system_timestamp:()=>AV,system_value:()=>NV,system_wait:()=>CV,system_wdt_feed:()=>HV,system_wdt_init:()=>kV,time_ticks_diff:()=>QV,timer:()=>BV,timer2:()=>qV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>uB,Air_now_content:()=>iB,Geo_moon_content:()=>lB,Geo_sun_content:()=>rB,Life_suggestion_content:()=>sB,Location_search_content:()=>oB,Tide_daily_content:()=>_B,WEATHER_DAILY:()=>ZV,WEATHER_HOUR:()=>$V,WEATHER_NOW:()=>jV,Weather_alarm_content:()=>nB,Weather_daily:()=>pB,Weather_daily_content:()=>aB,Weather_now:()=>tB,Weather_now_content:()=>eB});var lt={};t.r(lt),t.d(lt,{controls_pin_attachInterrupt:()=>FB,inout_analog_atten:()=>RB,inout_analog_write:()=>EB,inout_analog_write_init:()=>SB,inout_analog_write_set:()=>OB,inout_analog_write_set_freq:()=>AB,inout_digital_init:()=>CB,inout_digital_read:()=>mB,inout_digital_write:()=>hB,inout_highlow:()=>MB,inout_pinMode:()=>NB,inout_pin_attachInterrupt:()=>gB,inout_pin_pressed:()=>cB,inout_pin_pressed_init:()=>LB,pin_pressed:()=>fB,pin_pressed_init:()=>DB});var dt={};t.r(dt),t.d(dt,{mini_g2_aht11:()=>YB,mini_g2_hp203:()=>vB,mini_g2_rfid_readcontent:()=>xB,mini_g2_rfid_readid:()=>yB,mini_g2_rfid_status:()=>BB,mini_g2_rfid_write:()=>bB,mini_g2_rfid_write_outcome:()=>VB,mini_g2_varistor:()=>XB});var It={};t.r(It),t.d(It,{me_go_dc_motor:()=>qB,me_go_get_led_bright:()=>kB,me_go_get_led_state:()=>HB,me_go_hall_attachInterrupt:()=>QB,me_go_hall_data:()=>jB,me_go_hall_initialize:()=>zB,me_go_led_bright:()=>wB,me_go_led_brightness:()=>WB,me_go_light_number:()=>UB,me_go_pin_light:()=>iG,me_go_pin_near:()=>$B,me_go_pin_near_line:()=>ZB,me_go_pin_near_state_change:()=>tG,me_go_stepper_keep:()=>KB,me_go_stepper_stop:()=>JB,sensor_mixgome_eulerangles:()=>eG});var Tt={};t.r(Tt),t.d(Tt,{analog_input:()=>lG,analog_output:()=>IG,espnow_channel:()=>aG,haskylens_model:()=>uG,i2c_A_pin:()=>TG,i2c_B_pin:()=>MG,pins_analog:()=>RG,pins_analog_pin:()=>cG,pins_axis:()=>VG,pins_brightness:()=>BG,pins_builtinimg:()=>PG,pins_builtinimg_extern:()=>YG,pins_button:()=>SG,pins_buttonB:()=>LG,pins_dac:()=>gG,pins_dac_pin:()=>CG,pins_digital:()=>sG,pins_digital_dot:()=>JG,pins_digital_pin:()=>_G,pins_exlcdh:()=>xG,pins_exlcdv:()=>bG,pins_imglist:()=>vG,pins_input_pin:()=>oG,pins_one_more:()=>KG,pins_output_pin:()=>pG,pins_playlist:()=>XG,pins_playlist_extern:()=>yG,pins_pwm:()=>AG,pins_pwm_pin:()=>NG,pins_radio_datarate:()=>WG,pins_radio_power:()=>HG,pins_serial:()=>FG,pins_tone_notes:()=>kG,pins_touch:()=>fG,pins_touch_pin:()=>DG,pins_tts_bgmusic:()=>wG,pins_tts_builtin_music:()=>UG,pins_tts_voice:()=>GG,pwm_input:()=>rG,pwm_output:()=>dG,spi_A_pin:()=>hG,spi_B_pin:()=>mG,spi_C_pin:()=>EG,spi_D_pin:()=>OG});var Mt={};t.r(Mt),t.d(Mt,{inout_analog_atten:()=>nU,inout_analog_write:()=>jG,inout_analog_write_init:()=>iU,inout_analog_write_set:()=>ZG,inout_digital_init:()=>eU,inout_digital_read:()=>zG,inout_digital_write:()=>QG,inout_highlow:()=>qG,inout_pin_attachInterrupt:()=>tU,inout_pin_pressed:()=>$G,inout_pin_pressed_init:()=>sU});var ht={};t.r(ht),t.d(ht,{mini_g2_aht11:()=>_U,mini_g2_hp203:()=>oU,mini_g2_rfid_readcontent:()=>uU,mini_g2_rfid_readid:()=>aU,mini_g2_rfid_status:()=>dU,mini_g2_rfid_write:()=>rU,mini_g2_rfid_write_outcome:()=>lU,mini_g2_varistor:()=>pU});var mt={};t.r(mt),t.d(mt,{me_go_dc_motor:()=>RU,me_go_get_led_bright:()=>MU,me_go_get_led_state:()=>hU,me_go_hall_attachInterrupt:()=>cU,me_go_hall_data:()=>CU,me_go_hall_initialize:()=>gU,me_go_led_bright:()=>TU,me_go_led_brightness:()=>mU,me_go_light_number:()=>IU,me_go_pin_light:()=>DU,me_go_pin_near:()=>LU,me_go_pin_near_line:()=>SU,me_go_pin_near_state_change:()=>AU,me_go_stepper_keep:()=>EU,me_go_stepper_stop:()=>OU,sensor_mixgome_eulerangles:()=>NU});var Et={};t.r(Et),t.d(Et,{analog_input:()=>VU,analog_output:()=>GU,espnow_channel:()=>xU,haskylens_model:()=>bU,i2c_A_pin:()=>UU,i2c_B_pin:()=>wU,pins_analog:()=>qU,pins_analog_pin:()=>JU,pins_axis:()=>aw,pins_brightness:()=>lw,pins_builtinimg:()=>nw,pins_builtinimg_extern:()=>sw,pins_button:()=>FU,pins_buttonB:()=>PU,pins_dac:()=>ZU,pins_dac_pin:()=>jU,pins_digital:()=>fU,pins_digital_dot:()=>Ow,pins_digital_pin:()=>YU,pins_exlcdh:()=>uw,pins_exlcdv:()=>rw,pins_imglist:()=>_w,pins_input_pin:()=>vU,pins_interrupt:()=>ew,pins_one_more:()=>Ew,pins_output_pin:()=>XU,pins_playlist:()=>ow,pins_playlist_extern:()=>pw,pins_pwm:()=>zU,pins_pwm_input:()=>yU,pins_pwm_pin:()=>QU,pins_radio_datarate:()=>mw,pins_radio_power:()=>hw,pins_serial:()=>iw,pins_tone_notes:()=>Mw,pins_touch:()=>tw,pins_touch_pin:()=>$U,pins_tts_bgmusic:()=>Tw,pins_tts_builtin_music:()=>Iw,pins_tts_voice:()=>dw,pwm_output:()=>BU,spi_A_pin:()=>kU,spi_B_pin:()=>HU,spi_C_pin:()=>WU,spi_D_pin:()=>KU});const Ot=Blockly,Rt=Mixly,ct={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},gt=ct; /** * @license * Visual Blocks Editor @@ -35450,11915 +18,4 @@ __webpack_require__.r(__webpack_exports__); * See the License for the specific language governing permissions and * limitations under the License. */ - -/** - * @fileoverview Dictionary blocks for Blockly. - * @author acbart@vt.edu (Austin Cory Bart) - */ - - -const DICTS_HUE = 345; - -const dicts_create_with = { - - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - - init: function () { - this.setColour(DICTS_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('mydict'), 'VAR') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldLabel(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_INPUT_WITH), 'TIP') - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['dicts_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_TOOLTIP); - }, - - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('dicts_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('dicts_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } - - var keyNames = []; - for (var i = 0; this.getInput('ADD' + i); i++) { - //this.getInput('VALUE' + i).removeField("KEY"+i); - keyNames.push(this.getFieldValue("KEY" + i)) - this.removeInput('ADD' + i); - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.getField('TIP').setValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_EMPTY_TITLE); - } else { - this.getField('TIP').setValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_INPUT_WITH); - for (var i = 0; i < this.itemCount_; i++) { - this.appendValueInput('ADD' + i) - .setCheck(null) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField( - new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput( - keyNames.length > i - ? keyNames[i] - : (i == 0 ? '"key"' : '"key' + (i + 1) + '"')), - 'KEY' + i) - .appendField(":") - } - } - }, getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - - - -const dicts_create_with_container = { - - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const dicts_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const dicts_keys = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_KEYS); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_KEYS_TOOLTIP); - this.setOutput(true, 'List'); - } -}; - -const dicts_get = { - init: function () { - this.setColour(DICTS_HUE); - // this.appendDummyInput("") - - // .appendField(Blockly.Msg.DICTS_GET_FROM_DICTS) - - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_GET_IN) - this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_GET_TOOLTIP); - } -}; - -const dicts_get_default = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_GET_IN) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DEFAULT_VALUE); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_GET_DEFAULT_TOOLTIP); - } -}; - -const dicts_add_or_change = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD) - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - this.appendDummyInput() - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP); - } -}; - - -const dicts_delete = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DELETE_IN) - this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DELETE_VALUE); - - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DELETE_TOOLTIP); - } -}; - - -const dicts_update = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT2') - .setCheck('Dict') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MAKE_DICT) - this.appendValueInput('DICT') - .setCheck('Dict') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_UPDATE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MID); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_UPDATE_TOOLTIP); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const dicts_clear = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_CLEAR); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CLEAR_TOOLTIP); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const dicts_items = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_ITEMS); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ITEMS_TOOLTIP); - this.setOutput(true, 'List'); - } -}; - -const dicts_values = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_VALUES); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_VALUES_TOOLTIP); - this.setOutput(true, 'List'); - } -}; - -const dicts_length = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LENGTH) - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_LENGTH_TOOLTIP); - this.setOutput(true, Number); - } -}; - -const dicts_deldict = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_DELDICT); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DEL_TOOLTIP); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const dicts_add_change_del = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - - this['MODE'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_OR_CHANGE, 'INSERT'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_DELETE_VAR, 'DELETE'] - ]; - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput('AT2') - this.appendValueInput('KEY') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - this.updateAt_(true); - this.setInputsInline(true); - this.setOutput(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - var b = this; - this.setTooltip(function () { - var e = b.getFieldValue("WHERE"), - d = ""; - switch (e) { - case "INSERT": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_TOOLTIP; - break; - case "DELETE": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DELETE_TOOLTIP; - break; - } - //if ("FROM_START" == e || "FROM_END" == e) d += " " + Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1", ONE_BASED_INDEXING ? "#1": "#0"); - return d - }) - - }, - /** - * Create XML to represent whether there are 'AT' inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - var isAt = this.getInput('AT2').type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - container.setAttribute('at2', isAt); - return container; - }, - /** - * Parse XML to restore the 'AT' inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var isAt = (xmlElement.getAttribute('at2') == 'true'); - this.updateAt_(isAt); - }, - /** - * Create or delete an input for a numeric index. - * This block has two such inputs, independant of each other. - * @param {number} n Specify first or second input (1 or 2). - * @param {boolean} isAt True if the input should exist. - * @private - * @this Blockly.Block - */ - updateAt_: function (isAt) { - // Create or delete an input for the numeric index. - // Destroy old 'AT' and 'ORDINAL' inputs. - this.removeInput('AT2'); - this.removeInput('ORDINAL', true); - // Create either a value 'AT' input or a dummy input. - if (isAt) { - this.appendValueInput('AT2').setCheck(Number); - } else { - this.appendDummyInput('AT2'); - } - var menu = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this['MODE'], - function (value) { - var newAt = (value == 'INSERT'); - // The 'isAt' variable is available due to this function being a - // closure. - if (newAt != isAt) { - var block = this.sourceBlock_; - block.updateAt_(newAt); - // This menu has been destroyed and replaced. - // Update the replacement. - block.setFieldValue(value, 'WHERE'); - return null; - } - return undefined; - }); - - this.getInput('AT2') - .appendField(menu, 'WHERE'); - - // this.moveInputBefore('AT2','LIST'); - } -}; - -const dicts_pop = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_DICT_POP) - this.appendValueInput('KEY') - this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICT_POP_TOOLTIP); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const dicts_setdefault = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict'); - this.appendValueInput('KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_SET_DEFAULT) - this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('"key"'), 'KEY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_DEFAULT_VALUE); - this.appendValueInput('VAR') - - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_SETDEFAULT_TOOLTIP); - } -}; - -const dicts_create_with_noreturn = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(DICTS_HUE); - this.appendDummyInput("") - // .appendField(new Blockly.FieldTextInput('mydict'), 'VAR') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldLabel(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT), 'TIP') - .appendField(' ') - this.itemCount_ = 3; - this.updateShape_(); - this.setOutput(true, "Dict") - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['dicts_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_CREATE_WITH_TOOLTIP); - }, - - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('dicts_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('dicts_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } - - var keyNames = []; - for (var i = 0; this.getInput('ADD' + i); i++) { - //this.getInput('VALUE' + i).removeField("KEY"+i); - keyNames.push(this.getFieldValue("KEY" + i)) - this.removeInput('ADD' + i); - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.getField('TIP').setValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT); - } else { - this.getField('TIP').setValue(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT); - for (var i = 0; i < this.itemCount_; i++) { - this.appendValueInput('ADD' + i) - .setCheck(null) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField( - new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput( - keyNames.length > i - ? keyNames[i] - : (i == 0 ? '"key"' : '"key' + (i + 1) + '"')), - 'KEY' + i) - .appendField(":") - } - - } - }, getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const dicts_todict = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TODICT); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TODICT); - } -}; - -const dicts_to_json = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_JSON); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_JSON_TOOLTIP); - this.setOutput(true); - } -}; - -const json_to_dicts = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('VAR'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONVERT_TO_JSON); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP); - this.setOutput(true); - } -}; - -const dicts_to_to ={ - init:function(){ - this.setColour(DICTS_HUE); - this.appendValueInput('DICT') - .setCheck('Dict'); - this.appendValueInput('VAR1') - .appendField('key1'); - this.appendValueInput('VAR2') - .appendField('index'); - this.appendValueInput('VAR3') - .appendField('key2'); - this.appendValueInput('VAR4') - .appendField('key3'); - this.setInputsInline(true) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP); - this.setOutput(true); - } -} - -const dicts_to_json2 = { - init: function () { - this.setColour(DICTS_HUE); - this.appendValueInput('DICT'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_JSON); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_JSON_TOOLTIP); - this.setOutput(true); - } -}; - -/***/ }), - -/***/ "../python/blocks/html.js": -/*!********************************!*\ - !*** ../python/blocks/html.js ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ html_content: () => (/* binding */ html_content), -/* harmony export */ html_content_more: () => (/* binding */ html_content_more), -/* harmony export */ html_document: () => (/* binding */ html_document), -/* harmony export */ html_form: () => (/* binding */ html_form), -/* harmony export */ html_head_body: () => (/* binding */ html_head_body), -/* harmony export */ html_style: () => (/* binding */ html_style), -/* harmony export */ html_style_color: () => (/* binding */ html_style_color), -/* harmony export */ html_style_content: () => (/* binding */ html_style_content), -/* harmony export */ html_text: () => (/* binding */ html_text), -/* harmony export */ html_title: () => (/* binding */ html_title) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const HTML_HUE = '#1ec1e4'; - -const html_document = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_DOCUMENT); - this.appendStatementInput('HEAD') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_HEAD); - this.appendStatementInput('BODY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BODY); - this.setOutput(true); - } -}; - -const html_title = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_LEVEL) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([["1", "1"], ["2", "2"], ["3", "3"], ["4", "4"], ["5", "5"], ["6", "6"]]), 'LEVEL'); - this.appendStatementInput('DO') - .appendField(''); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_head_body = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_HEAD, "head"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BODY, "body"] - ]), 'LEVEL'); - this.appendStatementInput('DO') - .appendField(''); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_content = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_P, "p"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SPAN, "span"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_FORM, "form"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_TABLE, "table"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_LINE, "tr"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_CELL, "td"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_OL, "ol"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_UL, "ul"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_LI, "li"] - ]), 'LEVEL') - // this.appendValueInput('style') - // .appendField(Blockly.Msg.MIXLY_AIP_ATTR) - // .setAlign(Blockly.inputs.Align.RIGHT); - this.appendStatementInput('DO') - .appendField(''); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_content_more = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField('<') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('tag'), "LEVEL") - .appendField('>') - this.appendValueInput('style') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIP_ATTR) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.appendStatementInput('DO') - .appendField(''); - this.setInputsInline(false); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_style = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_STYLE) - this.appendStatementInput('STYLE'); - this.setOutput(true); - } -}; - -const html_form = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_FORM_CONTENT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_TEXT, "text"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_EMAIL, "email"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NUMBER, "number"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_PASSWORD, "password"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_CHECKBOX, "checkbox"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_RADIOBUTTON, "radiobutton"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_BUTTON, "button"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_COLOUR, "colour"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_DATE, "date"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_LOCALTIME, "local time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_FILE, "file"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_HIDDEN, "hidden"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_IMAGE, "image"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_MONTH, "month"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_RANGE, "range"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_RESET, "reset"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SEARCH, "search"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_SUBMIT, "submit"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_TELEPHONENUMBER, "telephone number"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_TIME, "time"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_URL, "url"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_WEEK, "week"] - ]), 'LEVEL') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_NAME) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('car'), "NAME") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_VALUE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('go'), "VALUE") - this.appendValueInput('style') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AIP_ATTR) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_style_content = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('property'), "KEY") - .appendField(':') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('value'), "VALUE") - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_style_color = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('property'), "KEY") - .appendField(':') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldColour("#ff0000"), "RGB_LED_COLOR"); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const html_text = { - init: function () { - this.setColour(HTML_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_TEXT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('text'), "TEXT"); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -/***/ }), - -/***/ "../python/blocks/lists.js": -/*!*********************************!*\ - !*** ../python/blocks/lists.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ENUMERATE: () => (/* binding */ ENUMERATE), -/* harmony export */ content_in_lists: () => (/* binding */ content_in_lists), -/* harmony export */ enumerate: () => (/* binding */ enumerate), -/* harmony export */ list_many_input: () => (/* binding */ list_many_input), -/* harmony export */ list_tolist: () => (/* binding */ list_tolist), -/* harmony export */ list_tolist2: () => (/* binding */ list_tolist2), -/* harmony export */ list_trig: () => (/* binding */ list_trig), -/* harmony export */ lists_2d_get_col_row_data: () => (/* binding */ lists_2d_get_col_row_data), -/* harmony export */ lists_2d_get_data_with_col_row: () => (/* binding */ lists_2d_get_data_with_col_row), -/* harmony export */ lists_append_extend: () => (/* binding */ lists_append_extend), -/* harmony export */ lists_change_to: () => (/* binding */ lists_change_to), -/* harmony export */ lists_change_to_general: () => (/* binding */ lists_change_to_general), -/* harmony export */ lists_clear: () => (/* binding */ lists_clear), -/* harmony export */ lists_create_with: () => (/* binding */ lists_create_with), -/* harmony export */ lists_create_with2: () => (/* binding */ lists_create_with2), -/* harmony export */ lists_create_with_container: () => (/* binding */ lists_create_with_container), -/* harmony export */ lists_create_with_item: () => (/* binding */ lists_create_with_item), -/* harmony export */ lists_create_with_noreturn: () => (/* binding */ lists_create_with_noreturn), -/* harmony export */ lists_create_with_text: () => (/* binding */ lists_create_with_text), -/* harmony export */ lists_create_with_text2: () => (/* binding */ lists_create_with_text2), -/* harmony export */ lists_del_general: () => (/* binding */ lists_del_general), -/* harmony export */ lists_find: () => (/* binding */ lists_find), -/* harmony export */ lists_getIndex3: () => (/* binding */ lists_getIndex3), -/* harmony export */ lists_getSublist3: () => (/* binding */ lists_getSublist3), -/* harmony export */ lists_get_index: () => (/* binding */ lists_get_index), -/* harmony export */ lists_get_random_item: () => (/* binding */ lists_get_random_item), -/* harmony export */ lists_get_random_sublist: () => (/* binding */ lists_get_random_sublist), -/* harmony export */ lists_get_sublist: () => (/* binding */ lists_get_sublist), -/* harmony export */ lists_insert_value: () => (/* binding */ lists_insert_value), -/* harmony export */ lists_insert_value2: () => (/* binding */ lists_insert_value2), -/* harmony export */ lists_pop: () => (/* binding */ lists_pop), -/* harmony export */ lists_remove_at: () => (/* binding */ lists_remove_at), -/* harmony export */ lists_remove_at2: () => (/* binding */ lists_remove_at2), -/* harmony export */ lists_reverse: () => (/* binding */ lists_reverse), -/* harmony export */ lists_setIndex3: () => (/* binding */ lists_setIndex3), -/* harmony export */ lists_set_index: () => (/* binding */ lists_set_index), -/* harmony export */ lists_sort: () => (/* binding */ lists_sort) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const LISTS_HUE = 260; //'#70b234'//260; - -const lists_get_index = { - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_HELPURL); - this.setColour(LISTS_HUE); - this.appendValueInput("LIST") - this.appendValueInput("AT") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM); - } -} - - -const lists_get_sublist = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(LISTS_HUE); - this.appendValueInput('LIST') - this.appendDummyInput('') - this.appendValueInput('AT1') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendValueInput('AT2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL); - this.setInputsInline(true); - this.setOutput(true, 'List'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_LISTS_GET_SUBLIST_TOOLTIP); - } -} - -const lists_2d_get_data_with_col_row = { - init: function () { - this.appendValueInput("LIST") - .setCheck(null); - this.appendValueInput("row") - .setCheck(null) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DATAFRAME_RAW); - this.appendValueInput("col") - .setCheck(null) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DATAFRAME_COLUMN); - this.setInputsInline(true); - this.setOutput(true, null); - this.setColour(LISTS_HUE); - this.setTooltip(""); - this.setHelpUrl(""); - } -}; - -const lists_2d_get_col_row_data = { - init: function () { - this.appendValueInput("LIST") - .setCheck(null); - this.appendValueInput("row_start") - .setCheck(null) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DATAFRAME_RAW + " ["); - this.appendValueInput("row_end") - .setCheck(null) - .appendField(","); - this.appendValueInput("col_start") - .setCheck(null) - .appendField(") " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DATAFRAME_COLUMN + " ["); - this.appendValueInput("col_end") - .setCheck(null) - .appendField(","); - this.appendDummyInput() - .appendField(") " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.DICTS_ADD_VALUE); - this.setInputsInline(true); - this.setOutput(true, 'List'); - this.setColour(LISTS_HUE); - this.setTooltip(""); - this.setHelpUrl(""); - } -}; - -const lists_create_with = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput("") - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE') - // .appendField(' ') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('mylist'), 'VAR') - .appendField('[') - //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE') - .appendField(']'); - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['lists_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('lists_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('lists_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_PYTHON_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_LISTS_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - - -const lists_create_with_text = { - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput("") - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array']]), 'TYPE') - // .appendField(' ') - // .appendField(Blockly.Msg.blockpy_MIXLY_SPLITBYDOU) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('mylist'), 'VAR') - //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE') - // .appendField(Blockly.Msg.MIXLY_MAKELISTFROM) - // .appendField(this.newQuote_(true)) - .appendField(' = [') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'), 'TEXT') - .appendField(']'); - // .appendField(this.newQuote_(false)) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LISTS_CREATE_WITH_TEXT2); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -} - - -const lists_create_with_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const lists_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_ITEM_TITLE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - - -const lists_set_index = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('LIST'); - this.appendValueInput('AT') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_LIST_ASSIGN_AT); - this.appendValueInput('TO') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIST_VALUE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_SET_INDEX_TOOLTIP); - } -}; - -const lists_append_extend = { - init: function () { - this.setColour(LISTS_HUE); - this['TYPE'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_blockpy_set_add, 'append'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_LIST_EXTEND, 'extend'] - ]; - - this.appendValueInput('LIST') - .setCheck('List') - this.appendValueInput('DATA') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this['TYPE']), 'OP') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_LIST_A_ITEM) - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIST_TO_END); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'append': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LIST_APPEND, - 'extend': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_EXTEND_TOOLTIP - - }; - return TOOLTIPS[mode]; - }); - } - -}; - -const lists_get_random_item = { - /** - * Block for get a random item from list. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput("LIST"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_RANDOM) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM); - this.setOutput(true); - } -}; - -const lists_get_random_sublist = { - /** - * Block for get a random item from list. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput("LIST"); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_RANDOM) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_GET_INDEX2 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_RANDOM_SUBLIST) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_RANDOM_SUBLIST_TOOLTIP); - this.setOutput(true, 'List'); - } -}; - -const lists_insert_value = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('LIST'); - this.appendValueInput('AT') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIST_INSERT_AT); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIST_VALUE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_SET_INDEX_TOOLTIP); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT); - } -}; - -const lists_reverse = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - .setCheck('List') //this.appendDummyInput("") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_LIST_REVERSE) - //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_CLEAR_TOOLTIP); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; -const lists_clear = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_CLEAR) - //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_REVERSE_TOOLTIP); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - - -const lists_remove_at = { - init: function () { - this.setColour(LISTS_HUE); - this['TYPE'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SERIES_INDEX, 'del'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_I2C_VALUE, 'remove'] - ]; - this.appendValueInput('LIST') - .setCheck('List') - this.appendValueInput('DATA') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_LISTS_REMOVE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this['TYPE']), 'OP') - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'del': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_TOOLTIP_DELETE, - 'remove': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LIST_REMOVE - }; - return TOOLTIPS[mode]; - }); - } -}; -const lists_pop = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('LIST'); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_LIST_POP); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM); - } -}; - -const lists_find = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX, 'INDEX'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_COUNT, 'COUNT'] - ]; - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - .setCheck('List') - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_VALUE) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR') - this.setInputsInline(true); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'INDEX': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LIST_FIND_INDEX, - 'COUNT': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LIST_FIND_COUNT - - }; - return TOOLTIPS[mode]; - }); - } -}; -const list_trig = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_LEN, 'LEN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_SUM, 'SUM'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MAX, 'MAX'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MIN, 'MIN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_AVERAGE, 'AVERAGE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MEDIAN, 'MEDIAN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MODE, 'MODE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_STD_DEV, 'STD_DEV'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(LISTS_HUE); - this.setOutput(true, Number); - this.appendValueInput('data') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'LEN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_LENGTH_TOOLTIP, - 'SUM': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_SUM, - 'MAX': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_MAX, - 'MIN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_MIN, - 'AVERAGE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_AVERAGE, - 'MEDIAN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_MEDIAN, - 'MODE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_MODE, - 'STD_DEV': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_STD_DEV - - }; - return TOOLTIPS[mode]; - }); - } -}; - -const lists_sort = { - /** - * Block for sorting a list. - * @this Blockly.Block - */ - init: function () { - this.jsonInit({ - "args0": [ - { - "type": "input_value", - "name": "LIST", - "check": "List" - }, - { - "type": "field_dropdown", - "name": "TYPE", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_TYPE_NUMERIC, "NUMERIC"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_TYPE_TEXT, "TEXT"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_TYPE_IGNORECASE, "IGNORE_CASE"] - ] - }, - { - "type": "field_dropdown", - "name": "DIRECTION", - "options": [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_ORDER_ASCENDING, "1"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_ORDER_DESCENDING, "-1"] - ] - }, - ], - "message0": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_TITLE, - "inputsInline": true, - "output": "List", - "colour": LISTS_HUE, - "tooltip": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_TOOLTIP, - "helpUrl": blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SORT_HELPURL - }); - } -}; - -const lists_change_to = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD, 'array'] - ]; - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - .setCheck("List") - // .appendField(Blockly.Msg.blockpy_USE_LIST); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.A_TO_B) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'tuple': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_TUPLE, - 'set': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_SET, - 'array': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_ARRAY - }; - return TOOLTIPS[mode]; - }); - - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const list_many_input = { - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput("") - .appendField('[') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'), "CONTENT") - .appendField(']'); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const lists_create_with_noreturn = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, "List") - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['lists_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('lists_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('lists_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_PYTHON_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_LISTS_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -} - -const lists_change_to_general = { - init: function () { - var OPERATORS = - [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set'] - ]; - this.setColour(LISTS_HUE); - this.appendValueInput('VAR'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.A_TO_B) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const lists_del_general = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('TUP') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.OBJECT_DELETE); - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const list_tolist = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOLIST); - this.setOutput(true, 'List'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOLIST); - } -}; - -const lists_create_with2 = lists_create_with -const lists_create_with_text2 = lists_create_with_text -const lists_getIndex3 = lists_get_index -const lists_getSublist3 = lists_get_sublist -const lists_setIndex3 = lists_set_index -const lists_insert_value2 = lists_insert_value -const lists_remove_at2 = lists_remove_at -const list_tolist2 = list_tolist; - - -const ENUMERATE ={ - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_USE_LIST); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_INDEX_SEQUENCE); - // this.appendValueInput('VAR_N') - // .appendField(Blockly.Msg.MIXLY_INDEX+Blockly.Msg.MIXLY_STARTSWITH); - this.setInputsInline(true); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP); - } -}; - -const enumerate = { - init: function () { - this.setColour(LISTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_USE_LIST); - this.appendValueInput('LIST'); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_INDEX_SEQUENCE) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_INDEX+blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STARTSWITH); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP); - } -}; - -const content_in_lists = { - init: function () { - this.setColour(LISTS_HUE); - this.appendValueInput("CON") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_MIXGO_MUSIC_SHOW_IN); - this.appendValueInput("LIST") - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MID); - this.setInputsInline(true); - this.setOutput(true); - } -} - -/***/ }), - -/***/ "../python/blocks/logic.js": -/*!*********************************!*\ - !*** ../python/blocks/logic.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ logic_boolean: () => (/* binding */ logic_boolean), -/* harmony export */ logic_compare: () => (/* binding */ logic_compare), -/* harmony export */ logic_compare_continous: () => (/* binding */ logic_compare_continous), -/* harmony export */ logic_is: () => (/* binding */ logic_is), -/* harmony export */ logic_is_in: () => (/* binding */ logic_is_in), -/* harmony export */ logic_negate: () => (/* binding */ logic_negate), -/* harmony export */ logic_null: () => (/* binding */ logic_null), -/* harmony export */ logic_operation: () => (/* binding */ logic_operation), -/* harmony export */ logic_tobool: () => (/* binding */ logic_tobool), -/* harmony export */ logic_true_or_false: () => (/* binding */ logic_true_or_false) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const LOGIC_HUE = 210; - -const logic_compare = { - /** - * Block for comparison operator. - * @this Blockly.Block - */ - init: function () { - var OPERATORS = blockly_core__WEBPACK_IMPORTED_MODULE_0__.RTL ? [ - ['=', 'EQ'], - ['\u2260', 'NEQ'], - ['>', 'LT'], - ['\u2265', 'LTE'], - ['<', 'GT'], - ['\u2264', 'GTE'] - ] : [ - ['=', 'EQ'], - ['\u2260', 'NEQ'], - ['<', 'LT'], - ['\u2264', 'LTE'], - ['>', 'GT'], - ['\u2265', 'GTE'] - ]; - //this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true, Boolean); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'EQ': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_EQ, - 'NEQ': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_NEQ, - 'LT': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_LT, - 'LTE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_LTE, - 'GT': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_GT, - 'GTE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_COMPARE_TOOLTIP_GTE - }; - return TOOLTIPS[op]; - }); - this.prevBlocks_ = [null, null]; - }, - /** - * Called whenever anything on the workspace changes. - * Prevent mismatched types from being compared. - * @this Blockly.Block - */ - /*onchange: function(e) { - var blockA = this.getInputTargetBlock('A'); - var blockB = this.getInputTargetBlock('B'); - // Disconnect blocks that existed prior to this change if they don't match. - if (blockA && blockB && - !blockA.outputConnection.checkType_(blockB.outputConnection)) { - // Mismatch between two inputs. Disconnect previous and bump it away. - // Ensure that any disconnections are grouped with the causing event. - Blockly.Events.setGroup(e.group); - for (var i = 0; i < this.prevBlocks_.length; i++) { - var block = this.prevBlocks_[i]; - if (block === blockA || block === blockB) { - block.unplug(); - block.bumpNeighbours_(); - } - } - Blockly.Events.setGroup(false); - } - this.prevBlocks_[0] = blockA; - this.prevBlocks_[1] = blockB; - }*/ -}; - -const logic_compare_continous = { - - init: function () { - var OPERATORS1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.RTL ? [ - ['>', 'LT'], - ['\u2265', 'LTE'], - ['<', 'GT'], - ['\u2264', 'GTE'] - ] : [ - ['<', 'LT'], - ['\u2264', 'LTE'], - ['>', 'GT'], - ['\u2265', 'GTE'] - ]; - var OPERATORS2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.RTL ? [ - ['>', 'LT'], - ['\u2265', 'LTE'], - ['<', 'GT'], - ['\u2264', 'GTE'] - ] : [ - ['<', 'LT'], - ['\u2264', 'LTE'], - ['>', 'GT'], - ['\u2265', 'GTE'] - ]; - //this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true, Boolean); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS1), 'OP1'); - this.appendValueInput('C') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS2), 'OP2'); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP); - - } -}; - -const logic_operation = { - /** - * Block for logical operations: 'and', 'or'. - * @this Blockly.Block - */ - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_AND, 'AND'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_OR, 'OR'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_NOR, 'NOR'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_XOR, 'XOR'] - ]; - //this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true, Boolean); - this.appendValueInput('A') - .setCheck([Boolean, Number]); - this.appendValueInput('B') - .setCheck([Boolean, Number]) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var op = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'AND': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_TOOLTIP_AND, - 'OR': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_TOOLTIP_OR, - 'NOR': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_TOOLTIP_NOR, - 'XOR': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_OPERATION_TOOLTIP_XOR - }; - return TOOLTIPS[op]; - }); - } -}; - -const logic_negate = { - /** - * Block for negation. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.LOGIC_NEGATE_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true, Boolean); - this.appendValueInput('BOOL') - .setCheck([Number, Boolean]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NEGATE_TITLE); - //this.interpolateMsg(Blockly.Msg.LOGIC_NEGATE_TITLE, - // ['BOOL', Boolean, Blockly.inputs.Align.RIGHT], - // Blockly.inputs.Align.RIGHT); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NEGATE_TOOLTIP); - } -}; - -const logic_boolean = { - /** - * Block for boolean data type: true and false. - * @this Blockly.Block - */ - init: function () { - var BOOLEANS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_BOOLEAN_TRUE, 'TRUE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_BOOLEAN_FALSE, 'FALSE'] - ]; - //this.setHelpUrl(Blockly.Msg.LOGIC_BOOLEAN_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true, Boolean); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(BOOLEANS), 'BOOL'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_BOOLEAN_TOOLTIP); - } -}; - -const logic_null = { - /** - * Block for null data type. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.LOGIC_NULL_HELPURL); - this.setColour(LOGIC_HUE); - this.setOutput(true); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL_TOOLTIP); - } -}; - -const logic_true_or_false = { - init: function () { - this.setColour(LOGIC_HUE); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_TERNARY_IF_TRUE); - this.appendValueInput('C') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_TERNARY_IF_FALSE); - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE); - } -}; - -const logic_is_in = { - init: function () { - var BOOLEANS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_APPEND_TO, 'in'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN, 'not in'] - ]; - this.setColour(LOGIC_HUE); - this.appendValueInput('A'); - this.appendValueInput('B') - .setCheck([String, 'List']) - //.appendField(Blockly.Msg.TEXT_APPEND_TO) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(BOOLEANS), 'BOOL'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_LOGIC_IS_IN); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.IN); - } -}; - -const logic_is = { - init: function () { - var BOOLEANS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LOGIC_IS, 'is'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LOGIC_IS_NOT, 'is not'] - ]; - this.setColour(LOGIC_HUE); - this.appendValueInput('A'); - this.appendValueInput('B') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(BOOLEANS), 'BOOL'); - //.appendField(Blockly.Msg.MIXLY_PYTHON_LOGIC_IS); - this.setOutput(true, Boolean); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP); - } -}; - -const logic_tobool = { - init: function () { - this.setColour(LOGIC_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOBOOL); - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL); - } -}; - -/***/ }), - -/***/ "../python/blocks/math.js": -/*!********************************!*\ - !*** ../python/blocks/math.js ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ base_map: () => (/* binding */ base_map), -/* harmony export */ generate_cartesian_product: () => (/* binding */ generate_cartesian_product), -/* harmony export */ math_arithmetic: () => (/* binding */ math_arithmetic), -/* harmony export */ math_bit: () => (/* binding */ math_bit), -/* harmony export */ math_constant: () => (/* binding */ math_constant), -/* harmony export */ math_constant_mp: () => (/* binding */ math_constant_mp), -/* harmony export */ math_constrain: () => (/* binding */ math_constrain), -/* harmony export */ math_dec: () => (/* binding */ math_dec), -/* harmony export */ math_indexer_number: () => (/* binding */ math_indexer_number), -/* harmony export */ math_map: () => (/* binding */ math_map), -/* harmony export */ math_max_min: () => (/* binding */ math_max_min), -/* harmony export */ math_number: () => (/* binding */ math_number), -/* harmony export */ math_number_base_conversion: () => (/* binding */ math_number_base_conversion), -/* harmony export */ math_random: () => (/* binding */ math_random), -/* harmony export */ math_random_seed: () => (/* binding */ math_random_seed), -/* harmony export */ math_round: () => (/* binding */ math_round), -/* harmony export */ math_selfcalcu: () => (/* binding */ math_selfcalcu), -/* harmony export */ math_to_int: () => (/* binding */ math_to_int), -/* harmony export */ math_trig: () => (/* binding */ math_trig), -/* harmony export */ text_to_number: () => (/* binding */ text_to_number), -/* harmony export */ text_to_number_skulpt: () => (/* binding */ text_to_number_skulpt), -/* harmony export */ turn_to_int: () => (/* binding */ turn_to_int) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const MATH_HUE = 230; //'#e49f16'; - -blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.math_number_validator = function (text) { - //return window.isNaN(text) ? null : String(text); - // var pattern = /^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/; - // return pattern.test(text) ? String(text) : null;//校验,二 八 十 十六进制匹配 - return String(text);//不再校验 -}; - -blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.math_number_validator_include_blank = function (text) { - if (text === "") { - return ""; - } - var pattern = /^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/; - return pattern.test(text) ? String(text) : null;//校验,二 八 十 十六进制匹配 -}; - -const math_number = { - /** - * Block for numeric value. - * @this Blockly.Block - */ - init: function () { - this.setColour(MATH_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0', - blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.math_number_validator), 'NUM'); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_NUMBER_TOOLTIP); - } -}; - -const math_constant = { - init: function () { - this.setColour(MATH_HUE); - var constant = - [['π', 'pi'], ['e', 'e']]; - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(constant), 'CONSTANT') - - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('CONSTANT'); - var TOOLTIPS = { - 'pi': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP, - 'e': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP - }; - return TOOLTIPS[mode]; - }); - - } -}; - -const math_constant_mp = { - init: function () { - this.setColour(MATH_HUE); - var constant = - [['π', 'pi'], ['e', 'e']]; - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(constant), 'CONSTANT') - - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('CONSTANT'); - var TOOLTIPS = { - 'pi': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP, - 'e': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP - }; - return TOOLTIPS[mode]; - }); - - } -}; - -const math_arithmetic = { - /** - * Block for basic arithmetic operator. - * @this Blockly.Block - */ - init: function () { - var OPERATORS = [ - ['+', 'ADD'], - ['-', 'MINUS'], - ['×', 'MULTIPLY'], - ['÷', 'DIVIDE'], - ['%', 'QUYU'], - ['//', 'ZHENGCHU'], - ['**', 'POWER'] - ]; - //this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL); - this.setColour(MATH_HUE); - this.setOutput(true); - this.appendValueInput('A') - this.appendValueInput('B') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'ADD': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_ADD, - 'MINUS': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS, - 'MULTIPLY': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY, - 'DIVIDE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE, - 'QUYU': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_MODULO_TOOLTIP, - 'ZHENGCHU': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE, - 'POWER': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_POWER - }; - return TOOLTIPS[mode]; - }); - } -}; - -const math_selfcalcu = { - /** - * Block for basic arithmetic operator. - * @this Blockly.Block - */ - init: function () { - var OPERATORS = [ - ['+=', 'ADD'], - ['-=', 'MINUS'], - ['×=', 'MULTIPLY'], - ['÷=', 'DIVIDE'], - ['%=', 'QUYU'], - ['//=', 'ZHENGCHU'], - ['**=', 'POWER'] - ]; - - this.setColour(MATH_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendValueInput('A') - this.appendValueInput('B') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'ADD': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_ADD, - 'MINUS': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS, - 'MULTIPLY': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY, - 'DIVIDE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE, - 'QUYU': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_MODULO_TOOLTIP, - 'ZHENGCHU': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE, - 'POWER': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ARITHMETIC_TOOLTIP_POWER - }; - return TOOLTIPS[mode]; - }); - } -}; - -const math_bit = { - init: function () { - var OPERATORS = [ - ['&', '&'], - ['|', '|'], - ['>>', '>>'], - ['<<', '<<'] - ]; - this.setColour(MATH_HUE); - this.setOutput(true, Number); - this.appendValueInput('A') - .setCheck(Number); - this.appendValueInput('B') - .setCheck(Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - this.setTooltip("位运算"); - } -}; - -const math_trig = { - /** - * Block for trigonometry operators. - * @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_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'SIN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_SIN, - 'COS': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_COS, - 'TAN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_TAN, - 'ASIN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_ASIN, - 'ACOS': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_ACOS, - 'ATAN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TRIG_TOOLTIP_ATAN, - 'LN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_LN - }; - return TOOLTIPS[mode]; - }); - } -}; - -const math_dec = { - /** - * Block for trigonometry operators. - * @this Blockly.Block - */ - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_BIN, 'bin'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_OCT, 'oct'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_HEX, 'hex'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(MATH_HUE); - this.setOutput(true, String); - this.appendValueInput('NUM') - .setCheck(Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'bin': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_DEC_TOOLTIP_BIN, - 'oct': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_DEC_TOOLTIP_OCT, - 'hex': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_DEC_TOOLTIP_HEX, - - }; - return TOOLTIPS[mode]; - }); - } -}; - -//取整等 -const math_to_int = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_TO_ROUND, 'round'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_TO_CEIL, 'ceil'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_TO_FLOOR, 'floor'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ABS, 'fabs'], - // [Blockly.Msg.MATH_SQ, 'pow'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SQRT, 'sqrt'] - ]; - this.setColour(MATH_HUE); - this.appendValueInput('A') - .setCheck(Number) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'sqrt': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_ROOT, - 'fabs': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_ABS, - 'sq': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_SQ, - 'round': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_ROUND, - 'ceil': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_CEIL, - 'floor': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SINGLE_TOOLTIP_FLOOR - }; - return TOOLTIPS[mode]; - }); - } -}; -//最大最小值 -const math_max_min = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAX, 'max'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIN, 'min'], - ]; - - this.setColour(MATH_HUE); - this.appendValueInput('A') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP') - .appendField('('); - this.appendValueInput('B') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(','); - this.appendDummyInput('') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(')'); - this.setInputsInline(true); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'max': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_MATH_MAX, - 'min': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_MATH_MIN - }; - return TOOLTIPS[mode]; - }); - } -}; - -const math_number_base_conversion = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TWO, 'two'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_EIGHT, 'eight'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_TEN, 'ten'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_SIXTEEN, 'sixteen'] - ]; - this.setColour(MATH_HUE); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_BA) - this.appendValueInput("NUM") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_JinZhi) - .setCheck(Number); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ZHW) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_JinZhi); - this.setFieldValue('ten', 'OP2') - // this.setPreviousStatement(true, null); - // this.setNextStatement(true, null); - this.setOutput(true) - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'two': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Before_two, - 'eight': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Before_eight, - 'ten': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Before_ten, - 'sixteen': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Before_sixteen, - }; - var mode2 = thisBlock.getFieldValue('OP2'); - var TOOLTIPS2 = { - 'two': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Behind_two, - 'eight': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Behind_eight, - 'ten': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Behind_ten, - 'sixteen': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_Behind_sixteen, - }; - return TOOLTIPS[mode] + TOOLTIPS2[mode2]; - }); - } -}; - - -const math_random = { - init: function () { - var INT_FLOAT = [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, 'int'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_FLOAT, 'float']]; - this.setColour(MATH_HUE); - this.setOutput(true, Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_RANDOM) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(INT_FLOAT), 'TYPE'); - this.appendValueInput('FROM') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_CONTROLS_FOR_INPUT_FROM); - this.appendValueInput('TO') - .setCheck(Number) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_RANDOM_INT_INPUT_TO); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('TYPE'); - var TOOLTIPS = { - 'int': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, - 'float': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_FLOAT_RANDOM - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_RANDOM_INT_TOOLTIP + TOOLTIPS[mode]; - }); - } -}; - - -const math_constrain = { - /** - * Block for constraining a number between two limits. - * @this Blockly.Block - */ - init: function () { - this.setColour(MATH_HUE); - this.setOutput(true, Number); - this.appendValueInput('VALUE') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN); - this.appendValueInput('LOW') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW); - this.appendValueInput('HIGH') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_CONSTRAIN_TOOLTIP); - } -}; - -const math_map = { - init: function () { - this.setColour(MATH_HUE); - this.appendValueInput("NUM", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAP) - .setCheck(Number); - this.appendValueInput("fromLow", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAP_FROM) - .setCheck(Number); - this.appendValueInput("fromHigh", Number) - .appendField(",") - .setCheck(Number); - this.appendValueInput("toLow", Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MAP_TO) - .setCheck(Number); - this.appendValueInput("toHigh", Number) - .appendField(",") - .setCheck(Number); - this.appendDummyInput("") - .appendField("]"); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_MATH_MAP); - } -}; - -const math_indexer_number = { - /** - * Block for numeric value. - * @this Blockly.Block - */ - init: function () { - this.setColour(MATH_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0', blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.math_number_validator_include_blank), 'NUM'); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_NUMBER_TOOLTIP); - } -}; - -const math_random_seed = { - init: function () { - this.setColour(MATH_HUE); - this.appendValueInput('NUM') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_RANDOM_SEED); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED); - } -}; - -const math_round = { - - init: function () { - this.setColour(MATH_HUE); - this.setOutput(true, Number); - this.appendValueInput('VALUE') - .setCheck(Number) - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ROUND) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_KEEP); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_DECIMAL); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ROUND_NEW_TOOLTIP); - } -}; - -const text_to_number = { - init: function () { - var TO_INT_FLOAT = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_INT, 'int'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_FLOAT, 'float'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_BITES, 'b'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_INT, 'bti']]; - this.setColour(MATH_HUE); - this.appendValueInput('VAR') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(TO_INT_FLOAT), 'TOWHAT'); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('TOWHAT'); - var TOOLTIPS = { - 'int': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOINT, - 'float': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT, - 'b': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE - }; - return TOOLTIPS[mode]; - }); - } -}; - -const text_to_number_skulpt = { - init: function () { - var TO_INT_FLOAT = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_INT, 'int'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_FLOAT, 'float']]; - this.setColour(MATH_HUE); - this.appendValueInput('VAR') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(TO_INT_FLOAT), 'TOWHAT'); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('TOWHAT'); - var TOOLTIPS = { - 'int': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_TOINT, - 'float': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT - }; - return TOOLTIPS[mode]; - }); - } -}; - -const base_map = math_map - -const turn_to_int = { - init: function () { - this.setColour(MATH_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TO_HEX); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX) - } -}; - -const generate_cartesian_product = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(MATH_HUE); - this.itemCount_ = 1; - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['lists_create_with_item'], this)); - this.appendDummyInput('DUMMY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PRODUCT + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT); - this.appendValueInput('REPEAT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_REPEAT_TITLE_TIMES); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP); - this.updateShape_(); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('lists_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('lists_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput(`ADD${i}`).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput(`ADD${i}`); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - let i = 0; - while (this.getInput(`ADD${i}`)) { - this.removeInput(`ADD${i}`); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EMPTY_REMINDER); - } else { - for (let i = 0; i < this.itemCount_; i++) { - this.appendValueInput(`ADD${i}`); - this.moveInputBefore(`ADD${i}`, 'REPEAT'); - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -} - -/***/ }), - -/***/ "../python/blocks/procedures.js": -/*!**************************************!*\ - !*** ../python/blocks/procedures.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ procedures_callnoreturn: () => (/* binding */ procedures_callnoreturn), -/* harmony export */ procedures_callreturn: () => (/* binding */ procedures_callreturn), -/* harmony export */ procedures_defnoreturn: () => (/* binding */ procedures_defnoreturn), -/* harmony export */ procedures_defreturn: () => (/* binding */ procedures_defreturn), -/* harmony export */ procedures_ifreturn: () => (/* binding */ procedures_ifreturn), -/* harmony export */ procedures_mutatorarg: () => (/* binding */ procedures_mutatorarg), -/* harmony export */ procedures_mutatorcontainer: () => (/* binding */ procedures_mutatorcontainer), -/* harmony export */ procedures_return: () => (/* binding */ procedures_return) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _others_procedures__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../others/procedures */ "../python/others/procedures.js"); -/** - * @license - * Copyright 2012 Google LLC - * SPDX-License-Identifier: Apache-2.0 - */ - -/** - * @fileoverview Procedure blocks for Blockly. - * @author fraser@google.com (Neil Fraser) - */ - - - -const procedures_defnoreturn = { - /** - * Block for defining a procedure with no return value. - * @this {Blockly.Block} - */ - init: function () { - var initName = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].findLegalName('', this); - var nameField = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(initName, - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].rename); - nameField.setSpellcheck(false); - this.appendDummyInput() - // .appendField(Blockly.Msg['PROCEDURES_DEFNORETURN_TITLE']) - .appendField(nameField, 'NAME') - .appendField('', 'PARAMS'); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['procedures_mutatorarg'], this)); - if ((this.workspace.options.comments || - (this.workspace.options.parentWorkspace && - this.workspace.options.parentWorkspace.options.comments)) && - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_COMMENT']) { - this.setCommentText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_COMMENT']); - } - this.setStyle('procedure_blocks'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_TOOLTIP']); - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_HELPURL']); - this.arguments_ = []; - this.argumentVarModels_ = []; - this.setStatements_(true); - this.statementConnection_ = null; - }, - /** - * Add or remove the statement block from this function definition. - * @param {boolean} hasStatements True if a statement block is needed. - * @this {Blockly.Block} - */ - setStatements_: function (hasStatements) { - if (this.hasStatements_ === hasStatements) { - return; - } - if (hasStatements) { - this.appendStatementInput('STACK') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_DO']); - if (this.getInput('RETURN')) { - this.moveInputBefore('STACK', 'RETURN'); - } - } else { - this.removeInput('STACK', true); - } - this.hasStatements_ = hasStatements; - }, - /** - * Update the display of parameters for this procedure definition block. - * @private - * @this {Blockly.Block} - */ - updateParams_: function () { - - // Merge the arguments into a human-readable list. - var paramString = ''; - if (this.arguments_.length) { - paramString = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_BEFORE_PARAMS'] + - ' ' + this.arguments_.join(', '); - } - // The params field is deterministic based on the mutation, - // no need to fire a change event. - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.disable(); - try { - this.setFieldValue(paramString, 'PARAMS'); - } finally { - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.enable(); - } - }, - /** - * Create XML to represent the argument inputs. - * @param {boolean=} opt_paramIds If true include the IDs of the parameter - * quarks. Used by Procedures.mutateCallers for reconnection. - * @return {!Element} XML storage element. - * @this {Blockly.Block} - */ - mutationToDom: function (opt_paramIds) { - var container = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - if (opt_paramIds) { - container.setAttribute('name', this.getFieldValue('NAME')); - } - for (var i = 0; i < this.argumentVarModels_.length; i++) { - var parameter = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('arg'); - var argModel = this.argumentVarModels_[i]; - parameter.setAttribute('name', argModel.name); - parameter.setAttribute('varid', argModel.getId()); - if (opt_paramIds && this.paramIds_) { - parameter.setAttribute('paramId', this.paramIds_[i]); - } - container.appendChild(parameter); - } - - // Save whether the statement input is visible. - if (!this.hasStatements_) { - container.setAttribute('statements', 'false'); - } - return container; - }, - /** - * Parse XML to restore the argument inputs. - * @param {!Element} xmlElement XML storage element. - * @this {Blockly.Block} - */ - domToMutation: function (xmlElement) { - this.arguments_ = []; - this.argumentVarModels_ = []; - for (var i = 0, childNode; (childNode = xmlElement.childNodes[i]); i++) { - if (childNode.nodeName.toLowerCase() == 'arg') { - var varName = childNode.getAttribute('name'); - var varId = childNode.getAttribute('varid') || childNode.getAttribute('varId'); - this.arguments_.push(varName); - var variable = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.getOrCreateVariablePackage( - this.workspace, varId, varName, ''); - if (variable != null) { - this.argumentVarModels_.push(variable); - } else { - console.log('Failed to create a variable with name ' + varName + ', ignoring.'); - } - } - } - this.updateParams_(); - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].mutateCallers(this); - - // Show or hide the statement input. - this.setStatements_(xmlElement.getAttribute('statements') !== 'false'); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this {Blockly.Block} - */ - decompose: function (workspace) { - /* - * Creates the following XML: - * - * - * - * arg1_name - * etc... - * - * - * - */ - - var containerBlockNode = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - containerBlockNode.setAttribute('type', 'procedures_mutatorcontainer'); - var statementNode = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('statement'); - statementNode.setAttribute('name', 'STACK'); - containerBlockNode.appendChild(statementNode); - - var node = statementNode; - for (var i = 0; i < this.arguments_.length; i++) { - var argBlockNode = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - argBlockNode.setAttribute('type', 'procedures_mutatorarg'); - var fieldNode = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field'); - fieldNode.setAttribute('name', 'NAME'); - var argumentName = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode(this.arguments_[i]); - fieldNode.appendChild(argumentName); - argBlockNode.appendChild(fieldNode); - var nextNode = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('next'); - argBlockNode.appendChild(nextNode); - - node.appendChild(argBlockNode); - node = nextNode; - } - - var containerBlock = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Xml.domToBlock(containerBlockNode, workspace); - - if (this.type == 'procedures_defreturn') { - containerBlock.setFieldValue(this.hasStatements_, 'STATEMENTS'); - } else { - containerBlock.removeInput('STATEMENT_INPUT'); - } - - // Initialize procedure's callers with blank IDs. - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].mutateCallers(this); - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this {Blockly.Block} - */ - compose: function (containerBlock) { - // Parameter list. - this.arguments_ = []; - this.paramIds_ = []; - this.argumentVarModels_ = []; - var paramBlock = containerBlock.getInputTargetBlock('STACK'); - while (paramBlock && !paramBlock.isInsertionMarker()) { - var varName = paramBlock.getFieldValue('NAME'); - this.arguments_.push(varName); - var variable = this.workspace.getVariable(varName, ''); - this.argumentVarModels_.push(variable); - - this.paramIds_.push(paramBlock.id); - paramBlock = paramBlock.nextConnection && - paramBlock.nextConnection.targetBlock(); - } - this.updateParams_(); - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].mutateCallers(this); - - // Show/hide the statement input. - var hasStatements = containerBlock.getFieldValue('STATEMENTS'); - if (hasStatements !== null) { - hasStatements = hasStatements == 'TRUE'; - if (this.hasStatements_ != hasStatements) { - if (hasStatements) { - this.setStatements_(true); - // Restore the stack, if one was saved. - this.statementConnection_ && this.statementConnection_.reconnect(this, 'STACK'); - this.statementConnection_ = null; - } else { - // Save the stack, then disconnect it. - var stackConnection = this.getInput('STACK').connection; - this.statementConnection_ = stackConnection.targetConnection; - if (this.statementConnection_) { - var stackBlock = stackConnection.targetBlock(); - stackBlock.unplug(); - stackBlock.bumpNeighbours(); - } - this.setStatements_(false); - } - } - } - }, - /** - * Return the signature of this procedure definition. - * @return {!Array} Tuple containing three elements: - * - the name of the defined procedure, - * - a list of all its arguments, - * - that it DOES NOT have a return value. - * @this {Blockly.Block} - */ - getProcedureDef: function () { - return [this.getFieldValue('NAME'), this.arguments_, false]; - }, - /** - * Return all variables referenced by this block. - * @return {!Array} List of variable names. - * @this {Blockly.Block} - */ - getVars: function () { - return this.arguments_; - }, - /** - * Return all variables referenced by this block. - * @return {!Array} List of variable models. - * @this {Blockly.Block} - */ - getVarModels: function () { - return this.argumentVarModels_; - }, - /** - * Notification that a variable is renaming. - * If the ID matches one of this block's variables, rename it. - * @param {string} oldId ID of variable to rename. - * @param {string} newId ID of new variable. May be the same as oldId, but - * with an updated name. Guaranteed to be the same type as the old - * variable. - * @override - * @this {Blockly.Block} - */ - renameVarById: function (oldId, newId) { - var oldVariable = this.workspace.getVariableById(oldId); - if (oldVariable.type != '') { - // Procedure arguments always have the empty type. - return; - } - var oldName = oldVariable.name; - var newVar = this.workspace.getVariableById(newId); - - var change = false; - for (var i = 0; i < this.argumentVarModels_.length; i++) { - if (this.argumentVarModels_[i].getId() == oldId) { - this.arguments_[i] = newVar.name; - this.argumentVarModels_[i] = newVar; - change = true; - } - } - if (change) { - this.displayRenamedVar_(oldName, newVar.name); - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].mutateCallers(this); - } - }, - /** - * Notification that a variable is renaming but keeping the same ID. If the - * variable is in use on this block, rerender to show the new name. - * @param {!Blockly.VariableModel} variable The variable being renamed. - * @package - * @override - * @this {Blockly.Block} - */ - updateVarName: function (variable) { - var newName = variable.name; - var change = false; - for (var i = 0; i < this.argumentVarModels_.length; i++) { - if (this.argumentVarModels_[i].getId() == variable.getId()) { - var oldName = this.arguments_[i]; - this.arguments_[i] = newName; - change = true; - } - } - if (change) { - this.displayRenamedVar_(oldName, newName); - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].mutateCallers(this); - } - }, - /** - * Update the display to reflect a newly renamed argument. - * @param {string} oldName The old display name of the argument. - * @param {string} newName The new display name of the argument. - * @private - * @this {Blockly.Block} - */ - displayRenamedVar_: function (oldName, newName) { - this.updateParams_(); - const mutator = this.getIcon(blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon.TYPE); - // Update the mutator's variables if the mutator is open. - if (mutator && mutator.bubbleIsVisible()) { - var blocks = mutator.getWorkspace().getAllBlocks(false); - for (var i = 0, block; (block = blocks[i]); i++) { - if (block.type == 'procedures_mutatorarg' && - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, block.getFieldValue('NAME'))) { - block.setFieldValue(newName, 'NAME'); - } - } - } - }, - /** - * Add custom menu options to this block's context menu. - * @param {!Array} options List of menu options to add to. - * @this {Blockly.Block} - */ - customContextMenu: function (options) { - if (this.isInFlyout) { - return; - } - // Add option to create caller. - var option = { enabled: true }; - var name = this.getFieldValue('NAME'); - option.text = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CREATE_DO'].replace('%1', name); - var xmlMutation = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - xmlMutation.setAttribute('name', name); - for (var i = 0; i < this.arguments_.length; i++) { - var xmlArg = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('arg'); - xmlArg.setAttribute('name', this.arguments_[i]); - xmlMutation.appendChild(xmlArg); - } - var xmlBlock = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - xmlBlock.setAttribute('type', this.callType_); - xmlBlock.appendChild(xmlMutation); - option.callback = blockly_core__WEBPACK_IMPORTED_MODULE_0__.ContextMenu.callbackFactory(this, xmlBlock); - options.push(option); - - // Add options to create getters for each parameter. - if (!this.isCollapsed()) { - for (var i = 0; i < this.argumentVarModels_.length; i++) { - var argOption = { enabled: true }; - var argVar = this.argumentVarModels_[i]; - argOption.text = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['VARIABLES_SET_CREATE_GET'] - .replace('%1', argVar.name); - - var argXmlField = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.generateVariableFieldDom(argVar); - var argXmlBlock = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - argXmlBlock.setAttribute('type', 'variables_get'); - argXmlBlock.appendChild(argXmlField); - argOption.callback = - blockly_core__WEBPACK_IMPORTED_MODULE_0__.ContextMenu.callbackFactory(this, argXmlBlock); - options.push(argOption); - } - } - }, - callType_: 'procedures_callnoreturn' -}; - -const procedures_defreturn = { - /** - * Block for defining a procedure with a return value. - * @this {Blockly.Block} - */ - init: function () { - var initName = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].findLegalName('', this); - var nameField = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(initName, - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].rename); - nameField.setSpellcheck(false); - this.appendDummyInput() - // .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_TITLE']) - .appendField(nameField, 'NAME') - .appendField('', 'PARAMS'); - this.appendValueInput('RETURN') - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_RETURN']); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['procedures_mutatorarg'], this)); - if ((this.workspace.options.comments || - (this.workspace.options.parentWorkspace && - this.workspace.options.parentWorkspace.options.comments)) && - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_COMMENT']) { - this.setCommentText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_COMMENT']); - } - this.setStyle('procedure_blocks'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_TOOLTIP']); - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_HELPURL']); - this.arguments_ = []; - this.argumentVarModels_ = []; - this.setStatements_(true); - this.statementConnection_ = null; - }, - setStatements_: procedures_defnoreturn.setStatements_, - updateParams_: procedures_defnoreturn.updateParams_, - mutationToDom: procedures_defnoreturn.mutationToDom, - domToMutation: procedures_defnoreturn.domToMutation, - decompose: procedures_defnoreturn.decompose, - compose: procedures_defnoreturn.compose, - /** - * Return the signature of this procedure definition. - * @return {!Array} Tuple containing three elements: - * - the name of the defined procedure, - * - a list of all its arguments, - * - that it DOES have a return value. - * @this {Blockly.Block} - */ - getProcedureDef: function () { - return [this.getFieldValue('NAME'), this.arguments_, true]; - }, - getVars: procedures_defnoreturn.getVars, - getVarModels: procedures_defnoreturn.getVarModels, - renameVarById: procedures_defnoreturn.renameVarById, - updateVarName: procedures_defnoreturn.updateVarName, - displayRenamedVar_: procedures_defnoreturn.displayRenamedVar_, - customContextMenu: procedures_defnoreturn.customContextMenu, - callType_: 'procedures_callreturn' -}; - -const procedures_mutatorcontainer = { - /** - * Mutator block for procedure container. - * @this {Blockly.Block} - */ - init: function () { - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_MUTATORCONTAINER_TITLE']); - this.appendStatementInput('STACK'); - this.appendDummyInput('STATEMENT_INPUT') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_ALLOW_STATEMENTS']) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldCheckbox('TRUE'), 'STATEMENTS'); - this.setStyle('procedure_blocks'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_MUTATORCONTAINER_TOOLTIP']); - this.contextMenu = false; - }, -}; - -const procedures_mutatorarg = { - /** - * Mutator block for procedure argument. - * @this {Blockly.Block} - */ - init: function () { - var field = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput( - _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].DEFAULT_ARG, this.validator_); - // Hack: override showEditor to do just a little bit more work. - // We don't have a good place to hook into the start of a text edit. - field.oldShowEditorFn_ = field.showEditor_; - var newShowEditorFn = function () { - this.createdVariables_ = []; - this.oldShowEditorFn_(); - }; - field.showEditor_ = newShowEditorFn; - - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_BEFORE_PARAMS) - .appendField(field, 'NAME'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setStyle('procedure_blocks'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_MUTATORARG_TOOLTIP']); - this.contextMenu = false; - - // Create the default variable when we drag the block in from the flyout. - // Have to do this after installing the field on the block. - field.onFinishEditing_ = this.deleteIntermediateVars_; - // Create an empty list so onFinishEditing_ has something to look at, even - // though the editor was never opened. - field.createdVariables_ = []; - field.onFinishEditing_('x'); - }, - /** - * Obtain a valid name for the procedure argument. Create a variable if - * necessary. - * Merge runs of whitespace. Strip leading and trailing whitespace. - * Beyond this, all names are legal. - * @param {string} varName User-supplied name. - * @return {?string} Valid name, or null if a name was not specified. - * @private - * @this Blockly.FieldTextInput - */ - validator_: function (varName) { - var sourceBlock = this.getSourceBlock(); - - var outerWs = sourceBlock.workspace.getRootWorkspace(); - varName = varName.replace(/[\s\xa0]+/g, ' ').replace(/^ | $/g, ''); - if (!varName) { - return null; - } - - // Prevents duplicate parameter names in functions - var workspace = sourceBlock.workspace.targetWorkspace || - sourceBlock.workspace; - var blocks = workspace.getAllBlocks(false); - var caselessName = varName.toLowerCase(); - for (var i = 0; i < blocks.length; i++) { - if (blocks[i].id == this.getSourceBlock().id) { - continue; - } - // Other blocks values may not be set yet when this is loaded. - var otherVar = blocks[i].getFieldValue('NAME'); - if (otherVar && otherVar.toLowerCase() == caselessName) { - return null; - } - } - - // Don't create variables for arg blocks that - // only exist in the mutator's flyout. - if (sourceBlock.isInFlyout) { - return varName; - } - - var model = outerWs.getVariable(varName, ''); - if (model && model.name != varName) { - // Rename the variable (case change) - outerWs.renameVariableById(model.getId(), varName); - } - if (!model) { - model = outerWs.createVariable(varName, ''); - if (model && this.createdVariables_) { - this.createdVariables_.push(model); - } - } - return varName; - }, - - /** - * Called when focusing away from the text field. - * Deletes all variables that were created as the user typed their intended - * variable name. - * @param {string} newText The new variable name. - * @private - * @this Blockly.FieldTextInput - */ - deleteIntermediateVars_: function (newText) { - var outerWs = this.getSourceBlock().workspace.getRootWorkspace(); - if (!outerWs) { - return; - } - for (var i = 0; i < this.createdVariables_.length; i++) { - var model = this.createdVariables_[i]; - if (model.name != newText) { - outerWs.deleteVariableById(model.getId()); - } - } - } -}; - -const procedures_callnoreturn = { - /** - * Block for calling a procedure with no return value. - * @this {Blockly.Block} - */ - init: function () { - this.appendDummyInput('TOPROW') - .appendField('', 'NAME'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setStyle('procedure_blocks'); - // Tooltip is set in renameProcedure. - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CALLNORETURN_HELPURL']); - this.arguments_ = []; - this.argumentVarModels_ = []; - this.quarkConnections_ = {}; - this.quarkIds_ = null; - this.previousEnabledState_ = true; - }, - - /** - * Returns the name of the procedure this block calls. - * @return {string} Procedure name. - * @this {Blockly.Block} - */ - getProcedureCall: function () { - // The NAME field is guaranteed to exist, null will never be returned. - return /** @type {string} */ (this.getFieldValue('NAME')); - }, - /** - * Notification that a procedure is renaming. - * If the name matches this block's procedure, rename it. - * @param {string} oldName Previous name of procedure. - * @param {string} newName Renamed procedure. - * @this {Blockly.Block} - */ - renameProcedure: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getProcedureCall())) { - this.setFieldValue(newName, 'NAME'); - var baseMsg = this.outputConnection ? - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CALLRETURN_TOOLTIP'] : - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CALLNORETURN_TOOLTIP']; - this.setTooltip(baseMsg.replace('%1', newName)); - } - }, - /** - * Notification that the procedure's parameters have changed. - * @param {!Array} paramNames New param names, e.g. ['x', 'y', 'z']. - * @param {!Array} paramIds IDs of params (consistent for each - * parameter through the life of a mutator, regardless of param renaming), - * e.g. ['piua', 'f8b_', 'oi.o']. - * @private - * @this {Blockly.Block} - */ - setProcedureParameters_: function (paramNames, paramIds) { - // Data structures: - // this.arguments = ['x', 'y'] - // Existing param names. - // this.quarkConnections_ {piua: null, f8b_: Blockly.Connection} - // Look-up of paramIds to connections plugged into the call block. - // this.quarkIds_ = ['piua', 'f8b_'] - // Existing param IDs. - // Note that quarkConnections_ may include IDs that no longer exist, but - // which might reappear if a param is reattached in the mutator. - var defBlock = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].getDefinition(this.getProcedureCall(), - this.workspace); - const mutatorIcon = defBlock && defBlock.getIcon(blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon.TYPE); - const mutatorOpen = - mutatorIcon && mutatorIcon.bubbleIsVisible(); - if (!mutatorOpen) { - this.quarkConnections_ = {}; - this.quarkIds_ = null; - } - if (!paramIds) { - // Reset the quarks (a mutator is about to open). - return; - } - // Test arguments (arrays of strings) for changes. '\n' is not a valid - // argument name character, so it is a valid delimiter here. - if (paramNames.join('\n') == this.arguments_.join('\n')) { - // No change. - this.quarkIds_ = paramIds; - return; - } - if (paramIds.length != paramNames.length) { - throw Error('paramNames and paramIds must be the same length.'); - } - this.setCollapsed(false); - if (!this.quarkIds_) { - // Initialize tracking for this block. - this.quarkConnections_ = {}; - this.quarkIds_ = []; - } - // Switch off rendering while the block is rebuilt. - var savedRendered = this.rendered; - this.rendered = false; - // Update the quarkConnections_ with existing connections. - for (var i = 0; i < this.arguments_.length; i++) { - var input = this.getInput('ARG' + i); - if (input) { - var connection = input.connection.targetConnection; - this.quarkConnections_[this.quarkIds_[i]] = connection; - if (mutatorOpen && connection && - paramIds.indexOf(this.quarkIds_[i]) == -1) { - // This connection should no longer be attached to this block. - connection.disconnect(); - connection.getSourceBlock().bumpNeighbours(); - } - } - } - // Rebuild the block's arguments. - this.arguments_ = [].concat(paramNames); - // And rebuild the argument model list. - this.argumentVarModels_ = []; - for (var i = 0; i < this.arguments_.length; i++) { - var variable = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.getOrCreateVariablePackage( - this.workspace, null, this.arguments_[i], ''); - this.argumentVarModels_.push(variable); - } - - this.updateShape_(); - this.quarkIds_ = paramIds; - // Reconnect any child blocks. - if (this.quarkIds_) { - for (var i = 0; i < this.arguments_.length; i++) { - var quarkId = this.quarkIds_[i]; - if (quarkId in this.quarkConnections_) { - var connection = this.quarkConnections_[quarkId]; - if (connection && !connection.reconnect(this, 'ARG' + i)) { - // Block no longer exists or has been attached elsewhere. - delete this.quarkConnections_[quarkId]; - } - } - } - } - // Restore rendering and show the changes. - this.rendered = savedRendered; - if (this.rendered) { - this.render(); - } - }, - /** - * Modify this block to have the correct number of arguments. - * @private - * @this {Blockly.Block} - */ - updateShape_: function () { - for (var i = 0; i < this.arguments_.length; i++) { - var field = this.getField('ARGNAME' + i); - if (field) { - // Ensure argument name is up to date. - // The argument name field is deterministic based on the mutation, - // no need to fire a change event. - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.disable(); - try { - field.setValue(this.arguments_[i]); - } finally { - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.enable(); - } - } else { - // Add new input. - field = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldLabel(this.arguments_[i]); - var input = this.appendValueInput('ARG' + i) - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField(field, 'ARGNAME' + i); - input.init(); - } - } - // Remove deleted inputs. - while (this.getInput('ARG' + i)) { - this.removeInput('ARG' + i); - i++; - } - // Add 'with:' if there are parameters, remove otherwise. - var topRow = this.getInput('TOPROW'); - if (topRow) { - if (this.arguments_.length) { - if (!this.getField('WITH')) { - topRow.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CALL_BEFORE_PARAMS'], 'WITH'); - topRow.init(); - } - } else { - if (this.getField('WITH')) { - topRow.removeField('WITH'); - } - } - } - }, - /** - * Create XML to represent the (non-editable) name and arguments. - * @return {!Element} XML storage element. - * @this {Blockly.Block} - */ - mutationToDom: function () { - var container = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - container.setAttribute('name', this.getProcedureCall()); - for (var i = 0; i < this.arguments_.length; i++) { - var parameter = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('arg'); - parameter.setAttribute('name', this.arguments_[i]); - container.appendChild(parameter); - } - return container; - }, - /** - * Parse XML to restore the (non-editable) name and parameters. - * @param {!Element} xmlElement XML storage element. - * @this {Blockly.Block} - */ - domToMutation: function (xmlElement) { - var name = xmlElement.getAttribute('name'); - this.renameProcedure(this.getProcedureCall(), name); - var args = []; - var paramIds = []; - for (var i = 0, childNode; (childNode = xmlElement.childNodes[i]); i++) { - if (childNode.nodeName.toLowerCase() == 'arg') { - args.push(childNode.getAttribute('name')); - paramIds.push(childNode.getAttribute('paramId')); - } - } - this.setProcedureParameters_(args, paramIds); - }, - /** - * Return all variables referenced by this block. - * @return {!Array} List of variable names. - * @this {Blockly.Block} - */ - getVars: function () { - return this.arguments_; - }, - /** - * Return all variables referenced by this block. - * @return {!Array} List of variable models. - * @this {Blockly.Block} - */ - getVarModels: function () { - return this.argumentVarModels_; - }, - /** - * Procedure calls cannot exist without the corresponding procedure - * definition. Enforce this link whenever an event is fired. - * @param {!Blockly.Events.Abstract} event Change event. - * @this {Blockly.Block} - */ - onchange: function (event) { - if (!this.workspace || this.workspace.isFlyout) { - // Block is deleted or is in a flyout. - return; - } - if (!event.recordUndo) { - // Events not generated by user. Skip handling. - return; - } - if (event.type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.BLOCK_CREATE && - event.ids.indexOf(this.id) != -1) { - // Look for the case where a procedure call was created (usually through - // paste) and there is no matching definition. In this case, create - // an empty definition block with the correct signature. - var name = this.getProcedureCall(); - var def = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].getDefinition(name, this.workspace); - if (def && (def.type != this.defType_)) { - // The signatures don't match. - def = null; - } - if (!def) { - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(event.group); - /** - * Create matching definition block. - * - * - * - * - * - * test - * - * - */ - var xml = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('xml'); - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', this.defType_); - var xy = this.getRelativeToSurfaceXY(); - var x = xy.x + blockly_core__WEBPACK_IMPORTED_MODULE_0__.SNAP_RADIUS * (this.RTL ? -1 : 1); - var y = xy.y + blockly_core__WEBPACK_IMPORTED_MODULE_0__.SNAP_RADIUS * 2; - block.setAttribute('x', x); - block.setAttribute('y', y); - var mutation = this.mutationToDom(); - block.appendChild(mutation); - var field = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field'); - field.setAttribute('name', 'NAME'); - var callName = this.getProcedureCall(); - if (!callName) { - // Rename if name is empty string. - callName = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].findLegalName('', this); - this.renameProcedure('', callName); - } - field.appendChild(blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode(callName)); - block.appendChild(field); - xml.appendChild(block); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Xml.domToWorkspace(xml, this.workspace); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(false); - } else { - if (JSON.stringify(def.getVars()) != JSON.stringify(this.arguments_)) { - let paramNames = def.arguments_; - let paramIds = []; - for (var i = 0; i < this.arguments_.length; i++) { - var input = this.getInput('ARG' + i); - if (!input) { - continue; - } - var connection = input.connection.targetConnection; - if (!connection) { - paramIds.push(null); - continue; - } - paramIds.push(connection.sourceBlock_.id); - } - this.setProcedureParameters_(paramNames, paramIds); - } - } - } else if (event.type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.BLOCK_DELETE) { - // Look for the case where a procedure definition has been deleted, - // leaving this block (a procedure call) orphaned. In this case, delete - // the orphan. - var name = this.getProcedureCall(); - var def = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].getDefinition(name, this.workspace); - if (!def) { - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(event.group); - this.dispose(true); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(false); - } - } else if (event.type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.CHANGE && event.element == 'disabled') { - var name = this.getProcedureCall(); - var def = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].getDefinition(name, this.workspace); - if (def && def.id == event.blockId) { - // in most cases the old group should be '' - var oldGroup = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.getGroup(); - if (oldGroup) { - // This should only be possible programmatically and may indicate a problem - // with event grouping. If you see this message please investigate. If the - // use ends up being valid we may need to reorder events in the undo stack. - console.log('Saw an existing group while responding to a definition change'); - } - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(event.group); - if (event.newValue) { - this.previousEnabledState_ = this.isEnabled(); - this.setEnabled(false); - } else { - this.setEnabled(this.previousEnabledState_); - } - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(oldGroup); - } - } - }, - /** - * Add menu option to find the definition block for this call. - * @param {!Array} options List of menu options to add to. - * @this {Blockly.Block} - */ - customContextMenu: function (options) { - if (!this.workspace.isMovable()) { - // If we center on the block and the workspace isn't movable we could - // loose blocks at the edges of the workspace. - return; - } - - var option = { enabled: true }; - option.text = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_HIGHLIGHT_DEF']; - var name = this.getProcedureCall(); - var workspace = this.workspace; - option.callback = function () { - var def = _others_procedures__WEBPACK_IMPORTED_MODULE_1__["default"].getDefinition(name, workspace); - if (def) { - workspace.centerOnBlock(def.id); - def.select(); - } - }; - options.push(option); - }, - defType_: 'procedures_defnoreturn' -}; - -const procedures_callreturn = { - /** - * Block for calling a procedure with a return value. - * @this {Blockly.Block} - */ - init: function () { - this.appendDummyInput('TOPROW') - .appendField('', 'NAME'); - this.setOutput(true); - this.setStyle('procedure_blocks'); - // Tooltip is set in domToMutation. - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_CALLRETURN_HELPURL']); - this.arguments_ = []; - this.argumentVarModels_ = []; - this.quarkConnections_ = {}; - this.quarkIds_ = null; - this.previousEnabledState_ = true; - }, - - getProcedureCall: procedures_callnoreturn.getProcedureCall, - renameProcedure: procedures_callnoreturn.renameProcedure, - setProcedureParameters_: - procedures_callnoreturn.setProcedureParameters_, - updateShape_: procedures_callnoreturn.updateShape_, - mutationToDom: procedures_callnoreturn.mutationToDom, - domToMutation: procedures_callnoreturn.domToMutation, - getVars: procedures_callnoreturn.getVars, - getVarModels: procedures_callnoreturn.getVarModels, - onchange: procedures_callnoreturn.onchange, - customContextMenu: - procedures_callnoreturn.customContextMenu, - defType_: 'procedures_defreturn' -}; - -const procedures_ifreturn = { - /** - * Block for conditionally returning a value from a procedure. - * @this {Blockly.Block} - */ - init: function () { - this.appendValueInput('CONDITION') - .setCheck('Boolean') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['CONTROLS_IF_MSG_IF']); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_RETURN']); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setStyle('procedure_blocks'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_IFRETURN_TOOLTIP']); - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_IFRETURN_HELPURL']); - this.hasReturnValue_ = true; - }, - /** - * Create XML to represent whether this block has a return value. - * @return {!Element} XML storage element. - * @this {Blockly.Block} - */ - mutationToDom: function () { - var container = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - container.setAttribute('value', Number(this.hasReturnValue_)); - return container; - }, - /** - * Parse XML to restore whether this block has a return value. - * @param {!Element} xmlElement XML storage element. - * @this {Blockly.Block} - */ - domToMutation: function (xmlElement) { - var value = xmlElement.getAttribute('value'); - this.hasReturnValue_ = (value == 1); - if (!this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendDummyInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_RETURN']); - } - }, - /** - * Called whenever anything on the workspace changes. - * Add warning if this flow block is not nested inside a loop. - * @param {!Blockly.Events.Abstract} _e Change event. - * @this {Blockly.Block} - */ - onchange: function () { - if (!this.workspace.isDragging || this.workspace.isDragging()) { - return; // Don't change state at the start of a drag. - } - var legal = false; - // Is the block nested in a procedure? - var block = this; - do { - if (this.FUNCTION_TYPES.indexOf(block.type) != -1) { - legal = true; - break; - } - block = block.getSurroundParent(); - } while (block); - if (legal) { - // If needed, toggle whether this block has a return value. - if (block.type == 'procedures_defnoreturn' && this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendDummyInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_RETURN']); - this.hasReturnValue_ = false; - } else if (block.type == 'procedures_defreturn' && - !this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_RETURN']); - this.hasReturnValue_ = true; - } - this.setWarningText(null); - if (!this.isInFlyout) { - this.setEnabled(true); - } - } else { - this.setWarningText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_IFRETURN_WARNING']); - if (!this.isInFlyout && !this.getInheritedDisabled()) { - this.setEnabled(false); - } - } - }, - /** - * List of block types that are functions and thus do not need warnings. - * To add a new function type add this to your code: - * procedures_ifreturn.FUNCTION_TYPES.push('custom_func'); - */ - FUNCTION_TYPES: ['procedures_defnoreturn', 'procedures_defreturn'] -}; - -const procedures_return = { - /** - * Block for conditionally returning a value from a procedure. - * @this Blockly.Block - */ - init: function () { - this.setStyle('procedure_blocks'); - // this.appendValueInput('CONDITION') - // .setCheck(Boolean) - // .appendField(Blockly.Msg.CONTROLS_IF_MSG_IF); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_IFRETURN_TOOLTIP); - this.hasReturnValue_ = true; - }, - /** - * Create XML to represent whether this block has a return value. - * @return {!Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('value', Number(this.hasReturnValue_)); - return container; - }, - /** - * Parse XML to restore whether this block has a return value. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var value = xmlElement.getAttribute('value'); - this.hasReturnValue_ = (value == 1); - if (!this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendDummyInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN); - } - }, - /** - * Called whenever anything on the workspace changes. - * Add warning if this flow block is not nested inside a loop. - * @param {!Blockly.Events.Abstract} e Change event. - * @this Blockly.Block - */ - onchange: function () { - var legal = false; - // Is the block nested in a procedure? - var block = this; - do { - if (this.FUNCTION_TYPES.indexOf(block.type) != -1) { - legal = true; - break; - } - block = block.getSurroundParent(); - } while (block); - if (legal) { - // If needed, toggle whether this block has a return value. - if (block.type == 'procedures_defnoreturn' && this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendDummyInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN); - this.hasReturnValue_ = false; - } else if (block.type == 'procedures_defreturn' && - !this.hasReturnValue_) { - this.removeInput('VALUE'); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN); - this.hasReturnValue_ = true; - } - this.setWarningText(null); - } else { - this.setWarningText(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_IFRETURN_WARNING); - } - }, - /** - * List of block types that are functions and thus do not need warnings. - * To add a new function type add this to your code: - * procedures_ifreturn.FUNCTION_TYPES.push('custom_func'); - */ - FUNCTION_TYPES: ['procedures_defnoreturn', 'procedures_defreturn', 'method_procedures_defnoreturn', 'method_procedures_defreturn'] -}; - -/***/ }), - -/***/ "../python/blocks/set.js": -/*!*******************************!*\ - !*** ../python/blocks/set.js ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ set_add_discard: () => (/* binding */ set_add_discard), -/* harmony export */ set_clear: () => (/* binding */ set_clear), -/* harmony export */ set_create_with: () => (/* binding */ set_create_with), -/* harmony export */ set_create_with_container: () => (/* binding */ set_create_with_container), -/* harmony export */ set_create_with_item: () => (/* binding */ set_create_with_item), -/* harmony export */ set_create_with_text_return: () => (/* binding */ set_create_with_text_return), -/* harmony export */ set_length: () => (/* binding */ set_length), -/* harmony export */ set_operate: () => (/* binding */ set_operate), -/* harmony export */ set_operate_update: () => (/* binding */ set_operate_update), -/* harmony export */ set_pop: () => (/* binding */ set_pop), -/* harmony export */ set_sub: () => (/* binding */ set_sub), -/* harmony export */ set_toset: () => (/* binding */ set_toset), -/* harmony export */ set_update: () => (/* binding */ set_update) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const SET_HUE = 100; - -const set_create_with = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(SET_HUE); - this.appendDummyInput("") - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE') - // .appendField(' ') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('s1'), 'VAR') - - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['set_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('set_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('set_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const set_create_with_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(SET_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const set_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(SET_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_VARIABLES_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const set_length = { - - init: function () { - this.setColour(SET_HUE); - this.appendValueInput('SET'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LENGTH); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_LENGTH_TOOLTIP); - this.setOutput(true, Number); - } -}; - -const set_pop = { - init: function () { - this.setColour(SET_HUE); - this.appendValueInput('SET') - .setCheck('Set') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_GET_AND_REMOVE_LAST); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_POP_TOOLTIP); - this.setInputsInline(true); - this.setOutput(true); - } -}; - -const set_clear = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(SET_HUE); - this.appendValueInput('SET') - .setCheck('Set') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_CLEAR); - - this.setPreviousStatement(true); - this.setNextStatement(true); - } -}; - -const set_operate = { - init: function () { - - - this.appendValueInput('SET1') - .setCheck('Set') - var operate = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_union, 'union'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_intersection, 'intersection'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_difference, 'difference'] - ]; - this.setColour(SET_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_and_set) - this.appendValueInput('SET2') - .setCheck('Set') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_get_operate) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(operate), 'OPERATE') - - this.setInputsInline(true); - this.setOutput(true, "set"); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OPERATE'); - var TOOLTIPS = { - 'union': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_UNION, - 'intersection': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_INTERSECTION, - 'difference': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_DIFFERENCE - }; - return TOOLTIPS[mode]; - }); - } -}; - -const set_operate_update = { - init: function () { - - this.appendValueInput('SET1') - .setCheck('Set') - var operate_update = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_union, 'update'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_intersection, 'intersection_update'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_difference, 'difference_update'] - ]; - this.setColour(SET_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_and_set) - this.appendValueInput('SET2') - .setCheck('Set') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_get_operate) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(operate_update), 'OPERATE') - - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_update) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OPERATE'); - var TOOLTIPS = { - 'update': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_UPDATE, - 'intersection_update': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_INTERSECTION_UPDATE, - 'difference_update': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_DIFFERENCE_UPDATE - }; - return TOOLTIPS[mode]; - }); - } -}; - -const set_add_discard = { - init: function () { - this.appendValueInput('SET') - .setCheck('Set') - var changenum = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_blockpy_set_add, 'add'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_blockpy_set_discard, 'discard']]; - this.setColour(SET_HUE); - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(changenum), 'OPERATE') - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_VARIABLES_NAME) - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OPERATE'); - var TOOLTIPS = { - 'add': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_ADD_TOOLTIP, - 'discard': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_DISCARD_TOOLTIP, - - }; - return TOOLTIPS[mode]; - }); - } -}; - -const set_sub = { - init: function () { - - this.appendValueInput('SET1') - .setCheck('Set') - var sub_super = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_sub, 'issubset'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_super, 'issuperset'] - ]; - this.setColour(SET_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_is_set) - this.appendValueInput('SET2') - .setCheck('Set') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_of) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(sub_super), 'OPERATE') - - - this.setInputsInline(true); - this.setOutput(true, Boolean); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OPERATE'); - var TOOLTIPS = { - 'issubset': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_SUB, - 'issuperset': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_SET_SUPER - - }; - return TOOLTIPS[mode]; - }); - } -}; - -const set_update = { - init: function () { - this.appendValueInput('SET') - .setCheck('Set') - this.setColour(SET_HUE); - this.appendValueInput('VAR') - .setCheck([String, 'List']) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_set_add_update); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.SET_UPDATE_TOOLTIP); - } -}; - -// export const set_change_to = { -// init: function() { -// var OPERATORS = -// [[Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'], -// [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple'] -// ]; -// this.setColour(SET_HUE); -// this.appendValueInput('VAR') -// .setCheck("Set") -// // .appendField(Blockly.Msg.blockpy_USE_LIST); -// this.appendDummyInput("") -// .appendField(Blockly.Msg.A_TO_B) -// .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP'); -// this.setInputsInline(true); -// this.setOutput(true); -// var thisBlock = this; -// this.setTooltip(function() { -// var mode = thisBlock.getFieldValue('OP'); -// var TOOLTIPS = { -// 'list': Blockly.Msg.SET_TO_LISTS, -// 'tuple': Blockly.Msg.SET_TO_TUPLE, -// }; -// return TOOLTIPS[mode]; -// }); -// } -// }; - -const set_create_with_text_return = { - init: function () { - this.setColour(SET_HUE); - this.appendDummyInput("") - .appendField('{') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'), 'TEXT') - .appendField('}'); - // .appendField(this.newQuote_(false)) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TOOLTIP_SET_CREATE_WITH_TEXT); - } -} - -const set_toset = { - init: function () { - this.setColour(SET_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOSET); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOSET); - } -}; - -/***/ }), - -/***/ "../python/blocks/storage.js": -/*!***********************************!*\ - !*** ../python/blocks/storage.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sdcard_mount: () => (/* binding */ sdcard_mount), -/* harmony export */ sdcard_use_spi_init: () => (/* binding */ sdcard_use_spi_init), -/* harmony export */ storage_can_write_ornot: () => (/* binding */ storage_can_write_ornot), -/* harmony export */ storage_change_dir: () => (/* binding */ storage_change_dir), -/* harmony export */ storage_close_file: () => (/* binding */ storage_close_file), -/* harmony export */ storage_delete_file: () => (/* binding */ storage_delete_file), -/* harmony export */ storage_file_seek: () => (/* binding */ storage_file_seek), -/* harmony export */ storage_file_tell: () => (/* binding */ storage_file_tell), -/* harmony export */ storage_file_write: () => (/* binding */ storage_file_write), -/* harmony export */ storage_fileopen: () => (/* binding */ storage_fileopen), -/* harmony export */ storage_fileopen_new: () => (/* binding */ storage_fileopen_new), -/* harmony export */ storage_fileopen_new_encoding: () => (/* binding */ storage_fileopen_new_encoding), -/* harmony export */ storage_get_a_line: () => (/* binding */ storage_get_a_line), -/* harmony export */ storage_get_contents: () => (/* binding */ storage_get_contents), -/* harmony export */ storage_get_contents_without_para: () => (/* binding */ storage_get_contents_without_para), -/* harmony export */ storage_get_current_dir: () => (/* binding */ storage_get_current_dir), -/* harmony export */ storage_get_file_size: () => (/* binding */ storage_get_file_size), -/* harmony export */ storage_get_filename: () => (/* binding */ storage_get_filename), -/* harmony export */ storage_is_file: () => (/* binding */ storage_is_file), -/* harmony export */ storage_list_all_files: () => (/* binding */ storage_list_all_files), -/* harmony export */ storage_make_dir: () => (/* binding */ storage_make_dir), -/* harmony export */ storage_open_file_with_os: () => (/* binding */ storage_open_file_with_os), -/* harmony export */ storage_rename: () => (/* binding */ storage_rename) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const STORAGE_HUE = 0; //'#5d69c5'//0; - -const storage_open_file_with_os = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput('fn') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS + "(For Windows)"); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - } -} - -const storage_fileopen = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILENAME") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE); - //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb'] - ]), 'MODE'); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_AS); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_USE; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG; - var TOOLTIPS = { - 'r': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, - 'w': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, - 'rb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, - 'wb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE - }; - return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2; - }); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - - -const storage_fileopen_new = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILENAME") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE); - //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb'] - ]), 'MODE'); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_USE; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG; - var mode4 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PY_STORAGE_FILE_OBJECT; - var TOOLTIPS = { - 'r': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, - 'w': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, - 'rb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, - 'wb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE - }; - return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2 + mode4; - }); - } -}; - -const storage_fileopen_new_encoding = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILENAME") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE); - //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME'); - var code = - [['ANSI', 'ANSI'], ['gbk', 'gbk'], ['utf-8', 'utf-8']]; - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb'] - ]), 'MODE'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TEXT_ENCODE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(code), 'CODE') - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_USE; - var mode1 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_BELONG; - var mode4 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PY_STORAGE_FILE_OBJECT; - var TOOLTIPS = { - 'r': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, - 'w': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, - 'rb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, - 'wb': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE - }; - return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2 + mode4; - }); - } -}; - -const storage_file_write = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput('data') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE); - // .appendField(new Blockly.FieldTextInput('f'), 'FILE'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE); - } -} - -const storage_get_contents_without_para = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck('Variable') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL, 'read'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE, 'readline'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES, 'readlines']]), 'MODE'); - this.setInputsInline(true); - this.setPreviousStatement(false); //in front of the block has something - this.setNextStatement(false); //beyond the ... has something - this.setOutput(true, String); - } -}; - -const storage_get_contents = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck('Variable') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE, 'read'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE, 'readline'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE, 'readlines'] - ]), 'MODE'); - this.appendValueInput("SIZE") - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER); - this.setInputsInline(true); - this.setPreviousStatement(false); //in front of the block has something - this.setNextStatement(false); //beyond the ... has something - this.setOutput(true, String); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER; - var TOOLTIPS = { - 'read': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE, - 'readline': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE, - 'readlines': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE - }; - return mode0 + TOOLTIPS[mode] + 'x' + mode2; - }); - } -}; - -const storage_get_a_line = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE); - this.setNextStatement(true); - this.appendValueInput("SIZE") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_PYTHON_TYPE); - } -}; - -const storage_can_write_ornot = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_FILE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, Boolean); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1); - } -}; - -const storage_get_filename = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME); - } -}; - -const storage_close_file = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setOutput(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE); - } -}; - -const storage_list_all_files = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, 'List'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES); - } -}; -blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE -const storage_delete_file = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE, 'remove'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS, 'removedirs'] - ]), 'MODE'); - this.appendValueInput("FILE") - .setCheck(String); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setOutput(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE); - } -}; - -const storage_get_file_size = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE); - } -}; - -const storage_file_tell = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL); - } -}; - -const storage_file_seek = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck('Variable') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START, 'start'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT, 'current'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END, 'end'] - ]), 'MODE'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET); - this.appendValueInput("SIZE") - .setCheck(Number); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER); - this.setInputsInline(true); - this.setPreviousStatement(true); //in front of the block has something - this.setNextStatement(true); //beyond the ... has something - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER; - var mode3 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET; - var TOOLTIPS = { - 'start': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START, - 'current': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT, - 'end': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END - }; - return mode0 + " " + TOOLTIPS[mode] + mode3 + 'x' + mode2; - }); - } -}; - -const storage_get_current_dir = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, 'List'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR); - } -}; - -const storage_make_dir = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("PATH") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SET); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR, 'mkdir'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS, 'makedirs'] - ]), 'MODE'); - this.setInputsInline(true); - this.setPreviousStatement(true); //in front of the block has something - this.setNextStatement(true); //beyond the ... has something - this.setOutput(false); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ESP32_SET; - var TOOLTIPS = { - 'mkdir': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR, - 'makedirs': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS - }; - return mode0 + 'x' + mode2 + TOOLTIPS[mode]; - }); - } -}; - -const storage_rename = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME); - this.appendValueInput("NEWFILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_AS); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setOutput(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME); - } -}; - -const storage_change_dir = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setOutput(false); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR); - } -}; - -const storage_is_file = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput("FILE") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_FILE, 'isfile'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR, 'isdir'] - ]), 'MODE'); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, Boolean); - let thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('MODE'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH; - var mode2 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT; - var TOOLTIPS = { - 'isfile': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR, - 'isdir': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS - }; - return mode0 + 'x' + mode2 + TOOLTIPS[mode]; - }); - } -}; - -const sdcard_use_spi_init = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput('SPISUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.CONTROLS_FOR_INPUT_WITH + "SPI") - .setCheck("var"); - this.appendValueInput('PINSUB') - .appendField("CS") - this.appendValueInput('SUB') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE) - .setCheck("var"); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SETUP + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SD_CARD); - this.setInputsInline(true); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - } -}; - -const sdcard_mount = { - init: function () { - this.setColour(STORAGE_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SD_CARD); - this.appendValueInput("DIR") - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_SDCARD_MOUNT); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setInputsInline(true); - this.setTooltip(); - } -} - -/***/ }), - -/***/ "../python/blocks/text.js": -/*!********************************!*\ - !*** ../python/blocks/text.js ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ascii_to_char: () => (/* binding */ ascii_to_char), -/* harmony export */ char_to_ascii: () => (/* binding */ char_to_ascii), -/* harmony export */ number_to_text: () => (/* binding */ number_to_text), -/* harmony export */ os_system: () => (/* binding */ os_system), -/* harmony export */ text: () => (/* binding */ text), -/* harmony export */ text_capital: () => (/* binding */ text_capital), -/* harmony export */ text_center: () => (/* binding */ text_center), -/* harmony export */ text_char: () => (/* binding */ text_char), -/* harmony export */ text_char_at: () => (/* binding */ text_char_at), -/* harmony export */ text_char_at2: () => (/* binding */ text_char_at2), -/* harmony export */ text_char_at3: () => (/* binding */ text_char_at3), -/* harmony export */ text_compareTo: () => (/* binding */ text_compareTo), -/* harmony export */ text_compare_to: () => (/* binding */ text_compare_to), -/* harmony export */ text_create_with_container: () => (/* binding */ text_create_with_container), -/* harmony export */ text_create_with_item: () => (/* binding */ text_create_with_item), -/* harmony export */ text_encode: () => (/* binding */ text_encode), -/* harmony export */ text_equals_starts_ends: () => (/* binding */ text_equals_starts_ends), -/* harmony export */ text_eval: () => (/* binding */ text_eval), -/* harmony export */ text_find: () => (/* binding */ text_find), -/* harmony export */ text_format: () => (/* binding */ text_format), -/* harmony export */ text_format_noreturn: () => (/* binding */ text_format_noreturn), -/* harmony export */ text_join: () => (/* binding */ text_join), -/* harmony export */ text_join_seq: () => (/* binding */ text_join_seq), -/* harmony export */ text_length: () => (/* binding */ text_length), -/* harmony export */ text_random_char: () => (/* binding */ text_random_char), -/* harmony export */ text_replace: () => (/* binding */ text_replace), -/* harmony export */ text_split: () => (/* binding */ text_split), -/* harmony export */ text_strip: () => (/* binding */ text_strip), -/* harmony export */ text_substring: () => (/* binding */ text_substring), -/* harmony export */ text_substring2: () => (/* binding */ text_substring2), -/* harmony export */ text_substring3: () => (/* binding */ text_substring3), -/* harmony export */ text_textarea: () => (/* binding */ text_textarea) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const TEXTS_HUE = 160//'#9ec440'//160; - -const text = { - /** - * Block for text value. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL); - this.setColour(TEXTS_HUE); - this.appendDummyInput() - .appendField(this.newQuote_(true)) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(''), 'TEXT') - .appendField(this.newQuote_(false)); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TEXT_TOOLTIP); - }, - /** - * Create an image of an open or closed quote. - * @param {boolean} open True if open quote, false if closed. - * @return {!Blockly.FieldImage} The field image of the quote. - * @private - */ - newQuote_: function (open) { - if (open == this.RTL) { - var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=='; - } else { - var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC'; - } - return new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldImage(file, 12, 12, '"'); - } -}; - -const text_textarea = { - /** - * Block for text value. - * @this Blockly.Block - */ - init: function () { - //this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL); - this.setColour(TEXTS_HUE); - this.appendDummyInput() - .appendField(this.newQuote_(true)) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput('Hello\nMixly'), 'VALUE') - // .appendField(new Blockly.FieldTextInput(''), 'TEXT') - .appendField(this.newQuote_(false)); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_LINES_TOOLTIP); - }, - /** - * Create an image of an open or closed quote. - * @param {boolean} open True if open quote, false if closed. - * @return {!Blockly.FieldImage} The field image of the quote. - * @private - */ - newQuote_: function (open) { - if (open == this.RTL) { - var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=='; - } else { - var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC'; - } - return new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldImage(file, 12, 12, '"'); - } -}; - -blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.char_validator = function (text) { - if (text.length > 1) { - if (text.charAt(0) === "\\") { - var charAtOne = text.charAt(1); - if (charAtOne === "0" || - charAtOne === "b" || - charAtOne === "f" || - charAtOne === "n" || - charAtOne === "r" || - charAtOne === "t" || - charAtOne === "\\" || - charAtOne === "'") { - return String(text).substring(0, 2); - } else if (charAtOne === "x" && text.charAt(2) === "0" && text.charAt(3) === "B") { - return String(text).substring(0, 4); - } - } - } - return String(text).substring(0, 1); -}; - -const text_char = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendDummyInput() - .appendField(this.newQuote_(true)) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('', blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput.char_validator), 'TEXT') - .appendField(this.newQuote_(false)); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHAR_TOOLTIP); - }, - newQuote_: function (open) { - if (open == true) { - var file = '../../media/quote2.png'; - } else { - var file = '../../media/quote3.png'; - } - return new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldImage(file, 7, 12, '"'); - } -}; - - -const text_join = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput('A') - .setCheck([String, Number]); - this.appendValueInput('B') - .setCheck([String, Number]) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TEXT_JOIN); - this.setInputsInline(true); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_JOIN); - } -}; - -const ascii_to_char = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOCHAR); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR); - } -}; - -const char_to_ascii = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOASCII); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_TOASCII); - } -}; - -const number_to_text = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOSTRING); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT); - } -}; - -const text_length = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LENGTH); - this.setOutput(true, Number); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TEXT_LENGTH); - } -} - - - -const text_char_at2 = { - init: function () { - this.WHERE_OPTIONS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START, "FROM_START"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_END, "FROM_END"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_GET_INDEX_RANDOM + 1 + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2, "RANDOM"] - ]; - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_HELPURL); - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String) - // .appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST) - this.appendValueInput("AT") - .setCheck(Number) - this.appendDummyInput() - //.appendField(Blockly.Msg.MIXLY_MID) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_GET, "MODE"); - // .appendField("", "SPACE"); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TAIL && this.appendDummyInput("TAIL").appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TAIL); - // this.appendDummyInput().appendField(Blockly.Msg.MIXLY_DE); - this.setInputsInline(!0); - this.setOutput(!0); - this.updateAt_(!0); - var b = this; - this.setTooltip(function () { - var a = b.getFieldValue("MODE"), - e = b.getFieldValue("WHERE"), - d = ""; - switch (a + " " + e) { - case "GET FROM_START": - case "GET FROM_END": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM; - break; - case "GET RANDOM": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM; - break; - case "GET_REMOVE FROM_START": - case "GET_REMOVE FROM_END": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM; - break; - case "GET_REMOVE RANDOM": - d = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM; - break; - } - if ("FROM_START" == e || "FROM_END" == e) d += " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1", blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.ONE_BASED_INDEXING ? "#1" : "#0"); - return d - }) - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('WHERE'); - var TOOLTIPS = { - 'FROM_START': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START, - 'FROM_END': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_END, - 'RANDOM': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_GET_INDEX_RANDOM - }; - return blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING + TOOLTIPS[mode] + 'n' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2; - }); - }, - mutationToDom: function () { - var a = document.createElement("mutation"); - a.setAttribute("statement", !this.outputConnection); - var b = this.getInput("AT").type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - a.setAttribute("at", b); - return a - }, - domToMutation: function (a) { - var b = "true" == a.getAttribute("statement"); - this.updateStatement_(b); - a = "false" != a.getAttribute("at"); - this.updateAt_(a) - }, - updateStatement_: function (a) { - a != !this.outputConnection && (this.unplug(!0, !0), a ? (this.setOutput(!1), this.setPreviousStatement(!0), this.setNextStatement(!0)) : (this.setPreviousStatement(!1), this.setNextStatement(!1), this.setOutput(!0))) - }, - updateAt_: function (a) { - this.removeInput("AT"); - this.removeInput("ORDINAL", !0); - a ? (this.appendValueInput("AT").setCheck(Number), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2 && this.appendDummyInput("ORDINAL").appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2)) : this.appendDummyInput("AT"); - var b = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this.WHERE_OPTIONS, - function (b) { - var e = "FROM_START" == b || "FROM_END" == b; - if (e != a) { - var d = this.sourceBlock_; - d.updateAt_(e); - d.setFieldValue(b, "WHERE"); - return null - } - }); - this.getInput("AT").appendField(b, "WHERE"); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TAIL && this.moveInputBefore("TAIL", null) - } -}; - - -const text_char_at = { - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_HELPURL); - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String); - this.appendValueInput("AT") - .setCheck(Number) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_DEFRETURN_RETURN + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START + 'n' + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2); - } -} - - -const text_random_char = { - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_HELPURL); - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_RANDOM_CHAR); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_RANDOM_CHAR_TOOLTIP); - } -} - - -const text_substring2 = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - this['WHERE_OPTIONS_1'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST'] - ]; - this['WHERE_OPTIONS_2'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST'] - ]; - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String) - //.appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL) - // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) { - // this.appendDummyInput('TAIL') - // .appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL); - // } - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendDummyInput('AT1'); - this.appendDummyInput('AT2'); - this.setInputsInline(true); - this.setOutput(true, 'List'); - this.updateAt_(1, true); - this.updateAt_(2, true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg._GET_TEXT_SUBLIST_TOOLTIP); - }, - /** - * Create XML to represent whether there are 'AT' inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - var isAt1 = this.getInput('AT1').type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - container.setAttribute('at1', isAt1); - var isAt2 = this.getInput('AT2').type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - container.setAttribute('at2', isAt2); - return container; - }, - /** - * Parse XML to restore the 'AT' inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var isAt1 = (xmlElement.getAttribute('at1') == 'true'); - var isAt2 = (xmlElement.getAttribute('at2') == 'true'); - this.updateAt_(1, isAt1); - this.updateAt_(2, isAt2); - }, - /** - * Create or delete an input for a numeric index. - * This block has two such inputs, independant of each other. - * @param {number} n Specify first or second input (1 or 2). - * @param {boolean} isAt True if the input should exist. - * @private - * @this Blockly.Block - */ - updateAt_: function (n, isAt) { - // Create or delete an input for the numeric index. - // Destroy old 'AT' and 'ORDINAL' inputs. - this.removeInput('AT' + n); - this.removeInput('ORDINAL' + n, true); - // Create either a value 'AT' input or a dummy input. - if (isAt) { - this.appendValueInput('AT' + n).setCheck(Number); - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2) { - this.appendDummyInput('ORDINAL' + n) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2); - } - } else { - this.appendDummyInput('AT' + n); - } - var menu = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this['WHERE_OPTIONS_' + n], - function (value) { - var newAt = (value == 'FROM_START') || (value == 'FROM_END'); - // The 'isAt' variable is available due to this function being a - // closure. - if (newAt != isAt) { - var block = this.sourceBlock_; - block.updateAt_(n, newAt); - // This menu has been destroyed and replaced. - // Update the replacement. - block.setFieldValue(value, 'WHERE' + n); - return null; - } - return undefined; - }); - this.getInput('AT' + n) - .appendField(menu, 'WHERE' + n); - if (n == 1) { - this.moveInputBefore('AT1', 'AT2'); - if (this.getInput('ORDINAL1')) { - this.moveInputBefore('ORDINAL1', 'AT2'); - } - } - // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) { - // this.moveInputBefore('TAIL', null); - // } - } -}; - -const text_substring = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String) - this.appendValueInput('AT1') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendValueInput('AT2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT2); - this.setInputsInline(true); - this.setOutput(true, ['List', String]); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg._GET_TEXT_SUBLIST_TOOLTIP); - } -} - -const text_equals_starts_ends = { - init: function () { - var TEXT_DOWHAT = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_EQUALS, '==='], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_STARTSWITH, 'startswith'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_ENDSWITH, 'endswith'] - ]; - this.setColour(TEXTS_HUE); - this.appendValueInput("STR1") - .setCheck(String); - this.appendValueInput("STR2") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(TEXT_DOWHAT), 'DOWHAT') - .setCheck(String); - this.setOutput(true, [Boolean, Number]); - this.setInputsInline(true); - } -} - -const text_compare_to = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("STR1") - .setCheck(String); - this.appendValueInput("STR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMPARETO) - .setCheck(String); - this.setOutput(true, Number); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_COMPARETO_HELP); - } -} - -const text_capital = { - init: function () { - var TEXT_CAPITAL = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_UPPER, 'upper'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TITLE, 'title'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CAPITALIZE, 'capitalize'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_SWAPCASE, 'swapcase'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_LOWER, 'lower'] - ]; - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(TEXT_CAPITAL), 'CAPITAL') - .setCheck(String); - this.setOutput(true, String); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('CAPITAL'); - var TOOLTIPS = { - 'upper': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP, - 'title': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP, - 'swapcase': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP, - 'capitalize': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP, - 'lower': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP - }; - return TOOLTIPS[mode]; - }); - } -} - -const text_center = { - init: function () { - var TEXT_CENTER = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_LJUST, 'ljust'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CENTER, 'center'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_RJUST, 'rjust'] - ]; - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(TEXT_CENTER), 'CENTER') - .setCheck(String); - this.appendValueInput("WID") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_WIDTH) - .setCheck(Number); - this.appendValueInput("Symbol") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_RECT_Fill) - .setCheck(String); - this.setInputsInline(true); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP); - } -} - -const text_find = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .setCheck(String); - this.appendValueInput("STR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MID + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER) - .setCheck(String); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX); - this.setInputsInline(true); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP); - } -} - -const text_join_seq = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR) - .setCheck(String); - this.appendValueInput('LIST') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ) - .setCheck('List', 'Tuple', 'Set', 'Dict'); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR); - this.setInputsInline(true); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP); - } -} - -const text_replace = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR") - .setCheck(String); - this.appendValueInput("STR1") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_REPLACE) - .setCheck(String); - this.appendValueInput("STR2") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_SET_INDEX_INPUT_TO) - .setCheck(String); - this.setInputsInline(true); - this.setOutput(true, String); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP); - } -} - -const text_split = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput("VAR"); - this.appendValueInput("VAL") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LIST_SPLIT_AS); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LIST_SPLIT); - this.setOutput(true, "List"); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP); - this.setInputsInline(true); - } -} - -const text_strip = { - init: function () { - var STRIP = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_BOTH, 'strip'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT, 'lstrip'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT, 'rstrip']]; - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_STRIM); - this.appendDummyInput('') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(STRIP), 'TOWHAT'); - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_BLANK); - this.setOutput(true, String); - this.setInputsInline(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('TOWHAT'); - var TOOLTIPS = { - 'strip': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_BOTH_TOOLTIP, - 'lstrip': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_LEFT_TOOLTIP, - 'rstrip': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_TRIM_RIGHT_TOOLTIP - }; - return TOOLTIPS[mode]; - }); - } -}; - -const text_format = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(TEXTS_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_FORMAT) - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE') - // .appendField(' ') - this.appendDummyInput("") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('str'), 'VAR'); - this.itemCount_ = 1; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['text_create_with_item'], this)); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('text_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('text_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_BEFORE_PARAMS); - } - } - } - }, - getVars: function () { - if (this.getFieldValue('VAR') != null) { - if ((this.getFieldValue('VAR').indexOf("'") == -1) && (this.getFieldValue('VAR').indexOf('"') == -1)) { - return [this.getFieldValue('VAR')]; - } - return []; - } - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - - } -}; - -const text_create_with_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(TEXTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_MUTATORCONTAINER_TITLE); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const text_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(TEXTS_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_VARIABLES_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const text_substring3 = text_substring -const text_compareTo = text_compare_to -const text_char_at3 = text_char_at - -const text_format_noreturn = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(TEXTS_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROPYTHON_FORMAT) - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE') - // .appendField(' ') - this.appendValueInput("VAR") - .setCheck(String); - this.itemCount_ = 1; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setInputsInline(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['text_create_with_item'], this)); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('text_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('text_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PROCEDURES_BEFORE_PARAMS); - } - } - } - } -}; - - - -const text_encode = { - init: function () { - this.setColour(TEXTS_HUE); - var encode_decode = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TEXT_ENCODE, 'encode'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TEXT_DECODE, 'decode']]; - var code = - [['ASCII', 'ASCII'], ['gb2312', 'gb2312'], ['gbk', 'gbk'], ['utf-8', 'utf-8'], ['utf-16', 'utf-16'], ['utf-32', 'utf-32']]; - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(code), 'CODE') - .appendField(' ') - this.appendValueInput("VAR") - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(encode_decode), 'DIR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_STRING); - this.setOutput(true, String); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TEXT_ENCODE_DECODE_TOOLTIP); - - } -}; - - -const text_eval = { - init: function () { - - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_EVAL); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_EVAL_RESULT); - this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TEXT_EVAL_TOOLTIP); - } -}; - -const os_system = { - init: function () { - this.setColour(TEXTS_HUE); - this.appendValueInput('VAR') - .setCheck(String) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_OS_SYSTEM); - this.setInputsInline(true); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_OS_SYSTEM_TOOLTIP); - } -}; - -/***/ }), - -/***/ "../python/blocks/tuple.js": -/*!*********************************!*\ - !*** ../python/blocks/tuple.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ tuple_change_to: () => (/* binding */ tuple_change_to), -/* harmony export */ tuple_create_with: () => (/* binding */ tuple_create_with), -/* harmony export */ tuple_create_with_container: () => (/* binding */ tuple_create_with_container), -/* harmony export */ tuple_create_with_item: () => (/* binding */ tuple_create_with_item), -/* harmony export */ tuple_create_with_noreturn: () => (/* binding */ tuple_create_with_noreturn), -/* harmony export */ tuple_create_with_text2: () => (/* binding */ tuple_create_with_text2), -/* harmony export */ tuple_create_with_text_return: () => (/* binding */ tuple_create_with_text_return), -/* harmony export */ tuple_del: () => (/* binding */ tuple_del), -/* harmony export */ tuple_find: () => (/* binding */ tuple_find), -/* harmony export */ tuple_getIndex: () => (/* binding */ tuple_getIndex), -/* harmony export */ tuple_getSublist: () => (/* binding */ tuple_getSublist), -/* harmony export */ tuple_get_random_item: () => (/* binding */ tuple_get_random_item), -/* harmony export */ tuple_get_sublist: () => (/* binding */ tuple_get_sublist), -/* harmony export */ tuple_input: () => (/* binding */ tuple_input), -/* harmony export */ tuple_join: () => (/* binding */ tuple_join), -/* harmony export */ tuple_length: () => (/* binding */ tuple_length), -/* harmony export */ tuple_max: () => (/* binding */ tuple_max), -/* harmony export */ tuple_totuple: () => (/* binding */ tuple_totuple), -/* harmony export */ tuple_trig: () => (/* binding */ tuple_trig) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const TUPLE_HUE = 195; //'#5ec73d'//195; - -const tuple_create_with = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput("") - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE') - // .appendField(' ') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('mytup'), 'VAR'); - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['tuple_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('tuple_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('tuple_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const tuple_create_with_container = { - /** - * Mutator block for list container. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const tuple_create_with_item = { - /** - * Mutator bolck for adding items. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_VARIABLES_NAME); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const tuple_create_with_text2 = { - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput("") - //don't need to specify the data type in Python - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array']]), 'TYPE') - // .appendField(' ') - // .appendField(Blockly.Msg.blockpy_MIXLY_TUPLE_CREATE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('mytup'), 'VAR') - //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE') - // .appendField(Blockly.Msg.MIXLY_MAKELISTFROM) - // .appendField(this.newQuote_(true)) - .appendField(' = (') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'), 'TEXT') - .appendField(')'); - // .appendField(this.newQuote_(false)) - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TOOLTIP_TUPLE_CREATE_WITH_TEXT); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } - // newQuote_: function(open) { - // if (open == this.RTL) { - // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=='; - // } else { - // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC'; - // } - // return new Blockly.FieldImage(file, 12, 12, '"'); - // } -} - -const tuple_create_with_text_return = { - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput("") - .appendField('(') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'), 'TEXT') - .appendField(')'); - // .appendField(this.newQuote_(false)) - this.setOutput(true); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXPY_TOOLTIP_TUPLE_CREATE_WITH_TEXT); - // }, - // getVars: function() { - // return [this.getFieldValue('VAR')]; - // }, - // renameVar: function(oldName, newName) { - // if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) { - // this.setTitleValue(newName, 'VAR'); - // } - } - // newQuote_: function(open) { - // if (open == this.RTL) { - // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg=='; - // } else { - // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC'; - // } - // return new Blockly.FieldImage(file, 12, 12, '"'); - // } -} - -const tuple_getIndex = { - init: function () { - this.setColour(TUPLE_HUE); - this.setOutput(true); - this.appendValueInput('TUP') - .setCheck('Tuple') - this.appendValueInput('AT') - .setCheck(Number) - - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_GET_INDEX1); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_LISTS_GET_INDEX2); - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_GET_INDEX_TOOLTIP); - } -}; - -const tuple_length = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendValueInput('TUP'); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LENGTH); - - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_LENGTH_TOOLTIP); - this.setOutput(true, Number); - } -}; - -const tuple_del = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendValueInput('TUP') - .setCheck('Tuple') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_DEL); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_DEL_TOOLTIP); - } -}; - -const tuple_join = { - /** - * Block for list length. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.appendValueInput('TUP1') - .setCheck('Tuple') - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_JOIN) - this.appendValueInput('TUP2') - .setCheck('Tuple') - this.setInputsInline(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_JOIN_TOOLTIP); - this.setOutput(true, "Tuple"); - } -}; - - -const tuple_max = { - init: function () { - this.appendValueInput('TUP') - .setCheck('Tuple') - var max_min = - [[blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_TUPLE_MAX, 'max'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_TUPLE_MIN, 'min'], [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_SUM, 'sum']]; - this.setColour(TUPLE_HUE); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_JS_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(max_min), 'DIR') - - - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('DIR'); - var TOOLTIPS = { - 'max': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TUPLE_MAX, - 'min': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TUPLE_MIN, - 'sum': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TUPLE_SUM - }; - return TOOLTIPS[mode]; - }); - } -}; - -const tuple_change_to = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set'] - ]; - this.setColour(TUPLE_HUE); - this.appendValueInput('VAR') - .setCheck("Tuple") - // .appendField(Blockly.Msg.blockpy_USE_LIST); - this.appendDummyInput("") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.A_TO_B) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'list': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_TO_LISTS, - 'set': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_TO_SET, - }; - return TOOLTIPS[mode]; - }); - } -}; - -const tuple_find = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_INDEX, 'INDEX'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_COUNT, 'COUNT'] - ]; - this.setColour(TUPLE_HUE); - this.appendValueInput('VAR') - .setCheck('List') - this.appendValueInput('data') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.HTML_VALUE) - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_DE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR') - this.setInputsInline(true); - this.setOutput(true, Number); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'INDEX': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TUPLE_FIND_INDEX, - 'COUNT': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOOLTIP_TUPLE_FIND_COUNT - - }; - return TOOLTIPS[mode]; - }); - } -}; - -const tuple_trig = { - init: function () { - var OPERATORS = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_LIST_LEN, 'LEN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_SUM, 'SUM'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MAX, 'MAX'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MIN, 'MIN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_AVERAGE, 'AVERAGE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MEDIAN, 'MEDIAN'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_MODE, 'MODE'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_OPERATOR_STD_DEV, 'STD_DEV'], - ]; - //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL); - this.setColour(TUPLE_HUE); - this.setOutput(true, Number); - this.appendValueInput('data') - .setCheck('List') - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(OPERATORS), 'OP'); - this.setInputsInline(true); - // Assign 'this' to a variable for use in the tooltip closure below. - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('OP'); - var TOOLTIPS = { - 'LEN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_LENGTH_TOOLTIP, - 'SUM': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_SUM, - 'MAX': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MAX, - 'MIN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MIN, - 'AVERAGE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_AVERAGE, - 'MEDIAN': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MEDIAN, - 'MODE': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MODE, - 'STD_DEV': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MATH_ONLIST_TOOLTIP_TUPLE_STD_DEV - - }; - return TOOLTIPS[mode]; - }); - } -}; - -const tuple_getSublist = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - this['WHERE_OPTIONS_1'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST'] - ]; - this['WHERE_OPTIONS_2'] = [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST'] - ]; - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(TUPLE_HUE); - this.appendValueInput('LIST') - .setCheck('List') - //.appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL) - // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) { - // this.appendDummyInput('TAIL') - // .appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL); - // } - this.appendDummyInput('') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET); - this.appendDummyInput('AT1'); - this.appendDummyInput('AT2'); - this.setInputsInline(true); - this.setOutput(true, 'List'); - this.updateAt_(1, true); - this.updateAt_(2, true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_TUPLE_GET_SUBLIST_TOOLTIP); - }, - /** - * Create XML to represent whether there are 'AT' inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - var isAt1 = this.getInput('AT1').type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - container.setAttribute('at1', isAt1); - var isAt2 = this.getInput('AT2').type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE; - container.setAttribute('at2', isAt2); - return container; - }, - /** - * Parse XML to restore the 'AT' inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - var isAt1 = (xmlElement.getAttribute('at1') == 'true'); - var isAt2 = (xmlElement.getAttribute('at2') == 'true'); - this.updateAt_(1, isAt1); - this.updateAt_(2, isAt2); - }, - /** - * Create or delete an input for a numeric index. - * This block has two such inputs, independant of each other. - * @param {number} n Specify first or second input (1 or 2). - * @param {boolean} isAt True if the input should exist. - * @private - * @this Blockly.Block - */ - updateAt_: function (n, isAt) { - // Create or delete an input for the numeric index. - // Destroy old 'AT' and 'ORDINAL' inputs. - this.removeInput('AT' + n); - this.removeInput('ORDINAL' + n, true); - // Create either a value 'AT' input or a dummy input. - if (isAt) { - this.appendValueInput('AT' + n).setCheck(Number); - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL) { - this.appendDummyInput('ORDINAL' + n) - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL); - } - } else { - this.appendDummyInput('AT' + n); - } - var menu = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(this['WHERE_OPTIONS_' + n], - function (value) { - var newAt = (value == 'FROM_START') || (value == 'FROM_END'); - // The 'isAt' variable is available due to this function being a - // closure. - if (newAt != isAt) { - var block = this.sourceBlock_; - block.updateAt_(n, newAt); - // This menu has been destroyed and replaced. - // Update the replacement. - block.setFieldValue(value, 'WHERE' + n); - return null; - } - return undefined; - }); - this.getInput('AT' + n) - .appendField(menu, 'WHERE' + n); - if (n == 1) { - this.moveInputBefore('AT1', 'AT2'); - if (this.getInput('ORDINAL1')) { - this.moveInputBefore('ORDINAL1', 'AT2'); - } - } - // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) { - // this.moveInputBefore('TAIL', null); - // } - } -}; - -const tuple_create_with_noreturn = { - /** - * Block for creating a list with any number of elements of any type. - * @this Blockly.Block - */ - init: function () { - this.setColour(TUPLE_HUE); - this.itemCount_ = 3; - this.updateShape_(); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, "Tuple") - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['tuple_create_with_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_TOOLTIP); - }, - /** - * Create XML to represent list inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('tuple_create_with_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('tuple_create_with_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_EMPTY_TITLE); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TUPLE_CREATE_WITH_INPUT_WITH); - } - } - } - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(oldName, this.getFieldValue('VAR'))) { - this.setTitleValue(newName, 'VAR'); - } - } -}; - -const tuple_get_sublist = { - /** - * Block for getting sublist. - * @this Blockly.Block - */ - init: function () { - this.setHelpUrl(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_HELPURL); - this.setColour(TUPLE_HUE); - this.appendValueInput('LIST') - this.appendDummyInput('') - this.appendValueInput('AT1') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_FROM_START); - this.appendValueInput('AT2') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_SUBLIST_END_FROM_START); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_CHARAT_TAIL); - this.setInputsInline(true); - this.setOutput(true, 'Tuple'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.PYTHON_TUPLE_GET_SUBLIST_TOOLTIP); - } -} - -const tuple_get_random_item = { - init: function () { - this.setColour(TUPLE_HUE); - this.appendValueInput("TUP"); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + " " + blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_RANDOM) - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM); - this.setOutput(true); - } -}; - -const tuple_totuple = { - init: function () { - this.setColour(TUPLE_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_TOTUPLE); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_TOOLTIP_TOTUPLE); - } -}; - -const tuple_input = { - init: function () { - this.setColour(TUPLE_HUE); - this.appendDummyInput("") - .appendField('(') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput('0,0,0'),"CONTENT") - .appendField(')'); - this.setOutput(true); - } -}; - -/***/ }), - -/***/ "../python/blocks/utility.js": -/*!***********************************!*\ - !*** ../python/blocks/utility.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ attribute_access: () => (/* binding */ attribute_access), -/* harmony export */ function_call: () => (/* binding */ function_call), -/* harmony export */ function_call_container: () => (/* binding */ function_call_container), -/* harmony export */ function_call_item: () => (/* binding */ function_call_item), -/* harmony export */ raw_block: () => (/* binding */ raw_block), -/* harmony export */ raw_empty: () => (/* binding */ raw_empty), -/* harmony export */ raw_expression: () => (/* binding */ raw_expression), -/* harmony export */ raw_table: () => (/* binding */ raw_table), -/* harmony export */ text_comment: () => (/* binding */ text_comment), -/* harmony export */ text_print_multiple: () => (/* binding */ text_print_multiple), -/* harmony export */ text_print_multiple_container: () => (/* binding */ text_print_multiple_container), -/* harmony export */ text_print_multiple_item: () => (/* binding */ text_print_multiple_item), -/* harmony export */ type_check: () => (/* binding */ type_check) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/** - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Utility blocks for Blockly. - * @author acbart@vt.edu (Austin Cory Bart) - */ - - -const UTILITY_HUE = 160; - -const raw_table = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendDummyInput() - .appendField('Tabular Abstraction:'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTable(''), 'TEXT'); - } -}; - -const raw_block = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendDummyInput() - .appendField('Code Block:'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput(''), 'TEXT'); - } -}; - -const raw_expression = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendField('Code Expression:'); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldMultilineInput(''), 'TEXT'); - this.setOutput(true); - } -}; - -const raw_empty = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.appendValueInput('VALUE') - .appendField(''); - this.setInputsInline(false); - } -}; - -const text_comment = { - // Text value. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendTitle('Comment:') - .appendTitle(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(''), 'TEXT'); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip('This comment will be ignored by Python'); - } -}; - -const type_check = { - // Set element at index. - init: function () { - this.setColour(UTILITY_HUE); - this.appendValueInput('VALUE') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TYPE_CHECK); - this.setInputsInline(false); - this.setOutput(true, 'Type'); - //this.setPreviousStatement(true); - //this.setNextStatement(true); - } -}; - - -const text_print_multiple = { - /** - * Block for printing multiple things (including nothing) - * @this Blockly.Block - */ - init: function () { - this.setColour(UTILITY_HUE); - this.itemCount_ = 1; - this.updateShape_(); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['text_print_multiple_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - }, - /** - * Create XML to represent print inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Block.obtain(workspace, - 'text_print_multiple_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var x = 0; x < this.itemCount_; x++) { - var itemBlock = workspace.newBlock('text_print_multiple_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('PRINT' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - // Store a pointer to any connected child blocks. - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var x = 0; - while (itemBlock) { - var input = this.getInput('PRINT' + x); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - x++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('PRINT' + i)) { - this.removeInput('PRINT' + i); - i++; - } - } - - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField("print"); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('PRINT' + i); - if (i == 0) { - input.appendField("print"); - } - } - } - } -}; - -const text_print_multiple_container = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendField('print'); - this.appendStatementInput('STACK'); - this.setTooltip(''); - this.contextMenu = false; - } -}; -const text_print_multiple_item = { - // Add items. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendField('item'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - this.contextMenu = false; - } -}; - -const function_call = { - /** - * Block for printing multiple things (including nothing) - * @this Blockly.Block - */ - init: function () { - this.setColour(UTILITY_HUE); - this.itemCount_ = 1; - this.hasReturn_ = false; - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput("str"), 'NAME'); - this.updateShape_(); - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['function_call_item'], this)); - this.setTooltip("Can be used to call any function"); - }, - /** - * Create XML to represent print inputs. - * @return {Element} XML storage element. - * @this Blockly.Block - */ - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - container.setAttribute('hasReturn', this.hasReturn_ ? "TRUE" : "FALSE"); - return container; - }, - /** - * Parse XML to restore the list inputs. - * @param {!Element} xmlElement XML storage element. - * @this Blockly.Block - */ - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.hasReturn_ = xmlElement.getAttribute('hasReturn') === "TRUE"; - this.updateShape_(); - }, - /** - * Populate the mutator's dialog with this block's components. - * @param {!Blockly.Workspace} workspace Mutator's workspace. - * @return {!Blockly.Block} Root block in mutator. - * @this Blockly.Block - */ - decompose: function (workspace) { - var containerBlock = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Block.obtain(workspace, - 'function_call_container'); - containerBlock.initSvg(); - - containerBlock.setFieldValue(this.hasStatements_ ? 'TRUE' : 'FALSE', - 'RETURN'); - - var connection = containerBlock.getInput('STACK').connection; - for (var x = 0; x < this.itemCount_; x++) { - var itemBlock = workspace.newBlock('function_call_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - /** - * Notification that the procedure's return state has changed. - * @param {boolean} returnState New return state - * @this Blockly.Block - */ - setReturn: function (returnState) { - this.unplug(true, true); - this.setOutput(returnState); - this.setPreviousStatement(!returnState); - this.setNextStatement(!returnState); - if (this.rendered) { - this.render(); - } - }, - /** - * Reconfigure this block based on the mutator dialog's components. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - - this.hasReturn_ = containerBlock.getFieldValue("RETURN") === "TRUE"; - - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ARGUMENT' + i).connection.connect(connections[i]); - } - } - }, - /** - * Store pointers to any connected child blocks. - * @param {!Blockly.Block} containerBlock Root block in mutator. - * @this Blockly.Block - */ - saveConnections: function (containerBlock) { - // Store a pointer to any connected child blocks. - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var x = 0; - while (itemBlock) { - var input = this.getInput('ARGUMENT' + x); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - x++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - /** - * Modify this block to have the correct number of inputs. - * @private - * @this Blockly.Block - */ - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ARGUMENT' + i)) { - this.removeInput('ARGUMENT' + i); - i++; - } - } - - // Rebuild block. - for (var i = 0; i < this.itemCount_; i++) { - this.appendValueInput('ARGUMENT' + i); - } - - // Set whether returns anything - this.setReturn(this.hasReturn_); - } -}; - -const function_call_container = { - // Container. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendField('Arguments'); - this.appendStatementInput('STACK'); - this.appendDummyInput() - .setAlign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.inputs.Align.RIGHT) - .appendField('has return') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldCheckbox('TRUE'), - 'RETURN'); - this.setTooltip(''); - this.contextMenu = false; - } -}; -const function_call_item = { - // Add items. - init: function () { - this.setColour(UTILITY_HUE); - this.appendDummyInput() - .appendField('argument'); - this.setInputsInline(true); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(''); - this.contextMenu = false; - } -}; - -const attribute_access = { - init: function () { - this.appendValueInput("MODULE") - .setCheck(null); - this.appendValueInput("NAME") - .setCheck(null) - .appendField("."); - this.setInputsInline(true); - this.setOutput(true, null); - this.setColour(230); - this.setTooltip(''); - this.setHelpUrl(''); - } -}; - - -/***/ }), - -/***/ "../python/blocks/variables.js": -/*!*************************************!*\ - !*** ../python/blocks/variables.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ controls_type: () => (/* binding */ controls_type), -/* harmony export */ controls_typeLists: () => (/* binding */ controls_typeLists), -/* harmony export */ lists_zip: () => (/* binding */ lists_zip), -/* harmony export */ lists_zip_container: () => (/* binding */ lists_zip_container), -/* harmony export */ lists_zip_item: () => (/* binding */ lists_zip_item), -/* harmony export */ unpack_iterable_object: () => (/* binding */ unpack_iterable_object), -/* harmony export */ variables_change: () => (/* binding */ variables_change), -/* harmony export */ variables_get: () => (/* binding */ variables_get), -/* harmony export */ variables_global: () => (/* binding */ variables_global), -/* harmony export */ variables_set: () => (/* binding */ variables_set) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _others_names__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../others/names */ "../python/others/names.js"); - - - -const VARIABLES_HUE = 330//'#af5180'//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.FieldTextInput(''), 'VAR') -// //.appendField(Blockly.Msg.MIXLY_AS) -// //.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'number'], [Blockly.Msg.LANG_MATH_STRING, 'string'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean']]), 'TYPE') -// .appendField(Blockly.Msg.MIXLY_VALUE); -// this.setPreviousStatement(true); -// this.setNextStatement(true); -// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_VARIABLES_DECLARE); -// }, -// getVars: function() { -// return [this.getFieldValue('VAR')]; -// }, -// renameVar: function(oldName, newName) { -// if (Names.equals(oldName, this.getFieldValue('VAR'))) { -// this.setTitleValue(newName, 'VAR'); -// } -// } -// }; -// ************************************************************************ - -const variables_get = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendDummyInput() - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(''), 'VAR') - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.VARIABLES_GET_TOOLTIP); - }, - getVars: function () { - return [this.getFieldValue('VAR')]; - }, - renameVar: function (oldName, newName) { - if (_others_names__WEBPACK_IMPORTED_MODULE_1__["default"].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 = { -// init: function() { -// this.setColour(VARIABLES_HUE); -// this.appendValueInput('VALUE') -// .appendField(new Blockly.FieldTextInput(''), 'VAR') -// .appendField(Blockly.Msg.MIXLY_VALUE2); -// this.setPreviousStatement(true); -// this.setNextStatement(true); -// this.setTooltip(Blockly.Msg.VARIABLES_SET_TOOLTIP); -// }, -// getVars: function() { -// return [this.getFieldValue('VAR')]; -// }, -// renameVar: function(oldName, newName) { -// if (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); -// } -// }*/ -// }; -const variables_set = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendValueInput('VALUE') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldTextInput(''), 'VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_VALUE2); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.VARIABLES_SET_TOOLTIP); - }, - getVars: function () { - var varValue = this.getFieldValue('VAR'); - if (varValue == null) { - return []; - } - return varValue.split(","); - }, - renameVar: function (oldName, newName) { - if (_others_names__WEBPACK_IMPORTED_MODULE_1__["default"].equals(oldName, this.getFieldValue('VAR'))) { - this.setFieldValue(newName, 'VAR'); - } - } -}; -/** - * Block for basic data type change. - * @this Blockly.Block - */ -const variables_change = { - init: function () { - this.setColour(VARIABLES_HUE); - var DATATYPES = - [ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, "int"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_FLOAT, "float"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BOOLEAN, "bool"], - // [Blockly.Msg.MIXLY_MICROPYTHON_TYPE_COMPLEX, "complex"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_STRING, "str"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, "list"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, "tuple"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, "dict"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, "set"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE, "bytes"] - ]; - this.appendValueInput('MYVALUE') - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown(DATATYPES), 'OP'); - // Assign 'this' to a variable for use in the tooltip closure below. - this.setOutput(true); - // this.setInputsInline(true); - - } -}; - - -const variables_global = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendValueInput("VAR") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_GLOBAL) - .setCheck("var"); - this.setPreviousStatement(true, null); - this.setNextStatement(true, null); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.TEXT_PRINT_TOOLTIP); - } -}; - - -const controls_type = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendValueInput("DATA") - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_PYTHON_TYPE); - // this.setInputsInline(true); - this.setOutput(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_PYTHON_TYPE); - } -}; - - -const controls_typeLists = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, "int"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_FLOAT, "float"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING, "str"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, "list"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, "tuple"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, "dict"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, "set"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE, "bytes"], - // [Blockly.Msg.MIXLY_MICROBIT_IMAGE,"image"], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL, "type(None)"]]), "type"); - //整数、浮点数、字符串、列表、元组、字典、集合、图像不太对, unfinished - this.setInputsInline(true); - this.setOutput(true); - var thisBlock = this; - this.setTooltip(function () { - var mode = thisBlock.getFieldValue('type'); - var mode0 = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MICROBIT_controls_TypeLists; - var TOOLTIPS = { - 'int': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_INT, - 'float': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_FLOAT, - 'str': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_STRING, - 'list': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_LIST, - 'tuple': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_TUPLE, - 'dict': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, - 'set': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, - 'image': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_IMAGE, - 'bytes': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LANG_MATH_BYTE, - 'NoneType': blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.LOGIC_NULL - }; - return mode0 + TOOLTIPS[mode]; - }); - } -}; - -const lists_zip = { - init: function () { - this.setColour(VARIABLES_HUE); - - this.itemCount_ = 2; - this.updateShape_(); - this.setInputsInline(true); - this.setPreviousStatement(false); - this.setNextStatement(false); - this.setOutput(true, "List") - this.setMutator(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.icons.MutatorIcon(['lists_zip_item'], this)); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP); - }, - - mutationToDom: function () { - var container = document.createElement('mutation'); - container.setAttribute('items', this.itemCount_); - return container; - }, - - domToMutation: function (xmlElement) { - this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10); - this.updateShape_(); - }, - - decompose: function (workspace) { - var containerBlock = - workspace.newBlock('lists_zip_container'); - containerBlock.initSvg(); - var connection = containerBlock.getInput('STACK').connection; - for (var i = 0; i < this.itemCount_; i++) { - var itemBlock = workspace.newBlock('lists_zip_item'); - itemBlock.initSvg(); - connection.connect(itemBlock.previousConnection); - connection = itemBlock.nextConnection; - } - return containerBlock; - }, - - compose: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - // Count number of inputs. - var connections = []; - var i = 0; - while (itemBlock) { - connections[i] = itemBlock.valueConnection_; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - i++; - } - this.itemCount_ = i; - this.updateShape_(); - // Reconnect any child blocks. - for (var i = 0; i < this.itemCount_; i++) { - if (connections[i]) { - this.getInput('ADD' + i).connection.connect(connections[i]); - } - } - }, - - saveConnections: function (containerBlock) { - var itemBlock = containerBlock.getInputTargetBlock('STACK'); - var i = 0; - while (itemBlock) { - var input = this.getInput('ADD' + i); - itemBlock.valueConnection_ = input && input.connection.targetConnection; - i++; - itemBlock = itemBlock.nextConnection && - itemBlock.nextConnection.targetBlock(); - } - }, - - updateShape_: function () { - // Delete everything. - if (this.getInput('EMPTY')) { - this.removeInput('EMPTY'); - } else { - var i = 0; - while (this.getInput('ADD' + i)) { - this.removeInput('ADD' + i); - i++; - } - } - // Rebuild block. - if (this.itemCount_ == 0) { - this.appendDummyInput('EMPTY') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP); - } else { - for (var i = 0; i < this.itemCount_; i++) { - var input = this.appendValueInput('ADD' + i); - if (i == 0) { - input.appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP); - } - } - } - } -}; -const lists_zip_container = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP) - .appendField('[]'); - this.appendStatementInput('STACK'); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP); - this.contextMenu = false; - } -}; - -const lists_zip_item = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendDummyInput() - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM); - this.setPreviousStatement(true); - this.setNextStatement(true); - this.setTooltip(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM_TOOLTIP); - this.contextMenu = false; - } -}; - -const unpack_iterable_object = { - init: function () { - this.setColour(VARIABLES_HUE); - this.appendValueInput('VAR') - .appendField(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_VARIABLE_UNPACK) - .appendField(new blockly_core__WEBPACK_IMPORTED_MODULE_0__.FieldDropdown([ - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM, '*'], - [blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg.MIXLY_MICROBIT_TYPE_DICT, '**'] - ]), 'TYPE'); - this.setTooltip(''); - this.setOutput(true); - } -}; - -/***/ }), - -/***/ "../python/export.js": -/*!***************************!*\ - !*** ../python/export.js ***! - \***************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Names: () => (/* reexport safe */ _others_names__WEBPACK_IMPORTED_MODULE_26__["default"]), -/* harmony export */ Procedures: () => (/* reexport safe */ _others_procedures__WEBPACK_IMPORTED_MODULE_27__["default"]), -/* harmony export */ Python: () => (/* reexport safe */ _python_generator__WEBPACK_IMPORTED_MODULE_29__.Python), -/* harmony export */ PythonControlBlocks: () => (/* reexport module object */ _blocks_control__WEBPACK_IMPORTED_MODULE_1__), -/* harmony export */ PythonControlGenerators: () => (/* reexport module object */ _generators_control__WEBPACK_IMPORTED_MODULE_14__), -/* harmony export */ PythonDictsBlocks: () => (/* reexport module object */ _blocks_dicts__WEBPACK_IMPORTED_MODULE_5__), -/* harmony export */ PythonDictsGenerators: () => (/* reexport module object */ _generators_dicts__WEBPACK_IMPORTED_MODULE_18__), -/* harmony export */ PythonHtmlBlocks: () => (/* reexport module object */ _blocks_html__WEBPACK_IMPORTED_MODULE_11__), -/* harmony export */ PythonHtmlGenerators: () => (/* reexport module object */ _generators_html__WEBPACK_IMPORTED_MODULE_24__), -/* harmony export */ PythonListsBlocks: () => (/* reexport module object */ _blocks_lists__WEBPACK_IMPORTED_MODULE_4__), -/* harmony export */ PythonListsGenerators: () => (/* reexport module object */ _generators_lists__WEBPACK_IMPORTED_MODULE_17__), -/* harmony export */ PythonLogicBlocks: () => (/* reexport module object */ _blocks_logic__WEBPACK_IMPORTED_MODULE_6__), -/* harmony export */ PythonLogicGenerators: () => (/* reexport module object */ _generators_logic__WEBPACK_IMPORTED_MODULE_19__), -/* harmony export */ PythonMathBlocks: () => (/* reexport module object */ _blocks_math__WEBPACK_IMPORTED_MODULE_2__), -/* harmony export */ PythonMathGenerators: () => (/* reexport module object */ _generators_math__WEBPACK_IMPORTED_MODULE_15__), -/* harmony export */ PythonProceduresBlocks: () => (/* reexport module object */ _blocks_procedures__WEBPACK_IMPORTED_MODULE_8__), -/* harmony export */ PythonProceduresGenerators: () => (/* reexport module object */ _generators_procedures__WEBPACK_IMPORTED_MODULE_21__), -/* harmony export */ PythonSetBlocks: () => (/* reexport module object */ _blocks_set__WEBPACK_IMPORTED_MODULE_10__), -/* harmony export */ PythonSetGenerators: () => (/* reexport module object */ _generators_set__WEBPACK_IMPORTED_MODULE_23__), -/* harmony export */ PythonStorageBlocks: () => (/* reexport module object */ _blocks_storage__WEBPACK_IMPORTED_MODULE_7__), -/* harmony export */ PythonStorageGenerators: () => (/* reexport module object */ _generators_storage__WEBPACK_IMPORTED_MODULE_20__), -/* harmony export */ PythonTextBlocks: () => (/* reexport module object */ _blocks_text__WEBPACK_IMPORTED_MODULE_3__), -/* harmony export */ PythonTextGenerators: () => (/* reexport module object */ _generators_text__WEBPACK_IMPORTED_MODULE_16__), -/* harmony export */ PythonTupleBlocks: () => (/* reexport module object */ _blocks_tuple__WEBPACK_IMPORTED_MODULE_9__), -/* harmony export */ PythonTupleGenerators: () => (/* reexport module object */ _generators_tuple__WEBPACK_IMPORTED_MODULE_22__), -/* harmony export */ PythonUtilityBlocks: () => (/* reexport module object */ _blocks_utility__WEBPACK_IMPORTED_MODULE_12__), -/* harmony export */ PythonUtilityGenerators: () => (/* reexport module object */ _generators_utility__WEBPACK_IMPORTED_MODULE_25__), -/* harmony export */ PythonVariablesBlocks: () => (/* reexport module object */ _blocks_variables__WEBPACK_IMPORTED_MODULE_0__), -/* harmony export */ PythonVariablesGenerators: () => (/* reexport module object */ _generators_variables__WEBPACK_IMPORTED_MODULE_13__), -/* harmony export */ Variables: () => (/* reexport safe */ _others_variables__WEBPACK_IMPORTED_MODULE_28__["default"]) -/* harmony export */ }); -/* harmony import */ var _blocks_variables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./blocks/variables */ "../python/blocks/variables.js"); -/* harmony import */ var _blocks_control__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blocks/control */ "../python/blocks/control.js"); -/* harmony import */ var _blocks_math__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blocks/math */ "../python/blocks/math.js"); -/* harmony import */ var _blocks_text__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blocks/text */ "../python/blocks/text.js"); -/* harmony import */ var _blocks_lists__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blocks/lists */ "../python/blocks/lists.js"); -/* harmony import */ var _blocks_dicts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blocks/dicts */ "../python/blocks/dicts.js"); -/* harmony import */ var _blocks_logic__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blocks/logic */ "../python/blocks/logic.js"); -/* harmony import */ var _blocks_storage__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blocks/storage */ "../python/blocks/storage.js"); -/* harmony import */ var _blocks_procedures__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./blocks/procedures */ "../python/blocks/procedures.js"); -/* harmony import */ var _blocks_tuple__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./blocks/tuple */ "../python/blocks/tuple.js"); -/* harmony import */ var _blocks_set__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./blocks/set */ "../python/blocks/set.js"); -/* harmony import */ var _blocks_html__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./blocks/html */ "../python/blocks/html.js"); -/* harmony import */ var _blocks_utility__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./blocks/utility */ "../python/blocks/utility.js"); -/* harmony import */ var _generators_variables__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./generators/variables */ "../python/generators/variables.js"); -/* harmony import */ var _generators_control__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./generators/control */ "../python/generators/control.js"); -/* harmony import */ var _generators_math__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./generators/math */ "../python/generators/math.js"); -/* harmony import */ var _generators_text__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./generators/text */ "../python/generators/text.js"); -/* harmony import */ var _generators_lists__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./generators/lists */ "../python/generators/lists.js"); -/* harmony import */ var _generators_dicts__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./generators/dicts */ "../python/generators/dicts.js"); -/* harmony import */ var _generators_logic__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./generators/logic */ "../python/generators/logic.js"); -/* harmony import */ var _generators_storage__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./generators/storage */ "../python/generators/storage.js"); -/* harmony import */ var _generators_procedures__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./generators/procedures */ "../python/generators/procedures.js"); -/* harmony import */ var _generators_tuple__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./generators/tuple */ "../python/generators/tuple.js"); -/* harmony import */ var _generators_set__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./generators/set */ "../python/generators/set.js"); -/* harmony import */ var _generators_html__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./generators/html */ "../python/generators/html.js"); -/* harmony import */ var _generators_utility__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./generators/utility */ "../python/generators/utility.js"); -/* harmony import */ var _others_names__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./others/names */ "../python/others/names.js"); -/* harmony import */ var _others_procedures__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./others/procedures */ "../python/others/procedures.js"); -/* harmony import */ var _others_variables__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./others/variables */ "../python/others/variables.js"); -/* harmony import */ var _python_generator__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./python_generator */ "../python/python_generator.js"); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ "../python/generators/control.js": -/*!***************************************!*\ - !*** ../python/generators/control.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Panic_with_status_code: () => (/* binding */ Panic_with_status_code), -/* harmony export */ base_setup: () => (/* binding */ base_setup), -/* harmony export */ controls_delay: () => (/* binding */ controls_delay), -/* harmony export */ controls_flow_statements: () => (/* binding */ controls_flow_statements), -/* harmony export */ controls_for: () => (/* binding */ controls_for), -/* harmony export */ controls_forEach: () => (/* binding */ controls_forEach), -/* harmony export */ controls_for_range: () => (/* binding */ controls_for_range), -/* harmony export */ controls_if: () => (/* binding */ controls_if), -/* harmony export */ controls_interrupts: () => (/* binding */ controls_interrupts), -/* harmony export */ controls_lambda: () => (/* binding */ controls_lambda), -/* harmony export */ controls_main: () => (/* binding */ controls_main), -/* harmony export */ controls_millis: () => (/* binding */ controls_millis), -/* harmony export */ controls_nointerrupts: () => (/* binding */ controls_nointerrupts), -/* harmony export */ controls_pass: () => (/* binding */ controls_pass), -/* harmony export */ controls_range: () => (/* binding */ controls_range), -/* harmony export */ controls_repeat: () => (/* binding */ controls_repeat), -/* harmony export */ controls_repeat_ext: () => (/* binding */ controls_repeat_ext), -/* harmony export */ controls_thread: () => (/* binding */ controls_thread), -/* harmony export */ controls_try_finally: () => (/* binding */ controls_try_finally), -/* harmony export */ controls_whileUntil: () => (/* binding */ controls_whileUntil), -/* harmony export */ datetime_fromtimestamp: () => (/* binding */ datetime_fromtimestamp), -/* harmony export */ do_while: () => (/* binding */ do_while), -/* harmony export */ garbage_collection: () => (/* binding */ garbage_collection), -/* harmony export */ gene_unique_identifier: () => (/* binding */ gene_unique_identifier), -/* harmony export */ get_mem_alloc: () => (/* binding */ get_mem_alloc), -/* harmony export */ get_mem_free: () => (/* binding */ get_mem_free), -/* harmony export */ get_unique_identifier: () => (/* binding */ get_unique_identifier), -/* harmony export */ reset: () => (/* binding */ reset), -/* harmony export */ time_sleep: () => (/* binding */ time_sleep) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); - - - -const controls_main = function (a, generator) { - var d = generator.statementToCode(a, "DO"), - d = generator.addLoopTrap(d, a.id) || generator.PASS; - return "if __name__ == '__main__':\n" + d; -} - -const base_setup = function (_, generator) { - var branch = generator.statementToCode(this, 'DO'); - branch = branch.replace(/(^\s*)|(\s*$)/g, "").replace(/\n {4}/g, '\n');//去除两端空格 - if (branch.endsWith('\n')) { - generator.setups_['setup_setup'] = branch; - } - else { - generator.setups_['setup_setup'] = branch + '\n'; - } - return ''; -} - -// ok -const controls_if = function (a, generator) { - var b = 0, - c = "", - d, - e; - do - e = generator.valueToCode(a, "IF" + b, generator.ORDER_NONE) || "False", d = generator.statementToCode(a, "DO" + b) || generator.PASS, c += (0 == b ? "if " : "elif ") + e + ":\n" + d, ++b; - while (a.getInput("IF" + b)); - a.getInput("ELSE") && (d = generator.statementToCode(a, "ELSE") || generator.PASS, c += "else:\n" + d); - return c -} - -const controls_try_finally = function (_, generator) { - var n = 1; - var argument = generator.valueToCode(this, 'IF' + n, - generator.ORDER_NONE) || 'null'; - var branch = ''; - var t = generator.statementToCode(this, 'try') || ' pass\n'; - var code = 'try:\n' + t; - for (n = 1; n <= this.elseifCount_; n++) { - argument = generator.valueToCode(this, 'IF' + n, - generator.ORDER_NONE) || ''; - if (argument !== '') - argument = ' ' + argument - branch = generator.statementToCode(this, 'DO' + n) || ' pass\n'; - code += 'except' + argument + ': \n' + branch; - } - if (this.elseCount_) { - branch = generator.statementToCode(this, 'ELSE') || ' pass\n'; - code += 'finally:\n' + branch; - } - // code += '}'; - return code; -} - -// ok -const controls_for = function (a, generator) { - var b = generator.variableDB_.getName(a.getFieldValue("VAR"), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE), - //var b = generator.valueToCode(a, "VAR", generator.ORDER_MEMBER) || "''", - c = generator.valueToCode(a, "FROM", generator.ORDER_NONE) || "0", - d = generator.valueToCode(a, "TO", generator.ORDER_NONE) || "0", - e = generator.valueToCode(a, "STEP", generator.ORDER_NONE) || "1", - f = generator.statementToCode(a, "DO"), - f = generator.addLoopTrap(f, a.id) || generator.PASS, - g = "", - h = function (_, generator) { - return generator.provideFunction_("upRange", - ["def " + generator.FUNCTION_NAME_PLACEHOLDER_ + "(start, stop, step):", " while start <= stop:", " yield start", " start += abs(step)"]) - }, - k = function (_, generator) { - return generator.provideFunction_("downRange", ["def " + generator.FUNCTION_NAME_PLACEHOLDER_ + "(start, stop, step):", " while start >= stop:", " yield start", " start -= abs(step)"]) - } - a = function (a, b, c) { - return "(" + a + " <= " + b + ") and " + h() + "(" + a + ", " + b + ", " + c + ") or " + k() + "(" + a + ", " + b + ", " + c + ")" - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(c) && blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(d) && - blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(e)) - c = parseFloat(c), d = parseFloat(d), e = Math.abs(parseFloat(e)), 0 === c % 1 && 0 === d % 1 && 0 === e % 1 ? (c <= d ? (d++, a = 0 == c && 1 == e ? d : c + ", " + d, 1 != e && (a += ", " + e)) : (d--, a = c + ", " + d + ", -" + e), a = "range(" + a + ")") : (a = c < d ? h() : k(), a += "(" + c + ", " + d + ", " + e + ")"); - else { - var l = function (a, c) { - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(a)) - a = parseFloat(a); - else { - var d = generator.variableDB_.getDistinctName(b + c, blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - g += d + " = " + a + "\n"; - a = d - } - return a - }, - c = l(c, "_start"), - d = l(d, "_end"); - l(e, "_inc"); - a = "number" == typeof c && "number" == typeof d ? c < d ? h(c, d, e) : k(c, d, e) : a(c, d, e) - } - return g += "for " + b + " in " + a + ":\n" + f -} - -const controls_for_range = function (block, generator) { - var iter = generator.variableDB_.getName(block.getFieldValue("VAR"), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE), - from = generator.valueToCode(block, "FROM", generator.ORDER_NONE) || "0", - end = generator.valueToCode(block, "TO", generator.ORDER_NONE) || "0", - step = generator.valueToCode(block, "STEP", generator.ORDER_NONE) || "1", - dostatement = generator.statementToCode(block, "DO"), - pass = generator.addLoopTrap(dostatement, block.id) || generator.PASS; - generator.setups_["mixly_range"] = "def mixly_range(start, stop, step):\n" + - " for i in range(start, stop + 1, step):\n" + - " yield i\n\n"; - return "for " + iter + " in mixly_range(" + from + ", " + end + ", " + step + "):\n" + pass; -} - -const controls_whileUntil = function (a, generator) { - var b = "UNTIL" == a.getFieldValue("MODE"), - c = generator.valueToCode(a, "BOOL", generator.ORDER_NONE) || "False", - d = generator.statementToCode(a, "DO"), - d = generator.addLoopTrap(d, a.id) || generator.PASS; - b && (c = "not " + c); - return "while " + c + ":\n" + d -} - -// export const controls_flow_statements = function (_, generator) { -// // Flow statements: continue, break. -// switch (this.getFieldValue('FLOW')) { -// case 'BREAK': -// return 'break;\n'; -// case 'CONTINUE': -// return 'continue;\n'; -// } -// throw 'Unknown flow statement.'; -// } - -//ok -const controls_flow_statements = function (a) { - switch (a.getFieldValue("FLOW")) { - case "BREAK": - return "break\n"; - case "CONTINUE": - return "continue\n" - } - throw "Unknown flow statement."; -} - -// ok -const controls_delay = function (_, generator) { - var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000' - var code = 'sleep(' + delay_time + ')\n'; - return code; -} - -// ok -const Panic_with_status_code = function (_, generator) { - var status_code = generator.valueToCode(this, 'STATUS_CODE', generator.ORDER_ATOMIC) || '1000' - var code = 'panic(' + status_code + ')\n'; - return code; -} - -// ok -const controls_millis = function (_, generator) { - generator.definitions_.import_time = "import time"; - var code = 'time.time()'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const reset = function (_, generator) { - generator.definitions_['import_microbit'] = 'from microbit import *' - return 'reset()\n'; -} -const controls_interrupts = function () { - return 'interrupts();\n'; -} - -const controls_nointerrupts = function () { - return 'noInterrupts();\n'; -} - - -const controls_forEach = function (block, generator) { - // For each loop. - var variable0 = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\'\''; - var argument0 = generator.valueToCode(block, 'LIST', - generator.ORDER_RELATIONAL) || '[]'; - var branch = generator.statementToCode(block, 'DO'); - branch = generator.addLoopTrap(branch, block.id) || - generator.PASS; - var code = 'for ' + variable0 + ' in ' + argument0 + ':\n' + branch; - return code; -} - -const controls_range = function (_, generator) { - var from = generator.valueToCode(this, "FROM", generator.ORDER_NONE) || "0"; - var end = generator.valueToCode(this, "TO", generator.ORDER_NONE) || "0"; - var step = generator.valueToCode(this, "STEP", generator.ORDER_NONE) || "1"; - var code = "range(" + from + ", " + end + ", " + step + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const controls_lambda = function (a, generator) { - var c = generator.valueToCode(a, "BOOL", generator.ORDER_NONE) || "None", - d = generator.statementToCode(a, "DO") || "pass"; - var code = "lambda " + c + ": " + d; - code = code.replace('\n', '').replace(' ', '') - return [code, generator.ORDER_ATOMIC]; -} - -const time_sleep = function (_, generator) { - generator.definitions_['import_time'] = 'import time'; - var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000' - var code = 'time.sleep(' + delay_time + ')\n'; - return code; -} - -const controls_pass = function () { - return 'pass\n'; -} - -const controls_thread = function (_, generator) { - generator.definitions_['import__thread'] = 'import _thread'; - var v = generator.valueToCode(this, "VAR", generator.ORDER_NONE) || "None"; - var callback = generator.variableDB_.getName( - generator.valueToCode(this, "callback", generator.ORDER_NONE) || "None", - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.NAME_TYPE - ); - var code = "_thread.start_new_thread(" + callback + ", " + v + ")\n"; - return code; -} - -// do-while循环 -const do_while = function (_, generator) { - var value_select_data = generator.valueToCode(this, 'select_data', generator.ORDER_NONE) || "False"; - var statements_input_data = generator.statementToCode(this, 'input_data') - var dropdown_type = this.getFieldValue('type'); - if (dropdown_type == 'true') { - statements_input_data = statements_input_data + ' if (' + value_select_data + '):\n' + ' break\n'; - } - else { - statements_input_data = statements_input_data + ' if not (' + value_select_data + '):\n' + ' break\n'; - } - statements_input_data = generator.addLoopTrap(statements_input_data, this.id) || generator.PASS; - //var dropdown_type = this.getFieldValue('type'); - var code = 'while True:\n' + statements_input_data; - return code; -} - -// export const base_type = controls_type; -// export const controls_TypeLists = controls_typeLists; - -const controls_repeat_ext = function (a, generator) { - var times = generator.valueToCode(this, 'TIMES', generator.ORDER_ATOMIC); - var d = generator.statementToCode(a, "DO"), - d = generator.addLoopTrap(d, a.id) || generator.PASS; - return 'for _my_variable in range(' + times + '):\n' + d; -} - - -const garbage_collection = function (_, generator) { - generator.definitions_['import_gc'] = 'import gc'; - var code = 'gc.collect()\n' - return code; -} - -const get_mem_alloc = function (_, generator) { - generator.definitions_['import_gc'] = 'import gc'; - var code = 'gc.mem_alloc()'; - return [code, generator.ORDER_ATOMIC]; -} - -const get_mem_free = function (_, generator) { - generator.definitions_['import_gc'] = 'import gc'; - var code = 'gc.mem_free()'; - return [code, generator.ORDER_ATOMIC] -} - -const get_unique_identifier = function (_, generator) { - generator.definitions_['import_machine'] = 'import machine'; - var code = 'machine.unique_id()'; - return [code, generator.ORDER_ATOMIC]; -} - -// ok -const controls_repeat = controls_repeat_ext; - -const datetime_fromtimestamp = function(_,generator){ - generator.definitions_['import_datatime'] = 'import datatime'; - var ts = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = 'datatime.datatime.fromtimestamp(' + ts + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const gene_unique_identifier = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_' + version + 'uuid'] = 'from ' + version + ' import uuid'; - var code = 'uuid()'; - return [code, generator.ORDER_ATOMIC] -} - -/***/ }), - -/***/ "../python/generators/dicts.js": -/*!*************************************!*\ - !*** ../python/generators/dicts.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ dicts_add_change_del: () => (/* binding */ dicts_add_change_del), -/* harmony export */ dicts_add_or_change: () => (/* binding */ dicts_add_or_change), -/* harmony export */ dicts_clear: () => (/* binding */ dicts_clear), -/* harmony export */ dicts_create_with: () => (/* binding */ dicts_create_with), -/* harmony export */ dicts_create_with_noreturn: () => (/* binding */ dicts_create_with_noreturn), -/* harmony export */ dicts_deldict: () => (/* binding */ dicts_deldict), -/* harmony export */ dicts_delete: () => (/* binding */ dicts_delete), -/* harmony export */ dicts_get: () => (/* binding */ dicts_get), -/* harmony export */ dicts_get_default: () => (/* binding */ dicts_get_default), -/* harmony export */ dicts_items: () => (/* binding */ dicts_items), -/* harmony export */ dicts_keys: () => (/* binding */ dicts_keys), -/* harmony export */ dicts_length: () => (/* binding */ dicts_length), -/* harmony export */ dicts_pop: () => (/* binding */ dicts_pop), -/* harmony export */ dicts_setdefault: () => (/* binding */ dicts_setdefault), -/* harmony export */ dicts_to_json: () => (/* binding */ dicts_to_json), -/* harmony export */ dicts_to_json2: () => (/* binding */ dicts_to_json2), -/* harmony export */ dicts_to_to: () => (/* binding */ dicts_to_to), -/* harmony export */ dicts_todict: () => (/* binding */ dicts_todict), -/* harmony export */ dicts_update: () => (/* binding */ dicts_update), -/* harmony export */ dicts_values: () => (/* binding */ dicts_values), -/* harmony export */ json_to_dicts: () => (/* binding */ json_to_dicts) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); -/** - * @license - * Visual Blocks Language - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for dictionary blocks. - * @author acbart@vt.edu (Austin Cory Bart) - */ - - - -const dicts_create_with = function (_, generator) { - // Create a list with any number of elements of any type. - //var dropdown_type = this.getFieldValue('TYPE'); - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - var keyName = this.getFieldValue('KEY' + n); - code[n] = keyName + ":" + (generator.valueToCode(this, 'ADD' + n, generator.ORDER_NONE) || default_value); - } - var code = varName + '= ' + '{' + code.join(', ') + '}\n'; - //var code =''+varName+'['+size+"]"+'='+ '{' + code.join(', ') + '}\n'; - //generator.setups_['setup_lists'+varName] = code; - return code; -} - -const dicts_keys = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.keys()'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_get = function (_, generator) { - var version = mixly__WEBPACK_IMPORTED_MODULE_1__.Boards.getSelectedBoardKey().split(':')[2] - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - if (version=='educore'){ - var code = varName+'.get('+text+')'; - }else{ - var code = varName + "[" + text + "]"; - } - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_get_default = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - // var text=this.getFieldValue('KEY'); - var code = varName + ".get(" + text + ',' + argument + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_add_or_change = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict'; - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + "[" + text + "] = " + argument + '\n'; - return code; -} - -const dicts_delete = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict'; - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - var code = "del " + varName + "[" + text + "]\n"; - return code; -} - -const dicts_update = function (_, generator) { - var varName2 = generator.valueToCode(this, 'DICT2', generator.ORDER_ASSIGNMENT) || '0'; - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.update(' + varName2 + ')\n'; - return code; -} - -const dicts_clear = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.clear()\n'; - return code; -} - -const dicts_items = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.items()'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_values = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.values()'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_length = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'len(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_deldict = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'del ' + varName + '\n'; - return code; -} - -const dicts_add_change_del = function (block, generator) { - var dict = generator.valueToCode(block, 'DICT', - generator.ORDER_MEMBER) || '[]'; - var mode = block.getFieldValue('WHERE'); - var KEY = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - - switch (mode) { - case 'INSERT': - //var at2 = block.getFieldValue('AT2'); - var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0'; - var code = dict + "[" + KEY + "] = " + at2 + '\n' - break; - case 'DELETE': - var code = 'del ' + dict + "[" + KEY + "]\n" - break; - default: - throw 'Unhandled option (lists_setIndex2)'; - } - return code; -} - -const dicts_pop = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - var code = varName + ".pop(" + text + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_setdefault = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict'; - var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT); - // var text=this.getFieldValue('KEY'); - var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + ".setdefault" + "(" + text + "," + argument + ")\n"; - return code; -} - -const dicts_create_with_noreturn = function (_, generator) { - // Create a list with any number of elements of any type. - // var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - // Blockly.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var code = new Array(this.itemCount_); - var default_value = '0'; - - for (var n = 0; n < this.itemCount_; n++) { - var keyName = this.getFieldValue('KEY' + n); - code[n] = keyName + ":" + (generator.valueToCode(this, 'ADD' + n, generator.ORDER_NONE) || default_value); - } - // if (this.itemCount_!=1){ - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\n';} - // else { - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\n';} - if (this.itemCount_ != 1) { - var code = '{' + code.join(', ') + '}'; - } - else { - var code = '{' + code.join(', ') + ',}'; - } - - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_todict = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['dict(' + str + ')', generator.ORDER_ATOMIC]; -} - -const dicts_to_json = function (_, generator) { - generator.definitions_['import_json'] = 'import json'; - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'json.dumps(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const json_to_dicts = function (_, generator) { - generator.definitions_['import_json'] = 'import json'; - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || 'null'; - var code = 'json.loads(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_to_to = function (_, generator) { - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var R = generator.valueToCode(this, 'VAR1', generator.ORDER_ASSIGNMENT) || 'null'; - var I = generator.valueToCode(this, 'VAR2', generator.ORDER_ASSIGNMENT) || 'null'; - var L = generator.valueToCode(this, 'VAR3', generator.ORDER_ASSIGNMENT) || 'null'; - var N = generator.valueToCode(this, 'VAR4', generator.ORDER_ASSIGNMENT) || 'null'; - var code = varName + '['+R+']'+'['+I+']'+'['+L+']'+'['+N+']'; - return [code, generator.ORDER_ATOMIC]; -} - -const dicts_to_json2 = function (_, generator) { - generator.definitions_['import_json'] = 'import json'; - generator.definitions_['import_ujson'] = 'import ujson'; - var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'ujson.loads(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/html.js": -/*!************************************!*\ - !*** ../python/generators/html.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ html_content: () => (/* binding */ html_content), -/* harmony export */ html_content_more: () => (/* binding */ html_content_more), -/* harmony export */ html_document: () => (/* binding */ html_document), -/* harmony export */ html_form: () => (/* binding */ html_form), -/* harmony export */ html_head_body: () => (/* binding */ html_head_body), -/* harmony export */ html_style: () => (/* binding */ html_style), -/* harmony export */ html_style_content: () => (/* binding */ html_style_content), -/* harmony export */ html_text: () => (/* binding */ html_text), -/* harmony export */ html_title: () => (/* binding */ html_title) -/* harmony export */ }); -const html_document = function (_, generator) { - var head = generator.statementToCode(this, 'HEAD'); - var body = generator.statementToCode(this, 'BODY'); - var code = "'''\n\n\n" + '\t\n' + head + "\n\n" + body + "\n\n'''"; - return [code, generator.ORDER_ATOMIC]; -} - -const html_title = function (_, generator) { - var t = generator.statementToCode(this, 'DO'); - var l = this.getFieldValue('LEVEL'); - var code = "\n" + t + "\n"; - return code; -} - -const html_head_body = function (_, generator) { - var t = generator.statementToCode(this, 'DO'); - var l = this.getFieldValue('LEVEL'); - if (l == 'head') { - var code = "<" + l + '>\n\t\n' + t + "\n"; - } - else { - var code = "<" + l + ">\n" + t + "\n"; - } - return code; -} - -const html_content = function (_, generator) { - var t = generator.statementToCode(this, 'DO'); - // var s = generator.valueToCode(this, 'style'); - var l = this.getFieldValue('LEVEL'); - // var code = "<" + l + " " + s + " >\n" + t + "\n"; - var code = "<" + l + ">\n" + t + "\n"; - return code; -} - -const html_content_more = function (_, generator) { - var t = generator.statementToCode(this, 'DO'); - var s = generator.valueToCode(this, 'style'); - var l = this.getFieldValue('LEVEL'); - var code = "<" + l + " " + s + " >\n" + t + "\n"; - return code; -} - -const html_style = function (_, generator) { - var style = generator.statementToCode(this, 'STYLE'); - var code = 'style="' + style + '"'; - return [code, generator.ORDER_ATOMIC]; -} - -const html_form = function (_, generator) { - var tag = this.getFieldValue('LEVEL'); - var name = this.getFieldValue('NAME'); - var value = this.getFieldValue('VALUE'); - var s = generator.valueToCode(this, 'style') || ""; - var code = ''; - return code; -} - -const html_style_content = function () { - var key = this.getFieldValue('KEY'); - var value = this.getFieldValue('VALUE'); - var code = key + ':' + value + ";"; - return code; -} - -const html_text = function () { - var text = this.getFieldValue('TEXT'); - var code = text + "\n"; - return code; -} - -/***/ }), - -/***/ "../python/generators/lists.js": -/*!*************************************!*\ - !*** ../python/generators/lists.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ content_in_lists: () => (/* binding */ content_in_lists), -/* harmony export */ enumerate: () => (/* binding */ enumerate), -/* harmony export */ list_many_input: () => (/* binding */ list_many_input), -/* harmony export */ list_tolist: () => (/* binding */ list_tolist), -/* harmony export */ list_tolist2: () => (/* binding */ list_tolist2), -/* harmony export */ list_trig: () => (/* binding */ list_trig), -/* harmony export */ lists_2d_get_col_row_data: () => (/* binding */ lists_2d_get_col_row_data), -/* harmony export */ lists_2d_get_data_with_col_row: () => (/* binding */ lists_2d_get_data_with_col_row), -/* harmony export */ lists_append_extend: () => (/* binding */ lists_append_extend), -/* harmony export */ lists_change_to: () => (/* binding */ lists_change_to), -/* harmony export */ lists_change_to_general: () => (/* binding */ lists_change_to_general), -/* harmony export */ lists_clear: () => (/* binding */ lists_clear), -/* harmony export */ lists_create_with: () => (/* binding */ lists_create_with), -/* harmony export */ lists_create_with2: () => (/* binding */ lists_create_with2), -/* harmony export */ lists_create_with_noreturn: () => (/* binding */ lists_create_with_noreturn), -/* harmony export */ lists_create_with_text: () => (/* binding */ lists_create_with_text), -/* harmony export */ lists_create_with_text2: () => (/* binding */ lists_create_with_text2), -/* harmony export */ lists_del_general: () => (/* binding */ lists_del_general), -/* harmony export */ lists_find: () => (/* binding */ lists_find), -/* harmony export */ lists_getIndex3: () => (/* binding */ lists_getIndex3), -/* harmony export */ lists_getSublist3: () => (/* binding */ lists_getSublist3), -/* harmony export */ lists_get_index: () => (/* binding */ lists_get_index), -/* harmony export */ lists_get_random_item: () => (/* binding */ lists_get_random_item), -/* harmony export */ lists_get_random_sublist: () => (/* binding */ lists_get_random_sublist), -/* harmony export */ lists_get_sublist: () => (/* binding */ lists_get_sublist), -/* harmony export */ lists_insert_value: () => (/* binding */ lists_insert_value), -/* harmony export */ lists_insert_value2: () => (/* binding */ lists_insert_value2), -/* harmony export */ lists_pop: () => (/* binding */ lists_pop), -/* harmony export */ lists_remove_at: () => (/* binding */ lists_remove_at), -/* harmony export */ lists_remove_at2: () => (/* binding */ lists_remove_at2), -/* harmony export */ lists_reverse: () => (/* binding */ lists_reverse), -/* harmony export */ lists_setIndex3: () => (/* binding */ lists_setIndex3), -/* harmony export */ lists_set_index: () => (/* binding */ lists_set_index), -/* harmony export */ lists_sort: () => (/* binding */ lists_sort) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const lists_get_sublist = function (_, generator) { - // Get sublist. - var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ADDITIVE); - var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ADDITIVE); - var code = list + '[' + at1 + ' : ' + at2 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_2d_get_data_with_col_row = function (_, generator) { - var value_LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC) || 'mylist'; - var value_row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC) || 0; - var value_col = generator.valueToCode(this, 'col', generator.ORDER_ATOMIC) || 0; - var code = value_LIST + '[' + value_row + ',' + value_col + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_2d_get_col_row_data = function (_, generator) { - var value_LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC) || 'mylist'; - var value_row_start = generator.valueToCode(this, 'row_start', generator.ORDER_ATOMIC) || 0; - var value_row_end = generator.valueToCode(this, 'row_end', generator.ORDER_ATOMIC) || 1; - var value_col_start = generator.valueToCode(this, 'col_start', generator.ORDER_ATOMIC) || 0; - var value_col_end = generator.valueToCode(this, 'col_end', generator.ORDER_ATOMIC) || 1; - var code = value_LIST + '[' + value_row_start + ' : ' + value_row_end + ',' + value_col_start + ' : ' + value_col_end + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_create_with = function (_, generator) { - // Create a list with any number of elements of any type. - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - //generator.setups_['var_declare'+varName] = varName+' = '+ '[' + code.join(', ') + ']\n'; - var code = varName + ' = ' + '[' + code.join(', ') + ']\n'; - return code; -} - -const lists_create_with_text = function (_, generator) { - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var text = this.getFieldValue('TEXT'); - // generator.setups_['var_declare'+varName] = varName+' = '+ '[' + text + ']\n'; - var code = varName + ' = ' + '[' + text + ']\n'; - return code; -} - -const lists_get_index = function (_, generator) { - // Indexing into a list is the same as indexing into a string. - var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var argument0 = generator.valueToCode(this, 'AT', generator.ORDER_ADDITIVE) || 0; - var code = list + '[' + argument0 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_set_index = function (_, generator) { - // Set element at index. - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var argument0 = generator.valueToCode(this, 'AT', - generator.ORDER_ADDITIVE) || '0'; - var argument2 = generator.valueToCode(this, 'TO', - generator.ORDER_ASSIGNMENT) || '0'; - // Blockly uses one-based indicies. - return varName + '[' + argument0 + '] = ' + argument2 + '\n'; -} - -const lists_append_extend = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0'; - var argument = generator.valueToCode(this, 'DATA', generator.ORDER_ASSIGNMENT) || '0'; - var op = this.getFieldValue('OP'); - var code = varName + '.' + op + '(' + argument + ')\n'; - return code; -} - -const lists_get_random_item = function (_, generator) { - generator.definitions_['import_random'] = 'import random'; - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var code = 'random.choice(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_get_random_sublist = function (_, generator) { - generator.definitions_['import_random'] = 'import random'; - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var VALUE = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'random.sample(' + varName + ',' + VALUE + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_insert_value = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0'; - var at = generator.valueToCode(this, 'AT', generator.ORDER_ADDITIVE) || '0'; - var VALUE = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.insert(' + at + ', ' + VALUE + ')\n'; - return code; -} - -const lists_reverse = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.reverse()\n'; - return code; -} -const lists_clear = function (_, generator) { - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.clear()\n'; - return code; -} - -const lists_find = function (_, generator) { - var op = this.getFieldValue('OP'); - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0'; - if (op == 'INDEX') - var code = varName + '.index(' + argument + ')'; - else if (op == 'COUNT') - var code = varName + '.count(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_remove_at = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0'; - var argument = generator.valueToCode(this, 'DATA', generator.ORDER_ASSIGNMENT) || '0'; - var op = this.getFieldValue('OP'); - var code = ""; - if (op == "del") { - code = 'del ' + varName + '[' + argument + ']\n'; - } else { - code = varName + '.remove' + '(' + argument + ')\n'; - } - return code; -} - -const lists_pop = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var argument = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.pop(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const list_trig = function (a, generator) { - var b = a.getFieldValue("OP"), c; - generator.definitions_['import_math'] = "import math"; - a = generator.valueToCode(a, 'data', generator.ORDER_NONE) - switch (b) { - case "LEN": - c = "len(" + a + ")"; - break; - case "SUM": - c = "sum(" + a + ")"; - break; - case "MIN": - c = "min(" + a + ")"; - break; - case "MAX": - c = "max(" + a + ")"; - break; - case 'AVERAGE': - generator.definitions_['import_mixpy_math_mean'] = "from mixpy import math_mean"; - c = 'math_mean(' + a + ')'; - break; - case 'MEDIAN': - generator.definitions_['import_mixpy_math_median'] = "from mixpy import math_median"; - c = 'math_median(' + a + ')'; - break; - case 'MODE': - generator.definitions_['import_mixpy_math_modes'] = "from mixpy import math_modes"; - c = 'math_modes(' + a + ')'; - break; - case 'STD_DEV': - generator.definitions_['import_mixpy_math_standard_deviation'] = "from mixpy import math_standard_deviation"; - c = 'math_standard_deviation(' + a + ')'; - break; - default: - throw 'Unknown operator: ' + b; - } - if (c) - return [c, generator.ORDER_ATOMIC]; - -} - -const lists_sort = function (block, generator) { - // Block for sorting a list. - generator.definitions_['import_mixpy_lists_sort'] = "from mixpy import lists_sort"; - var list = (generator.valueToCode(block, 'LIST', - generator.ORDER_NONE) || '[]'); - var type = block.getFieldValue('TYPE'); - var reverse = block.getFieldValue('DIRECTION') === '1' ? 'False' : 'True'; - var code = 'lists_sort(' + list + ', "' + type + '", ' + reverse + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_change_to = function (_, generator) { - var op = this.getFieldValue('OP'); - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = ''; - if (op == 'array') { - generator.definitions_['import_numpy'] = 'import numpy'; - code = 'numpy.array(' + varName + ')'; - } - else { - code = op + '(' + varName + ')'; - } - return [code, generator.ORDER_ATOMIC]; -} - -const list_many_input = function (_, generator) { - var text = this.getFieldValue('CONTENT'); - var code = '[' + text + ']' - return [code, generator.ORDER_ATOMIC]; -} - -const lists_create_with_noreturn = function (_, generator) { - // Create a list with any number of elements of any type. - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = '[' + code.join(', ') + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const lists_change_to_general = lists_change_to; - -const lists_del_general = function (_, generator) { - var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'del ' + varName + '\n'; - return code; -} - -const lists_create_with2 = lists_create_with -const lists_create_with_text2 = lists_create_with_text -const lists_getIndex3 = lists_get_index -const lists_getSublist3 = lists_get_sublist -const lists_setIndex3 = lists_set_index -const lists_insert_value2 = lists_insert_value -const lists_remove_at2 = lists_remove_at - -const list_tolist = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['list(' + str + ')', generator.ORDER_ATOMIC]; -} - -const list_tolist2 = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return [str + '.tolist()', generator.ORDER_ATOMIC]; -} - -const enumerate = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var argument = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'enumerate(' +varName+',start='+ argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const content_in_lists = function (_, generator) { - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist'; - var con = generator.valueToCode(this, 'CON', generator.ORDER_ASSIGNMENT) || '0'; - var code = con +' in '+varName; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/logic.js": -/*!*************************************!*\ - !*** ../python/generators/logic.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ logic_boolean: () => (/* binding */ logic_boolean), -/* harmony export */ logic_compare: () => (/* binding */ logic_compare), -/* harmony export */ logic_compare_continous: () => (/* binding */ logic_compare_continous), -/* harmony export */ logic_is: () => (/* binding */ logic_is), -/* harmony export */ logic_is_in: () => (/* binding */ logic_is_in), -/* harmony export */ logic_negate: () => (/* binding */ logic_negate), -/* harmony export */ logic_null: () => (/* binding */ logic_null), -/* harmony export */ logic_operation: () => (/* binding */ logic_operation), -/* harmony export */ logic_tobool: () => (/* binding */ logic_tobool), -/* harmony export */ logic_true_or_false: () => (/* binding */ logic_true_or_false) -/* harmony export */ }); -const logic_compare = function (_, generator) { - // Comparison operator. - var mode = this.getFieldValue('OP'); - var operator = logic_compare.OPERATORS[mode]; - var order = (operator == '==' || operator == '!=') ? - generator.ORDER_EQUALITY : generator.ORDER_RELATIONAL; - var argument0 = generator.valueToCode(this, 'A', order) || '0'; - var argument1 = generator.valueToCode(this, 'B', order) || '0'; - var code = argument0 + ' ' + operator + ' ' + argument1; - return [code, order]; -} - -const logic_compare_continous = function (_, generator) { - // Comparison operator. - var mode1 = this.getFieldValue('OP1'); - var operator1 = logic_compare.OPERATORS[mode1]; - var mode2 = this.getFieldValue('OP2'); - var operator2 = logic_compare.OPERATORS[mode2]; - var argument0 = generator.valueToCode(this, 'A', generator.ORDER_RELATIONAL) || '0'; - var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0'; - var argument2 = generator.valueToCode(this, 'C', generator.ORDER_RELATIONAL) || '0'; - var code = argument0 + ' ' + operator1 + ' ' + argument1 + ' ' + operator2 + ' ' + argument2; - return [code, generator.ORDER_RELATIONAL]; -} - -logic_compare.OPERATORS = { - EQ: '==', - NEQ: '!=', - LT: '<', - LTE: '<=', - GT: '>', - GTE: '>=' -}; - -const logic_operation = function (_, generator) { - // Operations 'and', 'or'. - var operator = this.getFieldValue('OP'); - var order = (operator == '&&') ? generator.ORDER_LOGICAL_AND : - generator.ORDER_LOGICAL_OR; - var argument0 = generator.valueToCode(this, 'A', order) || 'False'; - var argument1 = generator.valueToCode(this, 'B', order) || 'False'; - if (operator == 'AND') { - var code = argument0 + ' and ' + argument1; - } else if (operator == 'OR') { - var code = argument0 + ' or ' + argument1; - } else if (operator == 'NOR') { - // var code = '('+argument0+' and '+argument1+' ) or ((not '+argument0+') and (not '+argument1+'))'; - var code = 'not(' + argument0 + '^' + argument1 + ')'; - } else { - // var code = '((not '+argument0+') and '+argument1+' ) or ( '+argument0+' and (not '+argument1+'))'; - var code = argument0 + '^' + argument1; - } - return [code, order]; -} - -const logic_negate = function (_, generator) { - // Negation. - var order = generator.ORDER_UNARY_PREFIX; - var argument0 = generator.valueToCode(this, 'BOOL', order) || 'False'; - var code = 'not ' + argument0; - return [code, order]; -} - -const logic_boolean = function (_, generator) { - // Boolean values true and false. - var code = (this.getFieldValue('BOOL') == 'TRUE') ? 'True' : 'False'; - return [code, generator.ORDER_ATOMIC]; -} - -const logic_null = function (_, generator) { - var code = 'None'; - return [code, generator.ORDER_ATOMIC]; -} - -const logic_true_or_false = function (_, generator) { - var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || 'False'; - var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || 'False'; - var c = generator.valueToCode(this, 'C', generator.ORDER_ATOMIC) || 'False'; - var code = '(' + b + ' if ' + a + ' else ' + c + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const logic_is_in = function (_, generator) { - var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\''; - var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\''; - var bool = this.getFieldValue('BOOL'); - var code = a + ' ' + bool + ' ' + b; - return [code, generator.ORDER_ATOMIC]; -} - -const logic_is = function (_, generator) { - var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\'\''; - var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\'\''; - var bool = this.getFieldValue('BOOL'); - var code = a + ' ' + bool + ' ' + b; - return [code, generator.ORDER_ATOMIC]; -} - -const logic_tobool = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['bool(' + str + ')', generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/math.js": -/*!************************************!*\ - !*** ../python/generators/math.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ base_map: () => (/* binding */ base_map), -/* harmony export */ generate_cartesian_product: () => (/* binding */ generate_cartesian_product), -/* harmony export */ math_arithmetic: () => (/* binding */ math_arithmetic), -/* harmony export */ math_bit: () => (/* binding */ math_bit), -/* harmony export */ math_constant: () => (/* binding */ math_constant), -/* harmony export */ math_constant_mp: () => (/* binding */ math_constant_mp), -/* harmony export */ math_constrain: () => (/* binding */ math_constrain), -/* harmony export */ math_dec: () => (/* binding */ math_dec), -/* harmony export */ math_indexer_number: () => (/* binding */ math_indexer_number), -/* harmony export */ math_map: () => (/* binding */ math_map), -/* harmony export */ math_max_min: () => (/* binding */ math_max_min), -/* harmony export */ math_number: () => (/* binding */ math_number), -/* harmony export */ math_number_base_conversion: () => (/* binding */ math_number_base_conversion), -/* harmony export */ math_random: () => (/* binding */ math_random), -/* harmony export */ math_random_seed: () => (/* binding */ math_random_seed), -/* harmony export */ math_round: () => (/* binding */ math_round), -/* harmony export */ math_selfcalcu: () => (/* binding */ math_selfcalcu), -/* harmony export */ math_single: () => (/* binding */ math_single), -/* harmony export */ math_to_int: () => (/* binding */ math_to_int), -/* harmony export */ math_trig: () => (/* binding */ math_trig), -/* harmony export */ text_to_number: () => (/* binding */ text_to_number), -/* harmony export */ text_to_number_skulpt: () => (/* binding */ text_to_number_skulpt), -/* harmony export */ turn_to_int: () => (/* binding */ turn_to_int) -/* harmony export */ }); -// export const math_number = function() { -// // Numeric value. -// var code = (this.getFieldValue('NUM')); -// // -4.abs() returns -4 in Dart due to strange order of operation choices. -// // -4 is actually an operator and a number. Reflect this in the order. -// var order = code < 0 ? -// generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC; -// return [code, order]; -// } - -// generator.math = {} -// generator.addReservedWords("math,random,Number"); - -const math_number = function (_, generator) { - // a = parseFloat(a.getFieldValue("NUM")); - // var b; - // Infinity == a ? (a = 'float("inf")', b = generator.ORDER_FUNCTION_CALL) : -Infinity == a ? (a = '-float("inf")', b = generator.ORDER_UNARY_SIGN) : b = 0 > a ? generator.ORDER_UNARY_SIGN : generator.ORDER_ATOMIC; - // return [a, b] - - var code = this.getFieldValue('NUM'); - // -4.abs() returns -4 in Dart due to strange order of operation choices. - // -4 is actually an operator and a number. Reflect this in the order. - var order = code < 0 ? - generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC; - return [code, order]; -} - -const math_constant = function (_, generator) { - generator.definitions_.import_math = "import math"; - var name = this.getFieldValue('CONSTANT'); - var code = 'math.' + name; - return [code, generator.ORDER_ATOMIC]; -} - -const math_constant_mp = function (_, generator) { - generator.definitions_.import_math = "import math"; - var name = this.getFieldValue('CONSTANT'); - var code = 'math.' + name; - return [code, generator.ORDER_ATOMIC]; -} - -const math_bit = function (_, generator) { - var operator = this.getFieldValue('OP'); - var order = generator.ORDER_ATOMIC; - var argument0 = generator.valueToCode(this, 'A', order) || '0'; - var argument1 = generator.valueToCode(this, 'B', order) || '0'; - var code = '(' + argument0 + operator + argument1 + ')'; - return [code, order]; -} - -const math_arithmetic = function (a, generator) { - var b = { - ADD: [" + ", generator.ORDER_ADDITIVE], - MINUS: [" - ", generator.ORDER_ADDITIVE], - MULTIPLY: [" * ", generator.ORDER_MULTIPLICATIVE], - DIVIDE: [" / ", generator.ORDER_MULTIPLICATIVE], - QUYU: [' % ', generator.ORDER_MULTIPLICATIVE],//增加取余操作 - ZHENGCHU: [' // ', generator.ORDER_MULTIPLICATIVE],//增加整除操作 - POWER: [" ** ", generator.ORDER_EXPONENTIATION] - }[a.getFieldValue("OP")]; - var c = b[0], - b = b[1], - d = generator.valueToCode(a, "A", b) || "0"; - a = generator.valueToCode(a, "B", b) || "0"; - return [d + c + a, b] -} - -const math_selfcalcu = function (_, generator) { - var argument0 = generator.valueToCode(this, 'A', generator.ORDER_RELATIONAL) || '0'; - var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0'; - var operator = this.getFieldValue('OP'); - switch (operator) { - case 'ADD': var op = '+='; break; - case 'MINUS': var op = '-='; break; - case 'MULTIPLY': var op = '*='; break; - case 'DIVIDE': var op = '/='; break; - case 'QUYU': var op = '%='; break; - case 'ZHENGCHU': var op = '//='; break; - case 'POWER': var op = '**='; break; - } - var code = argument0 + ' ' + op + ' ' + argument1 + '\n'; - return code; -} - -const math_single = function (a, generator) { - var b = a.getFieldValue("OP"), - c; - if ("NEG" == b) - return c = generator.valueToCode(a, "NUM", generator.ORDER_UNARY_SIGN) || "0", ["-" + c, generator.ORDER_UNARY_SIGN]; - generator.definitions_['import_math'] = "import math"; - a = "SIN" == b || "COS" == b || "TAN" == b ? generator.valueToCode(a, "NUM", generator.ORDER_MULTIPLICATIVE) || "0" : generator.valueToCode(a, "NUM", generator.ORDER_NONE) || "0"; - switch (b) { - case "ABS": - c = "math.fabs(" + a + ")"; - break; - case "ROOT": - c = "math.sqrt(" + - a + ")"; - break; - case "LN": - c = "math.log(" + a + ")"; - break; - case "LOG10": - c = "math.log10(" + a + ")"; - break; - case "EXP": - c = "math.exp(" + a + ")"; - break; - case "POW10": - c = "math.pow(10," + a + ")"; - break; - case "ROUND": - c = "round(" + a + ")"; - break; - case "ROUNDUP": - c = "math.ceil(" + a + ")"; - break; - case "ROUNDDOWN": - c = "math.floor(" + a + ")"; - break; - case "SIN": - c = "math.sin(" + a + ")"; - break; - case "COS": - c = "math.cos(" + a + ")"; - break; - case "TAN": - c = "math.tan(" + a + ")"; - break; - case "++": - c = "++(" + a + ")"; - break; - case "--": - c = "--(" + a + ")"; - break; - case "-": - c = "-(" + a + ")"; - break; - default: - } - if (c) - return [c, generator.ORDER_EXPONENTIATION]; - switch (b) { - case "ASIN": - c = "math.degrees(math.asin(" + a + "))"; - break; - case "ACOS": - c = "math.degrees(math.acos(" + a + "))"; - break; - case "ATAN": - c = "math.degrees(math.atan(" + a + "))"; - break; - } - return [c, generator.ORDER_MULTIPLICATIVE] -} - -const math_trig = math_single; - -const math_dec = function (_, generator) { - var argument0 = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0'; - var operator = this.getFieldValue('OP'); - var code = operator + '(' + argument0 + ')'; - return [code, generator.ORDER_ATOMIC]; - -} - -const math_to_int = function (_, generator) { - var argument0 = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0'; - var operator = this.getFieldValue('OP'); - var code = ""; - if (operator === "round") { - code = operator + '(' + argument0 + ')'; - } else { - code = "math." + operator + '(' + argument0 + ')'; - generator.definitions_.import_math = "import math"; - } - return [code, generator.ORDER_ATOMIC]; -} - -const math_max_min = function (_, generator) { - var a = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0'; - var b = generator.valueToCode(this, 'B', generator.ORDER_NONE) || '0'; - var operator = this.getFieldValue('OP'); - var code = operator + '(' + a + ', ' + b + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const math_random = function (_, generator) { - generator.definitions_.import_random = "import random"; - // Random integer between [X] and [Y]. - var type = this.getFieldValue('TYPE'); - var argument0 = generator.valueToCode(this, 'FROM', - generator.ORDER_NONE) || '0'; - var argument1 = generator.valueToCode(this, 'TO', - generator.ORDER_NONE) || '0'; - if (type == 'int') { - var code = 'random.randint(' + argument0 + ', ' + argument1 + ')'; - } else if (type == 'float') { - var code = 'random.uniform(' + argument0 + ', ' + argument1 + ')'; - } - return [code, generator.ORDER_UNARY_POSTFIX]; -} - -const math_map = function (_, generator) { - var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_NONE); - var value_fl = generator.valueToCode(this, 'fromLow', generator.ORDER_ATOMIC); - var value_fh = generator.valueToCode(this, 'fromHigh', generator.ORDER_ATOMIC); - var value_tl = generator.valueToCode(this, 'toLow', generator.ORDER_ATOMIC); - var value_th = generator.valueToCode(this, 'toHigh', generator.ORDER_ATOMIC); - generator.definitions_['import_mixpy_math_map'] = "from mixpy import math_map"; - var code = 'math_map(' + value_num + ', ' + value_fl + ', ' + value_fh + ', ' + value_tl + ', ' + value_th + ')'; - return [code, generator.ORDER_NONE]; -} - -const math_constrain = function (_, generator) { - // Constrain a number between two limits. - var argument0 = generator.valueToCode(this, 'VALUE', - generator.ORDER_NONE) || '0'; - var argument1 = generator.valueToCode(this, 'LOW', - generator.ORDER_NONE) || '0'; - var argument2 = generator.valueToCode(this, 'HIGH', - generator.ORDER_NONE) || '0'; - var code = 'min(max(' + argument0 + ', ' + argument1 + '), ' + argument2 + ')'; - return [code, generator.ORDER_UNARY_POSTFIX]; -} - -const math_number_base_conversion = function (a, generator) { - var c1 = a.getFieldValue("OP"); - var d = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0'; - var c2 = a.getFieldValue("OP2"); - generator.definitions_['import_math'] = "import math"; - var param1 = ""; - var param2 = "10"; - if (c1 == "two") { - param2 = '2'; - } else if (c1 == "eight") { - param2 = '8' - } else if (c1 == "ten") { - param2 = '10' - } else if (c1 == "sixteen") { - param2 = '16' - } - - if (c2 == "two") { - param1 = 'bin'; - } else if (c2 == "eight") { - param1 = 'oct' - } else if (c2 == "ten") { - param1 = '' - } else if (c2 == "sixteen") { - param1 = 'hex' - } - if (param1 == "") { - var code = "int(str(" + d + "), " + param2 + ")"; - } else { - var code = param1 + "(int(str(" + d + "), " + param2 + "))"; - - } - return [code, generator.ORDER_ATOMIC]; -} - -const math_random_seed = function (_, generator) { - // Random integer between [X] and [Y]. - generator.definitions_.import_random = "import random"; - var a = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0'; - var code = 'random.seed(' + a + ');' + '\n'; - return code; -} - -const math_indexer_number = function (_, generator) { - var code = this.getFieldValue('NUM'); - // -4.abs() returns -4 in Dart due to strange order of operation choices. - // -4 is actually an operator and a number. Reflect this in the order. - var order = code < 0 ? - generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC; - return [code, order]; -} - -const math_round = function (_, generator) { - var argument0 = generator.valueToCode(this, 'VALUE', - generator.ORDER_NONE) || '0'; - var argument1 = generator.valueToCode(this, 'VAR', - generator.ORDER_NONE) || '0'; - - var code = 'round(' + argument0 + ', ' + argument1 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_to_number = function (_, generator) { - var towhat = this.getFieldValue('TOWHAT'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (towhat == 'b') return ['' + str + '.encode("utf-8")', generator.ORDER_ATOMIC]; - else if (towhat == 'bti') return ['int.from_bytes(' + str + ',"big")', generator.ORDER_ATOMIC]; - return [towhat + "(" + str + ')', generator.ORDER_ATOMIC]; -} - -const text_to_number_skulpt = function (_, generator) { - var towhat = this.getFieldValue('TOWHAT'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - if (towhat == 'b') return ['' + str + '.encode("utf-8")', generator.ORDER_ATOMIC]; - return [towhat + "(" + str + ')', generator.ORDER_ATOMIC]; -} - -const base_map = math_map; - -const turn_to_int = function (_, generator) { - generator.definitions_.import_hexlify = "from ubinascii import hexlify"; - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return ["hexlify(" + str + ').decode()', generator.ORDER_ATOMIC]; -} - -const generate_cartesian_product = function (_, generator) { - generator.definitions_.import_itertools = 'import itertools'; - let re = generator.valueToCode(this, 'REPEAT', generator.ORDER_ATOMIC); - let items = new Array(this.itemCount_); - for (let n = 0; n < this.itemCount_; n++) { - items[n] = generator.valueToCode(this, `ADD${n}`, generator.ORDER_NONE) || '0'; - } - let code = ''; - if (this.itemCount_) { - code = `itertools.product(${items.join(', ')}, repeat=${re})`; - } - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/procedures.js": -/*!******************************************!*\ - !*** ../python/generators/procedures.js ***! - \******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ procedures_callnoreturn: () => (/* binding */ procedures_callnoreturn), -/* harmony export */ procedures_callreturn: () => (/* binding */ procedures_callreturn), -/* harmony export */ procedures_defnoreturn: () => (/* binding */ procedures_defnoreturn), -/* harmony export */ procedures_defreturn: () => (/* binding */ procedures_defreturn), -/* harmony export */ procedures_ifreturn: () => (/* binding */ procedures_ifreturn), -/* harmony export */ procedures_return: () => (/* binding */ procedures_return) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const procedures_defreturn = function (_, generator) { - // Define a procedure with a return value. - var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.NAME_TYPE); - var branch = (this.getInput('STACK') && generator.statementToCode(this, 'STACK')) ?? ' pass\n'; - if (generator.INFINITE_LOOP_TRAP) { - branch = generator.INFINITE_LOOP_TRAP.replace(/%1/g, - '\'' + this.id + '\'') + branch; - } - var returnValue = generator.valueToCode(this, 'RETURN', - generator.ORDER_NONE) || ''; - //var type=this.getFieldValue('TYPE'); - if (returnValue) { - returnValue = ' return ' + returnValue + '\n'; - } - //var returnType = returnValue ? type : 'void'; - var args = []; - for (var x = 0; x < this.arguments_.length; x++) { - var varName = generator.variableDB_.getName(this.arguments_[x], blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - args[x] = varName; - } - var code = 'def ' + funcName + '(' + args.join(', ') + '):\n' + - branch + returnValue + '\n'; - code = generator.scrub_(this, code); - generator.setups_[funcName] = code; - return null; -} - -const procedures_defnoreturn = function (_, generator) { - // Define a procedure with a return value. - var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.NAME_TYPE); - var branch = (this.getInput('STACK') && generator.statementToCode(this, 'STACK')) ?? ' pass\n'; - if (generator.INFINITE_LOOP_TRAP) { - branch = generator.INFINITE_LOOP_TRAP.replace(/%1/g, - '\'' + this.id + '\'') + branch; - } - //var returnType = returnValue ? type : 'void'; - var args = []; - for (var x = 0; x < this.arguments_.length; x++) { - var varName = generator.variableDB_.getName(this.arguments_[x], blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - args[x] = varName; - } - var code = 'def ' + funcName + '(' + args.join(', ') + '):\n' + - branch + '\n'; - code = generator.scrub_(this, code); - generator.setups_[funcName] = code; - return null; -} - -const procedures_callreturn = function (_, generator) { - // Call a procedure with a return value. - var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.NAME_TYPE); - var args = []; - for (var x = 0; x < this.arguments_.length; x++) { - args[x] = generator.valueToCode(this, 'ARG' + x, - generator.ORDER_NONE) || 'null'; - } - var code = funcName + '(' + args.join(', ') + ')'; - return [code, generator.ORDER_UNARY_POSTFIX]; -} - -const procedures_callnoreturn = function (_, generator) { - // Call a procedure with no return value. - var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.NAME_TYPE); - var args = []; - for (var x = 0; x < this.arguments_.length; x++) { - args[x] = generator.valueToCode(this, 'ARG' + x, - generator.ORDER_NONE) || 'null'; - } - var code = funcName + '(' + args.join(', ') + ')\n'; - return code; -} - -const procedures_ifreturn = function (_, generator) { - // Conditionally return value from a procedure. - var condition = generator.valueToCode(this, 'CONDITION', - generator.ORDER_NONE) || 'False'; - var code = 'if (' + condition + ') :\n'; - if (this.hasReturnValue_) { - var value = generator.valueToCode(this, 'VALUE', - generator.ORDER_NONE) || 'None'; - code += ' return ' + value; - } else { - code += ' return None'; - } - code += '\n'; - return code; -} - -const procedures_return = function (_, generator) { - // Conditionally return value from a procedure. - var code = "" - if (this.hasReturnValue_) { - var value = generator.valueToCode(this, 'VALUE', - generator.ORDER_NONE) || 'None'; - code += 'return ' + value; - } else { - code += 'return None'; - } - code += '\n'; - return code; -} - -/***/ }), - -/***/ "../python/generators/set.js": -/*!***********************************!*\ - !*** ../python/generators/set.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ set_add_discard: () => (/* binding */ set_add_discard), -/* harmony export */ set_clear: () => (/* binding */ set_clear), -/* harmony export */ set_create_with: () => (/* binding */ set_create_with), -/* harmony export */ set_create_with_text_return: () => (/* binding */ set_create_with_text_return), -/* harmony export */ set_length: () => (/* binding */ set_length), -/* harmony export */ set_operate: () => (/* binding */ set_operate), -/* harmony export */ set_operate_update: () => (/* binding */ set_operate_update), -/* harmony export */ set_pop: () => (/* binding */ set_pop), -/* harmony export */ set_sub: () => (/* binding */ set_sub), -/* harmony export */ set_toset: () => (/* binding */ set_toset), -/* harmony export */ set_update: () => (/* binding */ set_update) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const set_create_with = function (_, generator) { - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - //generator.definitions_['var_declare'+varName] = varName+'= '+ '{' + code.join(', ') + '}\n'; - code = varName + '= ' + '{' + code.join(', ') + '}\n'; - if (this.itemCount_ == 0) { code = varName + ' = ' + 'set()\n' } - return code; -} - -const set_length = function (_, generator) { - var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'len(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_pop = function (_, generator) { - var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.pop()'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_clear = function (_, generator) { - var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + '.clear()\n'; - return code; -} - -const set_operate = function (_, generator) { - var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0'; - var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0'; - var operate = this.getFieldValue('OPERATE'); - //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = vars1 + "." + operate + "(" + vars2 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_operate_update = function (_, generator) { - var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0'; - var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0'; - var operate = this.getFieldValue('OPERATE'); - //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = vars1 + "." + operate + "(" + vars2 + ')\n'; - return code; -} - -const set_add_discard = function (_, generator) { - var vars1 = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0'; - var operate = this.getFieldValue('OPERATE'); - var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0'; - var code = vars1 + "." + operate + "(" + argument + ')\n'; - return code; -} - -const set_sub = function (_, generator) { - var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0'; - var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0'; - var operate = this.getFieldValue('OPERATE'); - //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = vars1 + "." + operate + "(" + vars2 + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_update = function (_, generator) { - var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0'; - var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - //var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName + "." + 'update' + '(' + color + ')\n'; - return code; -} - -// export const set_change_to = function(){ -// var op = this.getFieldValue('OP'); -// var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; -// var code = op + '(' + varName + ')\n'; -// return [code, generator.ORDER_ATOMIC]; -// } - -const set_create_with_text_return = function (_, generator) { - var text = this.getFieldValue('TEXT'); - var code = '{' + text + '}'; - return [code, generator.ORDER_ATOMIC]; -} - -const set_toset = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['set(' + str + ')', generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/storage.js": -/*!***************************************!*\ - !*** ../python/generators/storage.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ sdcard_mount: () => (/* binding */ sdcard_mount), -/* harmony export */ sdcard_use_spi_init: () => (/* binding */ sdcard_use_spi_init), -/* harmony export */ storage_can_write_ornot: () => (/* binding */ storage_can_write_ornot), -/* harmony export */ storage_change_dir: () => (/* binding */ storage_change_dir), -/* harmony export */ storage_close_file: () => (/* binding */ storage_close_file), -/* harmony export */ storage_delete_file: () => (/* binding */ storage_delete_file), -/* harmony export */ storage_file_seek: () => (/* binding */ storage_file_seek), -/* harmony export */ storage_file_tell: () => (/* binding */ storage_file_tell), -/* harmony export */ storage_file_write: () => (/* binding */ storage_file_write), -/* harmony export */ storage_fileopen: () => (/* binding */ storage_fileopen), -/* harmony export */ storage_fileopen_new: () => (/* binding */ storage_fileopen_new), -/* harmony export */ storage_fileopen_new_encoding: () => (/* binding */ storage_fileopen_new_encoding), -/* harmony export */ storage_get_a_line: () => (/* binding */ storage_get_a_line), -/* harmony export */ storage_get_contents: () => (/* binding */ storage_get_contents), -/* harmony export */ storage_get_contents_without_para: () => (/* binding */ storage_get_contents_without_para), -/* harmony export */ storage_get_current_dir: () => (/* binding */ storage_get_current_dir), -/* harmony export */ storage_get_file_size: () => (/* binding */ storage_get_file_size), -/* harmony export */ storage_get_filename: () => (/* binding */ storage_get_filename), -/* harmony export */ storage_is_file: () => (/* binding */ storage_is_file), -/* harmony export */ storage_list_all_files: () => (/* binding */ storage_list_all_files), -/* harmony export */ storage_make_dir: () => (/* binding */ storage_make_dir), -/* harmony export */ storage_open_file_with_os: () => (/* binding */ storage_open_file_with_os), -/* harmony export */ storage_rename: () => (/* binding */ storage_rename) -/* harmony export */ }); -const storage_open_file_with_os = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var fn = generator.valueToCode(this, 'fn', generator.ORDER_ATOMIC); - return "os.startfile(" + fn + ")\n"; -} - -const storage_fileopen = function (_, generator) { - // For each loop. - var variable0 = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('MODE'); - var code = variable0 + ' = open(' + fn + ', \'' + mode + '\')\n'; - return code; -} - -const storage_fileopen_new = function (_, generator) { // For each loop. - var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('MODE'); - var code = 'open(' + fn + ', \'' + mode + '\')'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_fileopen_new_encoding = function (_, generator) { // For each loop. - var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('MODE'); - var encode = this.getFieldValue('CODE'); - var code = 'open(' + fn + ', \'' + mode + '\', encoding="' + encode + '")'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_file_write = function (_, generator) { - var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC); - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - return file + ".write(" + data + ")\n"; -} - -const storage_get_contents_without_para = function (_, generator) { - var mode = this.getFieldValue('MODE'); - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = file + '.' + mode + '()'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_get_contents = function (_, generator) { - var mode = this.getFieldValue('MODE'); - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC); - var code = file + '.' + mode + '(' + size + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_get_a_line = function (_, generator) { - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC); - var code = file + ".readline(" + size + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_can_write_ornot = function (_, generator) { - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = file + ".writable()"; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_get_filename = function (_, generator) { - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = file + ".name()"; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_close_file = function (_, generator) { - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = file + ".close()\n"; - return code; -} - -const storage_list_all_files = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var code = 'os.listdir()'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_delete_file = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var mode = this.getFieldValue('MODE'); - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = "os." + mode + "(" + file + ")\n"; - return code; -} - -const storage_get_file_size = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = "os.path.getsize(" + file + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_file_tell = function (_, generator) { - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = file + ".tell()"; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_file_seek = function (_, generator) { - var mode = this.getFieldValue('MODE'); - var mode_num = 0; - if (mode == 'start') { - mode_num = 0; - } - else if (mode == 'current') { - mode_num = 1; - } - else { - mode_num = 2; - } - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC); - var code = file + '.seek(' + size + ',' + mode_num + ')\n'; - return code; -} - -const storage_change_dir = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var code = "os.chdir(" + file + ")\n"; - return code; -} - -const storage_get_current_dir = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var code = 'os.getcwd()'; - return [code, generator.ORDER_ATOMIC]; -} - -const storage_make_dir = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var mode = this.getFieldValue('MODE'); - var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC); - var code = 'os.' + mode + '(' + path + ')\n'; - return code; -} - -const storage_rename = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var file1 = generator.valueToCode(this, 'NEWFILE', generator.ORDER_ATOMIC); - var code = "os.rename(" + file + "," + file1 + ")\n"; - return code; -} - -const storage_is_file = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC); - var mode = this.getFieldValue('MODE'); - var code = "os." + mode + "(" + file + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const sdcard_use_spi_init = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - generator.definitions_['import_sdcard'] = 'import sdcard'; - var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC); - var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC); - var code = v + ' = sdcard.SDCard(' + sv + ',' + pv + ')\n'; - return code; -} - -const sdcard_mount = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - generator.definitions_['import_sdcard'] = 'import sdcard'; - var sd = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var dir = generator.valueToCode(this, 'DIR', generator.ORDER_ATOMIC); - return "os.mount(" + sd + ',' + dir + ")\n"; -} - -/***/ }), - -/***/ "../python/generators/text.js": -/*!************************************!*\ - !*** ../python/generators/text.js ***! - \************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ ascii_to_char: () => (/* binding */ ascii_to_char), -/* harmony export */ char_to_ascii: () => (/* binding */ char_to_ascii), -/* harmony export */ number_to_text: () => (/* binding */ number_to_text), -/* harmony export */ os_system: () => (/* binding */ os_system), -/* harmony export */ text: () => (/* binding */ text), -/* harmony export */ text_capital: () => (/* binding */ text_capital), -/* harmony export */ text_center: () => (/* binding */ text_center), -/* harmony export */ text_char: () => (/* binding */ text_char), -/* harmony export */ text_char_at: () => (/* binding */ text_char_at), -/* harmony export */ text_char_at2: () => (/* binding */ text_char_at2), -/* harmony export */ text_char_at3: () => (/* binding */ text_char_at3), -/* harmony export */ text_compareTo: () => (/* binding */ text_compareTo), -/* harmony export */ text_compare_to: () => (/* binding */ text_compare_to), -/* harmony export */ text_encode: () => (/* binding */ text_encode), -/* harmony export */ text_equals_starts_ends: () => (/* binding */ text_equals_starts_ends), -/* harmony export */ text_eval: () => (/* binding */ text_eval), -/* harmony export */ text_find: () => (/* binding */ text_find), -/* harmony export */ text_format: () => (/* binding */ text_format), -/* harmony export */ text_format_noreturn: () => (/* binding */ text_format_noreturn), -/* harmony export */ text_join: () => (/* binding */ text_join), -/* harmony export */ text_join_seq: () => (/* binding */ text_join_seq), -/* harmony export */ text_length: () => (/* binding */ text_length), -/* harmony export */ text_random_char: () => (/* binding */ text_random_char), -/* harmony export */ text_replace: () => (/* binding */ text_replace), -/* harmony export */ text_split: () => (/* binding */ text_split), -/* harmony export */ text_strip: () => (/* binding */ text_strip), -/* harmony export */ text_substring: () => (/* binding */ text_substring), -/* harmony export */ text_substring2: () => (/* binding */ text_substring2), -/* harmony export */ text_substring3: () => (/* binding */ text_substring3), -/* harmony export */ text_textarea: () => (/* binding */ text_textarea) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const text = function (_, generator) { - // Text value. - //var code = 'String('+generator.quote_(this.getFieldValue('TEXT'))+')'; - var code = generator.quote_(this.getFieldValue('TEXT')); - return [code, generator.ORDER_ATOMIC]; -} - -const text_textarea = function (_, generator) { - // Text value. - //var code = 'String('+generator.quote_(this.getFieldValue('TEXT'))+')'; - var code = '"""' + (this.getFieldValue('VALUE')) + '"""'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_char = function (_, generator) { - var code = '\'' + this.getFieldValue('TEXT') + '\''; - return [code, generator.ORDER_ATOMIC]; -} - -const text_join = function (_, generator) { - // Text value. - var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC); - var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC); - return [a + ' + ' + b, generator.ORDER_ADDITIVE]; -} - -const ascii_to_char = function (_, generator) { - var asciivalue = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['chr(' + asciivalue + ')', generator.ORDER_ATOMIC]; -} - -const char_to_ascii = function (_, generator) { - var charvalue = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || 'a'; - return ['ord(' + charvalue + ')', generator.ORDER_ATOMIC]; -} - -const number_to_text = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'; - return ['str(' + str + ')', generator.ORDER_ATOMIC]; -} - -const text_length = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - return ['len(' + str + ')', generator.ORDER_ATOMIC]; -} - -const text_char_at2 = function (a, generator) { - var c = a.getFieldValue("WHERE") || "FROM_START", - str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - switch (c) { - case "FROM_START": - a = generator.getAdjustedInt(a, "AT"); - return [str + "[" + a + "]", generator.ORDER_ATOMIC]; - case "FROM_END": - a = generator.getAdjustedInt(a, "AT", 1, !0); - return [str + "[" + a + "]", generator.ORDER_ATOMIC]; - case "RANDOM": - generator.definitions_.import_random = "import random"; - return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL]; - } - throw "Unhandled combination (lists_getIndex)."; -} - -const text_char_at = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var at = generator.valueToCode(this, 'AT', generator.ORDER_ATOMIC) || 0; - return [str + "[" + at + "]", generator.ORDER_ATOMIC]; -} - -const text_random_char = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - generator.definitions_.import_random = "import random"; - return ["random.choice(" + str + ")", generator.ORDER_FUNCTION_CALL]; -} - -const text_equals_starts_ends = function (_, generator) { - var str1 = (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '""'); - var str2 = (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '""'); - var dowhat = this.getFieldValue('DOWHAT'); - if (dowhat === '===') - return [str1 + ' == ' + str2, generator.ORDER_ATOMIC]; - return [str1 + '.' + dowhat + '(' + str2 + ')', generator.ORDER_ATOMIC]; -} - -const text_compare_to = function (_, generator) { - var str1 = (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '""'); - var str2 = (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '""'); - return ['cmp(' + str1 + ',' + str2 + ')', generator.ORDER_ATOMIC]; -} - -const text_substring2 = function (block, generator) { - // Get sublist. - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - switch (where1) { - case 'FROM_START': - var at1 = generator.getAdjustedInt(block, 'AT1'); - if (at1 == '0') { - at1 = ''; - } - break; - case 'FROM_END': - var at1 = generator.getAdjustedInt(block, 'AT1', 0, true); - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw 'Unhandled option (lists_getSublist)'; - } - switch (where2) { - case 'FROM_START': - var at2 = generator.getAdjustedInt(block, 'AT2'); - break; - case 'FROM_END': - var at2 = generator.getAdjustedInt(block, 'AT2', 0, true); - // Ensure that if the result calculated is 0 that sub-sequence will - // include all elements as expected. - if (!blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(String(at2))) { - generator.definitions_['import_sys'] = 'import sys'; - at2 += ' or sys.maxsize'; - } else if (at2 == '0') { - at2 = ''; - } - break; - case 'LAST': - var at2 = '-1'; - break; - default: - throw 'Unhandled option (lists_getSublist)'; - } - var code = str + '[' + at1 + ' : ' + at2 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_substring = function (_, generator) { - // Get sublist. - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ATOMIC); - var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ATOMIC); - var code = str + '[' + at1 + ' : ' + at2 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_capital = function (_, generator) { - var capital = this.getFieldValue('CAPITAL'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - return ['' + str + '.' + capital + '()', generator.ORDER_ATOMIC]; -} - -const text_center = function (_, generator) { - var center = this.getFieldValue('CENTER'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var width = generator.valueToCode(this, 'WID', generator.ORDER_ATOMIC); - var symbol = generator.valueToCode(this, 'Symbol', generator.ORDER_ATOMIC); - return ['' + str + '.' + center + '(' + width + ',' + symbol + ')', generator.ORDER_ATOMIC]; -} - -const text_find = function (_, generator) { - var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var str = generator.valueToCode(this, 'STR', generator.ORDER_ATOMIC); - return ['' + sentence + '.find(' + str + ')', generator.ORDER_ATOMIC]; -} - -const text_join_seq = function (_, generator) { - var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0'; - return [sentence + '.join(' + varName + ')', generator.ORDER_ATOMIC]; -} - -const text_replace = function (_, generator) { - var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var str1 = generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC); - var str2 = generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC); - return ['' + sentence + '.replace(' + str1 + ',' + str2 + ')', generator.ORDER_ATOMIC]; -} - -const text_split = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - var argument = generator.valueToCode(this, 'VAL', generator.ORDER_ATOMIC) || '""'; - var code = str + ".split(" + argument + ")"; - return [code, generator.ORDER_ATOMIC]; -} - -const text_strip = function (_, generator) { - var towhat = this.getFieldValue('TOWHAT'); - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = str + "." + towhat + "()"; - return [code, generator.ORDER_ATOMIC]; -} - -const text_format = function (_, generator) { - // Create a list with any number of elements of any type. - var s = this.getFieldValue('VAR'); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = s + '.format(' + code.join(', ') + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_format_noreturn = function (_, generator) { - // Create a list with any number of elements of any type. - var s = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = s + '.format(' + code.join(', ') + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const text_substring3 = text_substring -const text_compareTo = text_compare_to -const text_char_at3 = text_char_at - -const text_encode = function (_, generator) { - var code = this.getFieldValue('DIR'); - var varName = this.getFieldValue('CODE') - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '""'; - return [str + '.' + code + '("' + varName + '")', generator.ORDER_ATOMIC]; -} - -const text_eval = function (_, generator) { - var codestr = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "eval" + '(' + codestr + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const os_system = function (_, generator) { - generator.definitions_['import_os'] = 'import os'; - var codestr = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); - var code = "os.system" + '(' + codestr + ')\n'; - return code; -} - -/***/ }), - -/***/ "../python/generators/tuple.js": -/*!*************************************!*\ - !*** ../python/generators/tuple.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ tuple_change_to: () => (/* binding */ tuple_change_to), -/* harmony export */ tuple_create_with: () => (/* binding */ tuple_create_with), -/* harmony export */ tuple_create_with_noreturn: () => (/* binding */ tuple_create_with_noreturn), -/* harmony export */ tuple_create_with_text2: () => (/* binding */ tuple_create_with_text2), -/* harmony export */ tuple_create_with_text_return: () => (/* binding */ tuple_create_with_text_return), -/* harmony export */ tuple_del: () => (/* binding */ tuple_del), -/* harmony export */ tuple_find: () => (/* binding */ tuple_find), -/* harmony export */ tuple_getIndex: () => (/* binding */ tuple_getIndex), -/* harmony export */ tuple_getSublist: () => (/* binding */ tuple_getSublist), -/* harmony export */ tuple_get_random_item: () => (/* binding */ tuple_get_random_item), -/* harmony export */ tuple_get_sublist: () => (/* binding */ tuple_get_sublist), -/* harmony export */ tuple_input: () => (/* binding */ tuple_input), -/* harmony export */ tuple_join: () => (/* binding */ tuple_join), -/* harmony export */ tuple_length: () => (/* binding */ tuple_length), -/* harmony export */ tuple_max: () => (/* binding */ tuple_max), -/* harmony export */ tuple_totuple: () => (/* binding */ tuple_totuple), -/* harmony export */ tuple_trig: () => (/* binding */ tuple_trig) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const tuple_create_with = function (_, generator) { - // Create a list with any number of elements of any type. - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var code = new Array(this.itemCount_); - var default_value = '0'; - for (var n = 0; n < this.itemCount_; n++) { - - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - // if (this.itemCount_!=1){ - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\n';} - // else { - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\n';} - if (this.itemCount_ != 1) { - var code = varName + '= ' + '(' + code.join(', ') + ')\n'; - } - else { - var code = varName + '= ' + '(' + code.join(', ') + ',)\n'; - } - return code; -} - -const tuple_create_with_text2 = function (_, generator) { - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - //var size=window.parseFloat(this.getFieldValue('SIZE')); - var text = this.getFieldValue('TEXT'); - //generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + text + ')\n'; - var code = varName + '= ' + '(' + text + ')\n'; - return code; -} - -const tuple_create_with_text_return = function (_, generator) { - var text = this.getFieldValue('TEXT'); - var code = '(' + text + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_getIndex = function (_, generator) { - // Indexing into a list is the same as indexing into a string. - var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0'; - var argument0 = generator.valueToCode(this, 'AT', - generator.ORDER_ADDITIVE) || '1'; - if (argument0.match(/^\d+$/)) { - // If the index is a naked number, decrement it right now. - argument0 = parseInt(argument0, 10); - } - // else { - // If the index is dynamic, decrement it in code. - // argument0; - // } - var code = varName + '[' + argument0 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_length = function (_, generator) { - var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'len(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_del = function (_, generator) { - var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0'; - var code = 'del ' + varName + '\n'; - return code; -} - -const tuple_join = function (_, generator) { - var varName1 = generator.valueToCode(this, 'TUP1', generator.ORDER_ASSIGNMENT) || '0'; - var varName2 = generator.valueToCode(this, 'TUP2', generator.ORDER_ASSIGNMENT) || '0'; - var code = varName1 + " + " + varName2; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_max = function (_, generator) { - var varname = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0'; - var maxmin = this.getFieldValue('DIR'); - var code = maxmin + "(" + varname + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_change_to = function (_, generator) { - var op = this.getFieldValue('OP'); - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var code = op + '(' + varName + ')\n'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_find = function (_, generator) { - var op = this.getFieldValue('OP'); - var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0'; - var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0'; - if (op == 'INDEX') - var code = varName + '.index(' + argument + ')'; - else if (op == 'COUNT') - var code = varName + '.count(' + argument + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_trig = function (a, generator) { - var b = a.getFieldValue("OP"), c; - generator.definitions_['import_math'] = "import math"; - a = generator.valueToCode(a, 'data', generator.ORDER_NONE) - switch (b) { - case "LEN": - c = "len(" + a + ")"; - break; - case "SUM": - c = "sum(" + a + ")"; - break; - case "MIN": - c = "min(" + a + ")"; - break; - case "MAX": - c = "max(" + a + ")"; - break; - case 'AVERAGE': - // generator.definitions_['from_numbers_import_Number'] = - // 'from numbers import Number'; - var functionName = generator.provideFunction_( - 'math_mean', - // This operation excludes null and values that aren't int or float:', - // math_mean([null, null, "aString", 1, 9]) == 5.0.', - ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):', - ' localList = [e for e in myList if type(e) == int or type(e) == float]', - ' if not localList: return', - ' return float(sum(localList)) / len(localList)']); - c = functionName + '(' + a + ')'; - break; - case 'MEDIAN': - // generator.definitions_['from_numbers_import_Number'] = - // 'from numbers import Numberd'; - var functionName = generator.provideFunction_( - 'math_median', - // This operation excludes null values: - // math_median([null, null, 1, 3]) == 2.0. - ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):', - ' localList = sorted([e for e in myList if type(e) == int or type(e) == float])', - ' if not localList: return', - ' if len(localList) % 2 == 0:', - ' return (localList[len(localList) // 2 - 1] + ' + - 'localList[len(localList) // 2]) / 2.0', - ' else:', - ' return localList[(len(localList) - 1) // 2]']); - c = functionName + '(' + a + ')'; - break; - case 'MODE': - var functionName = generator.provideFunction_( - 'math_modes', - // As a list of numbers can contain more than one mode, - // the returned result is provided as an array. - // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1]. - ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):', - ' modes = []', - ' # Using a lists of [item, count] to keep count rather than dict', - ' # to avoid "unhashable" errors when the counted item is ' + - 'itself a list or dict.', - ' counts = []', - ' maxCount = 1', - ' for item in some_list:', - ' found = False', - ' for count in counts:', - ' if count[0] == item:', - ' count[1] += 1', - ' maxCount = max(maxCount, count[1])', - ' found = True', - ' if not found:', - ' counts.append([item, 1])', - ' for counted_item, item_count in counts:', - ' if item_count == maxCount:', - ' modes.append(counted_item)', - ' return modes']); - c = functionName + '(' + a + ')'; - break; - case 'STD_DEV': - generator.definitions_['import_math'] = 'import math'; - var functionName = generator.provideFunction_( - 'math_standard_deviation', - ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):', - ' n = len(numbers)', - ' if n == 0: return', - ' mean = float(sum(numbers)) / n', - ' variance = sum((x - mean) ** 2 for x in numbers) / n', - ' return math.sqrt(variance)']); - c = functionName + '(' + a + ')'; - break; - default: - throw 'Unknown operator: ' + b; - } - if (c) - return [c, generator.ORDER_FUNCTION_CALL]; - -} - -const tuple_getSublist = function (block, generator) { - // Get sublist. - var list = generator.valueToCode(block, 'LIST', - generator.ORDER_MEMBER) || '[]'; - var where1 = block.getFieldValue('WHERE1'); - var where2 = block.getFieldValue('WHERE2'); - switch (where1) { - case 'FROM_START': - var at1 = generator.getAdjustedInt(block, 'AT1'); - if (at1 == '0') { - at1 = ''; - } - break; - case 'FROM_END': - var at1 = generator.getAdjustedInt(block, 'AT1', 1, true); - break; - case 'FIRST': - var at1 = '0'; - break; - default: - throw 'Unhandled option (lists_getSublist)'; - } - switch (where2) { - case 'FROM_START': - var at2 = generator.getAdjustedInt(block, 'AT2', 1); - at2 = at2 - 1; - break; - case 'FROM_END': - var at2 = generator.getAdjustedInt(block, 'AT2', 1, true); - // Ensure that if the result calculated is 0 that sub-sequence will - // include all elements as expected. - if (!blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(String(at2))) { - generator.definitions_['import_sys'] = 'import sys'; - at2 += ' or sys.maxsize'; - } else if (at2 == '0') { - at2 = ''; - } - break; - case 'LAST': - var at2 = '-1'; - break; - default: - throw 'Unhandled option (lists_getSublist)'; - } - var code = list + '[' + at1 + ' : ' + at2 + ']'; - return [code, generator.ORDER_MEMBER]; -} - -const tuple_create_with_noreturn = function (_, generator) { - // Create a list with any number of elements of any type. - var code = new Array(this.itemCount_); - var default_value = '0'; - - - for (var n = 0; n < this.itemCount_; n++) { - - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - // if (this.itemCount_!=1){ - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\n';} - // else { - // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\n';} - if (this.itemCount_ != 1) { - var code = '(' + code.join(', ') + ')'; - } - else { - var code = '(' + code.join(', ') + ',)'; - } - - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_get_sublist = function (_, generator) { - // Get sublist. - var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || '0'; - var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ADDITIVE) || '0'; - var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ADDITIVE) || '0'; - var code = list + '[' + at1 + ' : ' + at2 + ']'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_get_random_item = function (_, generator) { - generator.definitions_['import_random'] = 'import random'; - var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ADDITIVE) || 'mytup'; - var code = 'random.choice(' + varName + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const tuple_totuple = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0' - return ['tuple(' + str + ')', generator.ORDER_ATOMIC]; -} - -const tuple_input = function (_, generator) { - var text = generator.getFieldValue('CONTENT'); - var code = '(' + text + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/generators/utility.js": -/*!***************************************!*\ - !*** ../python/generators/utility.js ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ attribute_access: () => (/* binding */ attribute_access), -/* harmony export */ function_call: () => (/* binding */ function_call), -/* harmony export */ raw_block: () => (/* binding */ raw_block), -/* harmony export */ raw_empty: () => (/* binding */ raw_empty), -/* harmony export */ raw_expression: () => (/* binding */ raw_expression), -/* harmony export */ raw_table: () => (/* binding */ raw_table), -/* harmony export */ type_check: () => (/* binding */ type_check) -/* harmony export */ }); -/** - * @license - * Visual Blocks Language - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Generating Python for utility blocks. - * @author acbart@vt.edu (Austin Cory Bart) - */ - -const raw_block = function (block) { - var code = block.getFieldValue('TEXT') + "\n"; - return code; -} - -const raw_expression = function (block, generator) { - var code = block.getFieldValue('TEXT'); - return [code, generator.ORDER_ATOMIC]; -} - -const raw_empty = function (block, generator) { - var code = generator.valueToCode(block, 'VALUE', - generator.ORDER_ATOMIC) || ''; - return code + "\n"; -} - -const raw_table = function () { - //var code = block.getFieldValue('TEXT')+"\n"; - return '';//code; -} - -const type_check = function (block, generator) { - var value = generator.valueToCode(block, 'VALUE', - generator.ORDER_MEMBER) || '___'; - var code = 'type(' + value + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const function_call = function (block, generator) { - var name = block.getFieldValue('NAME'); - var hasReturn = block.hasReturn_; - var args = new Array(block.itemCount_); - for (var n = 0; n < block.itemCount_; n++) { - args[n] = generator.valueToCode(block, 'ARGUMENT' + n, - generator.ORDER_NONE) || '___'; - } - var code = name + '(' + args.join(', ') + ')'; - if (hasReturn) { - return [code, generator.ORDER_ATOMIC]; - } - return code + '\n'; -} - -const attribute_access = function (block, generator) { - var value_module = generator.valueToCode(block, 'MODULE', generator.ORDER_ATOMIC); - var value_name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC); - //去除掉两端的括号,如(val()) --> val() - value_name = value_name.substring(1, value_name.length - 1); - // TODO: Assemble JavaScript into code variable. - var code = value_module + '.' + value_name; - // TODO: Change ORDER_NONE to the correct strength. - return [code, generator.ORDER_NONE]; -} - -/***/ }), - -/***/ "../python/generators/variables.js": -/*!*****************************************!*\ - !*** ../python/generators/variables.js ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ controls_type: () => (/* binding */ controls_type), -/* harmony export */ controls_typeLists: () => (/* binding */ controls_typeLists), -/* harmony export */ lists_zip: () => (/* binding */ lists_zip), -/* harmony export */ unpack_iterable_object: () => (/* binding */ unpack_iterable_object), -/* harmony export */ variables_change: () => (/* binding */ variables_change), -/* harmony export */ variables_get: () => (/* binding */ variables_get), -/* harmony export */ variables_global: () => (/* binding */ variables_global), -/* harmony export */ variables_set: () => (/* binding */ variables_set) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); - - -const variables_get = function (_, generator) { - // Variable getter. - var code = generator.variableDB_.getName(this.getFieldValue('VAR'), - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - return [code, generator.ORDER_ATOMIC]; -} - -// export const variables_declare = function() { -// var dropdown_type = this.getFieldValue('TYPE'); -// var argument0; -// //TODO: settype to variable -// argument0 = generator.valueToCode(this, 'VALUE',generator.ORDER_ASSIGNMENT) || 'None'; -// var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), -// Blockly.Variables.NAME_TYPE); - -// if (dropdown_type === 'number') -// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = 0;'; -// else if(dropdown_type === 'string') -// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = \'\';'; -// else if(dropdown_type === 'boolean') -// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = true;'; -// else if(dropdown_type.startsWith('Array')) -// generator.definitions_['var_declare' + varName] = 'let ' + varName + ':' + dropdown_type + ' = [];'; - -// if(generator.setups_['var_declare' + varName] === undefined) { -// generator.setups_['var_declare' + varName] = varName + ' = ' + argument0 + '\n'; -// }else { -// } -// return ''; -// } - -const variables_set = function (_, generator) { - // Variable setter. - if (this.getFieldValue('VAR') == "") { - return " = None\n"; - } - var argument0 = generator.valueToCode(this, 'VALUE', - generator.ORDER_ASSIGNMENT) || 'None'; - var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables.NAME_TYPE); - return varName + ' = ' + argument0 + '\n'; -} - -const variables_change = function (_, generator) { - // Variable setter. - var operator = this.getFieldValue('OP'); - var varName = generator.valueToCode(this, 'MYVALUE', generator.ORDER_ATOMIC) || 'None'; - if (operator == 'bytes') { var code = operator + '(' + varName + ',"UTF-8")'; } - else { var code = operator + '(' + varName + ')'; } - return [code, generator.ORDER_ATOMIC]; -} - -const variables_global = function (_, generator) { - var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || 'None'; - var code = "global " + str + '\n'; - return code; -} - -// ok -const controls_type = function (_, generator) { - var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || 'None' - var code = 'type(' + data + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const controls_typeLists = function (_, generator) { - //generator.definitions_['import_microbit_*'] = 'from microbit import *'; - var type = this.getFieldValue('type'); - // generator.definitions_['func_type' + type] = code; - return [type, generator.ORDER_ATOMIC]; -} - -const lists_zip = function (_, generator) { - var code = new Array(this.itemCount_); - var default_value = '[]'; - for (var n = 0; n < this.itemCount_; n++) { - code[n] = generator.valueToCode(this, 'ADD' + n, - generator.ORDER_NONE) || default_value; - } - var code = 'zip(' + code.join(', ') + ')'; - return [code, generator.ORDER_ATOMIC]; -} - -const unpack_iterable_object = function (_, generator) { - const varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '[]'; - const type = this.getFieldValue('TYPE'); - const code = `${type}(${varName})`; - return [code, generator.ORDER_ATOMIC]; -} - -/***/ }), - -/***/ "../python/others/names.js": -/*!*********************************!*\ - !*** ../python/others/names.js ***! - \*********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _variables__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./variables */ "../python/others/variables.js"); -/** - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Utility functions for handling variables and procedure names. - * @author fraser@google.com (Neil Fraser) - */ - - -/** - * Class for a database of entity names (variables, functions, etc). - * @param {string} reservedWords A comma-separated string of words that are - * illegal for use as names in a language (e.g. 'new,if,this,...'). - * @param {string=} opt_variablePrefix Some languages need a '$' or a namespace - * before all variable names. - * @constructor - */ -class Names { - constructor(reservedWords, opt_variablePrefix) { - this.variablePrefix_ = opt_variablePrefix || ''; - this.reservedDict_ = Object.create(null); - if (reservedWords) { - var splitWords = reservedWords.split(','); - for (var i = 0; i < splitWords.length; i++) { - this.reservedDict_[splitWords[i]] = true; - } - } - this.reset(); - } - /** - * Do the given two entity names refer to the same entity? - * Blockly names are case-insensitive. - * @param {string} name1 First name. - * @param {string} name2 Second name. - * @return {boolean} True if names are the same. - */ - static equals(name1, name2) { - return name1.toLowerCase() == name2.toLowerCase(); - } - /** - * When JavaScript (or most other languages) is generated, variable 'foo' and - * procedure 'foo' would collide. However, Blockly has no such problems since - * variable get 'foo' and procedure call 'foo' are unambiguous. - * Therefore, Blockly keeps a separate type name to disambiguate. - * getName('foo', 'variable') -> 'foo' - * getName('foo', 'procedure') -> 'foo2' - */ - /** - * Empty the database and start from scratch. The reserved words are kept. - */ - reset() { - this.db_ = Object.create(null); - this.dbReverse_ = Object.create(null); - this.variableMap_ = null; - } - /** - * Set the variable map that maps from variable name to variable object. - * @param {!Blockly.VariableMap} map The map to track. - * @package - */ - setVariableMap(map) { - this.variableMap_ = map; - } - /** - * Get the name for a user-defined variable, based on its ID. - * This should only be used for variables of type Variables.NAME_TYPE. - * @param {string} id The ID to look up in the variable map. - * @return {?string} The name of the referenced variable, or null if there was - * no variable map or the variable was not found in the map. - * @private - */ - getNameForUserVariable_(id) { - if (!this.variableMap_) { - /* - console.log('Deprecated call to Names.prototype.getName without ' + - 'defining a variable map. To fix, add the folowing code in your ' + - 'generator\'s init() function:\n' + - 'Blockly.YourGeneratorName.variableDB_.setVariableMap(' + - 'workspace.getVariableMap());'); - */ - return null; - } - var variable = this.variableMap_.getVariableById(id); - if (variable) { - return variable.name; - } - return null; - } - /** - * Convert a Blockly entity name to a legal exportable entity name. - * @param {string} name The Blockly entity name (no constraints). - * @param {string} type The type of entity in Blockly - * ('VARIABLE', 'PROCEDURE', 'BUILTIN', etc...). - * @return {string} An entity name that is legal in the exported language. - */ - getName(name, type) { - if (type == _variables__WEBPACK_IMPORTED_MODULE_0__["default"].NAME_TYPE) { - var varName = this.getNameForUserVariable_(name); - if (varName) { - name = varName; - } - } - var normalized = name.toLowerCase() + '_' + type; - - var isVarType = type == _variables__WEBPACK_IMPORTED_MODULE_0__["default"].NAME_TYPE || - type == Names.DEVELOPER_VARIABLE_TYPE; - - var prefix = isVarType ? this.variablePrefix_ : ''; - if (normalized in this.db_) { - return prefix + this.db_[normalized]; - } - var safeName = this.getDistinctName(name, type); - this.db_[normalized] = safeName.substr(prefix.length); - return safeName; - } - /** - * Convert a Blockly entity name to a legal exportable entity name. - * Ensure that this is a new name not overlapping any previously defined name. - * Also check against list of reserved words for the current language and - * ensure name doesn't collide. - * @param {string} name The Blockly entity name (no constraints). - * @param {string} type The type of entity in Blockly - * ('VARIABLE', 'PROCEDURE', 'BUILTIN', etc...). - * @return {string} An entity name that is legal in the exported language. - */ - getDistinctName(name, type) { - var safeName = this.safeName_(name); - var i = ''; - while (this.dbReverse_[safeName + i] || - (safeName + i) in this.reservedDict_) { - // Collision with existing name. Create a unique name. - i = i ? i + 1 : 2; - } - safeName += i; - this.dbReverse_[safeName] = true; - var isVarType = type == _variables__WEBPACK_IMPORTED_MODULE_0__["default"].NAME_TYPE || - type == Names.DEVELOPER_VARIABLE_TYPE; - var prefix = isVarType ? this.variablePrefix_ : ''; - return prefix + safeName; - } - /** - * Given a proposed entity name, generate a name that conforms to the - * [_A-Za-z][_A-Za-z0-9]* format that most languages consider legal for - * variables. - * @param {string} name Potentially illegal entity name. - * @return {string} Safe entity name. - * @private - */ - safeName_(name) { - if (!name) { - name = 'unnamed'; - } else { - // Unfortunately names in non-latin characters will look like - // _E9_9F_B3_E4_B9_90 which is pretty meaningless. - // https://github.com/google/blockly/issues/1654 - name = encodeURI(name.replace(/ /g, '_')).replace(/[^,\w]/g, '_'); - // Most languages don't allow names with leading numbers. - if ('0123456789'.indexOf(name[0]) != -1) { - name = 'my_' + name; - } - } - return name; - } -} - -/** - * Constant to separate developer variable names from user-defined variable - * names when running generators. - * A developer variable will be declared as a global in the generated code, but - * will never be shown to the user in the workspace or stored in the variable - * map. - */ -Names.DEVELOPER_VARIABLE_TYPE = 'DEVELOPER_VARIABLE'; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Names); - -/***/ }), - -/***/ "../python/others/procedures.js": -/*!**************************************!*\ - !*** ../python/others/procedures.js ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/** - * @license - * Copyright 2012 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Utility functions for handling procedures. - * @author fraser@google.com (Neil Fraser) - */ - - -const Procedures = {}; - -/** - * Constant to separate procedure names from variables and generated functions - * when running generators. - * @deprecated Use Blockly.PROCEDURE_CATEGORY_NAME - */ -Procedures.NAME_TYPE = blockly_core__WEBPACK_IMPORTED_MODULE_0__.PROCEDURE_CATEGORY_NAME; - -/** - * Find all user-created procedure definitions in a workspace. - * @param {!Blockly.Workspace} root Root workspace. - * @return {!Array.>} Pair of arrays, the - * first contains procedures without return variables, the second with. - * Each procedure is defined by a three-element list of name, parameter - * list, and return value boolean. - */ -Procedures.allProcedures = function (root) { - var blocks = root.getAllBlocks(false); - var proceduresReturn = []; - var proceduresNoReturn = []; - for (var i = 0; i < blocks.length; i++) { - if (blocks[i].getProcedureDef) { - var tuple = blocks[i].getProcedureDef(); - if (tuple) { - if (tuple[2]) { - proceduresReturn.push(tuple); - } else { - proceduresNoReturn.push(tuple); - } - } - } - } - proceduresNoReturn.sort(Procedures.procTupleComparator_); - proceduresReturn.sort(Procedures.procTupleComparator_); - return [proceduresNoReturn, proceduresReturn]; -}; - -/** - * Comparison function for case-insensitive sorting of the first element of - * a tuple. - * @param {!Array} ta First tuple. - * @param {!Array} tb Second tuple. - * @return {number} -1, 0, or 1 to signify greater than, equality, or less than. - * @private - */ -Procedures.procTupleComparator_ = function (ta, tb) { - return ta[0].toLowerCase().localeCompare(tb[0].toLowerCase()); -}; - -/** - * Ensure two identically-named procedures don't exist. - * Take the proposed procedure name, and return a legal name i.e. one that - * is not empty and doesn't collide with other procedures. - * @param {string} name Proposed procedure name. - * @param {!Blockly.Block} block Block to disambiguate. - * @return {string} Non-colliding name. - */ -Procedures.findLegalName = function (name, block) { - if (block.isInFlyout) { - // Flyouts can have multiple procedures called 'do something'. - return name; - } - name = name || blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['UNNAMED_KEY'] || 'unnamed'; - while (!Procedures.isLegalName_(name, block.workspace, block)) { - // Collision with another procedure. - var r = name.match(/^(.*?)(\d+)$/); - if (!r) { - name += '2'; - } else { - name = r[1] + (parseInt(r[2], 10) + 1); - } - } - return name; -}; - -/** - * Does this procedure have a legal name? Illegal names include names of - * procedures already defined. - * @param {string} name The questionable name. - * @param {!Blockly.Workspace} workspace The workspace to scan for collisions. - * @param {Blockly.Block=} opt_exclude Optional block to exclude from - * comparisons (one doesn't want to collide with oneself). - * @return {boolean} True if the name is legal. - * @private - */ -Procedures.isLegalName_ = function (name, workspace, opt_exclude) { - return !Procedures.isNameUsed(name, workspace, opt_exclude); -}; - -/** - * Return if the given name is already a procedure name. - * @param {string} name The questionable name. - * @param {!Blockly.Workspace} workspace The workspace to scan for collisions. - * @param {Blockly.Block=} opt_exclude Optional block to exclude from - * comparisons (one doesn't want to collide with oneself). - * @return {boolean} True if the name is used, otherwise return false. - */ -Procedures.isNameUsed = function (name, workspace, opt_exclude) { - var blocks = workspace.getAllBlocks(false); - // Iterate through every block and check the name. - for (var i = 0; i < blocks.length; i++) { - if (blocks[i] == opt_exclude) { - continue; - } - if (blocks[i].getProcedureDef) { - var procName = blocks[i].getProcedureDef(); - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(procName[0], name)) { - return true; - } - } - } - return false; -}; - -/** - * Rename a procedure. Called by the editable field. - * @param {string} name The proposed new name. - * @return {string} The accepted name. - * @this {Blockly.Field} - */ -Procedures.rename = function (name) { - // Strip leading and trailing whitespace. Beyond this, all names are legal. - name = name.trim(); - - var legalName = Procedures.findLegalName(name, this.getSourceBlock()); - var oldName = this.getValue(); - if (oldName != name && oldName != legalName) { - // Rename any callers. - var blocks = this.getSourceBlock().workspace.getAllBlocks(false); - for (var i = 0; i < blocks.length; i++) { - if (blocks[i].renameProcedure) { - blocks[i].renameProcedure(oldName, legalName); - } - } - } - return legalName; -}; - -/** - * Construct the blocks required by the flyout for the procedure category. - * @param {!Blockly.Workspace} workspace The workspace containing procedures. - * @return {!Array.} Array of XML block elements. - */ -Procedures.flyoutCategory = function (workspace) { - var xmlList = []; - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['procedures_defnoreturn']) { - // - // do something - // - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'procedures_defnoreturn'); - block.setAttribute('gap', 16); - var nameField = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field'); - nameField.setAttribute('name', 'NAME'); - nameField.appendChild(blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode( - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFNORETURN_PROCEDURE'])); - block.appendChild(nameField); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['procedures_defreturn']) { - // - // do something - // - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'procedures_defreturn'); - block.setAttribute('gap', 16); - var nameField = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field'); - nameField.setAttribute('name', 'NAME'); - nameField.appendChild(blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode( - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Msg['PROCEDURES_DEFRETURN_PROCEDURE'])); - block.appendChild(nameField); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['procedures_return']) { - // - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'procedures_return'); - block.setAttribute('gap', 16); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['procedures_ifreturn']) { - // - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'procedures_ifreturn'); - block.setAttribute('gap', 16); - xmlList.push(block); - } - if (xmlList.length) { - // Add slightly larger gap between system blocks and user calls. - xmlList[xmlList.length - 1].setAttribute('gap', 24); - } - - function populateProcedures(procedureList, templateName) { - for (var i = 0; i < procedureList.length; i++) { - var name = procedureList[i][0]; - var args = procedureList[i][1]; - // - // - // - // - // - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', templateName); - block.setAttribute('gap', 16); - var mutation = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - mutation.setAttribute('name', name); - block.appendChild(mutation); - for (var j = 0; j < args.length; j++) { - var arg = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('arg'); - arg.setAttribute('name', args[j]); - mutation.appendChild(arg); - } - xmlList.push(block); - } - } - - var tuple = Procedures.allProcedures(workspace); - populateProcedures(tuple[0], 'procedures_callnoreturn'); - populateProcedures(tuple[1], 'procedures_callreturn'); - return xmlList; -}; - -/** - * Find all the callers of a named procedure. - * @param {string} name Name of procedure. - * @param {!Blockly.Workspace} workspace The workspace to find callers in. - * @return {!Array.} Array of caller blocks. - */ -Procedures.getCallers = function (name, workspace) { - var callers = []; - var blocks = workspace.getAllBlocks(false); - // Iterate through every block and check the name. - for (var i = 0; i < blocks.length; i++) { - if (blocks[i].getProcedureCall) { - var procName = blocks[i].getProcedureCall(); - // Procedure name may be null if the block is only half-built. - if (procName && blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(procName, name)) { - callers.push(blocks[i]); - } - } - } - return callers; -}; - -/** - * When a procedure definition changes its parameters, find and edit all its - * callers. - * @param {!Blockly.Block} defBlock Procedure definition block. - */ -Procedures.mutateCallers = function (defBlock) { - const oldRecordUndo = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.getRecordUndo(); - const procedureBlock = defBlock; - const name = procedureBlock.getProcedureDef()[0]; - const xmlElement = defBlock.mutationToDom(true); - const callers = blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures.getCallers(name, defBlock.workspace); - for (let i = 0, caller; (caller = callers[i]); i++) { - const oldMutationDom = caller.mutationToDom(); - const oldMutation = oldMutationDom && blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.domToText(oldMutationDom); - if (caller.domToMutation) { - caller.domToMutation(xmlElement); - } - const newMutationDom = caller.mutationToDom(); - const newMutation = newMutationDom && blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.domToText(newMutationDom); - if (oldMutation !== newMutation) { - // Fire a mutation on every caller block. But don't record this as an - // undo action since it is deterministically tied to the procedure's - // definition mutation. - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setRecordUndo(false); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.fire( - new (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.get(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.BLOCK_CHANGE))( - caller, - 'mutation', - null, - oldMutation, - newMutation, - ), - ); - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setRecordUndo(oldRecordUndo); - } - } -}; - -/** - * Find the definition block for the named procedure. - * @param {string} name Name of procedure. - * @param {!Blockly.Workspace} workspace The workspace to search. - * @return {Blockly.Block} The procedure definition block, or null not found. - */ -Procedures.getDefinition = function (name, workspace) { - // Assume that a procedure definition is a top block. - var blocks = workspace.getTopBlocks(false); - for (var i = 0; i < blocks.length; i++) { - if (blocks[i].getProcedureDef) { - var tuple = blocks[i].getProcedureDef(); - if (tuple && blockly_core__WEBPACK_IMPORTED_MODULE_0__.Names.equals(tuple[0], name)) { - return blocks[i]; - } - } - } - return null; -}; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Procedures); - -/***/ }), - -/***/ "../python/others/variables.js": -/*!*************************************!*\ - !*** ../python/others/variables.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/** - * @license - * Visual Blocks Editor - * - * Copyright 2012 Google Inc. - * https://developers.google.com/blockly/ - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * @fileoverview Utility functions for handling variables. - * @author fraser@google.com (Neil Fraser) - */ - - - -const Variables = {}; - -/** - * Category to separate variable names from procedures and generated functions. - */ -Variables.NAME_TYPE = 'VARIABLE'; - -/** - * Find all user-created variables. - * @param {!Blockly.Block|!Blockly.Workspace} root Root block or workspace. - * @return {!Array.} Array of variable names. - */ -Variables.allVariables = function (root) { - var blocks; - if (root.getDescendants) { - // Root is Block. - blocks = root.getDescendants(); - } else if (root.getAllBlocks) { - // Root is Workspace. - blocks = root.getAllBlocks(); - } else { - throw 'Not Block or Workspace: ' + root; - } - var variableHash = Object.create(null); - // Iterate through every block and add each variable to the hash. - for (var x = 0; x < blocks.length; x++) { - var blockVariables = blocks[x].getVars(); - for (var y = 0; y < blockVariables.length; y++) { - var varName = blockVariables[y]; - // Variable name may be null if the block is only half-built. - if (varName) { - variableHash[varName.toLowerCase()] = varName; - } - } - } - // Flatten the hash into a list. - var variableList = []; - for (var name in variableHash) { - variableList.push(variableHash[name]); - } - return variableList; -}; - -/** - * Find all instances of the specified variable and rename them. - * @param {string} oldName Variable to rename. - * @param {string} newName New variable name. - * @param {!Blockly.Workspace} workspace Workspace rename variables in. - */ -Variables.renameVariable = function (oldName, newName, workspace) { - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(true); - var blocks = workspace.getAllBlocks(); - // Iterate through every block. - for (var i = 0; i < blocks.length; i++) { - blocks[i].renameVar(oldName, newName); - } - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Events.setGroup(false); -}; - -/** - * Construct the blocks required by the flyout for the variable category. - * @param {!Blockly.Workspace} workspace The workspace contianing variables. - * @return {!Array.} Array of XML block elements. - */ -Variables.flyoutCategory = function (workspace) { - var variableList = Variables.allVariables(workspace); - //variableList.sort(goog.string.caseInsensitiveCompare); - // In addition to the user's variables, we also want to display the default - // variable name at the top. We also don't want this duplicated if the - // user has created a variable of the same name. - // alert(variableList) - // goog.array.remove(variableList, Blockly.Msg.VARIABLES_DEFAULT_NAME); - // variableList.unshift(Blockly.Msg.VARIABLES_DEFAULT_NAME); - - var xmlList = []; - - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_global'); - xmlList.push(block); - - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_set']) { - //增加variables_declare模块 - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_set'); - xmlList.push(block); - }//change tyep - /* - if (Blockly.Blocks['variables_change']) { - //增加variables_declare模块 - var block = Blockly.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_change'); - xmlList.push(block); - }*/ - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_change']) { - //增加variables_declare模块 - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_change'); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['controls_type']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'controls_type'); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['controls_typeLists']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'controls_typeLists'); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['lists_zip']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'lists_zip'); - block.setAttribute('inline', 'false'); - var mutation = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('mutation'); - mutation.setAttribute('items', 2); - block.appendChild(mutation); - for (let i = 0; i < 2; i++) { - let add = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('value'); - add.setAttribute('name', `ADD${i}`); - // let childBlock = Blockly.utils.xml.createElement('block'); - // childBlock.setAttribute('type', 'list_many_input'); - // let field = Blockly.utils.xml.createElement('field'); - // let value = Blockly.utils.xml.createTextNode('0,1,2,3'); - // field.setAttribute('name', 'CONTENT'); - // field.appendChild(value); - // childBlock.appendChild(field); - // add.appendChild(childBlock); - block.appendChild(add); - } - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['unpack_iterable_object']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'unpack_iterable_object'); - xmlList.push(block); - } - for (var i = 0; i < variableList.length; i++) { - // alert(variableList) - // if(i==0&& !(Blockly.Python.setups_['variables_set'+''])){ - // continue; - // } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_set']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_set'); - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_get']) { - block.setAttribute('gap', 8); - } - var field = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field', null, variableList[i]); - field.setAttribute('name', 'VAR'); - var name = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode(variableList[i]); - field.appendChild(name); - block.appendChild(field); - xmlList.push(block); - } - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_get']) { - var block = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('block'); - block.setAttribute('type', 'variables_get'); - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks['variables_set']) { - block.setAttribute('gap', 24); - } - var field = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createElement('field', null, variableList[i]); - field.setAttribute('name', 'VAR'); - var name = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.xml.createTextNode(variableList[i]); - field.appendChild(name); - block.appendChild(field); - xmlList.push(block); - } - } - return xmlList; -}; - -/** -* Return a new variable name that is not yet being used. This will try to -* generate single letter variable names in the range 'i' to 'z' to start with. -* If no unique name is located it will try 'i' to 'z', 'a' to 'h', -* then 'i2' to 'z2' etc. Skip 'l'. - * @param {!Blockly.Workspace} workspace The workspace to be unique in. -* @return {string} New variable name. -*/ -Variables.generateUniqueName = function (workspace) { - var variableList = Variables.allVariables(workspace); - var newName = ''; - if (variableList.length) { - var nameSuffix = 1; - var letters = 'ijkmnopqrstuvwxyzabcdefgh'; // No 'l'. - var letterIndex = 0; - var potName = letters.charAt(letterIndex); - while (!newName) { - var inUse = false; - for (var i = 0; i < variableList.length; i++) { - if (variableList[i].toLowerCase() == potName) { - // This potential name is already used. - inUse = true; - break; - } - } - if (inUse) { - // Try the next potential name. - letterIndex++; - if (letterIndex == letters.length) { - // Reached the end of the character sequence so back to 'i'. - // a new suffix. - letterIndex = 0; - nameSuffix++; - } - potName = letters.charAt(letterIndex); - if (nameSuffix > 1) { - potName += nameSuffix; - } - } else { - // We can use the current potential name. - newName = potName; - } - } - } else { - newName = 'i'; - } - return newName; -}; - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Variables); - -/***/ }), - -/***/ "../python/python_generator.js": -/*!*************************************!*\ - !*** ../python/python_generator.js ***! - \*************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ Python: () => (/* binding */ Python) -/* harmony export */ }); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _others_names__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./others/names */ "../python/others/names.js"); -/* -Overrides for generic Python code generation. -*/ - - - -/** - * Python code generator. - * @type {!Blockly.Generator} - */ -const Python = new blockly_core__WEBPACK_IMPORTED_MODULE_0__.Generator('Python'); -Python.INDENT = " "; - -/** - * List of illegal variable names. - * This is not intended to be a security feature. Blockly is 100% client-side, - * so bypassing this list is trivial. This is intended to prevent users from - * accidentally clobbering a built-in object or function. - * @private - */ -Python.addReservedWords( - // import keyword - // print(','.join(sorted(keyword.kwlist))) - // https://docs.python.org/3/reference/lexical_analysis.html#keywords - // https://docs.python.org/2/reference/lexical_analysis.html#keywords - 'False,None,True,and,as,assert,break,class,continue,def,del,elif,else,' + - 'except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,' + - 'or,pass,print,raise,return,try,while,with,yield,' + - // https://docs.python.org/3/library/constants.html - // https://docs.python.org/2/library/constants.html - 'NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,' + - // >>> print(','.join(sorted(dir(__builtins__)))) - // https://docs.python.org/3/library/functions.html - // https://docs.python.org/2/library/functions.html - 'ArithmeticError,AssertionError,AttributeError,BaseException,' + - 'BlockingIOError,BrokenPipeError,BufferError,BytesWarning,' + - 'ChildProcessError,ConnectionAbortedError,ConnectionError,' + - 'ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,' + - 'Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,' + - 'FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,' + - 'ImportWarning,IndentationError,IndexError,InterruptedError,' + - 'IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,' + - 'ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,' + - 'NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,' + - 'PermissionError,ProcessLookupError,RecursionError,ReferenceError,' + - 'ResourceWarning,RuntimeError,RuntimeWarning,StandardError,' + - 'StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,' + - 'SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,' + - 'UnicodeDecodeError,UnicodeEncodeError,UnicodeError,' + - 'UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,' + - 'ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,' + - '__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,' + - 'basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,' + - 'coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,' + - 'enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,' + - 'getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,' + - 'issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,' + - 'next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,' + - 'reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,' + - 'sum,super,tuple,type,unichr,unicode,vars,xrange,zip' -); - -/** - * Order of operation ENUMs. - * http://docs.python.org/reference/expressions.html#summary - */ -Python.ORDER_ATOMIC = 0; // 0 "" ... -Python.ORDER_COLLECTION = 1; // tuples, lists, dictionaries -Python.ORDER_STRING_CONVERSION = 1; // `expression...` -Python.ORDER_UNARY_POSTFIX = 1; // expr++ expr-- () [] . -Python.ORDER_UNARY_PREFIX = 2; // -expr !expr ~expr ++expr --expr -Python.ORDER_MEMBER = 2.1; // . [] -Python.ORDER_FUNCTION_CALL = 2.2; // () -Python.ORDER_EXPONENTIATION = 3; // ** -Python.ORDER_UNARY_SIGN = 4; // + - -Python.ORDER_BITWISE_NOT = 4; // ~ -Python.ORDER_MULTIPLICATIVE = 5; // * / // % -Python.ORDER_ADDITIVE = 6; // + - -Python.ORDER_BITWISE_SHIFT = 7; // << >> -Python.ORDER_BITWISE_AND = 8; // & -Python.ORDER_BITWISE_XOR = 9; // ^ -Python.ORDER_BITWISE_OR = 10; // | -Python.ORDER_RELATIONAL = 11; // in, not in, is, is not, -// <, <=, >, >=, <>, !=, == -Python.ORDER_EQUALITY = 11; // == != === !== -Python.ORDER_LOGICAL_NOT = 12; // not -Python.ORDER_LOGICAL_AND = 13; // and -Python.ORDER_LOGICAL_OR = 14; // or -Python.ORDER_ASSIGNMENT = 14; // = *= /= ~/= %= += -= <<= >>= &= ^= |= -Python.ORDER_CONDITIONAL = 15; // if else -Python.ORDER_LAMBDA = 16; // lambda -Python.ORDER_NONE = 99; // (...) - -/** - * List of outer-inner pairings that do NOT require parentheses. - * @type {!Array.>} - */ -Python.ORDER_OVERRIDES = [ - // (foo()).bar -> foo().bar - // (foo())[0] -> foo()[0] - [Python.ORDER_FUNCTION_CALL, Python.ORDER_MEMBER], - // (foo())() -> foo()() - [Python.ORDER_FUNCTION_CALL, Python.ORDER_FUNCTION_CALL], - // (foo.bar).baz -> foo.bar.baz - // (foo.bar)[0] -> foo.bar[0] - // (foo[0]).bar -> foo[0].bar - // (foo[0])[1] -> foo[0][1] - [Python.ORDER_MEMBER, Python.ORDER_MEMBER], - // (foo.bar)() -> foo.bar() - // (foo[0])() -> foo[0]() - [Python.ORDER_MEMBER, Python.ORDER_FUNCTION_CALL], - - // not (not foo) -> not not foo - // [Python.ORDER_LOGICAL_NOT, Python.ORDER_LOGICAL_NOT], - // a and (b and c) -> a and b and c - // [Python.ORDER_LOGICAL_AND, Python.ORDER_LOGICAL_AND], - // a or (b or c) -> a or b or c - // [Python.ORDER_LOGICAL_OR, Python.ORDER_LOGICAL_OR] -]; - -Python.init = function () { - /** - * Empty loops or conditionals are not allowed in Python. - */ - Python.PASS = this.INDENT + 'pass\n'; - // Create a dictionary of definitions to be printed before the code. - Python.definitions_ = Object.create(null); - // Create a dictionary mapping desired function names in definitions_ - // to actual function names (to avoid collisions with user functions). - Python.functionNames_ = Object.create(null); - Python.setups_ = Object.create(null); - Python.loops_ = Object.create(null); - Python.codeEnd_ = Object.create(null); - - if (!Python.variableDB_) { - Python.variableDB_ = new _others_names__WEBPACK_IMPORTED_MODULE_1__["default"](Python.RESERVED_WORDS_); - } else { - Python.variableDB_.reset(); - } -} - -Python.finish = function (code) { - // Convert the definitions dictionary into a list. - if (code !== "") { - code = code.replace(/\n/g, '\n'); - code = code.replace(/\n\s+$/, '\n'); - } - var imports = []; - var definitions_var = []; //变量定义 - var definitions_fun = []; //函数定义 - for (var name in this.definitions_) { - var def = this.definitions_[name]; - if (name.indexOf('import') === 0) { - imports.push(def); - } else if (name.indexOf('var_declare') === 0) { - definitions_var.push(def); - } else { - definitions_fun.push(def); - } - } - if (imports.length) { - imports.push('\n\n'); - } - if (definitions_var.length) { - definitions_var.push('\n\n'); - } - if (definitions_fun.length) { - definitions_fun.push('\n\n'); - } - var functions = []; - for (var name in Python.functions_) { - functions.push(Python.functions_[name]); - } - if (functions.length) { - functions.push('\n\n'); - } - var setups = []; - for (var name in Python.setups_) { - setups.push(Python.setups_[name]); - } - if (setups.length) { - setups.push('\n\n'); - } - var loops = []; - for (var name in Python.loops_) { - loops.push(Python.loops_[name]); - } - var codeEnd = []; - for (var name in Python.codeEnd_) { - codeEnd.push(Python.codeEnd_[name]); - } - if (codeEnd.length !== 0) { - codeEnd.push('\n'); - } - if (loops.length > 0) { - return imports.join('\n') + definitions_var.join('\n') + definitions_fun.join('\n') - + functions.join('\n') + setups.join('') + code + 'while True:\n' + loops.join('') + codeEnd.join('\n'); - } - return imports.join('\n') + definitions_var.join('\n') + definitions_fun.join('\n') - + functions.join('\n') + setups.join('') + code + codeEnd.join('\n'); -} - - -/** - * Naked values are top-level blocks with outputs that aren't plugged into - * anything. - * @param {string} line Line of generated code. - * @return {string} Legal line of code. - */ -Python.scrubNakedValue = function (line) { - return line + '\n'; -} - -/** - * Encode a string as a properly escaped Python string, complete with quotes. - * @param {string} string Text to encode. - * @return {string} Python string. - * @private - */ -Python.quote_ = function (string) { - // Can't use goog.string.quote since % must also be escaped. - string = string.replace(/\\/g, '\\\\') - .replace(/\n/g, '\\\n'); - - // Follow the CPython behaviour of repr() for a non-byte string. - var quote = '\''; - if (string.indexOf('\'') !== -1) { - if (string.indexOf('"') === -1) { - quote = '"'; - } else { - string = string.replace(/'/g, '\\\''); - } - } - return quote + string + quote; -} - -/** - * Encode a string as a properly escaped multiline Python string, complete - * with quotes. - * @param {string} string Text to encode. - * @return {string} Python string. - * @private - */ -Python.multiline_quote_ = function (string) { - // Can't use goog.string.quote since % must also be escaped. - string = string.replace(/'''/g, '\\\'\\\'\\\''); - return '\'\'\'' + string + '\'\'\''; -} - -/** - * Common tasks for generating Python from blocks. - * Handles comments for the specified block and any connected value blocks. - * Calls any statements following this block. - * @param {!Blockly.Block} block The current block. - * @param {string} code The Python code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. - * @return {string} Python code with comments and subsequent blocks added. - * @private - */ -Python.scrub_ = function (block, code, opt_thisOnly) { - var commentCode = ''; - // Only collect comments for blocks that aren't inline. - if (!block.outputConnection || !block.outputConnection.targetConnection) { - // Collect comment for this block. - var comment = block.getCommentText(); - if (comment) { - comment = blockly_core__WEBPACK_IMPORTED_MODULE_0__.utils.string.wrap(comment, - Python.COMMENT_WRAP - 3); - commentCode += Python.prefixLines(comment + '\n', '# '); - } - // Collect comments for all value arguments. - // Don't collect comments for nested statements. - for (var i = 0; i < block.inputList.length; i++) { - if (block.inputList[i].type == blockly_core__WEBPACK_IMPORTED_MODULE_0__.INPUT_VALUE) { - var childBlock = block.inputList[i].connection.targetBlock(); - if (childBlock) { - var comment = Python.allNestedComments(childBlock); - if (comment) { - commentCode += Python.prefixLines(comment, '# '); - } - } - } - } - } - var nextBlock = block.nextConnection && block.nextConnection.targetBlock(); - var nextCode = opt_thisOnly ? '' : Python.blockToCode(nextBlock); - return commentCode + code + nextCode; -} - -/** - * Gets a property and adjusts the value, taking into account indexing, and - * casts to an integer. - * @param {!Blockly.Block} block The block. - * @param {string} atId The property ID of the element to get. - * @param {number=} opt_delta Value to add. - * @param {boolean=} opt_negate Whether to negate the value. - * @return {string|number} - */ -Python.getAdjustedInt = function (block, atId, opt_delta, opt_negate) { - var delta = opt_delta || 0; - if (block.workspace.options.oneBasedIndex) { - delta--; - } - var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0'; - var atOrder = delta ? Python.ORDER_ADDITIVE : - Python.ORDER_NONE; - var at = Python.valueToCode(block, atId, atOrder) || defaultAtIndex; - - if (blockly_core__WEBPACK_IMPORTED_MODULE_0__.isNumber(at)) { - // If the index is a naked number, adjust it right now. - at = parseInt(at, 10) + delta; - if (opt_negate) { - at = -at; - } - } else { - // If the index is dynamic, adjust it in code. - if (delta > 0) { - at = 'int(' + at + ' + ' + delta + ')'; - } else if (delta < 0) { - at = 'int(' + at + ' - ' + -delta + ')'; - } else { - at = 'int(' + at + ')'; - } - if (opt_negate) { - at = '-' + at; - } - } - return at; -} - -/***/ }), - -/***/ "./css/color_esp32c3_mixgocc.css": -/*!***************************************!*\ - !*** ./css/color_esp32c3_mixgocc.css ***! - \***************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -// extracted by mini-css-extract-plugin - - -/***/ }), - -/***/ "blockly/core": -/*!**************************!*\ - !*** external "Blockly" ***! - \**************************/ -/***/ ((module) => { - -module.exports = Blockly; - -/***/ }), - -/***/ "mixly": -/*!************************!*\ - !*** external "Mixly" ***! - \************************/ -/***/ ((module) => { - -module.exports = Mixly; - -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/compat get default export */ -/******/ (() => { -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = (module) => { -/******/ var getter = module && module.__esModule ? -/******/ () => (module['default']) : -/******/ () => (module); -/******/ __webpack_require__.d(getter, { a: getter }); -/******/ return getter; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/define property getters */ -/******/ (() => { -/******/ // define getter functions for harmony exports -/******/ __webpack_require__.d = (exports, definition) => { -/******/ for(var key in definition) { -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); -/******/ } -/******/ } -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/make namespace object */ -/******/ (() => { -/******/ // define __esModule on exports -/******/ __webpack_require__.r = (exports) => { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ })(); -/******/ -/************************************************************************/ -var __webpack_exports__ = {}; -/*!******************!*\ - !*** ./index.js ***! - \******************/ -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! blockly/core */ "blockly/core"); -/* harmony import */ var blockly_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(blockly_core__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mixly */ "mixly"); -/* harmony import */ var mixly__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mixly__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _mixly_python__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @mixly/python */ "../python/export.js"); -/* harmony import */ var _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mixly/micropython */ "../micropython/export.js"); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ */ "./export.js"); -/* harmony import */ var _css_color_esp32c3_mixgocc_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./css/color_esp32c3_mixgocc.css */ "./css/color_esp32c3_mixgocc.css"); - - - - - - - - - - - -Object.assign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Variables, _mixly_python__WEBPACK_IMPORTED_MODULE_2__.Variables); -Object.assign(blockly_core__WEBPACK_IMPORTED_MODULE_0__.Procedures, _mixly_python__WEBPACK_IMPORTED_MODULE_2__.Procedures); -blockly_core__WEBPACK_IMPORTED_MODULE_0__.Python = _mixly_python__WEBPACK_IMPORTED_MODULE_2__.Python; -blockly_core__WEBPACK_IMPORTED_MODULE_0__.generator = _mixly_python__WEBPACK_IMPORTED_MODULE_2__.Python; - -mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default = {}; -Object.assign(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile, ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2Pins); -Object.assign(mixly__WEBPACK_IMPORTED_MODULE_1__.Profile.default, ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2Pins['MixGo CC']); - -Object.assign( - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Blocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonVariablesBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonControlBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonMathBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonTextBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonListsBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonDictsBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonLogicBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonStorageBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonProceduresBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonTupleBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonSetBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonHtmlBlocks, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonUtilityBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonInputBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSystemBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSerialBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCommunicateBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonIotBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonWeatherBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonAISensorBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSensorOnBoardBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSensorExternBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonNetworkBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonAIBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonActuatorOnBoardBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonActuatorExternBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonDisplayOnBoardBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonDisplayExternBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonFactoryBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonBlynkBlocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCCG1Blocks, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCEGOBlocks, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2InoutBlocks, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2MiniG2Blocks, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2MEGOBlocks, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2PinsBlocks -); - -Object.assign( - blockly_core__WEBPACK_IMPORTED_MODULE_0__.Python.forBlock, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonVariablesGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonControlGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonMathGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonTextGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonListsGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonDictsGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonLogicGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonStorageGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonProceduresGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonTupleGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonSetGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonHtmlGenerators, - _mixly_python__WEBPACK_IMPORTED_MODULE_2__.PythonUtilityGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonInputGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSystemGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSerialGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCommunicateGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonIotGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonWeatherGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonAISensorGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSensorOnBoardGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonSensorExternGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonNetworkGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonAIGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonActuatorOnBoardGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonActuatorExternGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonDisplayOnBoardGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonDisplayExternGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonFactoryGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonBlynkGenerators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCCG1Generators, - _mixly_micropython__WEBPACK_IMPORTED_MODULE_3__.MicroPythonCEGOGenerators, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2InoutGenerators, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2MiniG2Generators, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2MEGOGenerators, - ___WEBPACK_IMPORTED_MODULE_4__.MicropythonESP32C2PinsGenerators -); -/******/ })() -; -//# sourceMappingURL=main.bundle.js.map \ No newline at end of file +class Ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Ot.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},wt={init:function(){this.setColour(xt),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},kt={init:function(){this.setColour(xt),this.appendValueInput("LIST").setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Ot.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ht={init:function(){this.setColour(xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Ot.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Ot.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Ot.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Ot.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(xt);var t=new Ot.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Ot.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Ot.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Ot.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Ht.OPERATORS=[[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Ot.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Qt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},jt={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Ot.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},$t={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Ot.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Ot.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:xt,tooltip:Ot.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Ot.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},_e={init:function(){this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Ot.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Ot.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Ot.FieldDropdown([[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Ot.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},oe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pe={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},ue={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_GET_UNIQUE_IDEN)}},re={init:function(){this.setColour(xt),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},le={init:function(){this.setColour(xt),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Ot.FieldTextInput.math_number_validator=function(t){return String(t)},Ot.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Me={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Ot.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Ot.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},me={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Ot.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Ot.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Ee={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Ot.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Ot.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Ot.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Ot.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Ot.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Ot.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Ot.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Ot.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Re={init:function(){var t=[[Ot.Msg.MATH_BIN,"bin"],[Ot.Msg.MATH_OCT,"oct"],[Ot.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Ot.Msg.MATH_DEC_TOOLTIP_BIN,oct:Ot.Msg.MATH_DEC_TOOLTIP_OCT,hex:Ot.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},ce={init:function(){var t=[[Ot.Msg.LANG_MATH_TO_ROUND,"round"],[Ot.Msg.LANG_MATH_TO_CEIL,"ceil"],[Ot.Msg.LANG_MATH_TO_FLOOR,"floor"],[Ot.Msg.MATH_ABS,"fabs"],[Ot.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Ot.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Ot.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Ot.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Ot.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Ot.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Ot.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Ot.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},ge={init:function(){var t=[[Ot.Msg.MIXLY_MAX,"max"],[Ot.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Ot.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Ot.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Ot.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ce={init:function(){var t=[[Ot.Msg.MATH_TWO,"two"],[Ot.Msg.MATH_EIGHT,"eight"],[Ot.Msg.MATH_TEN,"ten"],[Ot.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Ot.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Ot.FieldDropdown(t),"OP").appendField(Ot.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MATH_ZHW).appendField(new Ot.FieldDropdown(t),"OP2").appendField(Ot.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Ot.Msg.MATH_Before_two,eight:Ot.Msg.MATH_Before_eight,ten:Ot.Msg.MATH_Before_ten,sixteen:Ot.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Ot.Msg.MATH_Behind_two,eight:Ot.Msg.MATH_Behind_eight,ten:Ot.Msg.MATH_Behind_ten,sixteen:Ot.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Se={init:function(){var t=[[Ot.Msg.LANG_MATH_INT,"int"],[Ot.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Ot.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Ot.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Ot.Msg.LANG_MATH_INT,float:Ot.Msg.LANG_MATH_FLOAT_RANDOM};return Ot.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Le={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Ot.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_CONSTRAIN_TOOLTIP)}},Ae={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Ot.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Ot.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Ot.FieldTextInput("0",Ot.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Ot.Msg.MATH_NUMBER_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Ot.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},fe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MATH_ROUND).appendField(Ot.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Ot.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"],[Ot.Msg.MIXLY_TO_BITES,"b"],[Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},Pe={init:function(){var t=[[Ot.Msg.MIXLY_TO_INT,"int"],[Ot.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Ot.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Ye=Ae,ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Ot.Msg.LANG_MATH_BYTE+Ot.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Xe={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Ot.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Ot.Msg.MIXLY_PRODUCT+Ot.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Ot.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Ot.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Ot.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Ve={init:function(){this.setColour(ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Ot.FieldTextInput("",Ot.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Ot.FieldImage(e,7,12,'"')}},Be={init:function(){this.setColour(ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Ot.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Ue={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String).appendField(Ot.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},we={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ke={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},He={init:function(){this.WHERE_OPTIONS=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.TEXT_GET_INDEX_RANDOM+1+Ot.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.LISTS_GET_INDEX_GET,"MODE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Ot.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Ot.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Ot.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Ot.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Ot.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Ot.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Ot.Msg.TEXT_GET_INDEX_RANDOM};return Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Ot.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Ot.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Ot.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Ot.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.LISTS_GET_INDEX_FROM_START+"n"+Ot.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Ot.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Ot.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Je={init:function(){this.WHERE_OPTIONS_1=[[Ot.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Ot.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Ot.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Ot.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Ot.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Ot.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Ot.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},qe={init:function(){this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Ot.Msg.LISTS_GET_INDEX_GET+" "+Ot.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Ot.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Ot.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Ot.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Qe={init:function(){var t=[[Ot.Msg.MIXLY_EQUALS,"==="],[Ot.Msg.MIXLY_STARTSWITH,"startswith"],[Ot.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Ot.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},ze={init:function(){this.setColour(ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_COMPARETO_HELP)}},je={init:function(){var t=[[Ot.Msg.TEXT_UPPER,"upper"],[Ot.Msg.TEXT_TITLE,"title"],[Ot.Msg.TEXT_CAPITALIZE,"capitalize"],[Ot.Msg.TEXT_SWAPCASE,"swapcase"],[Ot.Msg.TEXT_LOWER,"lower"]];this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Ot.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Ot.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Ot.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Ot.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Ot.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ze={init:function(){var t=[[Ot.Msg.TEXT_LJUST,"ljust"],[Ot.Msg.TEXT_CENTER,"center"],[Ot.Msg.TEXT_RJUST,"rjust"]];this.setColour(ye),this.appendValueInput("VAR").appendField(new Ot.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Ot.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Ot.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},$e={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Ot.Msg.MIXLY_MID+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(ye),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Ot.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Ot.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Ot.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Ot.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[Ot.Msg.TEXT_TRIM_BOTH,"strip"],[Ot.Msg.TEXT_TRIM_LEFT,"lstrip"],[Ot.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Ot.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Ot.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Ot.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Ot.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(ye),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Ot.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_KEYS),this.setTooltip(Ot.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Ot.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour(Zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(Ot.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Ot.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MID),this.setTooltip(Ot.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},un={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_CLEAR),this.setTooltip(Ot.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_ITEMS),this.setTooltip(Ot.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},ln={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_VALUES),this.setTooltip(Ot.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LENGTH),this.setTooltip(Ot.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.DICT_DELDICT),this.setTooltip(Ot.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[Ot.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Ot.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Ot.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Ot.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Ot.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Ot.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Ot.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Ot.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Mn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Ot.Msg.DICTS_ADD_VALUE),this.setTooltip(Ot.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},hn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Ot.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Ot.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_SETDEFAULT_TOOLTIP)}},mn={init:function(){this.setColour(Zi),this.appendDummyInput("").appendField(new Ot.FieldLabel(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Ot.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},En={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},On={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(Zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},gn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TO_JSON),this.setTooltip(Ot.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn=210,Sn={init:function(){var t=Ot.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Ot.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Ot.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Ln={init:function(){var t=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Ot.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Ot.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},An={init:function(){var t=[[Ot.Msg.LOGIC_OPERATION_AND,"AND"],[Ot.Msg.LOGIC_OPERATION_OR,"OR"],[Ot.Msg.LOGIC_OPERATION_NOR,"NOR"],[Ot.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Ot.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Ot.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Ot.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(Cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Ot.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Ot.Msg.LOGIC_NEGATE_TOOLTIP)}},Dn={init:function(){var t=[[Ot.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Ot.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Ot.FieldDropdown(t),"BOOL"),this.setTooltip(Ot.Msg.LOGIC_BOOLEAN_TOOLTIP)}},fn={init:function(){this.setColour(Cn),this.setOutput(!0),this.appendDummyInput().appendField(Ot.Msg.LOGIC_NULL),this.setTooltip(Ot.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(Ot.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Ot.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},Pn={init:function(){var t=[[Ot.Msg.TEXT_APPEND_TO,"in"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Ot.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Ot.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.IN)}},Yn={init:function(){var t=[[Ot.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Ot.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Ot.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},vn={init:function(){this.setColour(Cn),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Xn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Ot.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXPY_TEXT_ENCODE).appendField(new Ot.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_USE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=Ot.Msg.MIXLY_BELONG,o=Ot.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Vn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Ot.Msg.MIXLY_MICROBIT_TYPE_STRING+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MICROBIT_PYTHON_TYPE)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.HTML_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},zn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},jn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Ot.Msg.MIXLY_ESP32_SET+{mkdir:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Ot.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_FILE,"isfile"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Ot.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Ot.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={};ns.NAME_TYPE=Ot.PROCEDURE_CATEGORY_NAME,ns.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},t_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_FORM_CONTENT).appendField(new Ot.FieldDropdown([[Ot.Msg.HTML_TEXT,"text"],[Ot.Msg.HTML_EMAIL,"email"],[Ot.Msg.HTML_NUMBER,"number"],[Ot.Msg.HTML_PASSWORD,"password"],[Ot.Msg.HTML_CHECKBOX,"checkbox"],[Ot.Msg.HTML_RADIOBUTTON,"radiobutton"],[Ot.Msg.HTML_BUTTON,"button"],[Ot.Msg.HTML_COLOUR,"colour"],[Ot.Msg.HTML_DATE,"date"],[Ot.Msg.HTML_LOCALTIME,"local time"],[Ot.Msg.HTML_FILE,"file"],[Ot.Msg.HTML_HIDDEN,"hidden"],[Ot.Msg.HTML_IMAGE,"image"],[Ot.Msg.HTML_MONTH,"month"],[Ot.Msg.HTML_RANGE,"range"],[Ot.Msg.HTML_RESET,"reset"],[Ot.Msg.HTML_SEARCH,"search"],[Ot.Msg.HTML_SUBMIT,"submit"],[Ot.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Ot.Msg.HTML_TIME,"time"],[Ot.Msg.HTML_URL,"url"],[Ot.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Ot.Msg.HTML_NAME).appendField(new Ot.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Ot.Msg.HTML_VALUE).appendField(new Ot.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Ot.Msg.MIXLY_AIP_ATTR).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(new Ot.FieldTextInput("property"),"KEY").appendField(":").appendField(new Ot.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},n_={init:function(){this.setColour(Js),this.appendDummyInput().appendField(Ot.Msg.HTML_TEXT).appendField(new Ot.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},s_=160,__={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Ot.FieldTable(""),"TEXT")}},o_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT")}},p_={init:function(){this.setColour(s_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Ot.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},a_={init:function(){this.setColour(s_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},u_={init:function(){this.setColour(s_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Ot.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},r_={init:function(){this.setColour(s_),this.appendValueInput("VALUE").appendField(Ot.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},l_={init:function(){this.setColour(s_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Ot.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Ot.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Ot.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},Ot.isNumber(n)&&Ot.isNumber(s)&&Ot.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},_a=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ma=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ea=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},ga=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Sa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Aa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Xa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Ot.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Eu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Ou=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},cu=function(t,e){return'"},gu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Cu=function(){return this.getFieldValue("TEXT")+"\n"},Su=function(t){return t.getFieldValue("TEXT")+"\n"},Lu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Au=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nu=function(){return""},Du=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},fu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Pu.scrubNakedValue=function(t){return t+"\n"},Pu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Pu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Pu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=Ot.utils.string.wrap(_,Pu.COMMENT_WRAP-3),n+=Pu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Yu="#74A55B",vu={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},Xu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},yu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},xu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},bu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Vu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Bu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},Gu={init:function(){this.setColour(Yu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Uu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},wu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},ku={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Hu={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Wu={init:function(){this.setColour(Yu),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ku={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Yu),this.appendValueInput("VAR").appendField("360°"+Ot.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.blockpy_turtle_rotate+Ot.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},qu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_MOVE)}},Qu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},zu={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("180°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ju={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).appendField("360°"+Ot.Msg.MIXLY_SERVO).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Zu={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new Ot.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(Ot.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},$u={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[Ot.Msg.MOTOR_N,"ms32006.MOT_N"],[Ot.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},tr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new Ot.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"ms32006.MOT_CW"],[Ot.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},er={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_RGB_PIN_COUNT)}},ir={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},nr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},sr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},_r={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new Ot.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["SYN6288"+Ot.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+Ot.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},or={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_WHETHER).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_STOPPED,"0"],[Ot.Msg.MIXLY_PLAYING,"1"],[Ot.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},pr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_PLAY,"1"],[Ot.Msg.MIXLY_MP3_PAUSE,"2"],[Ot.Msg.MIXLY_STOP,"3"],[Ot.Msg.MIXLY_MP3_PREV,"4"],[Ot.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(Ot.Msg.MIXLY_MP3_VOL+Ot.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MP3_LOOP_ALL,"0"],[Ot.Msg.MIXLY_MP3_LOOP_ONE,"1"],[Ot.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[Ot.Msg.MIXLY_MP3_LOOP_RAM,"3"],[Ot.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[Ot.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[Ot.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},lr={},dr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Ir={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},Tr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Mr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(Ot.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(Ot.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PROGRAM_BLOCK).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},hr={init:function(){this.setColour(Yu),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},mr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Er={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_TRAFFIC_LIGHT).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.LISTS_SET_INDEX_SET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_WHITE,"W"],[Ot.Msg.COLOUR_RGB_RED,"R"],[Ot.Msg.COLOUR_RGB_YELLOW,"Y"],[Ot.Msg.COLOUR_RGB_GREEN,"G"],[Ot.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[Ot.Msg.MIXLY_SPEED,"[1]"],[Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[Ot.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[Ot.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[Ot.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MATH_SINGLE_OP_ABSOLUTE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Ar={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Dr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.ME_GO_MOTOR_EXTERN+Ot.Msg.MIXLY_SERVO_MOTOR).appendField(Ot.Msg.MIXLY_RELATIVE+Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+Ot.Msg.MSG.run).appendField("("+Ot.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LEFT,"0"],[Ot.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MODE).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPEED+Ot.Msg.MIXLY_MODE,"0"],[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER+Ot.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(Ot.inputs.Align.RIGHT).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"0"],[Ot.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Fr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MOTOR,"ext_motor"],[Ot.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[Ot.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[Ot.Msg.COLOUR_RGB_RED+"LED","R_LED"],[Ot.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[Ot.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[Ot.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[Ot.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Yu),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},vr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SERVO+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(Ot.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yr={init:function(){this.setColour(Yu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_MOTOR+Ot.Msg.MIXLY_SETUP+Ot.Msg.MIXLY_AT).appendField(Ot.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},xr={init:function(){this.setColour(Yu),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+Ot.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},br="#6C9858",Vr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Br={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_ON,"1"],[Ot.Msg.MIXLY_ESP32_OFF,"0"],[Ot.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Gr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ur={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},wr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Hr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Ot.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_LCD_SETCOLOR).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_LIGHT_RED,"1"],[Ot.Msg.MIXLY_LIGHT_GREEN,"2"],[Ot.Msg.MIXLY_LIGHT_BLUE,"3"],[Ot.Msg.MIXLY_LIGHT_YELLOW,"4"],[Ot.Msg.MIXLY_LIGHT_CYAN,"5"],[Ot.Msg.MIXLY_LIGHT_PURPLE,"6"],[Ot.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Wr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Kr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Jr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},qr={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING).appendField(Ot.Msg.MIXLY_BUILDIN_LED).appendField(new Ot.FieldDropdown([[Ot.Msg.COLOUR_RGB_RED,"r"],[Ot.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Qr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},zr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},jr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Zr={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},$r={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},tl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_WRI)}},el={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(Ot.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},il={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Ot.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},nl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.PYTHON_RANGE_STEP).appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sl={init:function(){this.setColour(br),this.appendValueInput("TICKS").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Ot.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Ot.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},_l={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},ol={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_RESET)}},pl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},al={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Ot.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},ul={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rl={init:function(){this.setColour(br),this.appendValueInput("LIST").appendField(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ll={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dl={init:function(){this.setColour(br),this.appendDummyInput().appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Il={init:function(){this.setColour(br),this.appendDummyInput("").appendField("MixGo Car").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Tl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_STOP).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},ml={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},El={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"1"],[Ot.Msg.TEXT_TRIM_RIGHT,"2"],[Ot.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[Ot.Msg.MIXLY_SPEED,"SPEED"],[Ot.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Rl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[Ot.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.BITBOT).appendField(Ot.Msg.MIXLY_MOTOR).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"0"],[Ot.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.CLOCKWISE,"CW"],[Ot.Msg.ANTI_CLOCKWISE,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(br),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ll={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Al={init:function(){this.setColour(br),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},Nl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_MIXBOT_BUZZER+Ot.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},Dl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_RECORD_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_AUDIO).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Fl={init:function(){this.setColour(br),this.appendValueInput("PATH").appendField(Ot.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Ot.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Yl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Xl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.PIN_NUMBERING).appendField(new Ot.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},yl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.ME_GO_MOTOR_EXTERN).appendField(Ot.Msg.MIXLY_ALL+Ot.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(Ot.ALIGN_RIGHT).appendField(Ot.Msg.blynk_IOT_IR_POWER+Ot.Msg.MIXLY_PINMODEOUT+Ot.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},xl={init:function(){this.setColour(br),this.appendDummyInput().appendField(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_RELEASE).appendField(new Ot.FieldDropdown([[Ot.Msg.MICROPYTHON_DISPLAY_YES,"True"],[Ot.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ANALOG+Ot.Msg.MIXLY_KEYBOARD_INPUT)}},bl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SPECIAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[Ot.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[Ot.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[Ot.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[Ot.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[Ot.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[Ot.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[Ot.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Vl={init:function(){this.setColour(br),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GENERAL_KEY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Bl={init:function(){this.setColour(br),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new Ot.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(Ot.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},VE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},BE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},GE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},UE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_PROJECT).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},kE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},HE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},qE={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},QE={init:function(){this.setColour(PE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},zE={init:function(){this.setColour(PE),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},jE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},ZE={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Ot.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},$E={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+Ot.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(PE),this.appendDummyInput().appendField(Ot.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Ot.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eO={init:function(){this.VISITOR_ID=Rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(PE),this.appendDummyInput("").appendField(new Ot.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},iO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MixIO").appendField(Ot.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},nO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Ot.Msg.MIXLY_REQUESTS_GET).appendField(Ot.Msg.MIXLY_GET_CURRENT_TIME).appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("HTTP"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},_O={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Ot.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Ot.Msg.MQTT_Topic).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Ot.Msg.MIXLY_OPEN_DEBUG).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Ot.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oO={init:function(){this.setColour(PE),this.appendDummyInput().appendField("MQTT"+Ot.Msg.MIXLY_Client).appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Ot.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Ot.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},pO=YE,aO=vE,uO=XE,rO=yE,lO=bE,dO=225,IO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_NETWORK_MODE).appendField(new Ot.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},TO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=Ot.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:Ot.Msg.MIXLY_NETWORK_WIFI_OPEN,False:Ot.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},MO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},hO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:Ot.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},mO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},EO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CONNECT+Ot.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[Ot.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:Ot.Msg.MIXLY_ESP32_NETWORK_IP,1:Ot.Msg.MIXLY_ESP32_NETWORK_MASK,2:Ot.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},RO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},cO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},gO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(Ot.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},SO={init:function(){this.setColour(dO),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new Ot.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},LO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},AO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},NO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},DO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},fO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},FO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},PO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},YO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},vO={init:function(){this.setColour(dO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},XO={init:function(){this.setColour(dO),this.appendValueInput("DOMAIN").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS_GET).appendField(new Ot.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:Ot.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:Ot.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:Ot.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},xO={init:function(){this.appendValueInput("VAR").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(Ot.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:Ot.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},bO={init:function(){this.setColour(dO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(Ot.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},VO={init:function(){this.setColour(dO),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},BO="#3288dd",GO={init:function(){this.setColour(BO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS).appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},UO={init:function(){this.setColour(BO),this.appendValueInput("URL").appendField(Ot.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(Ot.Msg.blockpy_CONDUCT).appendField(new Ot.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(Ot.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(Ot.Msg.blockpy_REQUESTS+Ot.Msg.OLED_STRING),this.appendDummyInput("").appendField(Ot.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},wO={init:function(){this.appendValueInput("VAL");var t=[[Ot.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[Ot.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[Ot.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(BO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},kO={init:function(){this.setColour(BO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Ot.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(Ot.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},HO={init:function(){this.setColour(BO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_SERVER).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(Ot.Msg.MIXLY_EMQX_PORT).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(Ot.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Ot.Msg.MIXLY_WIFI_USERNAME).setAlign(Ot.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Ot.Msg.MIXLY_IOT_PASSWORD).setAlign(Ot.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WO={init:function(){this.setColour(BO),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(Ot.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},KO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_SUBSCRIBE+Ot.Msg.MIXLY_MICROBIT_MSG).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Ot.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},JO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Ot.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Ot.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qO={init:function(){this.setColour(BO),this.appendDummyInput().appendField("mqtt"+Ot.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},QO="#A58C5B",zO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_IS_PRESSED)}},jO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SENOR_WAS_PRESSED)}},ZO={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(Ot.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.PROCEDURES_DEFRETURN_RETURN+Ot.Msg.MIXLY_BUTTON+Ot.Msg.MIXLY_GET_PRESSES)}},$O={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_BUTTON).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},tR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"],[Ot.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down,freefall:Ot.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},eR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},iR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},nR={init:function(){var t=[[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(QO),this.appendValueInput("PIN",Number).appendField(new Ot.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new Ot.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:Ot.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},sR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},_R={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},oR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"left"],[Ot.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(Ot.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=Ot.Msg.MIXLY_ESP32_NEAR;return i+{left:Ot.Msg.TEXT_TRIM_LEFT,right:Ot.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},pR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Ot.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Ot.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},aR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Ot.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},uR={init:function(){this.setColour(QO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},rR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField("LM35"+Ot.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Ot.Msg.MIXLY_TOOLTIP_LM35)}},lR={init:function(){this.setColour(QO),this.appendValueInput("I2CSUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[Ot.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[Ot.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[Ot.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[Ot.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[Ot.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[Ot.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[Ot.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[Ot.Msg.HTML_COLOUR+"、"+Ot.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Ot.Msg.MIXLY_NEXT+"、"+Ot.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[Ot.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[Ot.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[Ot.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[Ot.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},dR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},IR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(Ot.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(Ot.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+Ot.Msg.MIXLY_DELAY_TIME_RANGE)}},TR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(QO),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RADAR).appendField(Ot.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},mR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HELLO_XIAOZHI,"1"],[Ot.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[Ot.Msg.MIXLY_THE_FIRST,"3"],[Ot.Msg.MIXLY_THE_SECOND,"4"],[Ot.Msg.MIXLY_THE_THIRD,"5"],[Ot.Msg.MIXLY_THE_FOURTH,"6"],[Ot.Msg.MIXLY_THE_FIFTH,"7"],[Ot.Msg.MIXLY_THE_SIXTH,"8"],[Ot.Msg.MIXLY_THE_SEVENTH,"9"],[Ot.Msg.MIXLY_THE_EIGHTH,"10"],[Ot.Msg.MIXLY_THE_NINTH,"11"],[Ot.Msg.MIXLY_THE_TENTH,"12"],[Ot.Msg.MIXLY_THE_ELEVENTH,"13"],[Ot.Msg.MIXLY_THE_TWELFTH,"14"],[Ot.Msg.MIXLY_THE_13TH,"15"],[Ot.Msg.MIXLY_THE_14TH,"16"],[Ot.Msg.MIXLY_THE_15TH,"17"],[Ot.Msg.MIXLY_THE_16TH,"18"],[Ot.Msg.MIXLY_THE_17TH,"19"],[Ot.Msg.MIXLY_THE_18TH,"20"],[Ot.Msg.MIXLY_THE_19TH,"21"],[Ot.Msg.MIXLY_THE_20TH,"22"],[Ot.Msg.MIXLY_Turn_on_the_lights,"23"],[Ot.Msg.MIXLY_Turn_off_the_lights,"24"],[Ot.Msg.MIXLY_Turn_up_the_brightness,"25"],[Ot.Msg.MIXLY_Turn_down_the_brightness,"26"],[Ot.Msg.MIXLY_Set_it_to_red,"27"],[Ot.Msg.MIXLY_Set_it_to_orange,"28"],[Ot.Msg.MIXLY_Set_it_to_yellow,"29"],[Ot.Msg.MIXLY_Set_it_to_green,"30"],[Ot.Msg.MIXLY_Set_it_to_cyan,"31"],[Ot.Msg.MIXLY_Set_it_to_blue,"32"],[Ot.Msg.MIXLY_Set_it_to_purple,"33"],[Ot.Msg.MIXLY_Set_it_to_white,"34"],[Ot.Msg.MIXLY_Turn_on_the_fan,"35"],[Ot.Msg.MIXLY_Turn_off_the_fan,"36"],[Ot.Msg.MIXLY_First_gear,"37"],[Ot.Msg.MIXLY_Wind_speed_second,"38"],[Ot.Msg.MIXLY_Third_gear,"39"],[Ot.Msg.MIXLY_Previous,"40"],[Ot.Msg.MIXLY_Next_page,"41"],[Ot.Msg.MIXLY_Show_smiley_face,"42"],[Ot.Msg.MIXLY_Show_crying_face,"43"],[Ot.Msg.MIXLY_Show_love,"44"],[Ot.Msg.MIXLY_Close_display,"45"],[Ot.Msg.MIXLY_Start_execution,"46"],[Ot.Msg.MIXLY_FORWARD,"47"],[Ot.Msg.MIXLY_BACKWARD,"48"],[Ot.Msg.MIXLY_TURNLEFT,"49"],[Ot.Msg.MIXLY_TURNRIGHT,"50"],[Ot.Msg.MIXLY_STOP,"51"],[Ot.Msg.MIXLY_Accelerate,"52"],[Ot.Msg.MIXLY_retard,"53"],[Ot.Msg.ROTATION_FORWARD,"54"],[Ot.Msg.ROTATION_BACKWARD,"55"],[Ot.Msg.MIXLY_Query_temperature,"56"],[Ot.Msg.MIXLY_Query_humidity,"57"],[Ot.Msg.MIXLY_Query_brightness,"58"],[Ot.Msg.MIXLY_Query_sound,"59"],[Ot.Msg.MIXLY_Query_time,"60"],[Ot.Msg.MIXLY_Query_distance,"61"],[Ot.Msg.MIXLY_Query_pressure,"62"],[Ot.Msg.MIXLY_Query_key,"63"],[Ot.Msg.MIXLY_Query_touch,"64"],[Ot.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(Ot.Msg.MIXLY_WHETHER+Ot.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},ER={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[Ot.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[Ot.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},OR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MP3_PLAY).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_WIND_SPEED,"154"],[Ot.Msg.MIXLY_HYETAL,"155"],[Ot.Msg.MIXLY_TEMPERATURE,"156"],[Ot.Msg.MIXLY_Humidity,"157"],[Ot.Msg.MIXLY_Altitude,"158"],[Ot.Msg.MIXLY_SOUND,"159"],[Ot.Msg.MIXLY_BRIGHTNESS,"160"],[Ot.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[Ot.Msg.MIXLY_SERVO,"162"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[Ot.Msg.MIXLY_BUTTON2,"164"],[Ot.Msg.MIXLY_ESP32_TOUCH,"165"],[Ot.Msg.MIXLY_PAY,"166"],[Ot.Msg.MIXLY_CARSH_CHANGE,"167"],[Ot.Msg.MIXLY_COUNTDOWN,"168"],[Ot.Msg.MIXLY_TIMING,"169"],[Ot.Msg.MIXLY_AT_THE_MOMENT,"170"],[Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[Ot.Msg.MIXLY_FORWARD,"172"],[Ot.Msg.MIXLY_BACKWARD,"173"],[Ot.Msg.MIXLY_TURNLEFT,"174"],[Ot.Msg.MIXLY_TURNRIGHT,"175"],[Ot.Msg.MIXLY_STOP,"176"],[Ot.Msg.MIXLY_Accelerate,"177"],[Ot.Msg.MIXLY_retard,"178"],[Ot.Msg.ROTATION_FORWARD,"179"],[Ot.Msg.ROTATION_BACKWARD,"180"],[Ot.Msg.TUPLE_JOIN,"181"],[Ot.Msg.MIXLY_SHOW,"182"],[Ot.Msg.MIXLY_LAMPLIGHT,"183"],[Ot.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(Ot.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_UNIT).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[Ot.Msg.MIXLY_YEAR,"117"],[Ot.Msg.MIXLY_MONTH,"118"],[Ot.Msg.MIXLY_DAY,"119"],[Ot.Msg.MIXLY_HOUR,"120"],[Ot.Msg.MIXLY_MINUTE,"121"],[Ot.Msg.MIXLY_SECOND,"122"],[Ot.Msg.MIXLY_WEEK2,"123"],[Ot.Msg.MIXLY_RMB_UNIT,"124"],[Ot.Msg.blockpy_setheading_degree,"125"],[Ot.Msg.MIXLY_GEAR,"126"],[Ot.Msg.MIXLY_LAYER,"127"],[Ot.Msg.MIXLY_GRAM,"128"],[Ot.Msg.MIXLY_METER,"129"],[Ot.Msg.MIXLY_CENTIMETER,"130"],[Ot.Msg.MIXLY_MILLIMETER,"131"],[Ot.Msg.MIXLY_LUMEN,"132"],[Ot.Msg.MIXLY_DECIBEL,"133"],[Ot.Msg.MIXLY_hectopascal,"134"],[Ot.Msg.MIXLY_PERCENT,"135"],[Ot.Msg.MIXLY_CELSIUS,"136"],[Ot.Msg.MIXLY_METER_PER_SEC,"137"],[Ot.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[Ot.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[Ot.Msg.MIXLY_SUCCESS,"140"],[Ot.Msg.MIXLY_FAILED,"141"],[Ot.Msg.MIXLY_WRONG,"142"],[Ot.Msg.MIXLY_GOOD,"143"],[Ot.Msg.MIXLY_blockpy_set_add,"144"],[Ot.Msg.MIXLY_DECREASE,"145"],[Ot.Msg.COLOUR_RGB_RED,"146"],[Ot.Msg.COLOUR_RGB_ORANGE,"147"],[Ot.Msg.COLOUR_YELLOW,"148"],[Ot.Msg.COLOUR_RGB_GREEN,"149"],[Ot.Msg.COLOUR_CYAN,"150"],[Ot.Msg.COLOUR_RGB_BLUE,"151"],[Ot.Msg.COLOUR_RGB_PURPLE,"152"],[Ot.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},RR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.LISTS_SET_INDEX_SET+Ot.Msg.MIXLY_SYSTEM+Ot.Msg.MIXLY_CMD).appendField(new Ot.FieldDropdown([[Ot.Msg.MILXY_ENTER_WAKE_UP,"1"],[Ot.Msg.MIXLY_INCREASE_VOLUME,"202"],[Ot.Msg.MIXLY_REDUCE_VOLUME,"203"],[Ot.Msg.MIXLY_MAX_VOLUME,"204"],[Ot.Msg.MIXLY_MINIMUM,"205"],[Ot.Msg.MIXLY_OPEN_RESPONSE,"206"],[Ot.Msg.MIXLY_CLOSE_RESPONSE,"207"],[Ot.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[Ot.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[Ot.Msg.MIXLY_ESP32_MAX30102_IR+","+Ot.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[Ot.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[Ot.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+Ot.Msg.HTML_COLOUR,"[2]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_IR_STRENGTH,"[1]"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.HTML_COLOUR+Ot.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET+"RGB"+Ot.Msg.HTML_COLOUR,"0"],[Ot.Msg.MIXLY_GET+Ot.Msg.MIXLY_RGB_RAW,"1"],[Ot.Msg.MIXLY_GET_ENV_LIGHT+Ot.Msg.MIXLY_BRIGHTNESS,"2"],[Ot.Msg.GET_IR_STRENGTH+Ot.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GET_ENV_LIGHT,"E"],[Ot.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},fR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},FR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MIXGOPE_FIELD+Ot.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[Ot.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_shake,"shake"],[Ot.Msg.MIXLY_UP,"up"],[Ot.Msg.MIXLY_DOWN,"down"],[Ot.Msg.MIXLY_LEFT,"left"],[Ot.Msg.MIXLY_RIGHT,"right"],[Ot.Msg.MIXLY_MICROBIT_face_up,"face up"],[Ot.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=Ot.Msg.MIXLY_MICROBIT_JS_CURRENT,n=Ot.Msg.MSG.catSensor,s=Ot.Msg.MIXLY_MICROBIT_JS_STATE,_=Ot.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:Ot.Msg.MIXLY_MICROBIT_shake,up:Ot.Msg.MIXLY_UP,down:Ot.Msg.MIXLY_DOWN,left:Ot.Msg.MIXLY_LEFT,right:Ot.Msg.MIXLY_RIGHT,"face up":Ot.Msg.MIXLY_MICROBIT_face_up,"face down":Ot.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},XR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},yR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET+Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Ot.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Ot.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Ot.Msg.MIXLY_MICROBIT_Direction,s=Ot.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Ot.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},bR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},VR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_GETTEMPERATUE)}},BR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return Ot.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:Ot.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:Ot.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},GR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},UR={init:function(){this.setColour(QO),this.appendValueInput("SPISUB").appendField(Ot.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Ot.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP+Ot.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Ot.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},wR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[Ot.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},HR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},WR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},KR={init:function(){this.setColour(QO),this.appendDummyInput().appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},JR={init:function(){this.setColour(QO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"0"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_JS_GET).appendField(new Ot.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},QR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jR={init:function(){this.setColour(QO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Ot.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},hF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},EF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},OF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},gF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},CF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},SF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},LF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},AF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},NF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},DF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},fF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},FF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},PF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},YF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},vF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},XF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},yF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},xF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},bF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},VF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},BF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},GF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},UF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},wF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},kF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},WF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},KF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},JF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},qF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},QF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},zF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},jF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},ZF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},$F=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},tP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},eP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},iP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},sP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_P=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},pP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},aP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},uP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},dP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},mP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},EP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},OP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},RP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},cP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},gP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},CP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},SP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},LP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},AP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},NP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},DP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},fP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},FP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},PP=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},YP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},lY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},dY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},IY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},TY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},MY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},hY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},mY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},EY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},OY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},RY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},cY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},gY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},CY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},SY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},LY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},AY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},NY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},DY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},fY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},FY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},PY=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},YY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},vY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},XY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},gV=function(){return"control.reset()\n"},CV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},SV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+")\n"},LV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},AV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},NV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},DV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},fV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},FV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},PV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},YV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},vV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},XV=function(){return"while True:\n pass\n"},yV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},xV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},bV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},VV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},BV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},GV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},UV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},wV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},kV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},HV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},WV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},KV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},JV=wV,qV=GV,QV=UV,zV=bV,jV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},$V=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},tB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},eB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},iB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},nB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},sB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},pB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},aB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},uB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},rB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},lB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},dB={};dB["MixGo MINI"]={description:"MicroPython[ESP32C3 MixGo MINI]",digital_pin:Rt.Profile.generate(["0-10","18"]),input_pin:Rt.Profile.generate(["0-10","18"]),output_pin:Rt.Profile.generate(["0-10","18"]),pwm_input:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-4"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-4"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-10","18"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-10","18"]),pwm:Rt.Profile.generate(["0-10","18"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-4"]),analog:Rt.Profile.generate(["0-4"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-11"]),exlcdv:Rt.Profile.generate(["0-7"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["ANGRY","onboard_matrix.ANGRY"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["DOOR_OPEN","onboard_matrix.DOOR_OPEN"],["DOOR_OPENING","onboard_matrix.DOOR_OPENING"],["DOOR_CLOSE","onboard_matrix.DOOR_CLOSE"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["BIRTHDAY","onboard_music.BIRTHDAY"],["BA_DING","onboard_music.BA_DING"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},dB["ESP32C2 Generic(2M)"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Rt.Profile.generate(["0-11","18-21"]),input_pin:Rt.Profile.generate(["0-11","18-21"]),output_pin:Rt.Profile.generate(["0-11","18-21"]),pwm_input:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Rt.Profile.generate(["1-13"]),haskylens_model:Rt.Profile.generate(["0-4"]),digital:Rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Rt.Profile.generate(["0-11","18-21"]),pwm:Rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Rt.Profile.generate(["0-5"]),analog:Rt.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Rt.Profile.generate(["0-4"]),exlcdh:Rt.Profile.generate(["0-31"]),exlcdv:Rt.Profile.generate(["0-11"]),brightness:Rt.Profile.generate(["0-9"]),tts_voice:Rt.Profile.generate(["0-16"]),tts_builtin_music:Rt.Profile.generate(["0-47"]),tts_bgmusic:Rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const IB=dB,TB=20,MB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_HIGH,"HIGH"],[Ot.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},hB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Ot.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},mB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},EB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},OB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_mSecond,"period"],[Ot.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},RB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_REF_VOLTAGE+Ot.Msg.MIXLY_STAT).appendField(new Ot.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},cB={init:function(){this.setColour(TB),this.appendValueInput("pin").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(Ot.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},gB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MODE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[Ot.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[Ot.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},CB={init:function(){this.setColour(20),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[Ot.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[Ot.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[Ot.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},SB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("dac#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+Ot.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},LB={init:function(){this.setColour(TB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP).appendField(new Ot.FieldTextInput("tc#"),"PIN_OBJ").appendField(Ot.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(Ot.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){Ot.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},AB={init:function(){this.setColour(TB),this.appendValueInput("PIN",Number).appendField("PWM"+Ot.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(Ot.Msg.MIXLY_FREQUENCY+Ot.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Ot.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},NB=CB,DB=LB,fB=cB,FB=gB,PB=40,YB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature"],[Ot.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:Ot.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},vB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput("").appendField(t).appendField(Ot.Msg.MIXLY_Altitude+Ot.Msg.MSG.catSensor+" HP203X").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_GETPRESSURE,"pressure()"],[Ot.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[Ot.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},yB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},xB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"+Ot.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},bB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},VB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField(Ot.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(Ot.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(Ot.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(Ot.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},BB={init:function(){if("mixgo_me"==Rt.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(PB),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_RFID_SCAN_OK,"True"],[Ot.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[Ot.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GB=100,UB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_GREEN+Ot.Msg.MIXLY_EXTERN_LED,"GLED[2]"],[Ot.Msg.MIXGO_LEFT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[1]"],[Ot.Msg.MIXGO_LEFT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[3]"],[Ot.Msg.MIXGO_RIGHT_BACK+Ot.Msg.COLOUR_RGB_RED+Ot.Msg.MIXLY_EXTERN_LED,"RLED[2]"],[Ot.Msg.ME_GO_LIGHT_HEADLIGHT,"WLED"]]),"op"),this.setOutput(!0)}},wB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_SETONOFF)}},kB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},HB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField("ME GO"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_ESP32_LED_GETONOFF)}},WB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField("ME GO"),this.appendValueInput("bright").appendField(Ot.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Ot.Msg.MIXLY_SETTING+Ot.Msg.MIXLY_BUILDIN_LED+Ot.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},KB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.blockpy_forward,"F"],[Ot.Msg.blockpy_backward,"B"],[Ot.Msg.blockpy_left,"L"],[Ot.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},JB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(new Ot.FieldDropdown([[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},qB={init:function(){this.setColour(GB),this.appendDummyInput().appendField("ME GO").appendField(Ot.Msg.MOTOR_DC).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLYCAR_WHEEL_LEFT,"0"],[Ot.Msg.MIXLYCAR_WHEEL_RIGHT,"1"],[Ot.Msg.ME_GO_MOTOR_EXTERN,"2"]]),"wheel"),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_Direction).appendField(new Ot.FieldDropdown([[Ot.Msg.ROTATION_FORWARD,"CW"],[Ot.Msg.ROTATION_BACKWARD,"CCW"],[Ot.Msg.MOTOR_P,"P"],[Ot.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(Ot.inputs.Align.RIGHT).appendField(Ot.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_ESP32_INTERRUPT).appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendValueInput("DO").appendField(Ot.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},zB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_SETUP),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["turns,distance","all"]]),"args"),this.appendValueInput("num").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},jB={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.ME_GO_HALL_SENSOR),this.appendDummyInput("").appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"A"],[Ot.Msg.TEXT_TRIM_RIGHT,"B"]]),"mode"),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("").appendField(new Ot.FieldDropdown([["turns","turns"],["distance","distance"],["speed","speed"]]),"args"),this.setOutput(!0),this.setInputsInline(!0)}},ZB={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},$B={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXGO_LEFT_FRONT,"[0]"],[Ot.Msg.MIXGO_RIGHT_FRONT,"[1]"],[Ot.Msg.MIXGO_LEFT_BACK,"[3]"],[Ot.Msg.MIXGO_RIGHT_BACK,"[2]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ESP32_NEAR}))}},tG={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new Ot.FieldDropdown([[Ot.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[Ot.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"],[Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY,"LS"],[Ot.Msg.ME_GO_SENSOR_MODE_OFF,"CL"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},eG={init:function(){this.setColour(GB),this.appendDummyInput("").appendField(Ot.Msg.MIXLY_GET_GESTURE).appendField(new Ot.FieldDropdown([[Ot.Msg.ME_GO_PITCH,"[0]"],[Ot.Msg.ME_GO_ROLL,"[1]"],[Ot.Msg.ME_GO_PITCH+", "+Ot.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},iG={init:function(){this.setColour(GB),this.appendDummyInput().appendField(Ot.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Ot.FieldDropdown([[Ot.Msg.TEXT_TRIM_LEFT,"[0]"],[Ot.Msg.MIXGO_LEFT_MID,"[1]"],[Ot.Msg.MIXGO_RIGHT_MID,"[2]"],[Ot.Msg.TEXT_TRIM_RIGHT,"[3]"],[Ot.Msg.MIXLY_ALL,""]]),"key").appendField(Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return Ot.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+Ot.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR}))}},nG=230,sG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},_G={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},lG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},IG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},TG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},cG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},AG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},NG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},fG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},FG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},YG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},vG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},XG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},yG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},xG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},bG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},VG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},BG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},GG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},UG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},wG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},kG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},HG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},WG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},KG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},JG={init:function(){this.setColour(nG),this.appendDummyInput("").appendField(new Ot.FieldDropdown(Rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},qG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},QG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},zG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},jG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},ZG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},$G=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},tU=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},eU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},iU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},nU=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},sU=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,Ot.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},_U=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},oU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mini_g2="import mini_g2",["mini_g2.ext_hp203x."+i,e.ORDER_ATOMIC]},pU=function(t,e){e.definitions_.import_mini_g2="import mini_g2";return["mini_g2.varistor()",e.ORDER_ATOMIC]},aU=function(t,e){if(e.definitions_.import_mini_g2="import mini_g2","mixgo_mini"==Rt.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var i='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";i='mini_g2.ext_rc522.read_card(0, x="id")'}return[i,e.ORDER_ATOMIC]},uU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},rU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},lU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},dU=function(t,e){var i=Rt.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]},IU=function(t,e){return e.definitions_.import_me_go_car="from me_go import car",["car."+this.getFieldValue("op"),e.ORDER_ATOMIC]},TU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setonoff("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},MU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getrightness("+i+")",e.ORDER_ATOMIC]},hU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car",["car.getonoff("+i+")",e.ORDER_ATOMIC]},mU=function(t,e){var i=e.valueToCode(this,"led",e.ORDER_ATOMIC);return e.definitions_.import_me_go_car="from me_go import car","car.setbrightness("+i+","+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},EU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'",'+e.valueToCode(this,"speed",e.ORDER_ASSIGNMENT)+")\n"},OU=function(t,e){var i=this.getFieldValue("VAR");return e.definitions_.import_me_go_car="from me_go import car",'car.move("'+i+'")\n'},RU=function(t,e){var i=this.getFieldValue("wheel");e.definitions_.import_me_go_car="from me_go import car";var n=this.getFieldValue("direction");return 0==i&&("CW"==n?n="CCW":"CCW"==n&&(n="CW")),"car.motor(car.MOTO["+i+'],"'+n+'",'+e.valueToCode(this,"speed",e.ORDER_ATOMIC)+")\n"},cU=function(t,e){var i=this.getFieldValue("mode");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,"hall_"+i+".irq_cb("+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+")\n"},gU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i;var s=e.valueToCode(this,"num",e.ORDER_ATOMIC);return"all"==n?"hall_"+i+".initial(turns="+s+",distance="+s+")\n":"hall_"+i+".initial("+n+"="+s+")\n"},CU=function(t,e){var i=this.getFieldValue("mode"),n=this.getFieldValue("args");return e.definitions_["import_me_go_hall_"+i]="from me_go import hall_"+i,["hall_"+i+"."+n,e.ORDER_ATOMIC]},SU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.patrol()"+i,e.ORDER_ATOMIC]},LU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.obstacle()"+i,e.ORDER_ATOMIC]},AU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car","car.ir_mode(car."+i+")\n"},NU=function(t,e){return e.definitions_.import_mixgo_me_onboard_mxc6655xa="from mixgo_me import onboard_mxc6655xa",["onboard_mxc6655xa.eulerangles(upright=True)"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},DU=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_go_hall="from me_go import car",["car.light()"+i,e.ORDER_ATOMIC]},fU=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},FU=fU,PU=fU,YU=fU,vU=fU,XU=fU,yU=fU,xU=fU,bU=fU,VU=fU,BU=fU,GU=fU,UU=fU,wU=fU,kU=fU,HU=fU,WU=fU,KU=fU,JU=fU,qU=fU,QU=fU,zU=fU,jU=fU,ZU=fU,$U=fU,tw=fU,ew=fU,iw=fU,nw=fU,sw=fU,_w=fU,ow=fU,pw=fU,aw=fU,uw=fU,rw=fU,lw=fU,dw=fU,Iw=fU,Tw=fU,Mw=fU,hw=fU,mw=fU,Ew=fU,Ow=fU;Object.assign(Ot.Variables,gt),Object.assign(Ot.Procedures,ss),Ot.Python=Pu,Ot.generator=Pu,Rt.Profile.default={},Object.assign(Rt.Profile,IB),Object.assign(Rt.Profile.default,IB["MixGo CC"]),Object.assign(Ot.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,H,k,X,B,W,f,w,U,G,F,D,N,x,y,b,P,Y,v,lt,dt,It,Tt),Object.assign(Ot.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,L,A,nt,ut,at,$,st,rt,q,pt,ot,_t,Q,J,K,et,tt,it,z,j,Z,Mt,ht,mt,Et)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/main.bundle.js.map b/boards/default/micropython_esp32c2/main.bundle.js.map deleted file mode 100644 index a1cccb4a..00000000 --- a/boards/default/micropython_esp32c2/main.bundle.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.bundle.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAwC;;AAExC;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjeiC;AACR;;AAEhC;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,iBAAiB,6CAAW,yBAAyB,6CAAW;AACpG;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD,6BAA6B,6CAAW;AACxC,4BAA4B,6CAAW;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,YAAY,6CAAW;AAC3D,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;;AAEP;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,yCAAyC,6CAAW;AACpH;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,yCAAyC,6CAAW;AACpH;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,2BAA2B,6CAAW;AAClE,iBAAiB,6CAAW,kBAAkB,6CAAW;AACzD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW,2BAA2B,6CAAW,8BAA8B,6CAAW;AACnH,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW,+BAA+B,6CAAW;AACtE;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW,kBAAkB,6CAAW,8BAA8B,6CAAW;AAC1G,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW,kBAAkB,6CAAW,8BAA8B,6CAAW;AAC1G,+BAA+B,6CAAW;AAC1C,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW,+BAA+B,6CAAW;AACtE;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW,kBAAkB,6CAAW,8BAA8B,6CAAW;AAC1G,+BAA+B,6CAAW;AAC1C,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW,+BAA+B,6CAAW;AACtE;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,eAAe,6CAAW,eAAe,6CAAW;AACxF,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,eAAe,6CAAW,eAAe,6CAAW;AACxF,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,8BAA8B,6CAAW;AAC7E;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9mCwC;AACT;;AAE/B;;AAEA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,iBAAiB,6CAAW,qBAAqB,6CAAW;AAC/F;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,iBAAiB,6CAAW,qBAAqB,6CAAW;AAC/F;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,yCAAM;AAC/B;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,yCAAM;AAC/B;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW,uBAAuB,6CAAW;AAClG;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW,uBAAuB,6CAAW;AAC9F;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,sBAAsB,6CAAW,oBAAoB,6CAAW;AACpG;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,sBAAsB,qDAAmB;AACzC,yBAAyB,6CAAW,sBAAsB,6CAAW,oBAAoB,6CAAW;AACpG;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,UAAU,6CAAW;AACzD;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,UAAU,6CAAW;AACxD;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,UAAU,6CAAW;AACzD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,UAAU,6CAAW;AACxD;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,UAAU,6CAAW;AACzD;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACzH;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW,kBAAkB,6CAAW,gBAAgB,6CAAW;AACvK;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW,kBAAkB,6CAAW;AACpH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACtF;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,gBAAgB,6CAAW,iBAAiB,6CAAW;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACzH;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW,eAAe,6CAAW,gBAAgB,6CAAW;AACpK;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW,eAAe,6CAAW;AACjH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACtF;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF;AACA,yBAAyB,6CAAW,cAAc,6CAAW,eAAe,6CAAW,gBAAgB,6CAAW,iBAAiB,6CAAW;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,oBAAoB,6CAAW;AACrG;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW,mBAAmB,6CAAW,4BAA4B,6CAAW,gBAAgB,6CAAW;AAC5J;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,4BAA4B,6CAAW;AACzG;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,iBAAiB,6CAAW;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACtF;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACtF;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,kBAAkB,6CAAW,wCAAwC,6CAAW;AACtJ;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,UAAU,6CAAW;AACvF;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AChwDwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;AAEO,qCAAqC;AAC5C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;;AAEO,oCAAoC;AAC3C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEwC;;AAExC,iCAAiC;;;AAG1B;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW,yCAAyC,6CAAW;;AAElH;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW;AAChE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,iBAAiB,6CAAW;AACxD,iBAAiB,6CAAW,kBAAkB,6CAAW;AACzD,iBAAiB,6CAAW,aAAa,6CAAW;AACpD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW;AAChE;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D,6BAA6B,uDAAqB,GAAG,6CAAW,yCAAyC,6CAAW;AACpH;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,yBAAyB,6CAAW;AAChE,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,qBAAqB,6CAAW;AACpE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,iCAAiC,6CAAW;;AAE5C,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,qBAAqB,6CAAW;AACpE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW;AACvE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E,iBAAiB,6CAAW,oCAAoC,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzuBwC;;AAExC;AACA;;;AAGA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA,yBAAyB,kEAAgC;AACzD;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA,yBAAyB,kEAAgC;AACzD;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,kEAAgC;AACzD;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,kEAAgC;AACzD;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;AC/WwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,qCAAqC,6CAAW;AAChD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFwC;;AAExC;;AAEA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW;AAC1F,iBAAiB,6CAAW,qBAAqB,6CAAW,oBAAoB,6CAAW;AAC3F,iBAAiB,6CAAW,mBAAmB,6CAAW,oBAAoB,6CAAW;AACzF,iBAAiB,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW;AAC1F,iBAAiB,6CAAW,oBAAoB,6CAAW,kBAAkB,6CAAW;AACxF,iBAAiB,6CAAW,qBAAqB,6CAAW,kBAAkB,6CAAW;AACzF,iBAAiB,6CAAW,mBAAmB,6CAAW,kBAAkB,6CAAW;AACvF,iBAAiB,6CAAW,oBAAoB,6CAAW,kBAAkB,6CAAW;AACxF,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,iBAAiB,6CAAW,qBAAqB,6CAAW;AAC/F;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,sBAAsB,6CAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,iBAAiB,6CAAW;AAChE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1YwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;;AAEA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW;AAChE;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,+BAA+B,6CAAW,wBAAwB,6CAAW;AACjH;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,qBAAqB,6CAAW;AACpE;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,qBAAqB,6CAAW;AACpE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,oBAAoB,6CAAW;AACnE;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW,gCAAgC,6CAAW;AAClH;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW,gCAAgC,6CAAW;AAClH;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,qCAAqC,6CAAW;AAChD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,qCAAqC,6CAAW;AAChD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,uBAAuB,6CAAW,qCAAqC,6CAAW;AAClF,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW,yBAAyB,6CAAW;AACpG,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;;AAEnD;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;;AAEA;;;AAGO;AACP;AACA;;AAEA;AACA,cAAc,6CAAW,gDAAgD,6CAAW,yDAAyD,6CAAW;AACxJ,mBAAmB,6CAAW,iDAAiD,6CAAW;AAC1F;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;;;AAIO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzpCiC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,sBAAsB,6CAAW,wBAAwB,6CAAW;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;;AAEO;AACP;AACA;AACA,2BAA2B,uDAAqB;AAChD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV,gCAAgC,6CAAW;AAC3C;AACA;AACA;;AAEA;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,KAAK;AACL;AACA;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD,mCAAmC,iDAAe;AAClD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW;AAC7E;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5mBwC;;AAExC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,SAAS;AACT,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,oCAAoC,6CAAW;AAC/G,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,oCAAoC,6CAAW;AAC/G,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,6CAAW,wCAAwC,6CAAW;AACtF;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,yCAAyC,6CAAW;AACpH,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,sBAAsB,6CAAW;AACjC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,SAAS;AACT,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,SAAS;AACT,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,oCAAoC,6CAAW;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW,eAAe,6CAAW,gBAAgB,6CAAW;AACxF;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,qBAAqB,6CAAW,uBAAuB,6CAAW,oCAAoC,6CAAW,4CAA4C,6CAAW;AACxO;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,kCAAkC,6CAAW;AAC7C,iCAAiC,6CAAW;AAC5C;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,gBAAgB,6CAAW,eAAe,6CAAW;AACxF;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,0BAA0B,6CAAW;AACrC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,iCAAiC,6CAAW;AAC5G;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,6BAA6B,qDAAmB;AAChD;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,yBAAyB,6CAAW;AACpG;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA,mBAAmB,6CAAW;AAC9B,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW,sBAAsB,6CAAW;AAChI;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,sBAAsB,6CAAW;AACpE;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvyDwC;;AAExC;;AAEA;AACA;;;;;;AAMO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,gBAAgB,6CAAW,eAAe,6CAAW;AACxF;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,0BAA0B,6CAAW;AACrC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,iCAAiC,6CAAW;AAC5G;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,6BAA6B,qDAAmB;AAChD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,yBAAyB,6CAAW;AACpG;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA,mBAAmB,6CAAW;AAC9B,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,sBAAsB,6CAAW;AACpE;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,mBAAmB,6CAAW,qBAAqB,6CAAW;AAC9H;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,+BAA+B,6CAAW;AAC9E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW,4BAA4B,6CAAW;AACrG;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,6BAA6B,qDAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA,mBAAmB,6CAAW;AAC9B,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA,mBAAmB,6CAAW,cAAc,6CAAW;AACvD,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA;AACA,iCAAiC,6CAAW,iCAAiC,6CAAW;AACxF;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClvDwC;AACA;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,yCAAM;AAC5B;AACA,4BAA4B,6CAAW;AACvC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,QAAQ;AAChC;AACA,4BAA4B,QAAQ;AACpC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,4BAA4B,6CAAW;AACvC,8BAA8B,6CAAW;AACzC,8BAA8B,6CAAW;AACzC,+BAA+B,6CAAW;AAC1C;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;AAQA;;;;AAIO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,OAAO;AAC/B;AACA,4BAA4B,OAAO;AACnC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,OAAO;AAC/B;AACA,4BAA4B,QAAQ;AACpC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,OAAO;AAC/B;AACA,4BAA4B,QAAQ;AACpC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;;AAEA;AACA;;;;AAIA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAAW,iCAAiC,6CAAW;AACxF;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAAW;AACvC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;;;AAIO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,OAAO;AAC/B;AACA,4BAA4B,OAAO;AACnC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW,oBAAoB,6CAAW;AACvD,aAAa,6CAAW,qBAAqB,6CAAW;AACxD,aAAa,6CAAW,qBAAqB,6CAAW;AACxD;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,QAAQ;AAChC;AACA,4BAA4B,QAAQ;AACpC,8CAA8C,qDAAmB;AACjE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACn7CwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B;AAC7B;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,0BAA0B,gDAAc;AACxC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B,+CAAa;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,wDAAsB;AACnD;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,wDAAsB;AACnD;AACA,gCAAgC;AAChC;AACA;AACA,4BAA4B,+CAAa;AACzC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB,CAAC,6CAAW;AAC/D;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7RwC;;AAExC,+BAA+B;;AAExB;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,uBAAuB,6CAAW;AAClG;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,2BAA2B,6CAAW;AAC1E,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtWiC;AACT;;AAE/B;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,oCAAoC,6CAAW;AAC/C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,6BAA6B,oDAAkB,CAAC,6CAAW;AAC3D,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,UAAU;AACV;AACA;AACA,+BAA+B,6CAAW;AAC1C,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B,gDAAc;AAC5C;AACA,4BAA4B,wDAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW;AACvE,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW,2BAA2B,6CAAW;AAC1E,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA,0BAA0B,yCAAY;AACtC;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;;AAEA;AACA;;AAEO;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/mBiC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,8BAA8B,6CAAW;AAC7E;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;;AAEnD;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;;AAEA;;;AAGO;AACP;AACA;;AAEA;AACA,cAAc,6CAAW,yDAAyD,6CAAW;AAC7F,mBAAmB,6CAAW,iDAAiD,6CAAW;AAC1F;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA,SAAS;AACT;AACA;;;;AAIO;AACP;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;;;AAGpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,KAAK;AACL;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,oBAAoB,6CAAW;AACnE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,KAAK;AACL;;AAEO;AACP;AACA;;AAEA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW;AACvE,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW;AACvE,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC3qBwC;AACT;;AAE/B;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,uCAAuC;AACvC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,uCAAuC;AACvC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,uCAAuC;AACvC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,uCAAuC;AACvC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACnFwC;AACT;;AAE/B;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;;AAEpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;;AAEpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;;AAEpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;;AAE7C;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAY;AAClC,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C,yBAAyB,6CAAW;;AAEpC;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrLwC;AACR;;AAEhC;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjVwC;AACS;;AAEjD,uBAAuB;;AAEhB;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,gBAAgB,6CAAW;AACxG;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,gBAAgB,6CAAW;AACxG;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,kCAAkC,6CAAW,mBAAmB,6CAAW,uBAAuB,6CAAW,uBAAuB,6CAAW,yBAAyB,6CAAW,sCAAsC,6CAAW,0CAA0C,6CAAW;AACzV;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,6BAA6B,6CAAW;AACxC,4BAA4B,6CAAW;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,kCAAkC,6CAAW,mBAAmB,6CAAW,uBAAuB,6CAAW,uBAAuB,6CAAW,yBAAyB,6CAAW,sCAAsC,6CAAW;AACpS;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,iDAAiD,6CAAW;AAC5H;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,4BAA4B,6CAAW;AACvC,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA;AACA,wBAAwB,6CAAW,oBAAoB,6CAAW;AAClE;AACA;;AAEO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,wBAAwB,6CAAW,oBAAoB,6CAAW;AAClE;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;;AAEA;;AAEO;AACP;AACA,qBAAqB,6CAAW,uCAAuC,6CAAW,2CAA2C,6CAAW;AACxI;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,qCAAqC,6CAAW;AAChD,8BAA8B,6CAAW;AACzC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,6CAA6C,6CAAW;AAC3F;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2BAA2B,6CAAW;AACtG,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA;AACA,gBAAgB,6CAAW;AAC3B;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAAW;AACpD,sCAAsC,6CAAW;AACjD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAAW;AACpD,+CAA+C,6CAAW;AAC1D;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAa;AACxC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACr2BiC;AACR;;AAEhC,qCAAqC;;;AAG9B;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,gBAAgB,6CAAW;AACxG;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,kCAAkC,6CAAW,mBAAmB,6CAAW,uBAAuB,6CAAW,uBAAuB,6CAAW,yBAAyB,6CAAW,sCAAsC,6CAAW,0CAA0C,6CAAW;AACzV;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,6BAA6B,6CAAW;AACxC,4BAA4B,6CAAW;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA,qBAAqB,6CAAW,uCAAuC,6CAAW;AAClF;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,qCAAqC,6CAAW;AAChD,8BAA8B,6CAAW;AACzC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2BAA2B,6CAAW;AACtG,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAAW;AACpD,sCAAsC,6CAAW;AACjD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6CAAW;AACpD,+CAA+C,6CAAW;AAC1D;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,mBAAmB,6CAAW,6BAA6B,6CAAW,gBAAgB,6CAAW;AAC7H,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,6BAA6B,EAAE,6CAAW;AAC7E;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,6BAA6B,EAAE,6CAAW;AAC7E;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW,gBAAgB,6CAAW;AACjG,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,iCAAiC,6CAAW;AACxE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,aAAa,6CAAW;AACpD,iBAAiB,6CAAW,aAAa,6CAAW;AACpD,iBAAiB,6CAAW,aAAa,6CAAW;AACpD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,mBAAmB,6CAAW;AAC1D,iBAAiB,6CAAW,aAAa,6CAAW;AACpD,iBAAiB,6CAAW,uBAAuB,6CAAW;AAC9D,iBAAiB,6CAAW,iBAAiB,6CAAW;AACxD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,qCAAqC,6CAAW;AAChD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,kCAAkC,6CAAW,mBAAmB,6CAAW,uBAAuB,6CAAW,uBAAuB,6CAAW,yBAAyB,6CAAW,sCAAsC,6CAAW;AACpS;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,iDAAiD,6CAAW;AAC5H;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,4BAA4B,6CAAW;AACvC,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW,iBAAiB,6CAAW,sBAAsB,6CAAW;AACrG,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW,iBAAiB,6CAAW,sBAAsB,6CAAW;AAC9G;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW,sBAAsB,6CAAW;AACjG;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW,gBAAgB,6CAAW;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,oBAAoB,6CAAW;AAC3D;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;;AAEA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,OAAO,6CAAW;AACtD,yBAAyB,6CAAW,0BAA0B,6CAAW;AACzE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW,yBAAyB,6CAAW;AAC3G;AACA,wBAAwB,6CAAW,wBAAwB,6CAAW,yBAAyB,6CAAW;AAC1G;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D,6BAA6B,uDAAqB,GAAG,6CAAW;AAChE,mBAAmB,6CAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,0BAA0B,6CAAW;AACzE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW,wBAAwB,6CAAW,yBAAyB,6CAAW;AAC3G;AACA,wBAAwB,6CAAW,wBAAwB,6CAAW,yBAAyB,6CAAW;AAC1G;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;;;AAGA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,mCAAmC,6CAAW;AAC9C;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,0BAA0B,6CAAW;AACrC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW,uCAAuC,6CAAW;AACvH,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW,eAAe,6CAAW;AAC/F,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,yBAAyB,6CAAW;AACpC,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,uCAAuC,6CAAW;AAC9E,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,uCAAuC,6CAAW;AAC9E,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,sBAAsB,6CAAW;AACrE,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW;AAC/F;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,gBAAgB,6CAAW;AAC/D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,cAAc,6CAAW;AAC7D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,6BAA6B,6CAAW;AAC5E;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzrEwC;AACR;AAKJ;;AAE5B,sCAAsC;;AAE/B;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,gBAAgB,6CAAW;AACxG;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,gBAAgB,6CAAW;AACxG;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2CAA2C,6CAAW,6CAA6C,6CAAW;AAC9K;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA;AACA,wBAAwB,6CAAW,oBAAoB,6CAAW;AAClE;AACA;;AAEO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,sBAAsB,gDAAc;AACpC,gCAAgC,6CAAW;AAC3C;AACA;AACA,wBAAwB,6CAAW,oBAAoB,6CAAW;AAClE;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;;AAEA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,mBAAmB,6CAAW,qBAAqB,6CAAW,qBAAqB,6CAAW;AAC9J;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW,6CAA6C,6CAAW;AAC3F;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,2BAA2B,6CAAW;AACtG,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW,4BAA4B,6CAAW;AACvH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW,sBAAsB,6CAAW;AACjH;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA,0BAA0B,6CAAW,UAAU,6CAAW,kBAAkB,6CAAW;AACvF;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;;;;;AAMO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,oBAAoB,6CAAW;AAC/B;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,sBAAsB,6CAAW;AAC7D;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,kCAAkC,6CAAW,mBAAmB,6CAAW,uBAAuB,6CAAW,uBAAuB,6CAAW,yBAAyB,6CAAW,sCAAsC,6CAAW;AACpS;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,6CAAW;AACjC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,iDAAiD,6CAAW;AAC5H;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,4BAA4B,6CAAW;AACvC,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,oBAAoB,6CAAW;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEA;AACA;;;;;AAKO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,oBAAoB,6CAAW;AAC/B;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEA,wBAAwB,6CAAW;AACnC;AACA;;;;;AAKO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,0BAA0B,6CAAW,0BAA0B,6CAAW;AACtG;AACA;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE;AACA;AACA;;AAEA;AACA;;;;AAIO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,oBAAoB,6CAAW;AAC/B;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,UAAU,6CAAW;AACzD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAY;AAC1B,8BAA8B,4EAA6B;AAC3D,2BAA2B,yEAA0B;;AAE5D;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,uBAAuB,6CAAW;AACtE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,qBAAqB,6CAAW,uBAAuB,6CAAW,gBAAgB,6CAAW;AACjI,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3sDwC;;AAExC,uBAAuB;;AAEhB;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW,4BAA4B,6CAAW;AAC3E;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW;AAC7E;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW;AAC7J;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,qCAAqC,6CAAW;AAChD,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,qCAAqC,6CAAW;AAChD,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW,uBAAuB,6CAAW;AACrE;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,8BAA8B,6CAAW,sBAAsB,6CAAW;AAC9G,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,yCAAyC,6CAAW;AACpH;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW,oBAAoB,6CAAW,sBAAsB,6CAAW,gBAAgB,6CAAW;AAC/H;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9XwC;;;AAGxC,wBAAwB;;AAEjB;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,sBAAsB,6CAAW,wBAAwB,6CAAW;AACpI;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,sBAAsB,6CAAW,wBAAwB,6CAAW;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW;AAC7E;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,sCAAsC,6CAAW;AACjH;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjPiC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,mBAAmB,6CAAW;AAC1D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,mBAAmB,6CAAW;AAC1D,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,4CAA4C,6CAAW;AAC3F;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,qBAAqB,6CAAW;AAC5D,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,kBAAkB,6CAAW;AACzD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,wCAAwC,6CAAW;AACvF;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,8CAA8C,6CAAW;AAC7F;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,gDAAgD,6CAAW;AAC/F;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,2CAA2C,6CAAW;AAC1F;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW,eAAe,6CAAW;AAC5F;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,kDAAkD,6CAAW;AACjG;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,gBAAgB,6CAAW;AACvD,iBAAiB,6CAAW,eAAe,6CAAW;AACtD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,kDAAkD,6CAAW;AACjG;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,kDAAkD,6CAAW;AACjG;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW,kDAAkD,6CAAW;AACjG;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/W4E;AACE;AACf;AACC;AACb;AACM;AACD;AACA;AACa;AACR;AACa;AACE;AACf;AACA;AACJ;AACJ;AACQ;AACD;AACJ;AACD;AACiB;AACE;AACf;AACA;AACA;AACE;;AAEuB;AACE;AACf;AACC;AACb;AACM;AACD;AACA;AACa;AACR;AACa;AACE;AACf;AACA;AACJ;AACJ;AACQ;AACD;AACJ;AACD;AACiB;AACE;AACf;AACA;AACA;AACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpD9D;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrNwB;;AAExB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,iDAAiD;AACjD,iDAAiD;AACjD,4BAA4B;AAC5B,iEAAiE;AACjE,iEAAiE;AACjE;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,iDAAiD;AACjD,iDAAiD;AACjD,4BAA4B;AAC5B,iEAAiE;AACjE,iEAAiE;AACjE;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5qB+B;;AAExB;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvtB+B;;AAExB;AACP;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1RA;AACA;AACO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,YAAY;AAC1C;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,qCAAqC;AACrC;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;;AAEA;AACA;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA,oCAAoC,UAAU,cAAc,UAAU;;AAEtE;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,iCAAiC,OAAO,aAAa,WAAW;AAChE,iBAAiB,IAAI;AACrB;AACA;;AAEA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;;AAEP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;;AAEA,8BAA8B,YAAY,IAAI,QAAQ,IAAI,KAAK;AAC/D;AACA;;AAEA;AACO;AACP;AACA;;AAEA,0CAA0C,eAAe,IAAI,gBAAgB;;AAE7E;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;AChOO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxB+B;;AAExB;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA,MAAM;AACN;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5SwC;AACT;;AAExB;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAY;AAC9B;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA;;AAEO;AACP;AACA,qEAAqE;AACrE,mGAAmG;AACnG;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,0BAA0B,QAAQ;AACtD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA,2EAA2E,mDAAiB;AAC5F;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACnlBwC;AAC+B;;AAEhE;AACP;AACA,+DAA+D,EAAE,UAAU;AAC3E;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,kEAAkE,mDAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAgB,OAAO,kDAAgB;AAC/C,QAAQ,kDAAgB;AACxB;AACA;AACA;AACA,gBAAgB,kDAAgB;AAChC;AACA;AACA,qEAAqE,mDAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO,wBAAwB,iFAAmB;;AAE3C;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA,oCAAoC,mDAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtHO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChf+B;;AAExB;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yDAAyD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACntB+B;;AAExB;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA,wBAAwB,OAAO;AAC/B,uCAAuC,EAAE,GAAG,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,6DAA6D;AACpE,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,iEAAiE;AACxE,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC96BO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,2CAA2C;AAC3C,oBAAoB;AACpB;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA,2CAA2C;AAC3C,oBAAoB;AACpB;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,kDAAkD;AAClD,mDAAmD;AACnD;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9FwC;;AAExC;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA,yFAAyF;AACzF;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,oGAAoG,mDAAiB;AACrH;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7JO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,8BAA8B;AAC9B,oBAAoB,qBAAqB;AACzC;AACA;AACA,gDAAgD,wBAAwB;AACxE,+CAA+C,wBAAwB;AACvE;AACA,oCAAoC;AACpC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3OwC;;AAEjC;AACP;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,QAAQ,mDAAiB;AACzB;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvTO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC5BO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClEO;AACP;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7B0C;;AAE1C;AACP;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAa;AACxC;AACP;AACO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpZwB;;AAExB;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,yCAAM;AAC5B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACljC+B;AACmB;;AAE3C;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEA;AACO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA,SAAS,IAAsC;AAC/C;AACA;AACA,KAAK,KAAK,aAGL;AACL;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2DAAY;;AAEjC;AACO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC75BO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7HgC;;AAEzB;AACP;AACA,wCAAwC,iBAAiB;AACzD;;AAEO;AACP;AACA;;AAEO;AACP,8EAA8E,0CAAO;AACrF;AACA;;AAEO;AACP,mGAAmG,0CAAO;AAC1G,iGAAiG,0CAAO;AACxG;AACA;;AAEO;AACP,mGAAmG,0CAAO;AAC1G,iGAAiG,0CAAO;AACxG;AACA,kEAAkE;AAClE;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;;AAEA;AACO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjMA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzKgC;;AAEhC;;AAEA;AACA;AACA,iBAAiB,0CAAO;AACxB,eAAe,0CAAO;AACtB,gBAAgB,0CAAO;AACvB,eAAe,0CAAO;AACtB,kBAAkB,0CAAO;AACzB,gBAAgB,0CAAO;AACvB,mBAAmB,0CAAO;AAC1B,oBAAoB,0CAAO;AAC3B,qBAAqB,0CAAO;AAC5B,aAAa,0CAAO;AACpB,aAAa,0CAAO;AACpB,SAAS,0CAAO;AAChB,gBAAgB,0CAAO;AACvB,YAAY,0CAAO;AACnB;AACA;AACA,UAAU,0CAAO;AACjB,YAAY,0CAAO;AACnB,YAAY,0CAAO;AACnB,gBAAgB,0CAAO;AACvB,eAAe,0CAAO;AACtB,uBAAuB,0CAAO;AAC9B,iBAAiB,0CAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,0CAAO;AACxB,eAAe,0CAAO;AACtB,gBAAgB,0CAAO;AACvB,eAAe,0CAAO;AACtB,kBAAkB,0CAAO;AACzB,gBAAgB,0CAAO;AACvB,mBAAmB,0CAAO;AAC1B,oBAAoB,0CAAO;AAC3B,qBAAqB,0CAAO;AAC5B,aAAa,0CAAO;AACpB,aAAa,0CAAO;AACpB,SAAS,0CAAO;AAChB,gBAAgB,0CAAO;AACvB,YAAY,0CAAO;AACnB;AACA;AACA,UAAU,0CAAO;AACjB,YAAY,0CAAO;AACnB,YAAY,0CAAO;AACnB,gBAAgB,0CAAO;AACvB,eAAe,0CAAO;AACtB,uBAAuB,0CAAO;AAC9B,iBAAiB,0CAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1FqB;;AAExC,qBAAqB,YAAY;;AAE1B;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,2BAA2B,6CAAW;AAC1E,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzQiC;;AAExC;;AAEA;AACO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW;AAC1F,iBAAiB,6CAAW,qBAAqB,6CAAW,oBAAoB,6CAAW;AAC3F,iBAAiB,6CAAW,mBAAmB,6CAAW,oBAAoB,6CAAW;AACzF,iBAAiB,6CAAW,oBAAoB,6CAAW,oBAAoB,6CAAW;AAC1F,iBAAiB,6CAAW,oBAAoB,6CAAW,kBAAkB,6CAAW;AACxF,iBAAiB,6CAAW,qBAAqB,6CAAW,kBAAkB,6CAAW;AACzF,iBAAiB,6CAAW,mBAAmB,6CAAW,kBAAkB,6CAAW;AACvF,iBAAiB,6CAAW,oBAAoB,6CAAW,kBAAkB,6CAAW;AACxF,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,iBAAiB,6CAAW,qBAAqB,6CAAW;AAC/F;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,wBAAwB,6CAAW;AACnG;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW,sBAAsB,6CAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC3TwC;AACT;;AAE/B;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAAW;AAC1C,qCAAqC,6CAAW;AAChD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,kCAAkC,6CAAW;AAC7C;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA,sBAAsB,yCAAM;AAC5B,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpJwC;AACR;;AAEhC;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB,CAAC,0CAAO;AAC1D;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChZ4D;AACI;AACG;AACJ;AACD;AACU;AACG;AACJ;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACR9B;;AAExC;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,sGAAsG,mDAAiB;AACvH;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA,oGAAoG,mDAAiB;AACrH;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5GO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB;AACzB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC9H+B;;AAExB;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvFO;AACP;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDiC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC,cAAc;AACd,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,KAAK;AACL;AACA;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,yBAAyB,6CAAW,yCAAyC,6CAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA,sDAAsD,OAAO;AAC7D;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,KAAK;AACL;AACA;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,qCAAqC;AACpD;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,2BAA2B,uDAAqB;AAChD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV,gCAAgC,6CAAW;AAC3C;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;AAGA;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;;;;AAIA;AACA,KAAK,6CAAW;AAChB,KAAK,6CAAW;AAChB;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,SAAS;AACT;AACA;AACA;;;;AAIO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACO;AACP;AACA;AACA,yBAAyB,6CAAW,gCAAgC,6CAAW;AAC/E;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB,GAAG,6CAAW,oDAAoD,6CAAW;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW;AAC7E;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACwC;;AAExC;;AAEO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD,6BAA6B,oDAAkB,CAAC,6CAAW;AAC3D;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;;AAEL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,UAAU;AACzB;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6CAAW;AACrD,UAAU;AACV,0CAA0C,6CAAW;AACrD,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B,gDAAc;AAC5C;AACA,4BAA4B,wDAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;;AAIO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;;AAEpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;;AAEpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,SAAS;;AAET,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,gDAAgD,qDAAmB;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,uBAAuB,uDAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;;AAEA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAkB,CAAC,6CAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;;AAEL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,UAAU;AACzB;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6CAAW,cAAc,6CAAW;AAC9E,UAAU;AACV,0CAA0C,6CAAW;AACrD,4BAA4B,qBAAqB;AACjD;AACA;AACA,8BAA8B,gDAAc;AAC5C;AACA,4BAA4B,wDAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACpwBwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA,yBAAyB,6CAAW;AACpC,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,6BAA6B,qDAAmB;AAChD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChLwC;;AAExC,uBAAuB;;AAEhB;AACP;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF;AACA,yBAAyB,6CAAW,0BAA0B,6CAAW;AACzE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,mBAAmB,6CAAW;AAClE;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA;AACA,gCAAgC,6CAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;;AAEA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAAW;AACrC,0BAA0B,6CAAW;;AAErC;AACA;AACA,SAAS;AACT;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,iCAAiC,6CAAW;AAChF;AACA,yBAAyB,6CAAW,yBAAyB,6CAAW;AACxE,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;;AAEpC;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,2BAA2B,6CAAW;AACtC,0BAA0B,6CAAW;AACrC,wBAAwB,6CAAW;AACnC,2BAA2B,6CAAW;;AAEtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,iBAAiB;AACjB;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACv0BwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAAW;AACjC,uBAAuB,6CAAW;AAClC,sBAAsB,6CAAW;AACjC,uBAAuB,6CAAW;AAClC,sBAAsB,6CAAW;AACjC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEO;;AAEP;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,sBAAsB,6CAAW;AACjC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvQwC;;AAExC,sBAAsB;;AAEtB,wDAAsB;AACtB;AACA,yDAAyD,GAAG;AAC5D,uDAAuD;AACvD,wBAAwB;AACxB;;AAEA,wDAAsB;AACtB;AACA;AACA;AACA,sDAAsD,GAAG;AACzD,oDAAoD;AACpD;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD,gBAAgB,wDAAsB;AACtC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAAW;AACjC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;;AAET;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAAW;AACjC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;;AAET;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC,0BAA0B,6CAAW;AACrC,wBAAwB,6CAAW;AACnC,4BAA4B,6CAAW;AACvC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC,0BAA0B,6CAAW;AACrC,wBAAwB,6CAAW;AACnC,4BAA4B,6CAAW;AACvC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,sBAAsB,6CAAW;AACjC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;;AAElC;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,sBAAsB,6CAAW;AACjC,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;;AAEA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,uBAAuB,6CAAW;AAClC,2BAA2B,6CAAW;AACtC;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,uBAAuB,6CAAW;AAClC,2BAA2B,6CAAW;AACtC;AACA;AACA,SAAS;AACT;AACA;;;AAGO;AACP;AACA,0BAA0B,6CAAW,yBAAyB,6CAAW;AACzE;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC;AACA,mBAAmB,6CAAW;AAC9B,SAAS;AACT;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB,MAAM,wDAAsB;AAC/E;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,cAAc,6CAAW,wBAAwB,6CAAW,4BAA4B,6CAAW,wBAAwB,6CAAW,kBAAkB,6CAAW;AACnK;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,qBAAqB,6CAAW;AAChC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,cAAc,6CAAW,wBAAwB,6CAAW;AAC5D;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;;AAEA;AACP;AACA;AACA;AACA,yBAAyB,6CAAW,kBAAkB,6CAAW;AACjE;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA,yBAAyB,6CAAW,iBAAiB,6CAAW;AAChE;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,oCAAoC,EAAE;AACtC;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,uCAAuC,EAAE;AACzC,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD,4CAA4C,EAAE;AAC9C,2CAA2C,EAAE;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpqBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACwC;AACM;;AAEvC;AACP;AACA;AACA,cAAc;AACd;AACA;AACA,uBAAuB,0DAAU;AACjC,4BAA4B,wDAAsB;AAClD,YAAY,0DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA,YAAY,6CAAW;AACvB,gCAAgC,6CAAW;AAC3C;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,SAAS;AACxB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,6CAAW;AACrC;AACA;AACA;AACA;AACA,QAAQ,gDAAc;AACtB;AACA;AACA,UAAU;AACV,YAAY,gDAAc;AAC1B;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA,gBAAgB,UAAU;AAC1B,cAAc;AACd;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E;AACA;AACA;AACA;AACA,+BAA+B,mDAAiB;AAChD;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAU;;AAElB;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,+CAAa;AAC9C;AACA,4BAA4B,+CAAa;AACzC;AACA;;AAEA;AACA,wBAAwB,4BAA4B;AACpD,+BAA+B,+CAAa;AAC5C;AACA,4BAA4B,+CAAa;AACzC;AACA,+BAA+B,+CAAa;AAC5C;AACA;AACA,2BAA2B,+CAAa;AACxC;;AAEA;AACA;AACA;;AAEA,6BAA6B,6CAAW;;AAExC;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA,QAAQ,0DAAU;AAClB;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAU;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,gBAAgB;AAChC,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,gCAAgC;AAChD,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAU;AACtB;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAU;AACtB;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,cAAc;AACd;AACA;AACA;AACA,qCAAqC,+CAAa;AAClD;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,sBAAsB,6CAAW;AACjC,0BAA0B,+CAAa;AACvC;AACA,wBAAwB,4BAA4B;AACpD,yBAAyB,+CAAa;AACtC;AACA;AACA;AACA,uBAAuB,+CAAa;AACpC;AACA;AACA,0BAA0B,qDAAmB;AAC7C;;AAEA;AACA;AACA,4BAA4B,oCAAoC;AAChE,kCAAkC;AAClC;AACA,iCAAiC,6CAAW;AAC5C;;AAEA,kCAAkC,mDAAiB;AACnD,kCAAkC,+CAAa;AAC/C;AACA;AACA;AACA,oBAAoB,qDAAmB;AACvC;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA,uBAAuB,0DAAU;AACjC,4BAA4B,wDAAsB;AAClD,YAAY,0DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC,yBAAyB,6CAAW;AACpC,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA,YAAY,6CAAW;AACvB,gCAAgC,6CAAW;AAC3C;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA,wBAAwB,6CAAW;AACnC;AACA,KAAK;AACL;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA,wBAAwB,wDAAsB;AAC9C,YAAY,0DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gBAAgB,QAAQ;AACxB,cAAc;AACd;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,cAAc;AACd;AACA;AACA,YAAY,+CAAa;AACzB;AACA;AACA,gBAAgB,6CAAW;AAC3B,gBAAgB,6CAAW;AAC3B;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,uBAAuB,0DAAU;AACjC;AACA,yDAAyD,+CAAa;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,2BAA2B,mDAAiB;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA,kBAAkB;AAClB,oBAAoB,gDAAc;AAClC;AACA,cAAc;AACd;AACA,4BAA4B,oDAAkB;AAC9C;AACA,8BAA8B,gDAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAAW;AAClD;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,UAAU;AAC1B,cAAc;AACd;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA,wBAAwB,4BAA4B;AACpD,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,gBAAgB;AAChC,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,gCAAgC;AAChD,cAAc;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gDAAc;AACxC;AACA;AACA;AACA;AACA;AACA,sBAAsB,0DAAU;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAAa;AACvC,4BAA4B,+CAAa;AACzC;AACA;AACA,+BAA+B,qDAAmB;AAClD,+BAA+B,qDAAmB;AAClD;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA,+BAA+B,0DAAU;AACzC;AACA;AACA,kCAAkC,+CAAa;AAC/C;AACA;AACA,gBAAgB,6CAAW;AAC3B,gBAAgB,gDAAc;AAC9B,cAAc;AACd;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,uBAAuB,gDAAc;AAC/C;AACA;AACA;AACA;AACA,sBAAsB,0DAAU;AAChC;AACA,gBAAgB,gDAAc;AAC9B;AACA,gBAAgB,gDAAc;AAC9B;AACA,UAAU,uBAAuB,gDAAc;AAC/C;AACA,sBAAsB,0DAAU;AAChC;AACA;AACA,+BAA+B,gDAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,QAAQ;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB;AACvB,sBAAsB,6CAAW;AACjC;AACA;AACA;AACA,sBAAsB,0DAAU;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,KAAK;AACL;AACA;AACA,gBAAgB,UAAU;AAC1B,cAAc;AACd;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,cAAc;AACd;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA,cAAc;AACd;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,gCAAgC,6CAAW;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,KAAK;AACL;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA,cAAc;AACd;AACA;AACA;AACA,iCAAiC,6CAAW;AAC5C;AACA;AACA;AACA,UAAU;AACV,gCAAgC,6CAAW;AAC3C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrpCwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;;AAEnD;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;;AAEP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC;AACA;AACA;AACA;;AAEO;AACP;;;AAGA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,gCAAgC,6CAAW;AAC3C,8BAA8B,6CAAW;AACzC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;AAElD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6CAAW;AACrC,uCAAuC,6CAAW;AAClD,qCAAqC,6CAAW;AAChD;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,cAAc,6CAAW,iCAAiC,6CAAW;AACrE;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,2BAA2B,6CAAW;;AAEtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6CAAW;AACvC,8BAA8B,6CAAW;;AAEzC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEO;AACP;AACA;AACA;AACA,2BAA2B;AAC3B,6BAA6B,wDAAsB;AACnD,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7ZwC;;AAExC,uBAAuB;;AAEhB;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC,sBAAsB,6CAAW;AACjC,sBAAsB,6CAAW;AACjC;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC,sBAAsB,6CAAW;AACjC,sBAAsB,6CAAW;AACjC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,qBAAqB,6CAAW;AAChC,qBAAqB,6CAAW;AAChC,sBAAsB,6CAAW;AACjC,sBAAsB,6CAAW;AACjC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,iCAAiC,6CAAW,8BAA8B,6CAAW;AACxH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB,GAAG,6CAAW,0CAA0C,6CAAW,mDAAmD,6CAAW;AACnL;AACA,0CAA0C;AAC1C,uCAAuC;AACvC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,0CAA0C;AAC1C,uCAAuC;AACvC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,wBAAwB,6CAAW;AACnC,4BAA4B,6CAAW;AACvC,6BAA6B,6CAAW;AACxC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA,6CAAW;AACJ;AACP;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW,2CAA2C,6CAAW;AACzF;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yCAAyC;AACzC,sCAAsC;AACtC;AACA;AACA;AACA,wBAAwB,6CAAW,+CAA+C,6CAAW;AAC7F,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,2BAA2B,6CAAW;AACtC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,yCAAyC;AACzC,sCAAsC;AACtC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,wBAAwB,6CAAW;AACnC;AACA,0BAA0B,6CAAW;AACrC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,eAAe,6CAAW;AAC9D,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9fwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,UAAU;AACV,uCAAuC;AACvC;AACA,mBAAmB,oDAAkB;AACrC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,eAAe,SAAS;AACxB,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA,uCAAuC;AACvC,UAAU;AACV,uCAAuC;AACvC;AACA,mBAAmB,oDAAkB;AACrC;AACA;;AAEA,wDAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB,KAAK,wDAAsB;AAC9E;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,mBAAmB,oDAAkB;AACrC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;AAIO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW,6BAA6B,6CAAW;AAChE;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,QAAQ,6CAAW,mEAAmE,6CAAW;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA,kEAAkE,6CAAW,8CAA8C,6CAAW;AACtI;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8BAA8B,6CAAW;AACzC,4BAA4B,6CAAW;AACvC,0BAA0B,6CAAW;AACrC;AACA,mBAAmB,6CAAW,+BAA+B,6CAAW,qDAAqD,6CAAW;AACxI,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,4CAA4C,qDAAmB;AAC/D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2DAA2D,6CAAW,8DAA8D,6CAAW;AAC/I,oBAAoB,uDAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,6CAAW;AACnB;AACA;;;AAGO;AACP;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,6BAA6B,6CAAW;AAC5E;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW,+BAA+B,6CAAW,8BAA8B,6CAAW,oCAAoC,6CAAW;AACrK;AACA;;;AAGO;AACP;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,iDAAiD,qDAAmB;AACpE;AACA,iDAAiD,qDAAmB;AACpE;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAAW;AAC3B;AACA,iCAAiC,6CAAW;AAC5C;AACA,UAAU;AACV;AACA;AACA,uBAAuB,uDAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,6BAA6B,6CAAW;AAC5E;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC,8BAA8B,6CAAW;AACzC,yBAAyB,6CAAW;AACpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW,aAAa,6CAAW;AAC5D;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA,cAAc,6CAAW,4BAA4B,6CAAW,6BAA6B,6CAAW;AACxG;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,0BAA0B,6CAAW;AACrC,0BAA0B,6CAAW;AACrC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACA;AACA;;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA;AACA;;;;AAIO;AACP;AACA;AACA;AACA,cAAc,6CAAW,gCAAgC,6CAAW;AACpE;AACA;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA,6BAA6B,uDAAqB;AAClD,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;;AAEnC;AACA;;;AAGO;AACP;;AAEA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACv8BwC;;AAExC,uBAAuB;;AAEhB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,WAAW;AACX,sCAAsC;AACtC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,WAAW;AACX,sCAAsC;AACtC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;;AAEpC,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA,cAAc,6CAAW,6BAA6B,6CAAW,6BAA6B,6CAAW;AACzG;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;;;AAGlD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,uBAAuB,6CAAW;AAClC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;;AAEpC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,uBAAuB,6CAAW;AAClC,2BAA2B,6CAAW;AACtC,0BAA0B,6CAAW;AACrC,wBAAwB,6CAAW;AACnC,2BAA2B,6CAAW;;AAEtC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA;AACA,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB,aAAa,6CAAW;AACxB;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,iDAAiD,qDAAmB;AACpE;AACA,iDAAiD,qDAAmB;AACpE;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAAW;AAC3B;AACA,iCAAiC,6CAAW;AAC5C;AACA,UAAU;AACV;AACA;AACA,uBAAuB,uDAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,+CAAa;AACzB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF;AACA,yBAAyB,6CAAW,0BAA0B,6CAAW;AACzE;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW,uCAAuC,6CAAW;AACtF,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA,wBAAwB,6CAAW;AACnC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5tBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACwC;;AAExC;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAkB;AAC/C;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6DAA2B;AACxD;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,6BAA6B,+CAAa;AAC1C;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,4BAA4B,+CAAa;AACzC;AACA,KAAK;AACL;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,oBAAoB;AACnC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,6BAA6B,+CAAa;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gDAAc;AACpC;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5bwC;AACJ;;AAEpC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,YAAY,qDAAK;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN;AACO;AACP;AACA;AACA;AACA,6BAA6B,wDAAsB;AACnD,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,YAAY,qDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA,6BAA6B,uDAAqB;AAClD;AACA;AACA;;AAEA;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;;;AAGO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,uBAAuB,6CAAW;AAClC,wBAAwB,6CAAW;AACnC,yBAAyB,6CAAW;AACpC,wBAAwB,6CAAW;AACnC,uBAAuB,6CAAW;AAClC,yBAAyB,6CAAW;AACpC,yBAAyB,6CAAW;AACpC,4BAA4B,6CAAW;AACvC;AACA;AACA,SAAS;AACT;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC,wBAAwB,6CAAW;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6CAAW;AACxC,UAAU;AACV,4BAA4B,qBAAqB;AACjD;AACA;AACA,sCAAsC,6CAAW;AACjD;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC;AACA;AACA,wBAAwB,6CAAW;AACnC;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,yBAAyB,6CAAW;AACpC,6BAA6B,uDAAqB;AAClD,iBAAiB,6CAAW;AAC5B,iBAAiB,6CAAW;AAC5B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChV4D;AACJ;AACN;AACA;AACE;AACA;AACA;AACI;AACM;AACV;AACJ;AACE;AACM;;AAEY;AACJ;AACN;AACA;AACE;AACA;AACA;AACI;AACM;AACV;AACJ;AACE;AACM;;AAE7B;AACU;AACF;AACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/BJ;AACT;;AAExB;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA,+DAA+D,EAAE,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACO;AACP,kEAAkE,mDAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAgB,OAAO,kDAAgB;AAC/C,QAAQ,kDAAgB;AACxB;AACA;AACA;AACA,oBAAoB,kDAAgB;AACpC;AACA;AACA,yEAAyE,mDAAiB;AAC1F;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,yEAAyE,mDAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,gCAAgC;AAChC;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACO;AACP,yBAAyB;AACzB;;AAEO;AACP,2BAA2B;AAC3B;;;AAGO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,QAAQ,oDAAkB;AAC1B;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;AAGO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACO;;AAEA;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACwC;AACT;;AAExB;AACP;AACA;AACA;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,kCAAkC,wBAAwB;AAC1D,+CAA+C,wBAAwB;AACvE;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,kBAAkB,yCAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA,qBAAqB,yBAAyB;AAC9C;;AAEA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrOO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,qCAAqC;AACrC;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEwC;;AAEjC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACP;AACA;AACA;AACA;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC7QO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,mCAAmC;AACnC,qCAAqC;AACrC,wCAAwC;AACxC,sCAAsC;AACtC,oCAAoC;AACpC,yCAAyC;AACzC,sCAAsC;AACtC;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACP;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;;AAEA;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC,qDAAqD,EAAE;AACvD;AACA;AACA;AACA,oCAAoC,iBAAiB,WAAW,GAAG;AACnE;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACnUwC;;AAEjC;AACP;AACA;AACA,QAAQ,oDAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD,wEAAwE,mDAAiB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,QAAQ,oDAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD,wEAAwE,mDAAiB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,QAAQ,oDAAkB;AAC1B;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,QAAQ,oDAAkB;AAC1B;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GwC;;AAEjC;AACP;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F,8BAA8B,wBAAwB;AACtD,gCAAgC;AAChC;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,iBAAiB,aAAa;AAC9B;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9FO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,wDAAwD;AAC/D;AACA;AACA;AACA;AACA;;AAEO,iEAAiE;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9KwC;;AAEjC;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kDAAgB;AACjC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACA;AACA;;AAEA;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpPwC;;AAEjC;AACP;AACA;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA;AACA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,QAAQ,mDAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kDAAgB;AACjC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;;AAGA,oBAAoB,qBAAqB;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACzSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA,cAAc;AACd;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC7EwC;;AAEjC;AACP;AACA;AACA,QAAQ,mDAAiB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0FAA0F;AAC1F;AACA,6FAA6F;AAC7F;AACA,6FAA6F;AAC7F;AACA,2GAA2G;;AAE3G;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,mDAAiB;AAC5F;AACA;;AAEO;AACP;AACA;AACA;AACA,+BAA+B;AAC/B,WAAW;AACX;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,KAAK,GAAG,QAAQ;AACpC;AACA;;;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACoC;;AAEpC;AACA;AACA,WAAW,QAAQ;AACnB;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,oBAAoB,kDAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,kDAAS;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kDAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,KAAK;;;;;;;;;;;;;;;;AC/LpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACwC;;AAExC;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iEAA+B;;AAEtD;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY,0BAA0B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,WAAW,gBAAgB;AAC3B;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,WAAW,gBAAgB;AAC3B;AACA,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA,gBAAgB,+CAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA,QAAQ,gDAAc;AACtB;AACA;AACA;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA,8BAA8B,+CAAa;AAC3C,YAAY,6CAAW;AACvB;AACA;AACA;AACA,QAAQ,gDAAc;AACtB;AACA;AACA;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA,8BAA8B,+CAAa;AAC3C,YAAY,6CAAW;AACvB;AACA;AACA;AACA,QAAQ,gDAAc;AACtB;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA;AACA,QAAQ,gDAAc;AACtB;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA;AACA,2BAA2B,+CAAa;AACxC;AACA;AACA,4BAA4B,iBAAiB;AAC7C,0BAA0B,+CAAa;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,4BAA4B,+CAAa;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA,0BAA0B,gDAAc;AACxC;AACA;AACA;AACA,oBAAoB,oDAAkB;AACtC,4BAA4B,uBAAuB;AACnD;AACA,8CAA8C,+CAAa;AAC3D;AACA;AACA;AACA;AACA,8CAA8C,+CAAa;AAC3D;AACA;AACA;AACA;AACA,YAAY,gDAAc;AAC1B,YAAY,gDAAc;AAC1B,qBAAqB,gDAAc,KAAK,gDAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gDAAc;AAC1B;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA,yBAAyB,+CAAa;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA,iEAAe,UAAU;;;;;;;;;;;;;;;;ACtUzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEwC;;AAExC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mCAAmC;AAC9C,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B;AACA;AACA,IAAI,gDAAc;AAClB;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA,IAAI,gDAAc;AAClB;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,YAAY,mBAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,gBAAgB,+CAAa;AAC7B;AACA;;AAEA,QAAQ,gDAAc;AACtB;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,QAAQ,gDAAc;AACtB;AACA,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA,QAAQ,gDAAc;AACtB,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA,QAAQ,gDAAc;AACtB,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA,QAAQ,gDAAc;AACtB,oBAAoB,+CAAa;AACjC;AACA;AACA,uBAAuB,+CAAa;AACpC;AACA;AACA,wBAAwB,OAAO;AAC/B,sBAAsB,+CAAa;AACnC,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gDAAc;AACtB,oBAAoB,+CAAa;AACjC;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA,YAAY,gDAAc;AAC1B,wBAAwB,+CAAa;AACrC;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA,uBAAuB,+CAAa;AACpC;AACA;AACA;AACA;AACA,YAAY,gDAAc;AAC1B,wBAAwB,+CAAa;AACrC;AACA,gBAAgB,gDAAc;AAC9B;AACA;AACA,wBAAwB,+CAAa;AACrC;AACA,uBAAuB,+CAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,iEAAe,SAAS;;;;;;;;;;;;;;;;;ACvPxB;AACA;AACA;AACwC;AACL;;AAEnC;AACA;AACA,UAAU;AACV;AACO,mBAAmB,mDAAiB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC;AACA,qCAAqC;AACrC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,8BAA8B;AAC9B,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;;AAEpC;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,qDAAK;AACtC,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+CAAa;AACnC;AACA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD,2CAA2C,qDAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,kDAAgB;AACxB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxUA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;ACNwC;AACR;;AAgCT;;AAyCK;;AAYhB;;AAE6B;;AAEzC,cAAc,mDAAiB,EAAE,oDAAS;AAC1C,cAAc,oDAAkB,EAAE,qDAAU;AAC5C,gDAAc,GAAG,iDAAM;AACvB,mDAAiB,GAAG,iDAAM;;AAE1B,0CAAO;AACP,cAAc,0CAAO,EAAE,qDAAsB;AAC7C,cAAc,0CAAO,UAAU,qDAAsB;;AAErD;AACA,IAAI,gDAAc;AAClB,IAAI,gEAAqB;AACzB,IAAI,8DAAmB;AACvB,IAAI,2DAAgB;AACpB,IAAI,2DAAgB;AACpB,IAAI,4DAAiB;AACrB,IAAI,4DAAiB;AACrB,IAAI,4DAAiB;AACrB,IAAI,8DAAmB;AACvB,IAAI,iEAAsB;AAC1B,IAAI,4DAAiB;AACrB,IAAI,0DAAe;AACnB,IAAI,2DAAgB;AACpB,IAAI,8DAAmB;AACvB,IAAI,sEAAsB;AAC1B,IAAI,uEAAuB;AAC3B,IAAI,uEAAuB;AAC3B,IAAI,4EAA4B;AAChC,IAAI,oEAAoB;AACxB,IAAI,wEAAwB;AAC5B,IAAI,yEAAyB;AAC7B,IAAI,8EAA8B;AAClC,IAAI,6EAA6B;AACjC,IAAI,wEAAwB;AAC5B,IAAI,mEAAmB;AACvB,IAAI,gFAAgC;AACpC,IAAI,+EAA+B;AACnC,IAAI,+EAA+B;AACnC,IAAI,8EAA8B;AAClC,IAAI,wEAAwB;AAC5B,IAAI,sEAAsB;AAC1B,IAAI,qEAAqB;AACzB,IAAI,qEAAqB;AACzB,IAAI,4DAA6B;AACjC,IAAI,6DAA8B;AAClC,IAAI,2DAA4B;AAChC,IAAI,2DAA4B;AAChC;;AAEA;AACA,IAAI,gDAAc;AAClB,IAAI,oEAAyB;AAC7B,IAAI,kEAAuB;AAC3B,IAAI,+DAAoB;AACxB,IAAI,+DAAoB;AACxB,IAAI,gEAAqB;AACzB,IAAI,gEAAqB;AACzB,IAAI,gEAAqB;AACzB,IAAI,kEAAuB;AAC3B,IAAI,qEAA0B;AAC9B,IAAI,gEAAqB;AACzB,IAAI,8DAAmB;AACvB,IAAI,+DAAoB;AACxB,IAAI,kEAAuB;AAC3B,IAAI,0EAA0B;AAC9B,IAAI,2EAA2B;AAC/B,IAAI,2EAA2B;AAC/B,IAAI,gFAAgC;AACpC,IAAI,wEAAwB;AAC5B,IAAI,4EAA4B;AAChC,IAAI,6EAA6B;AACjC,IAAI,kFAAkC;AACtC,IAAI,iFAAiC;AACrC,IAAI,4EAA4B;AAChC,IAAI,uEAAuB;AAC3B,IAAI,oFAAoC;AACxC,IAAI,mFAAmC;AACvC,IAAI,mFAAmC;AACvC,IAAI,kFAAkC;AACtC,IAAI,4EAA4B;AAChC,IAAI,0EAA0B;AAC9B,IAAI,yEAAyB;AAC7B,IAAI,yEAAyB;AAC7B,IAAI,gEAAiC;AACrC,IAAI,iEAAkC;AACtC,IAAI,+DAAgC;AACpC,IAAI,+DAAgC;AACpC,E","sources":["webpack://@mixly/micropython-esp32c2/../micropython/blocks/actuator.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/actuator_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/actuator_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/ai.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/ai_sensor.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/blynk.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/cc_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/ce_go.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/communicate.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/control.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/display.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/display_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/display_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/factory.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/inout.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/iot.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/network.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/nova_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/pe_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/pins.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/sensor.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/sensor_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/sensor_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/serial.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/system.js","webpack://@mixly/micropython-esp32c2/../micropython/blocks/weather.js","webpack://@mixly/micropython-esp32c2/../micropython/export.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/actuator.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/actuator_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/actuator_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/ai.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/ai_sensor.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/blynk.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/cc_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/ce_go.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/communicate.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/control.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/display.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/display_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/display_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/factory.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/inout.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/iot.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/network.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/nova_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/pe_g1.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/pins.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/sensor.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/sensor_extern.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/sensor_onboard.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/serial.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/system.js","webpack://@mixly/micropython-esp32c2/../micropython/generators/weather.js","webpack://@mixly/micropython-esp32c2/./blocks/esp32_profile.js","webpack://@mixly/micropython-esp32c2/./blocks/inout.js","webpack://@mixly/micropython-esp32c2/./blocks/me_go.js","webpack://@mixly/micropython-esp32c2/./blocks/mini_g2.js","webpack://@mixly/micropython-esp32c2/./blocks/pins.js","webpack://@mixly/micropython-esp32c2/./export.js","webpack://@mixly/micropython-esp32c2/./generators/inout.js","webpack://@mixly/micropython-esp32c2/./generators/me_go.js","webpack://@mixly/micropython-esp32c2/./generators/mini_g2.js","webpack://@mixly/micropython-esp32c2/./generators/pins.js","webpack://@mixly/micropython-esp32c2/../python/blocks/control.js","webpack://@mixly/micropython-esp32c2/../python/blocks/dicts.js","webpack://@mixly/micropython-esp32c2/../python/blocks/html.js","webpack://@mixly/micropython-esp32c2/../python/blocks/lists.js","webpack://@mixly/micropython-esp32c2/../python/blocks/logic.js","webpack://@mixly/micropython-esp32c2/../python/blocks/math.js","webpack://@mixly/micropython-esp32c2/../python/blocks/procedures.js","webpack://@mixly/micropython-esp32c2/../python/blocks/set.js","webpack://@mixly/micropython-esp32c2/../python/blocks/storage.js","webpack://@mixly/micropython-esp32c2/../python/blocks/text.js","webpack://@mixly/micropython-esp32c2/../python/blocks/tuple.js","webpack://@mixly/micropython-esp32c2/../python/blocks/utility.js","webpack://@mixly/micropython-esp32c2/../python/blocks/variables.js","webpack://@mixly/micropython-esp32c2/../python/export.js","webpack://@mixly/micropython-esp32c2/../python/generators/control.js","webpack://@mixly/micropython-esp32c2/../python/generators/dicts.js","webpack://@mixly/micropython-esp32c2/../python/generators/html.js","webpack://@mixly/micropython-esp32c2/../python/generators/lists.js","webpack://@mixly/micropython-esp32c2/../python/generators/logic.js","webpack://@mixly/micropython-esp32c2/../python/generators/math.js","webpack://@mixly/micropython-esp32c2/../python/generators/procedures.js","webpack://@mixly/micropython-esp32c2/../python/generators/set.js","webpack://@mixly/micropython-esp32c2/../python/generators/storage.js","webpack://@mixly/micropython-esp32c2/../python/generators/text.js","webpack://@mixly/micropython-esp32c2/../python/generators/tuple.js","webpack://@mixly/micropython-esp32c2/../python/generators/utility.js","webpack://@mixly/micropython-esp32c2/../python/generators/variables.js","webpack://@mixly/micropython-esp32c2/../python/others/names.js","webpack://@mixly/micropython-esp32c2/../python/others/procedures.js","webpack://@mixly/micropython-esp32c2/../python/others/variables.js","webpack://@mixly/micropython-esp32c2/../python/python_generator.js","webpack://@mixly/micropython-esp32c2/./css/color_esp32c3_mixgocc.css?61f0","webpack://@mixly/micropython-esp32c2/external var \"Blockly\"","webpack://@mixly/micropython-esp32c2/external var \"Mixly\"","webpack://@mixly/micropython-esp32c2/webpack/bootstrap","webpack://@mixly/micropython-esp32c2/webpack/runtime/compat get default export","webpack://@mixly/micropython-esp32c2/webpack/runtime/define property getters","webpack://@mixly/micropython-esp32c2/webpack/runtime/hasOwnProperty shorthand","webpack://@mixly/micropython-esp32c2/webpack/runtime/make namespace object","webpack://@mixly/micropython-esp32c2/./index.js"],"sourcesContent":["import * as Blockly from 'blockly/core';\n\nconst ACTUATOR_HUE = 100;\n\n//Servo\nexport const servo_move = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput(\"DEGREE\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DEGREE_0_180);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_MOVE);\n }\n};\n\n//LED\nexport const number = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [\"1\", \"1\"],\n [\"2\", \"2\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const ledswitch = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_ON, \"1\"],\n [Blockly.Msg.MIXLY_ESP32_OFF, \"0\"],\n [Blockly.Msg.MIXLY_ESP32_TOGGLE, \"-1\"]\n ]), \"flag\");\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const actuator_extern_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF);\n }\n};\n\nexport const actuator_extern_get_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF);\n }\n};\n\nexport const actuator_extern_led_brightness = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT);\n }\n};\n\nexport const actuator_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const actuator_get_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const actuator_led_brightness = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETBRIGHT);\n }\n};\n\n//music\nexport const esp32_music_pitch = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_TONE)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);\n }\n};\n\nexport const esp32_music_pitch_with_time = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_TONE)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2);\n }\n};\n\nexport const esp32_music_stop = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_NOTONE)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const esp32_music_set_tempo = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput('TICKS')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SET_TEMPO)\n .appendField(Blockly.Msg.MICROBIT_ACTUATOR_ticks);\n this.appendValueInput('BPM')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO);\n }\n}\n\nexport const esp32_music_get_tempo = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Get_current_tempo)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO);\n }\n}\n\nexport const esp32_music_reset = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_music)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_RESET);\n }\n}\n\nexport const esp32_onboard_music_pitch = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);\n }\n};\n\nexport const esp32_onboard_music_pitch_with_time = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2);\n }\n};\n\nexport const esp32_onboard_music_stop = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_NOTONE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const esp32_onboard_music_play_list = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS);\n\n }\n}\n\nexport const esp32_music_play_list = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)\n this.appendValueInput('PIN')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS);\n\n }\n}\n\nexport const esp32_mixgo_music_play_list_show = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)\n this.appendValueInput('PIN')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_PIN);\n // this.appendValueInput('DISPLAY')\n // .appendField(Blockly.Msg.MIXLY_ESP32_MIXGO_MUSIC_SHOW_IN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MIXGO_MUSIC_PLAY_TONE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAYSHOW)\n }\n}\n//RGB\nexport const actuator_neopixel_init = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendValueInput(\"LEDCOUNT\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_COUNT);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_RGB_PIN_COUNT);\n }\n};\n\nexport const actuator_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B);\n }\n};\n\nexport const actuator_neopixel_write = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_RGB_WRITE)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_WRI);\n }\n};\n\nexport const actuator_onboard_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B);\n }\n};\n\nexport const actuator_onboard_neopixel_rgb_all = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B);\n }\n};\n\nexport const actuator_onboard_neopixel_write = {\n init: function () {\n this.setColour(ACTUATOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_RGB_WRITE)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_WRI);\n }\n};\n\n\nexport const led_light = actuator_led_bright;\nexport const get_led_bright = actuator_get_led_bright;\nexport const led_brightness = actuator_led_brightness;\n","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\n\nconst ACTUATOR_EXTERN_HUE = '#74A55B';\n\n//music\nexport const esp32_music_pitch_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MIDI)\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_RGB_PIN_COUNT);\n }\n};\n\nexport const esp32_music_pitch = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TONE)\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);\n }\n};\n\nexport const esp32_music_pitch_with_time = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TONE)\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2);\n }\n};\n\nexport const esp32_music_play_list = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS);\n\n }\n}\n\nexport const esp32_music_set_tempo_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendValueInput('TICKS')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SET_TEMPO)\n .appendField(Blockly.Msg.MICROBIT_ACTUATOR_ticks);\n this.appendValueInput('BPM')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO);\n }\n}\n\nexport const esp32_music_get_tempo_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Get_current_tempo)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO);\n }\n}\n\nexport const esp32_music_reset_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_music)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_RESET);\n }\n}\n\nexport const esp32_music_stop = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NOTONE)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const actuator_extern_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF);\n }\n};\n\nexport const actuator_extern_get_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF);\n }\n};\n\nexport const actuator_extern_get_led_state = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF);\n }\n};\n\nexport const actuator_extern_led_brightness = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_EXTERN_LED)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT);\n }\n};\n\n//Servo\nexport const servo_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_SERVO)\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const servo_move = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput(\"DEGREE\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DEGREE_0_180);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_MOVE);\n }\n};\n\nexport const servo_speed_360 = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(\"360°\" + Blockly.Msg.MIXLY_SERVO)\n this.appendValueInput(\"SPEED\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.blockpy_turtle_rotate + Blockly.Msg.MIXLY_SPEED + \" (-10~10)\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP);\n }\n};\n\n//Servo\nexport const servo_set_angle = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField('180°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_MOVE);\n }\n};\n\nexport const servo_set_speed = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField('360°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS);\n }\n};\n\nexport const servo_get_angle = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField('180°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const servo_get_speed = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField('360°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_SPEED);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const actuator_ms32006_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"初始化\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(\"电机驱动\");\n this.appendDummyInput()\n .appendField(\"地址\")\n .appendField(new Blockly.FieldDropdown([['A', 'ms32006.ADDRESS_A'], ['B', 'ms32006.ADDRESS_B']]), 'mode');\n this.appendValueInput('SUB1')\n .setCheck(\"var\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\"通信\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(\"初始化MS32006电机驱动,使用I2C通信\");\n }\n};\n\nexport const actuator_ms32006_dcmotor = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"直流电机\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"ms32006.MOT_CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"ms32006.MOT_CCW\"],\n [Blockly.Msg.MOTOR_N, \"ms32006.MOT_N\"],\n [Blockly.Msg.MOTOR_P, \"ms32006.MOT_P\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(\"设置直流电机的状态及转速(0-100)\");\n }\n};\n\n\n\nexport const actuator_ms32006_stepper = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"步进电机\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(\"选择\")\n .appendField(new Blockly.FieldDropdown([['A', 'ms32006.MOT_A'], ['B', 'ms32006.MOT_B']]), 'mode');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"ms32006.MOT_CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"ms32006.MOT_CCW\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\"转速\");\n this.appendValueInput('steps')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\"步数\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(\"设置步进电机的状态、转速、步数(0-2047)\");\n }\n};\n\n//rgb\nexport const actuator_neopixel_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendValueInput(\"LEDCOUNT\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_COUNT);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_RGB_PIN_COUNT);\n }\n};\n\nexport const actuator_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MP);\n }\n};\n\nexport const actuator_neopixel_rgb_all = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC);\n }\n};\n\nexport const actuator_neopixel_write = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_RGB_WRITE)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_WRI);\n }\n};\n\nexport const actuator_use_uart_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"uart\")\n .appendField(new Blockly.FieldDropdown([\n [\"uart1\", \"uart1\"],\n [\"uart2\", \"uart2\"]\n ]), \"key\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n ['SYN6288' + Blockly.Msg.MIXLY_AipSpeech_synthesis,'SYN6288'],\n ['NS9300' + Blockly.Msg.MIXLY_MUSIC_PLAYER,'NS9300']\n ]),'key2');\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const player_whether_stop ={\n init:function(){\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MUSIC_PLAYER)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_WHETHER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_STOPPED, \"0\"],\n [Blockly.Msg.MIXLY_PLAYING, \"1\"],\n [Blockly.Msg.MIXLY_PAUSED, \"2\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const player_set_play = {\n init:function(){\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_STAT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MP3_PLAY, \"1\"],\n [Blockly.Msg.MIXLY_MP3_PAUSE, \"2\"],\n [Blockly.Msg.MIXLY_STOP, \"3\"],\n [Blockly.Msg.MIXLY_MP3_PREV, \"4\"],\n [Blockly.Msg.MIXLY_MP3_NEXT, \"5\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const player_set_volume = {\n init:function(){\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)\n .setCheck(\"var\");\n this.appendValueInput('volume')\n .appendField(Blockly.Msg.MIXLY_MP3_VOL +Blockly.Msg.MIXLY_STAT);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP);\n }\n}\n\nexport const player_set_mode = {\n init:function(){\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE+Blockly.Msg.MIXLY_STAT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MP3_LOOP_ALL, \"0\"],\n [Blockly.Msg.MIXLY_MP3_LOOP_ONE, \"1\"],\n [Blockly.Msg.MIXLY_PLAYER_DIRECTORY_LOOP, \"2\"],\n [Blockly.Msg.MIXLY_MP3_LOOP_RAM, \"3\"],\n [Blockly.Msg.MIXLY_PLAYER_SINGLE_STOP, \"4\"],\n [Blockly.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY, \"5\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const player_play_music = {\n init:function(){\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MUSIC_PLAYER)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_START_MELODY,\"play\"],\n [Blockly.Msg.MIXLY_PLAYER_INSERT_MUSIC, \"insert\"]\n ]), \"key\");\n this.appendValueInput('song');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)\n }\n}\n\nexport const player_insert_music ={\n\n}\n\nexport const syn6288_set_voice = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField('SYN6288')\n this.appendValueInput('VOICE')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SET_VOLUME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SET_VOLUME_TOOLTIP);\n }\n}\n\nexport const syn6288_get_voice = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField('SYN6288')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_VOLUME)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SET_VOLUME_TOOLTIP);\n }\n}\n\nexport const syn6288_builtin_voice = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField('SYN6288')\n this.appendValueInput('VOICE')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_PLAY_HINTS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PROGRAM_BLOCK)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PLAY_HINTS_TOOLTIP);\n }\n}\n\nexport const syn6288_tts_play = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField('SYN6288')\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_AipSpeech_synthesis);\n this.appendValueInput('VOICE')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_BACKGROUND_MUSIC);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PROGRAM_BLOCK)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PLAY_TTS_TOOLTIP);\n }\n}\n\n\n//mixbot extern\nexport const mixbot_addr_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.extern_addr), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const robot_motor_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_MOTOR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP);\n }\n}\n\nexport const robot_motor_extern_get_speed = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_MOTOR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_SPEED);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_traffic_light_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_TRAFFIC_LIGHT)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, '0'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON, '1'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK, '2'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON, '3'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK, '4'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON, '5'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK, '6']\n ]), \"light\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_led_extern = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_WHITE, 'W'],\n [Blockly.Msg.COLOUR_RGB_RED, 'R'],\n [Blockly.Msg.COLOUR_RGB_YELLOW, 'Y'],\n [Blockly.Msg.COLOUR_RGB_GREEN, 'G'],\n [Blockly.Msg.COLOUR_RGB_BLUE, 'B']\n ]), \"color\")\n .appendField(\"LED\")\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendValueInput('value')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.BRIGHTNESS);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_led_extern_get_value = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_WHITE, 'W'],\n [Blockly.Msg.COLOUR_RGB_RED, 'R'],\n [Blockly.Msg.COLOUR_RGB_YELLOW, 'Y'],\n [Blockly.Msg.COLOUR_RGB_GREEN, 'G'],\n [Blockly.Msg.COLOUR_RGB_BLUE, 'B']\n ]), \"color\")\n .appendField(\"LED\")\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.BRIGHTNESS)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_servo_extern_get_status = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER, '[0]'],\n [Blockly.Msg.MIXLY_SPEED, '[1]'],\n [Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, '[2]'],\n [Blockly.Msg.MIXLY_RELATIVE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, '[3]'],\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT, '[4]'],\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT, '[5]'],\n [Blockly.Msg.MIXLY_ALL, '']\n ]), \"status\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_servo_extern_stop_mode = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP, '0'],\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST, '1'],\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE, '2']\n ]), \"status\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_servo_extern_stop = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_STOP)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_servo_extern_absolute_run = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.MATH_SINGLE_OP_ABSOLUTE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + Blockly.Msg.MSG.run)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MODE)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPEED + Blockly.Msg.MIXLY_MODE, '0'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER + Blockly.Msg.MIXLY_MODE, '1']\n ]), \"status\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField('%')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, '0'],\n [Blockly.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH, '1'],\n [Blockly.Msg.ANTI_CLOCKWISE, '2']\n ]), \"direction\");\n this.appendValueInput('angle')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP);\n }\n}\n\nexport const robot_servo_extern_relative_origin = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.MIXLY_RELATIVE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + Blockly.Msg.MSG.run)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_servo_extern_relative_run = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.MIXLY_RELATIVE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + Blockly.Msg.MSG.run)\n .appendField(\"(\" + Blockly.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR + \")\")\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MODE)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPEED + Blockly.Msg.MIXLY_MODE, '0'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER + Blockly.Msg.MIXLY_MODE, '1']\n ]), \"status\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField('%')\n this.appendValueInput('angle')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP);\n }\n}\n\nexport const robot_servo_extern_relative_continue = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_SERVO_MOTOR)\n .appendField(Blockly.Msg.MIXLY_RELATIVE + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + Blockly.Msg.MSG.run)\n .appendField(\"(\" + Blockly.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR + \")\")\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MODE)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPEED + Blockly.Msg.MIXLY_MODE, '0'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER + Blockly.Msg.MIXLY_MODE, '1']\n ]), \"status\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField('%')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, '0'],\n [Blockly.Msg.ANTI_CLOCKWISE, '2']\n ]), \"direction\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const mixbot_actuator_extern_get_addr = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MOTOR, 'ext_motor'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT, 'ext_traffic'],\n [Blockly.Msg.COLOUR_RGB_WHITE + \"LED\", 'W_LED'],\n [Blockly.Msg.COLOUR_RGB_RED + \"LED\", 'R_LED'],\n [Blockly.Msg.COLOUR_RGB_YELLOW + \"LED\", 'Y_LED'],\n [Blockly.Msg.COLOUR_RGB_GREEN + \"LED\", 'G_LED'],\n [Blockly.Msg.COLOUR_RGB_BLUE + \"LED\", 'B_LED'],\n [Blockly.Msg.MIXLY_SERVO_MOTOR, 'ext_servo']\n ]), \"name\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const mixbot_actuator_extern_set_addr = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MOTOR, 'ext_motor'],\n [Blockly.Msg.MIXLY_TRAFFIC_LIGHT, 'ext_traffic'],\n [Blockly.Msg.COLOUR_RGB_WHITE + \"LED\", 'W_LED'],\n [Blockly.Msg.COLOUR_RGB_RED + \"LED\", 'R_LED'],\n [Blockly.Msg.COLOUR_RGB_YELLOW + \"LED\", 'Y_LED'],\n [Blockly.Msg.COLOUR_RGB_GREEN + \"LED\", 'G_LED'],\n [Blockly.Msg.COLOUR_RGB_BLUE + \"LED\", 'B_LED'],\n [Blockly.Msg.MIXLY_SERVO_MOTOR, 'ext_servo']\n ]), \"name\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR)\n this.appendValueInput('old')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE);\n this.appendValueInput('new')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_UPDATE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\n//educore\nexport const PIN_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const pin_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('pin')\n .appendField('LED')\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const servo_PIN_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SERVO + Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const servo_move_angle = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_SERVO);\n this.appendValueInput(\"angle\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.DRAW_POINTER_ANGLE)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const parrot_PIN_init = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MOTOR + Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_AT)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const parrot_move_speed = {\n init: function () {\n this.setColour(ACTUATOR_EXTERN_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_MOTOR);\n this.appendValueInput(\"speed\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DISPLAY_MATRIX_ROTATE +Blockly.Msg.MIXLY_SPEED);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};","import * as Blockly from 'blockly/core';\nimport { Boards } from 'mixly';\n\nconst ACTUATOR_ONBOARD_HUE = '#6C9858'\n\n//LED\nexport const number = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [\"L1\", \"1\"],\n [\"L2\", \"2\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const ledswitch = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_ON, \"1\"],\n [Blockly.Msg.MIXLY_ESP32_OFF, \"0\"],\n [Blockly.Msg.MIXLY_ESP32_TOGGLE, \"-1\"]\n ]), \"flag\");\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const actuator_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const actuator_get_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const actuator_get_led_state = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const actuator_led_brightness = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_BUILDIN_LED + Blockly.Msg.MIXLY_BRIGHTNESS + '(0-100%)');\n }\n};\n\nexport const actuator_mixgo_zero_led_color = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LCD_SETCOLOR)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_LIGHT_RED, \"1\"],\n [Blockly.Msg.MIXLY_LIGHT_GREEN, \"2\"],\n [Blockly.Msg.MIXLY_LIGHT_BLUE, \"3\"],\n [Blockly.Msg.MIXLY_LIGHT_YELLOW, \"4\"],\n [Blockly.Msg.MIXLY_LIGHT_CYAN, \"5\"],\n [Blockly.Msg.MIXLY_LIGHT_PURPLE, \"6\"],\n [Blockly.Msg.MIXLY_LIGHT_WHITE, \"7\"]\n ]), 'colorvalue');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip();\n }\n};\n\nexport const rm_actuator_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_RED, \"r\"],\n [Blockly.Msg.COLOUR_RGB_GREEN, \"g\"]\n ]), \"color\");\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const rm_actuator_get_led_bright = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_RED, \"r\"],\n [Blockly.Msg.COLOUR_RGB_GREEN, \"g\"]\n ]), \"color\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const rm_actuator_get_led_state = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_RED, \"r\"],\n [Blockly.Msg.COLOUR_RGB_GREEN, \"g\"]\n ]), \"color\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const rm_actuator_led_brightness = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(Blockly.Msg.MIXLY_BUILDIN_LED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.COLOUR_RGB_RED, \"r\"],\n [Blockly.Msg.COLOUR_RGB_GREEN, \"g\"]\n ]), \"color\");\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_BUILDIN_LED + Blockly.Msg.MIXLY_BRIGHTNESS + '(0-10)');\n }\n};\n\nexport const cc_number = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [\"L1\", \"20\"],\n [\"L2\", \"21\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const actuator_onboard_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n const boardKey = Boards.getSelectedBoardKey();\n switch (boardKey) {\n case 'micropython:esp32c3:mixgo_cc':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);\n break;\n case 'micropython:esp32s2:mixgo_ce':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);\n break;\n case 'micropython:esp32c3:mixgo_me':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n break;\n case 'micropython:esp32:mPython':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);\n break;\n default:\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n }\n }\n};\n\nexport const actuator_onboard_neopixel_rgb_all = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC);\n }\n};\n\nexport const actuator_onboard_neopixel_rgb_show_all_rainbow = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RAINBOW);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION)\n .appendField(Blockly.Msg.MIXLY_MILLIS);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n }\n};\n\n\nexport const actuator_onboard_neopixel_rgb_show_all_chase = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CHASE);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.PYTHON_RANGE_STEP)\n .appendField(Blockly.Msg.MIXLY_MILLIS);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n }\n};\n\nexport const actuator_onboard_neopixel_write = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_RGB_WRITE)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_WRI);\n }\n};\n\n\nexport const actuator_rm_onboard_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n const boardKey = Boards.getSelectedBoardKey();\n switch (boardKey) {\n case 'micropython:esp32c3:mixgocc':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);\n break;\n case 'micropython:esp32c3:mixgome':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n break;\n case 'micropython:esp32:mPython':\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);\n break;\n default:\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n }\n }\n};\n\nexport const actuator_rm_onboard_neopixel_rgb_all = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC);\n }\n};\n\n\n\nexport const actuator_rm_onboard_neopixel_rgb_show_all_chase = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CHASE);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.PYTHON_RANGE_STEP)\n .appendField(Blockly.Msg.MIXLY_MILLIS);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n }\n};\n\n\nexport const esp32_music_set_tempo = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('TICKS')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SET_TEMPO)\n .appendField(Blockly.Msg.MICROBIT_ACTUATOR_ticks);\n this.appendValueInput('BPM')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO);\n }\n}\n\nexport const esp32_music_get_tempo = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Get_current_tempo)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO);\n }\n}\n\nexport const esp32_music_reset = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_music)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_RESET);\n }\n}\n\nexport const esp32_onboard_music_pitch = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);\n }\n};\n\nexport const esp32_onboard_music_pitch_with_time = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2);\n }\n};\n\nexport const esp32_onboard_music_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_NOTONE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const esp32_onboard_music_play_list = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS);\n\n }\n}\n\nexport const rm_motor = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(new Blockly.FieldDropdown([\n ['1', \"1\"],\n [\"2\", \"2\"],\n [\"3\", \"3\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\n//c3 motor onboard\n\nexport const actuator_stepper_keep = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"MixGo Car\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"F\"],\n [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"L\"],\n [Blockly.Msg.blockpy_right, \"R\"]\n ]), \"VAR\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_stepper_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MixGo Car\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n }\n};\n\nexport const actuator_dc_motor = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLYCAR_WHEEL_LEFT, \"L\"],\n [Blockly.Msg.MIXLYCAR_WHEEL_RIGHT, \"R\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"CCW\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_dc_motor_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLYCAR_WHEEL_LEFT, \"L\"],\n [Blockly.Msg.MIXLYCAR_WHEEL_RIGHT, \"R\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_STOP)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\n//mixbot onboard_motor below:\n\nexport const mixbot_motor_status = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_MOTOR_STATUS);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP);\n }\n};\n\nexport const mixbot_move = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"F\"],\n [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"L\"],\n [Blockly.Msg.blockpy_right, \"R\"]\n ]), \"VAR\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER, \"PWR\"],\n [Blockly.Msg.MIXLY_SPEED, \"SPEED\"],\n [Blockly.Msg.MIXLY_MIXBOT_MOTOR_TURNS, \"TURNS\"]\n ]), \"mode\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP);\n }\n}\n\nexport const mixbot_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const mixbot_motor = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(Blockly.Msg.MIXLY_MOTOR)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"1\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"2\"],\n [Blockly.Msg.TEXT_TRIM_BOTH, \"0\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER, \"PWR\"],\n [Blockly.Msg.MIXLY_SPEED, \"SPEED\"],\n [Blockly.Msg.MIXLY_MIXBOT_MOTOR_TURNS, \"TURNS\"]\n ]), \"mode\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP);\n }\n}\n\nexport const actuator_mixbot_buzzer_on_off = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_BUZZER);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, \"0\"],\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, \"1\"]\n ]), 'on_off')\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\n//bitbot onboard_motor below:\nexport const bitbot_move = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.BITBOT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"F\"],\n [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"L\"],\n [Blockly.Msg.blockpy_right, \"R\"]\n ]), \"VAR\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const bitbot_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.BITBOT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const bitbot_motor = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.BITBOT)\n .appendField(Blockly.Msg.MIXLY_MOTOR)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"0\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"1\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_mixgo_nova_mic_set = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS)\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const actuator_mixgo_nova_mic_get = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS + '(%)');\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const actuator_mixgo_nova_voice_set = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_MIXBOT_BUZZER + Blockly.Msg.MIXLY_MP3_VOL)\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const actuator_mixgo_nova_voice_get = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MIXBOT_BUZZER + Blockly.Msg.MIXLY_MP3_VOL + '(%)');\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\n\n\nexport const actuator_mixgo_nova_record_audio = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('PATH')\n .appendField(Blockly.Msg.MIXLY_RECORD_AUDIO)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);\n this.appendValueInput('TIME')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_mixgo_nova_play_audio = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('PATH')\n .appendField(Blockly.Msg.MIXLY_PLAY_AUDIO)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_mixgo_nova_play_online_audio = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput('PATH')\n .appendField(Blockly.Msg.MIXLY_PLAY_ONLINE_AUDIO)\n .appendField('URL');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const actuator_mixgo_nova_onboard_music_pitch = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE);\n }\n};\n\nexport const actuator_mixgo_nova_onboard_music_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_NOTONE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const set_power_output = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[\"1\", \"1\"], [\"2\", \"2\"], [\"3\", \"3\"]]), \"index\");\n this.appendValueInput('duty')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.blynk_IOT_IR_POWER + Blockly.Msg.MIXLY_PINMODEOUT);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip();\n }\n}\n\nexport const get_power_output = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[\"1\", \"1\"], [\"2\", \"2\"]]), \"index\");\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.blynk_IOT_IR_POWER + Blockly.Msg.MIXLY_PINMODEOUT + Blockly.Msg.MIXLY_DUTY_RATIO);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const set_all_power_output = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(Blockly.Msg.MIXLY_ALL + Blockly.Msg.PIN_NUMBERING);\n this.appendValueInput('duty')\n .setCheck(Number)\n .setAlign(Blockly.ALIGN_RIGHT)\n .appendField(Blockly.Msg.blynk_IOT_IR_POWER + Blockly.Msg.MIXLY_PINMODEOUT + Blockly.Msg.MIXLY_FREQUENCY);\n this.appendDummyInput()\n .appendField('Hz')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP);\n }\n}\n\nexport const analog_keyboard_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n this.appendValueInput('special');\n this.appendValueInput('general');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n }\n};\n\nexport const special_key = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SPECIAL_KEY)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPECIAL_KEY0, \"0x00\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY1, \"0x01\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY2, \"0x02\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY1, \"0x04\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY8, \"0x08\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY16, \"0x10\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY32, \"0x20\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY64, \"0x40\"],\n [Blockly.Msg.MIXLY_SPECIAL_KEY128, \"0x80\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const general_key = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GENERAL_KEY)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPECIAL_KEY0, \"0x00\"],\n ['A', \"0x04\"],\n ['B', \"0x05\"],\n ['C', \"0x06\"],\n ['D', \"0x07\"],\n ['E', \"0x08\"],\n ['F', \"0x09\"],\n ['G', \"0x0A\"],\n ['H', \"0x0B\"],\n ['I', \"0x0C\"],\n ['J', \"0x0D\"],\n ['K', \"0x0E\"],\n ['L', \"0x0F\"],\n ['M', \"0x10\"],\n ['N', \"0x11\"],\n ['O', \"0x12\"],\n ['P', \"0x13\"],\n ['Q', \"0x14\"],\n ['R', \"0x15\"],\n ['S', \"0x16\"],\n ['T', \"0x17\"],\n ['U', \"0x18\"],\n ['V', \"0x19\"],\n ['W', \"0x1A\"],\n ['X', \"0x1B\"],\n ['Y', \"0x1C\"],\n ['Z', \"0x1D\"],\n ['1 !', \"0x1E\"],\n ['2 @', \"0x1F\"],\n ['3 #', \"0x20\"],\n ['4 $', \"0x21\"],\n ['5 %', \"0x22\"],\n ['6 ^', \"0x23\"],\n ['7 &', \"0x24\"],\n ['8 *', \"0x25\"],\n ['9 (', \"0x26\"],\n ['0 )', \"0x27\"],\n ['ENTER', \"0x28\"],\n ['ESC', \"0x29\"],\n ['BACKSPACE', \"0x2A\"],\n ['TAB', \"0x2B\"],\n ['SPACE', \"0x2C\"],\n ['- _', \"0x2D\"],\n ['= +', \"0x2E\"],\n ['[ {', \"0x2F\"],\n ['] }', \"0x30\"],\n ['\\\\ |', \"0x31\"],\n ['; :', \"0x33\"],\n [\"' \" + ' \"', \"0x34\"],\n ['` ~', \"0x35\"],\n [', <', \"0x36\"],\n ['. >', \"0x37\"],\n ['/ ?', \"0x38\"],\n ['CAPS_LOCK', \"0x39\"],\n ['F1', \"0x3A\"],\n ['F2', \"0x3B\"],\n ['F3', \"0x3C\"],\n ['F4', \"0x3D\"],\n ['F5', \"0x3E\"],\n ['F6', \"0x3F\"],\n ['F7', \"0x40\"],\n ['F8', \"0x41\"],\n ['F9', \"0x42\"],\n ['F10', \"0x43\"],\n ['F11', \"0x44\"],\n ['F12', \"0x45\"],\n ['PRINTSCREEN', \"0x46\"],\n ['SCROLL_LOCK', \"0x47\"],\n ['PAUSE', \"0x48\"],\n ['INSERT', \"0x49\"],\n ['HOME', \"0x4A\"],\n ['PAGE_UP', \"0x4B\"],\n ['DELETE', \"0x4C\"],\n ['END', \"0x4D\"],\n ['PAGE_DOWN', \"0x4E\"],\n ['RIGHT', \"0x4F\"],\n ['LEFT', \"0x50\"],\n ['DOWN', \"0x51\"],\n ['UP', \"0x52\"],\n ['NUM_LOCK', \"0x53\"],\n ['/', \"0x54\"],\n ['*', \"0x55\"],\n ['-', \"0x56\"],\n ['+', \"0x57\"],\n ['ENTER', \"0x58\"],\n ['1', \"0x59\"],\n ['2', \"0x5A\"],\n ['3', \"0x5B\"],\n ['4', \"0x5C\"],\n ['5', \"0x5D\"],\n ['6', \"0x5E\"],\n ['7', \"0x5F\"],\n ['8', \"0x60\"],\n ['9', \"0x61\"],\n ['0', \"0x62\"],\n ['.', \"0x63\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\n\nexport const general_key_tuple = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.itemCount_ = 2;\n this.updateShape_();\n this.setOutput(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['generalkey_create_with_item'], this));\n this.setTooltip(Blockly.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP);\n },\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('generalkey_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('generalkey_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.GENERALKEY_CREATE_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.GENERALKEY_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const generalkey_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GENERAL_KEY);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.GENERALKEY_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const generalkey_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const analog_mouse_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE_INPUT);\n this.appendValueInput('key');\n this.appendValueInput('x')\n .appendField(Blockly.Msg.MIXLY_X_CHANGES);\n this.appendValueInput('y')\n .appendField(Blockly.Msg.MIXLY_Y_CHANGES);\n this.appendValueInput('wheel')\n .appendField(Blockly.Msg.MIXLY_WHEEL_CHANGES);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n }\n};\n\nexport const mouse_key = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MOUSE_KEYS)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPECIAL_KEY0, \"0x00\"],\n [Blockly.Msg.MIXLY_MOUSE_LEFT_KEY, \"0x01\"],\n [Blockly.Msg.MIXLY_MOUSE_RIGHT_KEY, \"0x02\"],\n [Blockly.Msg.MIXLY_MOUSE_MID_KEY, \"0x04\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const analog_keyboard_str = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n this.appendValueInput('str')\n .appendField(Blockly.Msg.MIXLY_STR_PRINT);\n this.appendValueInput('time')\n .appendField(Blockly.Msg.MIXLY_STR_PRINT_TIME_DELAY);\n this.appendDummyInput()\n .appendField('ms');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const analog_ble_keyboard_init = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD);\n this.appendValueInput('kname')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_keyboard_get_mac = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_keyboard_connect = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD + Blockly.Msg.MIXLY_IS_CONNECT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_keyboard_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD)\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD);\n this.appendValueInput('special');\n this.appendValueInput('general');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n }\n};\n\nexport const analog_ble_keyboard_str = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD);\n this.appendValueInput('str')\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD + Blockly.Msg.MIXLY_STR_PRINT);\n this.appendValueInput('time')\n .appendField(Blockly.Msg.MIXLY_STR_PRINT_TIME_DELAY);\n this.appendDummyInput()\n .appendField('ms');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_keyboard_send_battery = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD);\n this.appendValueInput('battery')\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_BATTERY + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_mouse_init = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE);\n this.appendValueInput('name')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_mouse_get_mac = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_mouse_connect = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_IS_CONNECT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_mouse_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE)\n .appendField(Blockly.Msg.MIXLY_SEND + Blockly.Msg.MIXLY_MOUSE_INPUT);\n this.appendValueInput('key');\n this.appendValueInput('x')\n .appendField(Blockly.Msg.MIXLY_X_CHANGES);\n this.appendValueInput('y')\n .appendField(Blockly.Msg.MIXLY_Y_CHANGES);\n this.appendValueInput('wheel')\n .appendField(Blockly.Msg.MIXLY_WHEEL_CHANGES);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n }\n};\n\nexport const analog_ble_mouse_send_battery = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE);\n this.appendValueInput('battery')\n .appendField(Blockly.Msg.MIXLY_SEND + Blockly.Msg.MIXLY_MOUSE + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_BATTERY + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_keyboard_mouse_init = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE);\n this.appendValueInput('kname')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_keyboard_mouse_get_mac = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE + Blockly.Msg.MIXLY_BELONG + Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const ble_keyboard_mouse_connect = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE + Blockly.Msg.MIXLY_IS_CONNECT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_keyboard_mouse_send_battery = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE);\n this.appendValueInput('battery')\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BATTERY + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO);\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_keyboard_mouse_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE)\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD);\n this.appendValueInput('special');\n this.appendValueInput('general');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD_INPUT);\n }\n};\n\nexport const analog_ble_keyboard_mouse_str = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE);\n this.appendValueInput('str')\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD + Blockly.Msg.MIXLY_STR_PRINT);\n this.appendValueInput('time')\n .appendField(Blockly.Msg.MIXLY_STR_PRINT_TIME_DELAY);\n this.appendDummyInput()\n .appendField('ms');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const analog_ble_mouse_keyboard_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_KEYBOARD_AND_MOUSE)\n .appendField(Blockly.Msg.MIXLY_SEND + Blockly.Msg.MIXLY_MOUSE_INPUT);\n this.appendValueInput('key');\n this.appendValueInput('x')\n .appendField(Blockly.Msg.MIXLY_X_CHANGES);\n this.appendValueInput('y')\n .appendField(Blockly.Msg.MIXLY_Y_CHANGES);\n this.appendValueInput('wheel')\n .appendField(Blockly.Msg.MIXLY_WHEEL_CHANGES);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RELEASE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_MOUSE_INPUT);\n }\n};\n//educore actuator\nexport const educore_buzzer = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIDI);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const educore_buzzer_play_tone = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"buzzer\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_buzzer_play_tone_time = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"buzzer\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TONE);\n this.appendValueInput('pitch')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY);\n this.appendValueInput('time')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_DURATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_buzzer_stop = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"buzzer\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Turn_off_display);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_rgb_light = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RGB);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const educore_neopixel_rgb = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"rgb\");\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendValueInput(\"RVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_R);\n this.appendValueInput(\"GVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_G);\n this.appendValueInput(\"BVALUE\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_B);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n // const boardKey = Boards.getSelectedBoardKey();\n // switch (boardKey) {\n // case 'micropython:esp32c3:mixgo_cc':\n // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);\n // break;\n // case 'micropython:esp32s2:mixgo_ce':\n // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);\n // break;\n // case 'micropython:esp32c3:mixgo_me':\n // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n // break;\n // case 'micropython:esp32:mPython':\n // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON);\n // break;\n // default:\n // this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);\n // }\n }\n};\n\nexport const educore_neopixel_clear = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"rgb\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Turn_off_display)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const educore_ble_sensor_init = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"name\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_BLUETOOTH+ Blockly.Msg.MIXLY_MICROBIT_JS_SYSTEM_DEVICE_NAME + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_ble_sensor_connected = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_BE_CONNETCED)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_ble_keyboard_input = {\n init: function () {\n this.setColour(ACTUATOR_ONBOARD_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_KEYBOARD);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SEND_KEYBOARD);\n this.appendValueInput('general');\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.MIXLY_RELEASE)\n // .appendField(new Blockly.FieldDropdown([\n // [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n // [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n // ]), 'release');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst AI_HUE = 205;\n\nexport const MICROPYTHON_AI_client = {\n init: function () {\n this.setColour(AI_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_AipSpeech_asr, \"ASR\"],\n [Blockly.Msg.MIXLY_AI_UNIT, \"UNIT\"]\n ]), 'CTYPE')\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_Client)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('API_KEY')\n .appendField('API_KEY')\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('SECRET_KEY')\n .appendField('SECRET_KEY')\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setInputsInline(false);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const MICROPYTHON_AI_Speech_unit = { // AI_TYPE_FUNC\n init: function () {\n this.setColour(AI_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AI_UNIT)\n .appendField(Blockly.Msg.MIXLY_Client)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('ID')\n .appendField('ID')\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('STR')\n .appendField(Blockly.Msg.OLED_STRING)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const MICROPYTHON_AI_Speech_asr = { // AI_TYPE_FUNC\n init: function () {\n this.setColour(AI_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr)\n .appendField(Blockly.Msg.MIXLY_Client)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('FILE')\n .appendField(Blockly.Msg.MIXPY_AI_AUDIO_TIME)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LANGUAGE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_AI_LANGUAGE_CHINESE, \"1537\"],\n [Blockly.Msg.MIXLY_AI_LANGUAGE_ENGLISH, \"1737\"],\n [Blockly.Msg.MIXLY_AI_LANGUAGE_CANTONESE, \"1637\"]\n ]), 'LANGUAGE')\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\n","import * as Blockly from 'blockly/core';\n\nconst AI_SENSOR_HUE = '#90A244'; //'#9e77c9'//40;\n\n\nexport const ai_sensor_use_uart_init = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"uart\")\n .appendField(new Blockly.FieldDropdown([\n [\"uart1\", \"uart1\"],\n [\"uart2\", \"uart2\"]\n ]), \"key\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + 'MixGo AI' + Blockly.Msg.MSG.catSensor)\n\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const ai_sensor_qrcode = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_QR_CODE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.OLED_STRING, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_QR_CODE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_qrcode_lite = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_QR_CODE + Blockly.Msg.MIXPY_OBJECT, \"qrcode\"],\n [Blockly.Msg.MIXLY_BAR_CODE + Blockly.Msg.MIXPY_OBJECT, \"barcode\"],\n [Blockly.Msg.MIXLY_TAG + Blockly.Msg.MIXPY_OBJECT, \"apriltag\"]\n ]), \"TYPE\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ANALYSIS_RESULT);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip();\n }\n};\n\nexport const ai_sensor_find_qrcodes = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_QR_CODE_RECOGNTITION);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[qrcode]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_QR_CODE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_config = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendValueInput(\"RX\")\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_ETHERNET_CLINET_PORT)\n .appendField(\"RX#\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"TX\")\n .appendField(\"TX#\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.SOFT_RESET + Blockly.Msg.MIXLY_ESP32_RGB_WRITE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'mode')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP);\n }\n};\n\nexport const ai_sensor_rgb = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendValueInput(\"led1\")\n .appendField(Blockly.Msg.MIXLY_SETTING)\n .appendField(\"RGB1\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"led2\")\n .appendField(\"RGB2\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CONFIG_TOOLTIP);\n }\n};\n\nexport const ai_sensor_barcode = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_BAR_CODE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.OLED_STRING, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_BAR_CODE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_barcodes = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BAR_CODE_RECOGNTITION);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[barcode]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_BAR_CODE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_tag = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TAG + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.OLED_STRING, \"info1\"],\n [Blockly.Msg.blockpy_turtle_rotate + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, \"info2\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_TAG_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_tags = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TAG_RECOGNTITION);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[tag]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_TAG_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_line = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_LINE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_LINE_ANGLE, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-x1x2y1y2\", \"rect\"],\n [\"x1\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"x2\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"y1\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"y2\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LINE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_lines = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LINE_RECOGNTITION);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_ESP32_THRESHOLD)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_LINE_RECOGNTITION_ANGLE)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR3\")\n .appendField(Blockly.Msg.MIXLY_LINE_RECOGNTITION_SLOPE)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[line]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LINE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_circle = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_CIRCLE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_CIRCLE_AREA, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_circles = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CIRCLE_RECOGNTITION);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_ESP32_THRESHOLD)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_CIRCLE_RECOGNTITION_MIN)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR3\")\n .appendField(Blockly.Msg.MIXLY_CIRCLE_RECOGNTITION_MAX)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[circle]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_rect = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_RECT + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_CIRCLE_AREA, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_RECT_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_rects = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RECT_RECOGNTITION);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_ESP32_THRESHOLD)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[rect]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_color = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['RGB' + Blockly.Msg.HTML_COLOUR, \"[0]\"],\n ['LAB' + Blockly.Msg.MIXLY_COLOR_LAB, \"[1]\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_COLOR_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_colors = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_RECOGNTITION);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"color\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_COLOR_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_color_chases_result = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_CIRCLE_AREA, \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CIRCLE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_color_chases = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE);\n this.appendValueInput(\"VAR1\")\n .appendField('LAB' + Blockly.Msg.MIXLY_COLOR_LAB)\n\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_ESP32_THRESHOLD)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR3\")\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE_MERGE)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[colors]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_CIRCLE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_ailocal_train = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LOCAL_TRAIN);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_OBJECT_LIST)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MICROPYTHON_HUSKYLENS_SAVE_AS + Blockly.Msg.MIXLY_MODEL_NAME)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR3\")\n .appendField(Blockly.Msg.MIXLY_TRAIN_TIME)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR4\")\n .appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Title)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LOCAL_TRAIN_TOOLTIP);\n }\n};\n\nexport const ai_sensor_ailocal_class = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LOCAL_CLASS);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_OBJECT_LIST)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_MODEL_NAME)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR4\")\n .appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Title)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[objects]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_MODEL_NAME_TOOLTIP);\n }\n};\n\nexport const ai_sensor_ailocal_class_result = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_LOCAL_CLASS + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['ID', \"info1\"],\n [Blockly.Msg.MIXLY_CONFIDENCE_DEGREE, \"info2\"],\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LOCAL_CLASS_TOOLTIP);\n }\n};\n\nexport const ai_sensor_audio_record = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MUSIC_RECORD);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXPY_AI_AUDIO_TIME)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_MUSIC_RECORD_TOOLTIP);\n }\n};\n\nexport const ai_sensor_audio_play = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MUSIC_PLAY);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_MP3_VOL)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .appendField('%')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n\n }\n};\n\nexport const ai_sensor_yolo_recognize = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_YOLO_RECOGNIZE);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_ANCHOR)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_MODEL_PATH)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR4\")\n .appendField(Blockly.Msg.MIXLY_AipNlp_Topic_Title)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[objects]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_yolo_recognize_result = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_YOLO_RECOGNIZE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COLOR_CHASE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['ID', \"info1\"],\n [Blockly.Msg.MIXLY_CONFIDENCE_DEGREE, \"info2\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_X_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"xc\"],\n [Blockly.Msg.MICROPYTHON_HUSKYLENS_Y_CENTERED + Blockly.Msg.MIXLY_POSITION_XY, \"yc\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_YOLO_RECOGNIZE_RESULT_TOOLTIP);\n }\n};\n\nexport const ai_sensor_asr_recognize = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr);\n this.appendValueInput(\"VAR1\")\n .appendField(Blockly.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_CORPUS)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"VAR2\")\n .appendField(Blockly.Msg.MIXLY_ESP32_THRESHOLD)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_ASR_RECOGNISE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_licenseplate = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_LICENSEPLATE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['ID', \"info1\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_licenseplates = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_AipOcr_licensePlate);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[licensePlate]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_LICENSEPLATE_RECOGNTITION_TOOLTIP);\n }\n};\n\nexport const ai_sensor_face = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_FACE + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [\"ID\", \"info1\"],\n [Blockly.Msg.MIXLY_CONFIDENCE_DEGREE, \"info2\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_FACE_TOOLTIP);\n }\n};\n\nexport const ai_sensor_classifier_faces = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_AipFace);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[face]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_BAR_FACE_CLASSIFIER_TOOLTIP);\n }\n};\n\nexport const ai_sensor_20object = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_20OBJECTS + Blockly.Msg.MIXPY_OBJECT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ALL_CODE_ANALYSIS);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['ID', \"info1\"],\n [Blockly.Msg.MIXLY_CONFIDENCE_DEGREE, \"info2\"],\n [Blockly.Msg.MIXLY_POSITION_XY + \"-xywh\", \"rect\"],\n [\"x\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[0]\"],\n [\"y\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[1]\"],\n [\"w\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[2]\"],\n [\"h\" + Blockly.Msg.MIXLY_POSITION_XY, \"rect[3]\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_20OBJECTS_TOOLTIP);\n }\n};\n\nexport const ai_sensor_find_20objects = {\n init: function () {\n this.setColour(AI_SENSOR_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_FIND_20OBJECTS);\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + \"[20objects]\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_AI_SENSOR_BAR_FIND_20OBJECTS_TOOLTIP);\n }\n};","import * as Blockly from 'blockly/core';\n\n/******************* Blynk *****************/\nconst BLYNK_HUE = '#2FAD7A';\n\n\n// 自定义终端部件 Terminal Blynk\nexport const mpython_blynk_terminal_widget_vpin = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,\n \"args0\": [\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"virtual_pin\"\n }\n ]\n });\n }\n};\n\n// 同步虚拟管脚的状态 Blynk\nexport const mpython_blynk_sync_virtual = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,\n \"args0\": [\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"virtual_pin\"\n }\n ]\n });\n }\n};\n\n// 斷開连接 Blynk\nexport const mpython_blynk_on_disconnected = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n // \"nextStatement\": null,\n // \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0\n });\n this.appendStatementInput('DO')\n .appendField(Blockly.CONTROLS_REPEAT_INPUT_DO);\n }\n};\n\n// 连接上 Blynk\nexport const mpython_blynk_on_connected = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n // \"nextStatement\": null,\n // \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0\n });\n this.appendStatementInput('DO')\n .appendField(Blockly.CONTROLS_REPEAT_INPUT_DO);\n }\n};\n\n// Blynk 定时器的进程生效并运行\nexport const mpython_blynktimer_run = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0\n });\n }\n};\n\n// Blynk 进程生效并运行\nexport const mpython_blynk_run = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_RUN_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_RUN_MESSAGE0\n });\n }\n};\n\n// Blynk APP 显示通知\nexport const mpython_blynk_app_notify = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,\n \"args0\": [\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"notification\"\n }\n ]\n });\n }\n};\n\n// 停止 Blynk 定时器 %1\nexport const mpython_blynk_stop_timers = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n // \"output\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,\n \"args0\": [\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"timer_num\"\n }\n ]\n });\n }\n};\n\n// 给虚拟管脚添加 属性 %1 值 %2\nexport const mpython_blynk_set_property = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n // \"output\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,\n \"args0\": [\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"attribute_name\"\n }\n ,\n {\n // \"check\":String,\n \"type\": \"input_value\",\n \"name\": \"attribute_value\"\n }\n ]\n });\n }\n};\n\n// 向 %1 发邮件 主题 %2 正文 %3\nexport const mpython_blynk_email = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n // \"output\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,\n \"args0\": [\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"TargetEmail\"\n }\n ,\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"subject\"\n }\n ,\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"body\"\n }\n ]\n });\n }\n};\n\n// 可用的 Blynk 定时器\nexport const mpython_blynk_get_timers = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n // \"nextStatement\": null,\n // \"previousStatement\": null,\n \"output\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0,\n });\n }\n};\n\n//blynk定时器\nexport const mpython_blynktimer = {\n init: function () {\n this.jsonInit({\n \"message0\": Blockly.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,\n // \"nextStatement\": null,\n // \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNKTIMER_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,\n \"args0\": [\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"Num\"\n }\n ,\n {\n \"options\": [\n [Blockly.Msg.MIXLY_PYTHON_PERIODIC, 'False'],\n [Blockly.Msg.MIXLY_PYTHON_ONE_SHOT, 'True']\n ],\n \"type\": \"field_dropdown\",\n \"name\": \"Timer_mode\"\n }\n ,\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"period\"\n }\n ]\n });\n this.appendStatementInput('DO')\n .appendField(Blockly.CONTROLS_REPEAT_INPUT_DO);\n }\n};\n\n// 发送数据 %1 到 Bylnk APP 的虚拟管脚 %2\nexport const mpython_blynk_sensor_data_to_app = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,\n \"args0\": [\n {\n \"type\": \"input_value\",\n \"name\": \"sensor_data\"\n }\n ,\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"virtual_pin\"\n }\n ]\n });\n }\n};\n\n// 从 Bylnk APP 获取虚拟管脚 %1 的值\nexport const mpython_blynk_app_data = {\n init: function () {\n this.jsonInit({\n \"inputsInline\": true,\n // \"nextStatement\": null,\n // \"previousStatement\": null,\n // \"output\":null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,\n \"args0\": [\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"virtual_pin\"\n }\n ,\n {\n \"type\": \"input_value\",\n \"name\": \"virtual_pin_val\"\n }\n ]\n });\n this.appendStatementInput('DO')\n .appendField(Blockly.CONTROLS_REPEAT_INPUT_DO);\n }\n};\n\n// Bylnk设置\nexport const mpython_blynk_setup = {\n init: function () {\n this.jsonInit({\n // \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"colour\": BLYNK_HUE,\n \"helpUrl\": Blockly.Msg.MPYTHON_BLYNK_SETUP_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,\n \"args0\": [\n {\n \"type\": \"input_dummy\"\n },\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"server\"\n },\n {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"port\"\n },\n {\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"auth\"\n }\n ]\n });\n }\n};\n","import * as Blockly from 'blockly/core';\n\nconst CCG1_HUE = 40;\n\nexport const cc_g1_init = {\n init: function () {\n this.setColour(CCG1_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + \" CC_G1\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"temperature\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"relative_humidity\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const cc_g1_read_bat = {\n init: function () {\n this.setColour(CCG1_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_BATTERY);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const cc_g1_read_joystick = {\n init: function () {\n this.setColour(CCG1_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_JOYSTICK)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"[0]\"],\n [\"y\", \"[1]\"],\n [\"(x,y)\", \"\"]\n ]), \"VAR\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_DATA);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const cc_g1_read_key = {\n init: function () {\n this.setColour(CCG1_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(new Blockly.FieldDropdown([\n [\"A\", \"0\"],\n [\"B\", \"1\"],\n [\"C\", \"2\"],\n [\"D\", \"3\"],\n [\"POWER\", \"4\"],\n [\"SELECT\", \"5\"]\n ]), \"VAR\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.WHETHER_IS_PRESSED);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const cc_g1_turnoff = {\n init: function () {\n this.setColour(CCG1_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_HANDLE_SHUTDOWN);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n","import * as Blockly from 'blockly/core';\n\nconst MEGO_HUE = 100;\n\n//LED\nexport const ce_go_light_number = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[2]\"],\n [Blockly.Msg.MIXGO_LEFT_FRONT + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[2]\"],\n [Blockly.Msg.ME_GO_LIGHT_HEADLIGHT, \"WLED\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const ce_go_led_bright = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const ce_go_get_led_bright = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const ce_go_get_led_state = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const ce_go_led_brightness = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_BUILDIN_LED + Blockly.Msg.MIXLY_BRIGHTNESS + '(0-10)');\n }\n};\n\n\nexport const ce_go_stepper_keep = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"F\"],\n [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"L\"],\n [Blockly.Msg.blockpy_right, \"R\"]\n ]), \"VAR\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const ce_go_stepper_stop = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const ce_go_dc_motor = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLYCAR_WHEEL_LEFT, \"0\"],\n [Blockly.Msg.MIXLYCAR_WHEEL_RIGHT, \"1\"],\n [Blockly.Msg.ME_GO_MOTOR_EXTERN, \"2\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.ROTATION_FORWARD, \"CW\"],\n [Blockly.Msg.ROTATION_BACKWARD, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const ce_go_hall_attachInterrupt = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_INTERRUPT)\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const ce_go_hall_initialize = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([['turns', \"turns\"], ['distance', \"distance\"], ['turns,distance', 'all']]), \"args\");\n this.appendValueInput('num')\n .setCheck(Number)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const ce_go_hall_data = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([['turns', \"turns\"], ['distance', \"distance\"], ['speed', 'speed']]), \"args\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const ce_go_pin_near_line = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"[0]\"],\n [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"[3]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const ce_go_pin_near = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT, \"[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT, \"[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK, \"[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK, \"[2]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_PROXIMITY_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const ce_go_pin_near_state_change = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, \"AS\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, \"LP\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, \"OA\"],\n [Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY, \"LS\"],\n [Blockly.Msg.ME_GO_SENSOR_MODE_OFF, \"CL\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_mixgome_eulerangles = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_GESTURE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.ME_GO_PITCH, '[0]'],\n [Blockly.Msg.ME_GO_ROLL, '[1]'],\n [Blockly.Msg.ME_GO_PITCH + ', ' + Blockly.Msg.ME_GO_ROLL, '']\n ]), 'angle');\n // this.appendDummyInput(\"\")\n // .appendField(Blockly.Msg.BOARD_DIRECTION)\n // .appendField(new Blockly.FieldDropdown([\n // [Blockly.Msg.OLED_VER,'True'],\n // [Blockly.Msg.OLED_HOR,'False'],\n // ]),'dir');\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\nexport const ce_go_pin_light = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"[0]\"],\n [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"[3]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR;\n return mode0 + mode1\n });\n }\n};\n\n//educore car\nexport const educore_car = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CAR);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const educore_car_stepper_keep = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendValueInput('car');\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"forward\"],\n // [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"turn_left\"],\n [Blockly.Msg.blockpy_right, \"turn_right\"]\n ]), \"VAR\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_SPEED);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const educore_car_stepper_stop = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendValueInput('car');\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"stop\"]\n // [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const educore_car_pin_near_line = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendValueInput('car');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"1\"],\n // [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n // [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"2\"]\n // [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_car_pin_near = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendValueInput('car');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Blockly.Msg.MIXGO_PROXIMITY_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst COMMUNICATE_HUE = 140\n\nexport const communicate_i2c_onboard = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LED_ON_BOARD + \"I2C\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_spi_onboard = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LED_ON_BOARD + \"SPI\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_i2c_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('SUB')\n .appendField(\"I2C \" + Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n\n this.appendValueInput(\"TX\", Number)\n .appendField(\"SCL\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"RX\", Number)\n .appendField(\"SDA\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('freq')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_I2C_INIT);\n }\n};\n\nexport const communicate_i2c_read = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField(\"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('address')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_RNUMBER);\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_MATH_BYTE);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_READ);\n }\n}\n\nexport const communicate_i2c_write = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField(\"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('address')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_WNUMBER);\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const communicate_i2c_scan = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField(\"I2C\")\n .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_I2C_SCAN1 + Blockly.Msg.MIXLY_ESP32_I2C_SCAN2)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_I2C_SCAN);\n }\n}\n\nexport const communicate_spi_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField(Blockly.Msg.MIXLY_ESP32_SPI_INIT);\n this.appendValueInput('freq')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SERIAL_BEGIN);\n this.appendValueInput('sck')\n .setCheck(Number)\n .appendField('SCK');\n this.appendValueInput('mosi')\n .setCheck(Number)\n .appendField('MOSI');\n this.appendValueInput('miso')\n .setCheck(Number)\n .appendField('MISO');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_INIT_TOOLTIP);\n }\n};\n\nexport const communicate_spi_set = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField(\"SPI\")\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_SERIAL_BEGIN);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_SET);\n }\n};\n\nexport const communicate_spi_buffer = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_SET + Blockly.Msg.MIXLY_ESP32_SPI_BUFFER);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_BUFFER_SET);\n }\n};\n\nexport const communicate_spi_read = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SERIAL_READ);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.LANG_MATH_BYTE)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_READ);\n }\n}\n\nexport const communicate_spi_read_output = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SERIAL_READ);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.LANG_MATH_BYTE + ' ' + Blockly.Msg.MIXLY_ESP32_SPI_OUTPUT);\n this.appendValueInput('val')\n .setCheck(Number);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_READ_OUTPUT);\n }\n}\n\nexport const communicate_spi_readinto = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck('var')\n .appendField(Blockly.Msg.MIXLY_SERIAL_READ + Blockly.Msg.MIXLY_ESP32_SPI_BUFFER);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_READINTO);\n }\n}\n\nexport const communicate_spi_readinto_output = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck('var')\n .appendField(Blockly.Msg.MIXLY_SERIAL_READ + Blockly.Msg.MIXLY_ESP32_SPI_BUFFER);\n this.appendValueInput('val')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_SPI_OUTPUT);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_READINTO_OUTPUT);\n }\n}\n\nexport const communicate_spi_write = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_WRITE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_WRITE);\n }\n};\n\nexport const communicate_spi_write_readinto = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('SPI');\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_WRITE)\n // .appendField(new Blockly.FieldDropdown([\n // [Blockly.Msg.LANG_MATH_BYTE, \"byte\"],\n // [Blockly.Msg.MIXLY_ESP32_SPI_BUFFER, \"buffer\"]\n // ]), \"op\");\n this.appendValueInput('val')\n .setCheck('var')\n .appendField(Blockly.Msg.MIXLY_ESP32_BUFFER_READ);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SPI_WRITE_READINTO);\n }\n};\n\nexport const communicate_i2c_master_read = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"I2C\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_READ);\n this.setOutput(true, Number);\n }\n};\n\nexport const communicate_i2c_available = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"I2C\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_READ + Blockly.Msg.MIXLY_ESP32_SUCCESS);\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_I2C_AVAILABLE);\n }\n};\n\nexport const i2c_slave_onreceive = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_I2C_SLAVE_ONRECEIVE)\n .setCheck(Number);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const communicate_ow_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('OneWire ' + Blockly.Msg.MIXLY_SETUP);\n this.appendValueInput('BUS')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_INIT);\n }\n};\n\nexport const communicate_ow_scan = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('OneWire');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_ONEWIRE_SCAN);\n this.setOutput(true, 'List');\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_SCAN);\n }\n};\n\nexport const communicate_ow_read = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('OneWire');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_ONEWIRE_READ);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_READ);\n }\n};\n\nexport const communicate_ow_write = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('OneWire');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_WRITE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.LANG_MATH_STRING, \"write\"],\n [Blockly.Msg.LANG_MATH_BYTE, \"writebyte\"]\n ]), \"op\");\n this.appendValueInput('byte')\n .setCheck([Number, String]);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_WRITE);\n }\n};\n\nexport const communicate_ow_select = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField('OneWire')\n .setCheck('var')\n this.appendValueInput('byte')\n .setCheck(String)\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET)\n .appendField(\"ROM\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_SELECT);\n }\n};\n\n\nexport const communicate_ow_reset = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField('OneWire')\n .setCheck('var')\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_turtle_reset);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setOutput(false);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_OW_RESET);\n }\n};\n\nexport const communicate_ir_recv_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('PIN')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_IR_RECEIVE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_IR_INPUT1, \"8\"],\n [Blockly.Msg.MIXLY_IR_INPUT2, \"16\"],\n [Blockly.Msg.MIXLY_IR_INPUT3, \"0\"],\n [Blockly.Msg.MIXLY_TR_SEND_RC, \"RC5\"]\n ]), \"type\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO + Blockly.Msg.MIXLY_ESP32_ONENET_SUB);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const internal_variable = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXlY_RECV_FUN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_IR_CMD_CODE, \"0\"],\n [Blockly.Msg.MIXLY_IR_ADDR_CODE, \"1\"],\n [Blockly.Msg.MIXLY_IR_RAW_CODE, \"2\"],\n [Blockly.Msg.MIXLY_IR_PULSE, \"3\"]\n ]), \"index\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const recv_fun = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXlY_RECV_FUN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MILY_PAUSE, \"True\"],\n [Blockly.Msg.MIXLY_RECOVER, \"False\"]\n ]), \"en\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const ir_whether_recv = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXlY_RECV_FUN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IR_WHETHER_RECV);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const ir_recv_timeout = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('time')\n .appendField(Blockly.Msg.MIXlY_RECV_FUN)\n .appendField(Blockly.Msg.MIXLY_IR_TIMEOUT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MILLISECOND);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_ir_send_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('PIN')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_IR_SEND)\n .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_IR_SEND_samsung1, \"False\"],\n [Blockly.Msg.MIXLY_IR_SEND_samsung2, \"True\"],\n [Blockly.Msg.MIXLY_TR_SEND_RC, \"RC5\"]\n ]), \"type\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER);\n this.appendValueInput('power');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MATH_QUYU_SYMBOL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\n\nexport const ir_transmit_conventional_data = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IR_SEND);\n this.appendValueInput('cmd')\n .appendField(Blockly.Msg.MIXLY_IR_CMD_CODE);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_IR_ADDR_CODE);\n this.appendValueInput('toggle')\n .appendField(Blockly.Msg.MIXLY_CONTROL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TRANSMIT_CONVEN_DATA);\n }\n};\n\nexport const ir_transmit_study_code = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IR_SEND);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_IR_PULSE)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const ir_transmit_raw_code = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IR_SEND);\n this.appendValueInput('raw')\n .appendField(Blockly.Msg.MIXLY_IR_RAW_CODE)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\n\nexport const ir_transmit_busy = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IR_TRANSMIT_DONE);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_bluetooth_central_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catEthernet_init + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS + Blockly.Msg.MSG.catBLE_UART);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const communicate_bluetooth_peripheral_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catEthernet_init + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS + Blockly.Msg.MSG.catBLE_HID);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const communicate_bluetooth_scan = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_ONEWIRE_SCAN + Blockly.Msg.MIXLY_BLUETOOTH);\n this.setOutput(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_READ);\n }\n}\n\nexport const communicate_bluetooth_mac = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_MAC);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_bluetooth_connect = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TEXT_JOIN + Blockly.Msg.MIXLY_BLUETOOTH)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_NAME, \"name\"],\n [Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS, \"mac\"]\n ]), \"mode\");\n\n this.appendValueInput('data')\n .setCheck(String);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const communicate_bluetooth_disconnect = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_DISCONNECT_ONENET);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const communicate_bluetooth_send = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_SEND_DATA);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.HTML_BODY);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const communicate_bluetooth_is_connected = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BLUETOOTH + Blockly.Msg.MIXLY_EMQX_IS_CONNECT);\n this.setOutput(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_READ);\n }\n}\n\nexport const communicate_bluetooth_recv = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendValueInput('METHOD')\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV)\n .appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO + Blockly.Msg.MIXLY_ESP32_ONENET_SUB);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP);\n }\n};\n\nexport const communicate_bluetooth_recv_only = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV)\n this.setOutput(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP);\n }\n};\n\nexport const communicate_bluetooth_handle = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MIXLY_BLE_HANDLE)\n this.appendValueInput('METHOD')\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV)\n .appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO + Blockly.Msg.MIXLY_ESP32_ONENET_SUB);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n //this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP);\n }\n};\n\n//espnow\nexport const communicate_espnow_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ' + Blockly.Msg.MIXLY_SETUP);\n this.appendValueInput('CHNL')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_CHANNEL);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TX_POWER)\n .appendField(new Blockly.FieldDropdown([[\"20\", \"20\"], [\"18\", \"18\"], [\"16\", \"16\"], [\"15\", \"15\"], [\"14\", \"14\"], [\"13\", \"13\"], [\"11\", \"11\"], [\"8\", \"8\"], [\"7\", \"7\"], [\"5\", \"5\"], [\"2\", \"2\"]]), 'op');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const communicate_espnow_init_new = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ' + Blockly.Msg.MIXLY_SETUP);\n this.appendValueInput('CHNL')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_CHANNEL);\n this.appendValueInput('DB')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER);\n this.appendDummyInput()\n .appendField('db');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MP_ESPNOW_INIT_TOOLTIP);\n }\n};\n\nexport const network_espnow_mac = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_MAC);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const network_espnow_info = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_INFO);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const network_espnow_recv = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [\"(\" + Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS + \", \" + Blockly.Msg.OLED_STRING + \")\", \"\"],\n [Blockly.Msg.MIXLY_ETHERNET_MAC_ADDRESS, \"[0]\"],\n [Blockly.Msg.OLED_STRING, \"[1]\"]\n ]), \"mode\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const network_espnow_send = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ');\n this.appendValueInput('mac')\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_SEND_MAC);\n this.appendValueInput('content')\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_SEND);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP);\n }\n};\n\nexport const network_espnow_recv_handle = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('ESPnow ');\n this.appendValueInput('METHOD')\n .appendField(Blockly.Msg.MIXLY_EMQX_SET_METHOD);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n//radio\nexport const espnow_radio_channel = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_INIT);\n this.appendValueInput('CHNL')\n .setCheck(Number);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const espnow_radio_txpower = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_MP_ESPNOW_RADIO + Blockly.Msg.MIXLY_TX_POWER)\n .appendField(new Blockly.FieldDropdown([[\"20\", \"20\"], [\"18\", \"18\"], [\"16\", \"16\"], [\"15\", \"15\"], [\"14\", \"14\"], [\"13\", \"13\"], [\"11\", \"11\"], [\"8\", \"8\"], [\"7\", \"7\"], [\"5\", \"5\"], [\"2\", \"2\"]]), 'op');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const espnow_radio_channel_new = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_INIT);\n this.appendValueInput('CHNL')\n .setCheck(Number);\n this.appendValueInput('DB')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BLE_POWER);\n this.appendDummyInput()\n .appendField('db');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_INIT_TOOLTIP);\n }\n};\n\nexport const espnow_radio_on_off = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, \"True\"],\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, \"False\"]\n ]), 'on_off')\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const espnow_radio_send = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND);\n this.appendValueInput('send')\n .setCheck(String);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXGO_ESPNOW_SEND_TOOLTIP);\n }\n};\n\nexport const espnow_radio_rec = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO)\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const espnow_radio_recv_msg = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_RECEIVED_MSG);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const espnow_radio_recv = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n }\n};\n\nexport const espnow_radio_recv_certain_msg = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN)\n .appendField('\"')\n .appendField(new Blockly.FieldTextInput('on'), 'msg')\n .appendField('\"')\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n }\n};\n\nexport const espnow_radio_recv_new = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n }\n};\n\nexport const espnow_radio_recv_certain_msg_new = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MP_ESPNOW_RADIO_MSG_RECEIVED_CERTAIN)\n .appendField('\"')\n .appendField(new Blockly.FieldTextInput('on'), 'msg')\n .appendField('\"')\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n }\n};\n\nexport const lora_init = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('SUB')\n .appendField('Lora' + Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.appendValueInput('SPISUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"SPI\")\n .setCheck(\"var\");\n this.appendValueInput('PINSUB')\n .appendField(\"CS\")\n this.appendValueInput('frequency')\n .appendField(Blockly.Msg.MIXLY_FREQUENCY)\n this.appendValueInput('rate')\n .appendField(Blockly.Msg.MIXLY_CODE_RATE)\n this.appendValueInput('factor')\n .appendField(Blockly.Msg.MIXLY_SPREADING_FACTOR)\n this.appendValueInput('power')\n .appendField(Blockly.Msg.MIXLY_TX_POWER)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SIGNAL_BANDWIDTH)\n .appendField(new Blockly.FieldDropdown([\n ['7800', '7800'],\n ['10400', '10400'],\n ['15600', '15600'],\n ['20800', '20800'],\n ['31250', '31250'],\n ['41700', '41700'],\n ['62500', '62500'],\n ['125000', '125000'],\n ['250000', '250000'],\n ['500000', '500000']\n ]), 'bandwidth')\n this.setFieldValue(\"125000\", \"bandwidth\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_LORA_INIT_TOOLTIP);\n }\n};\n\nexport const lora_packet = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('Lora ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_PACKAGE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SIGNAL_STRENGTH, 'packet_rssi'],\n [Blockly.Msg.MIXLY_SIGNAL_NOISE_RATE, 'packet_snr']\n ]), 'key')\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const lora_send = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField('Lora ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SEND_DATA);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n //this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_I2C_WRITE);\n }\n}\n\nexport const lora_recv = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('VAR')\n .setCheck('var')\n .appendField('Lora ');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_ESPNOW_RECV)\n this.setOutput(true, String);\n this.setInputsInline(true);\n }\n};\n\nexport const urequests_get = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput(\"DOMAIN\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n this.appendDummyInput(\"\")\n\n .appendField(Blockly.Msg.blockpy_REQUESTS_GET)\n .appendField(new Blockly.FieldTextInput('response'), 'VAR')\n\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.blockpy_REQUESTS_GET_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n\n}\n\n\nexport const urequests_attribute = {\n init: function () {\n this.appendValueInput('VAL')\n\n var attr =\n [[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_HEADER, 'headers'], [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'], [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text']\n , [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES, 'cookies'], [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']];\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown(attr), 'ATTR')\n\n\n this.setInputsInline(true);\n this.setOutput(true, String);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('DIR');\n var TOOLTIPS = {\n 'clear': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,\n 'reset': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_RESET,\n 'home': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_HOME\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\n\n\nexport const urequests_method = {\n init: function () {\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n var method = [\n ['get', 'get'],\n ['post', 'post'],\n ['put', 'put'],\n ['delete', 'delete'],\n ['head', 'head'],\n ['option', 'option']\n ];\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_CONDUCT)\n .appendField(new Blockly.FieldDropdown(method), 'DIR')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_REQUESTS)\n this.setOutput(true);\n this.setInputsInline(true);\n\n }\n};\n\nexport const i2c_init = communicate_i2c_init;\nexport const i2c_read = communicate_i2c_read;\nexport const i2c_write = communicate_i2c_write;\nexport const i2c_scan = communicate_i2c_scan;\nexport const spi_init = communicate_spi_init;\nexport const spi_set = communicate_spi_set;\nexport const spi_buffer = communicate_spi_buffer;\nexport const spi_read = communicate_spi_read;\nexport const spi_read_output = communicate_spi_read_output;\nexport const spi_readinto = communicate_spi_readinto;\nexport const spi_readinto_output = communicate_spi_readinto_output;\nexport const spi_write = communicate_spi_write;\nexport const spi_write_readinto = communicate_spi_write_readinto;\nexport const i2c_master_reader2 = communicate_i2c_master_read;\nexport const i2c_available = communicate_i2c_available;","import * as Blockly from 'blockly/core';\n\nconst LOOPS_HUE = 120//'#EB8045';\n\nexport const base_setup = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP);\n this.appendStatementInput('DO')\n .appendField('');\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_SETUP);\n }\n};\n\nexport const controls_delay = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DELAY)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_SECOND, \"s\"], [Blockly.Msg.MIXLY_mSecond, \"ms\"], [Blockly.Msg.MIXLY_uSecond, \"us\"]]), 'Time');\n this.appendValueInput(\"DELAY_TIME\", Number)\n .setCheck(Number);\n this.setFieldValue('ms', 'Time')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_DELAY);\n }\n};\n\nexport const Panic_with_status_code = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput(\"STATUS_CODE\", Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Panic_with_status_code)\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n // this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Panic_with_status_code);\n }\n};\n\nexport const reset = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_micro);\n this.setPreviousStatement(true);\n // this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_micro);\n }\n};\n\nexport const controls_for = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_WITH)\n .appendField(new Blockly.FieldTextInput('i'), 'VAR');\n this.appendValueInput('FROM')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM);\n this.appendValueInput('TO')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO);\n this.appendValueInput('STEP')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEP);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace('%1',\n thisBlock.getFieldValue('VAR'));\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const controls_whileUntil = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('BOOL')\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT)\n .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'MODE');\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('MODE');\n var TOOLTIPS = {\n 'WHILE': Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,\n 'UNTIL': Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL\n };\n return TOOLTIPS[op];\n });\n }\n};\n\ncontrols_whileUntil.OPERATORS = [\n [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'],\n [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL']\n];\n\nexport const controls_flow_statements = {\n init: function () {\n this.setColour(LOOPS_HUE);\n var dropdown = new Blockly.FieldDropdown(this.OPERATORS);\n this.appendDummyInput()\n .appendField(dropdown, 'FLOW')\n .appendField(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP);\n this.setPreviousStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('FLOW');\n var TOOLTIPS = {\n 'BREAK': Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,\n 'CONTINUE': Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE\n };\n return TOOLTIPS[op];\n });\n },\n onchange: function () {\n if (!this.workspace) {\n // Block has been deleted.\n return;\n }\n var legal = false;\n // Is the block nested in a control statement?\n var block = this;\n do {\n if (block.type == 'controls_repeat' ||\n block.type == 'controls_for' ||\n block.type == 'controls_forEach' ||\n block.type == 'controls_repeat_ext' ||\n block.type == 'controls_whileUntil') {\n legal = true;\n break;\n }\n block = block.getSurroundParent();\n } while (block);\n if (legal) {\n this.setWarningText(null);\n } else {\n this.setWarningText(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING);\n }\n }\n};\n\ncontrols_flow_statements.OPERATORS = [\n [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'],\n [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE']\n];\n\nexport const controls_millis = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RUNTIME);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_mSecond, \"ms\"], [Blockly.Msg.MIXLY_uSecond, \"us\"]]), 'Time');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_RUNTIME);\n }\n};\n\nexport const controls_if = {\n /**\n * Block for if/elseif/else condition.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);\n this.setColour(LOOPS_HUE);\n this.appendValueInput('IF0')\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);\n this.appendStatementInput('DO0')\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setHelpUrl(\"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#if\");\n this.setMutator(new Blockly.icons.MutatorIcon(['controls_if_elseif',\n 'controls_if_else'], this));\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n if (!thisBlock.elseifCount_ && !thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;\n } else if (!thisBlock.elseifCount_ && thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;\n } else if (thisBlock.elseifCount_ && !thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;\n } else if (thisBlock.elseifCount_ && thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_4;\n }\n return '';\n });\n this.elseifCount_ = 0;\n this.elseCount_ = 0;\n },\n /**\n * Create XML to represent the number of else-if and else inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n if (!this.elseifCount_ && !this.elseCount_) {\n return null;\n }\n var container = document.createElement('mutation');\n if (this.elseifCount_) {\n container.setAttribute('elseif', this.elseifCount_);\n }\n if (this.elseCount_) {\n container.setAttribute('else', 1);\n }\n return container;\n },\n /**\n * Parse XML to restore the else-if and else inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var containerBlock = this;\n var valueConnections = [];\n var statementConnections = [];\n // var elseStatementConnection = null;\n if (this.elseCount_) {\n // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection)\n // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection;\n this.removeInput('ELSE');\n }\n for (var i = this.elseifCount_; i > 0; i--) {\n if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection)\n valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection);\n else\n valueConnections[i] = null;\n this.removeInput('IF' + i);\n if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection)\n statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection);\n else\n statementConnections[i] = null;\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10);\n this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10);\n //this.compose(containerBlock);\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF);\n this.appendStatementInput('DO' + i)\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);\n }\n for (var i = valueConnections.length - 2; i > 0; i--) {\n if (valueConnections[i])\n valueConnections[i].reconnect(this, 'IF' + i);\n }\n for (var i = statementConnections.length - 2; i > 0; i--) {\n if (statementConnections[i])\n statementConnections[i].reconnect(this, 'DO' + i);\n }\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock = workspace.newBlock('controls_if_if');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 1; i <= this.elseifCount_; i++) {\n var elseifBlock = workspace.newBlock('controls_if_elseif');\n elseifBlock.initSvg();\n connection.connect(elseifBlock.previousConnection);\n connection = elseifBlock.nextConnection;\n }\n if (this.elseCount_) {\n var elseBlock = workspace.newBlock('controls_if_else');\n elseBlock.initSvg();\n connection.connect(elseBlock.previousConnection);\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n // Disconnect the else input blocks and remove the inputs.\n if (this.elseCount_) {\n this.removeInput('ELSE');\n }\n this.elseCount_ = 0;\n // Disconnect all the elseif input blocks and remove the inputs.\n for (var i = this.elseifCount_; i > 0; i--) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = 0;\n // Rebuild the block's optional inputs.\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_if_elseif':\n this.elseifCount_++;\n valueConnections.push(clauseBlock.valueConnection_);\n statementConnections.push(clauseBlock.statementConnection_);\n break;\n case 'controls_if_else':\n this.elseCount_++;\n elseStatementConnection = clauseBlock.statementConnection_;\n break;\n default:\n throw Error('Unknown block type: ' + clauseBlock.type);\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n\n this.updateShape_();\n // Reconnect any child blocks.\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 1;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_if_elseif':\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n clauseBlock.valueConnection_ =\n inputIf && inputIf.connection.targetConnection;\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n i++;\n break;\n case 'controls_if_else':\n var inputDo = this.getInput('ELSE');\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n break;\n default:\n throw 'Unknown block type.';\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Reconstructs the block with all child blocks attached.\n */\n rebuildShape_: function () {\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n\n if (this.getInput('ELSE')) {\n elseStatementConnection = this.getInput('ELSE').connection.targetConnection;\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n console.log(inputIf.connection.targetConnection);\n valueConnections.push(inputIf.connection.targetConnection);\n statementConnections.push(inputDo.connection.targetConnection);\n i++;\n }\n this.updateShape_();\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @this Blockly.Block\n * @private\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('ELSE')) {\n this.removeInput('ELSE');\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n i++;\n }\n // Rebuild block.\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Number, Boolean])\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_ELSEIF']);\n this.appendStatementInput('DO' + i)\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_THEN']);\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_ELSE']);\n }\n },\n /**\n * Reconnects child blocks.\n * @param {!Array} valueConnections List of value\n * connectsions for if input.\n * @param {!Array} statementConnections List of\n * statement connections for do input.\n * @param {?Blockly.RenderedConnection} elseStatementConnection Statement\n * connection for else input.\n */\n reconnectChildBlocks_: function (valueConnections, statementConnections,\n elseStatementConnection) {\n for (var i = 1; i <= this.elseifCount_; i++) {\n valueConnections[i] && Blockly.Mutator.reconnect(this, 'IF' + i);\n statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i);\n }\n elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE');\n }\n};\n\nexport const controls_if_if = {\n /**\n * Mutator block for if container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_IF_TITLE_IF);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const controls_if_elseif = {\n /**\n * Mutator bolck for else-if condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const controls_if_else = {\n /**\n * Mutator block for else condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);\n this.setPreviousStatement(true);\n this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\n\nexport const controls_end_program = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CONTROL_END_PROGRAM);\n this.setPreviousStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_CONTROL_END_PROGRAM);\n }\n};\n\n\nexport const controls_forEach = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('LIST')\n .setCheck(['List', String])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_ITEM)\n .appendField(new Blockly.FieldTextInput('i'), 'VAR');\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace('%1',\n thisBlock.getFieldValue('VAR'));\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const raw_block = {\n // Container.\n init: function () {\n this.setColour(LOOPS_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendDummyInput()\n .appendField('Code Block:');\n this.appendDummyInput()\n .appendField(new Blockly.FieldMultilineInput('12345'), 'TEXT');\n }\n};\n\nexport const base_type = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput(\"DATA\")\n .appendField(Blockly.Msg.MICROBIT_PYTHON_TYPE);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MICROBIT_PYTHON_TYPE);\n }\n};\n\nexport const controls_TypeLists = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.LANG_MATH_INT, \"int\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_FLOAT, \"float\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING, \"str\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, \"list\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, \"tuple\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT, \"dict\"],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, \"set\"],\n // [Blockly.Msg.MIXLY_MICROBIT_IMAGE,\"image\"],\n [Blockly.Msg.LOGIC_NULL, \"NoneType\"]]), \"type\");\n //整数、浮点数、字符串、列表、元组、字典、集合、图像不太对, unfinished\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('type');\n var mode0 = Blockly.Msg.MICROBIT_controls_TypeLists;\n var TOOLTIPS = {\n 'int': Blockly.Msg.LANG_MATH_INT,\n 'float': Blockly.Msg.MIXLY_MICROBIT_TYPE_FLOAT,\n 'str': Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING,\n 'list': Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST,\n 'tuple': Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE,\n 'dict': Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT,\n 'set': Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,\n 'image': Blockly.Msg.MIXLY_MICROBIT_IMAGE,\n 'NoneType': Blockly.Msg.LOGIC_NULL\n };\n return mode0 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const controls_uname = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME);\n\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME);\n }\n};\n","import * as Blockly from 'blockly/core';\n\nconst DISPLAY_HUE = 180;\n\nconst FIELD_COLOUR_CONFIG = {\n colourOptions: ['#f00', '#000'],\n columns: 2\n};\n\n//var IMG = [[\"HEART\", \"HEART\"],[\"HEART_SMALL\", \"HEART_SMALL\"],[\"HAPPY\", \"HAPPY\"],[\"SAD\", \"SAD\"],[\"SMILE\", \"SMILE\"],[\"SILLY\", \"SILLY\"],[\"FABULOUS\", \"FABULOUS\"],[\"SURPRISED\", \"SURPRISED\"],[\"ASLEEP\", \"ASLEEP\"],[\"ANGRY\", \"ANGRY\"],[\"CONFUSED\", \"CONFUSED\"],[\"NO\", \"NO\"],[\"YES\", \"YES\"],[\"LEFT_ARROW\", \"LEFT_ARROW\"],[\"RIGHT_ARROW\", \"RIGHT_ARROW\"],[\"DRESS\", \"DRESS\"],[\"TRANSFORMERS\", \"TRANSFORMERS\"],[\"SCISSORS\", \"SCISSORS\"],[\"EXIT\", \"EXIT\"],[\"TREE\", \"TREE\"],[\"PACMAN\", \"PACMAN\"],[\"TARGET\", \"TARGET\"],[\"TSHIRT\", \"TSHIRT\"],[\"ROLLERSKATE\", \"ROLLERSKATE\"],[\"DUCK\", \"DUCK\"],[\"HOUSE\", \"HOUSE\"],[\"TORTOISE\", \"TORTOISE\"],[\"BUTTERFLY\", \"BUTTERFLY\"],[\"STICKFIGURE\", \"STICKFIGURE\"],[\"GHOST\", \"GHOST\"],[\"PITCHFORK\", \"PITCHFORK\"],[\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"],[\"COW\", \"COW\"],[\"RABBIT\", \"RABBIT\"],[\"SQUARE_SMALL\", \"SQUARE_SMALL\"],[\"SQUARE\", \"SQUARE\"],[\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"],[\"DIAMOND\", \"DIAMOND\"],[\"CHESSBOARD\", \"CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"],[\"TRIANGLE\", \"TRIANGLE\"],[\"SNAKE\", \"SNAKE\"],[\"UMBRELLA\", \"UMBRELLA\"],[\"SKULL\", \"SKULL\"],[\"GIRAFFE\", \"GIRAFFE\"],[\"SWORD\", \"SWORD\"]];\n\nexport const display_clear = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Clear_display\n });\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\nexport const display_get_pixel = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS);\n }\n};\n\nexport const display_bright_point = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput(\"STAT\")\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\nexport const monitor_show_string = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [Blockly.Msg.MIXLY_ESP32_MONITOR_SCROLL, 'scroll']]), \"MODE\")\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.OLED_DRAWSTR;\n var TOOLTIPS = {\n 'show': Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE,\n 'scroll': Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING\n };\n return TOOLTIPS[mode] + mode0;\n });\n }\n};\n\nexport const monitor_show_scroll_string = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [Blockly.Msg.MIXLY_ESP32_MONITOR_SCROLL, 'scroll']]), \"MODE\")\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DELAY);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.OLED_DRAWSTR;\n var TOOLTIPS = {\n 'show': Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE,\n 'scroll': Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING\n };\n return TOOLTIPS[mode] + mode0;\n });\n }\n};\n\n\nexport const display_show_static = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_STATIC);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MUSIC_SHOW_STATIC);\n }\n};\n\nexport const microbit_display_show_image = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('PIN', String)\n .setCheck(\"esp32_image\")\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP);\n }\n};\n\n\n\nexport const esp32_display_show_default_image = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"InputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show\",\n \"tooltip\": \"Show the referenced image on the display.\",\n \"message0\": Blockly.Msg.OLED_BITMAP,\n \"args0\": [{\n \"name\": \"image\",\n \"options\": [[\"HEART\", \"HEART\"], [\"HEART_SMALL\", \"HEART_SMALL\"], [\"HAPPY\", \"HAPPY\"], [\"SAD\", \"SAD\"], [\"SMILE\", \"SMILE\"], [\"SILLY\", \"SILLY\"], [\"FABULOUS\", \"FABULOUS\"], [\"SURPRISED\", \"SURPRISED\"], [\"ASLEEP\", \"ASLEEP\"], [\"ANGRY\", \"ANGRY\"], [\"CONFUSED\", \"CONFUSED\"], [\"NO\", \"NO\"], [\"YES\", \"YES\"], [\"LEFT_ARROW\", \"LEFT_ARROW\"], [\"RIGHT_ARROW\", \"RIGHT_ARROW\"], [\"DRESS\", \"DRESS\"], [\"TRANSFORMERS\", \"TRANSFORMERS\"], [\"SCISSORS\", \"SCISSORS\"], [\"EXIT\", \"EXIT\"], [\"TREE\", \"TREE\"], [\"PACMAN\", \"PACMAN\"], [\"TARGET\", \"TARGET\"], [\"TSHIRT\", \"TSHIRT\"], [\"ROLLERSKATE\", \"ROLLERSKATE\"], [\"DUCK\", \"DUCK\"], [\"HOUSE\", \"HOUSE\"], [\"TORTOISE\", \"TORTOISE\"], [\"BUTTERFLY\", \"BUTTERFLY\"], [\"STICKFIGURE\", \"STICKFIGURE\"], [\"GHOST\", \"GHOST\"], [\"PITCHFORK\", \"PITCHFORK\"], [\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"], [\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"], [\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"], [\"COW\", \"COW\"], [\"RABBIT\", \"RABBIT\"], [\"SQUARE_SMALL\", \"SQUARE_SMALL\"], [\"SQUARE\", \"SQUARE\"], [\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"], [\"DIAMOND\", \"DIAMOND\"], [\"CHESSBOARD\", \"CHESSBOARD\"], [\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"], [\"TRIANGLE\", \"TRIANGLE\"], [\"SNAKE\", \"SNAKE\"], [\"UMBRELLA\", \"UMBRELLA\"], [\"SKULL\", \"SKULL\"], [\"GIRAFFE\", \"GIRAFFE\"], [\"SWORD\", \"SWORD\"]],\n \"type\": \"field_dropdown\"\n }\n ]\n });\n }\n};\n\n\nexport const esp32_display_show_animation = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Animate_images,\n \"args0\": [{\n \"check\": \"List\",\n \"type\": \"input_value\",\n \"name\": \"images\"\n }, {\n \"type\": \"input_value\",\n \"name\": \"delay\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": true,\n \"type\": \"field_checkbox\",\n \"name\": \"wait\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"loop\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"clear\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay + Blockly.Msg.MIXLY_MICROBIT_Animate_images1);\n }\n};\n\nexport const esp32_display_scroll = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll\",\n \"tooltip\": \"Scroll the referenced text across the display.\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Scroll_message,\n \"args0\": [{\n \"check\": \"String\",\n \"type\": \"input_value\",\n \"name\": \"message\"\n }\n ]\n });\n }\n};\n\nexport const esp32_display_on = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_Turn_on_display, 'on'], [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, 'off']]), 'on_off')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_monitor);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('on_off');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_monitor;\n var TOOLTIPS = {\n 'on': Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,\n 'off': Blockly.Msg.MIXLY_MICROBIT_Turn_off_display\n };\n return TOOLTIPS[mode] + mode0;\n });\n }\n};\n\nexport const esp32_display_off = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off\",\n \"tooltip\": \"Turn off the display.\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Turn_off_display\n });\n }\n};\n\nexport const esp32_display_is_on = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"output\": \"Boolean\",\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Display_is_on\n });\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Display_is_on1);\n }\n};\n\nexport const display_image_builtins = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"args0\": [{\n \"name\": \"image\",\n \"options\": [[\"HEART\", \"HEART\"], [\"HEART_SMALL\", \"HEART_SMALL\"], [\"HAPPY\", \"HAPPY\"], [\"SAD\", \"SAD\"], [\"SMILE\", \"SMILE\"], [\"SILLY\", \"SILLY\"], [\"FABULOUS\", \"FABULOUS\"], [\"SURPRISED\", \"SURPRISED\"], [\"ASLEEP\", \"ASLEEP\"], [\"ANGRY\", \"ANGRY\"], [\"CONFUSED\", \"CONFUSED\"], [\"NO\", \"NO\"], [\"YES\", \"YES\"], [\"LEFT_ARROW\", \"LEFT_ARROW\"], [\"RIGHT_ARROW\", \"RIGHT_ARROW\"], [\"DRESS\", \"DRESS\"], [\"TRANSFORMERS\", \"TRANSFORMERS\"], [\"SCISSORS\", \"SCISSORS\"], [\"EXIT\", \"EXIT\"], [\"TREE\", \"TREE\"], [\"PACMAN\", \"PACMAN\"], [\"TARGET\", \"TARGET\"], [\"TSHIRT\", \"TSHIRT\"], [\"ROLLERSKATE\", \"ROLLERSKATE\"], [\"DUCK\", \"DUCK\"], [\"HOUSE\", \"HOUSE\"], [\"TORTOISE\", \"TORTOISE\"], [\"BUTTERFLY\", \"BUTTERFLY\"], [\"STICKFIGURE\", \"STICKFIGURE\"], [\"GHOST\", \"GHOST\"], [\"PITCHFORK\", \"PITCHFORK\"], [\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"], [\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"], [\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"], [\"COW\", \"COW\"], [\"RABBIT\", \"RABBIT\"], [\"SQUARE_SMALL\", \"SQUARE_SMALL\"], [\"SQUARE\", \"SQUARE\"], [\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"], [\"DIAMOND\", \"DIAMOND\"], [\"CHESSBOARD\", \"CHESSBOARD\"], [\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"], [\"TRIANGLE\", \"TRIANGLE\"], [\"SNAKE\", \"SNAKE\"], [\"UMBRELLA\", \"UMBRELLA\"], [\"SKULL\", \"SKULL\"], [\"GIRAFFE\", \"GIRAFFE\"], [\"SWORD\", \"SWORD\"]],\n \"type\": \"field_dropdown\"\n }\n ],\n \"output\": [\"esp32_image\", \"List\"],\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes\",\n \"tooltip\": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1,\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Built_in_image\n });\n }\n};\n\n\nexport const display_image_create = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"args0\": [{\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"00\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"01\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"02\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"03\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"04\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"05\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"06\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"07\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"08\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"09\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"0f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"10\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"11\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"12\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"13\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"14\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"15\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"16\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"17\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"18\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"19\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"1f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"20\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"21\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"22\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"23\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"24\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"25\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"26\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"27\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"28\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"29\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"2f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"30\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"31\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"32\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"33\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"34\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"35\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"36\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"37\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"38\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"39\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"3f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"40\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"41\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"42\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"43\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"44\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"45\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"46\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"47\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"48\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"49\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"4f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"50\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"51\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"52\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"53\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"54\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"55\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"56\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"57\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"58\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"59\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"5f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"60\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"61\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"62\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"63\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"64\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"65\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"66\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"67\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"68\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"69\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"6f\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"70\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"71\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"72\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"73\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"74\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"75\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"76\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"77\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"78\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"79\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7a\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7b\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7c\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7d\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7e\"\n }, {\n \"colour\": \"#000000\",\n \"type\": \"field_colour\",\n \"name\": \"7f\"\n }\n ],\n \"output\": \"esp32_image\",\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image\",\n \"message0\": Blockly.Msg.MIXLY_ESP32_Create_image\n });\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\n\n\nexport const image_shift = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_UP, 'up'],\n [Blockly.Msg.MIXLY_DOWN, 'down'],\n [Blockly.Msg.MIXLY_LEFT, 'left'],\n [Blockly.Msg.MIXLY_RIGHT, 'right'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(DISPLAY_HUE);\n this.setOutput(true);\n this.setInputsInline(true);\n this.appendValueInput('img')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET)\n .setCheck([\"esp32_image\", \"List\", String]);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.appendValueInput('val')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)\n .setCheck(Number);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT)\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.DISPLAY_IMAGE_LET;\n var mode1 = Blockly.Msg.DISPLAY_IMAGE_LET2;\n var mode2 = Blockly.Msg.DISPLAY_IMAGE_LET3;\n var TOOLTIPS = {\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode] + mode2;\n });\n }\n};\n\nexport const image_arithmetic = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MICROBIT_DISPLAY_UNION, '+'],\n [Blockly.Msg.MICROBIT_DISPLAY_MINUS, '-']\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL);\n this.setColour(DISPLAY_HUE);\n this.setOutput(true, \"esp32_image\");\n this.appendValueInput('A')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);\n this.appendValueInput('B')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n '+': Blockly.Msg.MIXLY_MICROBIT_image_add,\n '-': Blockly.Msg.MIXLY_MICROBIT_image_reduce\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const esp32_display_show_string = {\n init: function () {\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE, 'show'], [Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING, 'scroll']]), \"MODE\");\n this.jsonInit({\n \"colour\": DISPLAY_HUE,\n \"inputsInline\": true,\n \"nextStatement\": null,\n \"previousStatement\": null,\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show\",\n \"tooltip\": \"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.\",\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_STRING,\n \"args0\": [{\n \"check\": String,\n \"type\": \"input_value\",\n \"name\": \"images\"\n }, {\n \"type\": \"input_value\",\n \"name\": \"delay\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": true,\n \"type\": \"field_checkbox\",\n \"name\": \"wait\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"loop\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"clear\"\n }\n ]\n });\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.OLED_DRAWSTR;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay;\n var TOOLTIPS = {\n 'show': Blockly.Msg.OLED_DRAWSTR_ONE_BY_ONE,\n 'scroll': Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING\n };\n return mode1 + TOOLTIPS[mode] + mode0;\n });\n }\n};\n\n// export const esp32_display_scroll_string = {\n// init : function () {\n// this.jsonInit({\n// \"colour\" : DISPLAY_HUE,\n// \"inputsInline\": true,\n// \"nextStatement\" : null,\n// \"previousStatement\" : null,\n// \"helpUrl\" : \"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show\",\n// \"tooltip\" : \"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.\",\n// \"message0\" : Blockly.Msg.MIXLY_MICROBIT_Scroll_string,\n// \"args0\" : [{\n// \"check\" : String,\n// \"type\" : \"input_value\",\n// \"name\" : \"images\"\n// }, {\n// \"type\" : \"input_value\",\n// \"name\" : \"delay\"\n// }, {\n// \"type\" : \"input_dummy\"\n// }, {\n// \"checked\" : true,\n// \"type\" : \"field_checkbox\",\n// \"name\" : \"wait\"\n// }, {\n// \"type\" : \"input_dummy\"\n// }, {\n// \"checked\" : false,\n// \"type\" : \"field_checkbox\",\n// \"name\" : \"loop\"\n// }, {\n// \"type\" : \"input_dummy\"\n// }, {\n// \"checked\" : false,\n// \"type\" : \"field_checkbox\",\n// \"name\" : \"clear\"\n// }\n// ]\n// });\n// }\n// };\n\nexport const group_lcd_print = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput(\"TEXT\", String)\n .setCheck([String, Number])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DF_LCD)\n .appendField('mylcd')\n //.appendField(new Blockly.FieldTextInput('mylcd'), 'VAR')\n .appendField(Blockly.Msg.MIXLY_LCD_PRINT1);\n this.appendValueInput(\"TEXT2\", String)\n .setCheck([String, Number])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_LCD_PRINT2);\n /*\n this.appendValueInput(\"TEXT3\", String)\n .setCheck([String,Number])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_LCD_PRINT3);\n this.appendValueInput(\"TEXT4\", String)\n .setCheck([String,Number])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_LCD_PRINT4);\n */\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_LCD_PRINT4_TOOLTIP);\n }\n};\n\nexport const group_lcd_init = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('device')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(Blockly.Msg.MIXLY_DF_LCD)\n .appendField('1602')\n .appendField('mylcd')\n .appendField(Blockly.Msg.MIXLY_LCD_ADDRESS);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.MIXLY_DF_LCD + Blockly.Msg.MIXLY_LCD_ADDRESS);\n }\n};\n\nexport const group_lcd_print2 = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput(\"row\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_DF_LCD)\n .appendField('mylcd')\n .appendField(Blockly.Msg.MIXLY_LCD_ROW);\n this.appendValueInput(\"column\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_LCD_COLUMN);\n this.appendValueInput(\"TEXT\", String)\n .setCheck([String, Number])\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_LCD_PRINT);\n this.setPreviousStatement(true, null);\n this.setInputsInline(true);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_LCD_PRINT3_TOOLTIP);\n }\n};\n\nexport const group_lcd_power = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DF_LCD)\n .appendField('mylcd')\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, \"on()\"], [Blockly.Msg.MIXLY_OFF, \"off()\"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"clear()\"], [Blockly.Msg.MIXLY_LCD_NOBACKLIGHT, \"backlight(off)\"], [Blockly.Msg.MIXLY_LCD_BACKLIGHT, \"backlight(on)\"]]), \"STAT\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('STAT');\n var mode0 = Blockly.Msg.LISTS_SET_INDEX_SET;\n var mode1 = Blockly.Msg.MIXLY_DF_LCD;\n var TOOLTIPS = {\n 'on()': Blockly.Msg.MIXLY_ON,\n 'off()': Blockly.Msg.MIXLY_OFF,\n 'clear()': Blockly.Msg.MIXLY_LCD_STAT_CLEAR,\n 'backlight(off)': Blockly.Msg.MIXLY_LCD_NOBACKLIGHT,\n 'backlight(on)': Blockly.Msg.MIXLY_LCD_BACKLIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode];\n });\n }\n};\n\n// export const oled_init = {\n// init: function() {\n// this.setColour(DISPLAY_HUE);\n// this.appendValueInput('VAR')\n// .appendField(Blockly.Msg.OLED)\n// .setCheck(\"var\");\n// this.appendValueInput(\"RX\", Number)\n// //.appendField(Blockly.Msg.MIXLY_SETUP)\n// // .appendField(Blockly.Msg.OLED)\n// // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n// .appendField(Blockly.Msg.MIXLY_SETUP)\n// .appendField(\"sda\")\n// .setCheck(Number)\n// .setAlign(Blockly.inputs.Align.RIGHT);\n// this.appendValueInput(\"TX\", Number)\n// .appendField(\"scl\")\n// .setCheck(Number)\n// .setAlign(Blockly.inputs.Align.RIGHT);\n// this.appendValueInput('freq')\n// .setCheck(Number)\n// .appendField(Blockly.Msg.MIXLY_FREQUENCY)\n// .setAlign(Blockly.inputs.Align.RIGHT);\n// this.setPreviousStatement(true, null);\n// this.setNextStatement(true, null);\n// this.setInputsInline(true);\n// }\n// };\n\nexport const display_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n // this.appendDummyInput(\"\")\n // .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + \"OLED\")\n // .appendField(new Blockly.FieldDropdown([\n // [\"OLED 128¡Á64\", \"OLED 128¡Á64\"]\n // ]), \"key\");\n this.appendValueInput('row')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + \"OLED\")\n .setCheck(Number);\n this.appendValueInput('column')\n .appendField(\"X\")\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip();\n }\n};\n\nexport const display_draw_4strings = {\n init: function () {\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n // .appendField(Blockly.Msg.OLEDDISPLAY);\n //.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/display-oled-128x64-i2c/display-oled-128x64-i2c.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize));\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendValueInput(\"Text_line1\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.line1);\n this.appendValueInput(\"Text_line2\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line2);\n this.appendValueInput(\"Text_line3\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line3);\n this.appendValueInput(\"Text_line4\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line4);\n this.setInputsInline(false);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setColour(DISPLAY_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_DF_LCD + Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING);\n }\n};\n\nexport const display_image_size = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_HEIGHT, 'height'],\n [Blockly.Msg.MIXLY_WIDTH, 'width']\n ];\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_MICROBIT_IMAGE);\n this.appendValueInput('VAR')\n .setCheck(\"esp32_image\")\n // .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_IMAGE\n var TOOLTIPS = {\n 'height': Blockly.Msg.MIXLY_HEIGHT,\n 'width': Blockly.Msg.MIXLY_WIDTH,\n };\n return mode0 + mode1 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const display_rect = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RECT)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_RECT,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"width\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"height\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_OLED_RECT);\n }\n};\n\nexport const display_line = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_DISPLAY_RLINE, \"hline\"], [Blockly.Msg.MIXLY_DISPLAY_VLINE, \"vline\"]]), \"direction\");\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_LINE,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"length\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_OLED_LINE);\n }\n};\n\nexport const display_line_arbitrarily = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x2\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y2\"\n },\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_OLED_LINE_ARBIT);\n }\n}\n\nexport const display_get_screen_pixel = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const display_get_screen_image = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE);\n this.setInputsInline(true);\n this.setOutput(true, \"esp32_image\");\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP);\n }\n};\n\nexport const display_bright_screen = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const display_blink_rate = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE);\n }\n};\n\nexport const display_rgb_color = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS)\n .appendField(new Blockly.FieldColour('#f00', null, FIELD_COLOUR_CONFIG), 'FIELDNAME');\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B);\n }\n};\n\nexport const display_show_image_or_string = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const display_scroll_string = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const display_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const display_onoff = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ESP32_ON, \"ON\"], [Blockly.Msg.MIXLY_ESP32_OFF, \"OFF\"]]), 'ONOFF')\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\n// export const switch = {\n// init: function () {\n// this.setColour(DISPLAY_HUE);\n// this.appendDummyInput(\"\")\n// .appendField(new Blockly.FieldDropdown([\n// [Blockly.Msg.MIXLY_ESP32_ON, \"1\"],\n// [Blockly.Msg.MIXLY_ESP32_OFF, \"0\"]\n// ]), \"flag\");\n// this.setOutput(true);\n// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n// }\n// };\n\nexport const display_fill = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('SUB');\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"0\"],\n [Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, \"1\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n '0': Blockly.Msg.MIXLY_LCD_STAT_CLEAR,\n '1': Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL\n };\n return Blockly.Msg.MIXLY_DF_LCD + TOOLTIPS[mode];\n });\n }\n};\n\nexport const display_tm_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n // [\"MPU9250\", \"MPU9250\"],\n // [\"TM1637\", \"TM1637\"],\n [\"TM1650\", \"TM1650\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP;\n var TOOLTIPS = {\n // \"MPU9250\": \"MPU9250\",\n // \"TM1637\": \"TM1637\",\n \"TM1650\": \"TM1650\"\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const display_tm1650_power = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, \"_on\"], [Blockly.Msg.MIXLY_OFF, \"_off\"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"_clear\"]]), \"STAT\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_power);\n }\n};\n\nexport const display_tm1650_show_num = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendValueInput(\"VALUE\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n // this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_displayString);\n }\n};\n\nexport const display_tm1650_show_dot = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendValueInput(\"NO\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1)\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.MIXLY_4DIGITDISPLAY_DOT)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot);\n }\n};\n\nexport const display_animate = {\n init: function () {\n var ANIMATE = [\n [\"ALL_CLOCKS\", 'ALL_CLOCKS'],\n [\"ALL_ARROWS\", 'ALL_ARROWS']\n ];\n this.setColour(DISPLAY_HUE);\n this.setOutput(true, 'Tuple');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_DISPLAY_ANIMATE)\n .appendField(new Blockly.FieldDropdown(ANIMATE), 'ANIMATION')\n //this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP);\n }\n};\n\nexport const display_circle = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_HANBIT_SHOW_CIRCLE,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"r\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE);\n }\n};\n\nexport const display_triangle = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW + Blockly.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_HANBIT_SHOW_triangle,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x0\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y0\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x2\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y2\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_DISPLAY_DRAW + Blockly.Msg.MIXLY_HANBIT_DRAW_TRIANGLE);\n }\n};\n\nexport const display_help = {\n init: function () {\n this.setColour('#555555');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXGO_ONBOARDDISPLAY_HELP);\n this.setInputsInline(true);\n this.setTooltip('');\n }\n};\n\n//显示-OLED-显示图像\nexport const display_oled_showBitmap = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"START_X\", Number)\n .appendField(Blockly.Msg.OLED_START_X)\n .setCheck(Number);\n this.appendValueInput(\"START_Y\", Number)\n .appendField(Blockly.Msg.OLED_START_Y)\n .setCheck(Number);\n this.appendValueInput(\"bitmap_name\", String)\n .appendField(Blockly.Msg.OLED_BITMAP_NAME);\n this.appendValueInput(\"WIDTH\", Number)\n .appendField(Blockly.Msg.MIXLY_WIDTH)\n .setCheck(Number);\n this.appendValueInput(\"HEIGHT\", Number)\n .appendField(Blockly.Msg.MIXLY_HEIGHT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.OLED_SHOW_BMP_TOOLTIP);\n }\n};\n\n//显示-OLED-画点\nexport const display_oled_drawPixel = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.OLED_DRAWPIXEL);\n this.appendValueInput(\"POS_X\")\n .appendField(Blockly.Msg.OLED_POSX)\n this.appendValueInput(\"POS_Y\")\n .appendField(Blockly.Msg.OLED_POSY)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.OLED_DRAW_PIXE_TOOLTIP);\n }\n};\n\n//pe:\nexport const display_matrix_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [\"32x12 Matrix\", \"32x12 Matrix\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n\n\n }\n};\n\nexport const display_show_image = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('SUB')\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const display_scroll_string_extern = {\n init: function () {\n this.setColour(DISPLAY_HUE);\n this.appendValueInput('SUB');\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\n","import * as Blockly from 'blockly/core';\n\nconst DISPLAY_EXTERN_HUE = '5BA5A5';\n\n//var IMG = [[\"HEART\", \"HEART\"],[\"HEART_SMALL\", \"HEART_SMALL\"],[\"HAPPY\", \"HAPPY\"],[\"SAD\", \"SAD\"],[\"SMILE\", \"SMILE\"],[\"SILLY\", \"SILLY\"],[\"FABULOUS\", \"FABULOUS\"],[\"SURPRISED\", \"SURPRISED\"],[\"ASLEEP\", \"ASLEEP\"],[\"ANGRY\", \"ANGRY\"],[\"CONFUSED\", \"CONFUSED\"],[\"NO\", \"NO\"],[\"YES\", \"YES\"],[\"LEFT_ARROW\", \"LEFT_ARROW\"],[\"RIGHT_ARROW\", \"RIGHT_ARROW\"],[\"DRESS\", \"DRESS\"],[\"TRANSFORMERS\", \"TRANSFORMERS\"],[\"SCISSORS\", \"SCISSORS\"],[\"EXIT\", \"EXIT\"],[\"TREE\", \"TREE\"],[\"PACMAN\", \"PACMAN\"],[\"TARGET\", \"TARGET\"],[\"TSHIRT\", \"TSHIRT\"],[\"ROLLERSKATE\", \"ROLLERSKATE\"],[\"DUCK\", \"DUCK\"],[\"HOUSE\", \"HOUSE\"],[\"TORTOISE\", \"TORTOISE\"],[\"BUTTERFLY\", \"BUTTERFLY\"],[\"STICKFIGURE\", \"STICKFIGURE\"],[\"GHOST\", \"GHOST\"],[\"PITCHFORK\", \"PITCHFORK\"],[\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"],[\"COW\", \"COW\"],[\"RABBIT\", \"RABBIT\"],[\"SQUARE_SMALL\", \"SQUARE_SMALL\"],[\"SQUARE\", \"SQUARE\"],[\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"],[\"DIAMOND\", \"DIAMOND\"],[\"CHESSBOARD\", \"CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"],[\"TRIANGLE\", \"TRIANGLE\"],[\"SNAKE\", \"SNAKE\"],[\"UMBRELLA\", \"UMBRELLA\"],[\"SKULL\", \"SKULL\"],[\"GIRAFFE\", \"GIRAFFE\"],[\"SWORD\", \"SWORD\"]];\n// var IMG = [[\"HEART\", \"HEART\"], [\"HEART_SMALL\", \"HEART_SMALL\"], [\"HAPPY\", \"HAPPY\"], [\"SAD\", \"SAD\"], [\"SMILE\", \"SMILE\"], [\"SILLY\", \"SILLY\"], [\"FABULOUS\", \"FABULOUS\"], [\"SURPRISED\", \"SURPRISED\"], [\"ASLEEP\", \"ASLEEP\"], [\"ANGRY\", \"ANGRY\"], [\"CONFUSED\", \"CONFUSED\"], [\"NO\", \"NO\"], [\"YES\", \"YES\"]];\n\n\n\n\n\nexport const display_matrix_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [\"32x12 Matrix\", \"32x12 Matrix\"],\n [\"16x8 Matrix\", \"16x8 Matrix\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n\n\n }\n};\n\nexport const display_matrix_extern_show_image = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const display_matrix_extern_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const display_matrix_extern_scroll_string = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_matrix_extern_scroll_string_delay = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const display_matrix_extern_show_frame_string = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_matrix_extern_show_frame_string_delay = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_matrix_extern_shift = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_UP, 'shift_up'],\n [Blockly.Msg.MIXLY_DOWN, 'shift_down'],\n [Blockly.Msg.MIXLY_LEFT, 'shift_left'],\n [Blockly.Msg.MIXLY_RIGHT, 'shift_right'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n // this.setOutput(true);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET)\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.appendValueInput('val')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)\n .setCheck(Number);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT)\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.DISPLAY_IMAGE_LET;\n var mode1 = Blockly.Msg.DISPLAY_IMAGE_LET2;\n var mode2 = Blockly.Msg.DISPLAY_IMAGE_LET3;\n var TOOLTIPS = {\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode] + mode2;\n });\n }\n};\n\nexport const display_matrix_extern_get_pixel = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS);\n }\n};\n\nexport const display_matrix_extern_bright_point = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput(\"STAT\")\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\nexport const display_matrix_extern_get_screen_pixel = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const display_matrix_extern_bright_screen = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0');\n }\n};\n\nexport const display_matrix_extern_clear = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\n\nexport const display_matrix_extern_image_builtins = {\n init: function () {\n var OPERATORS =\n [[\"HEART\", \"HEART\"], [\"HEART_SMALL\", \"HEART_SMALL\"], [\"HAPPY\", \"HAPPY\"], [\"SAD\", \"SAD\"], [\"SMILE\", \"SMILE\"], [\"SILLY\", \"SILLY\"], [\"FABULOUS\", \"FABULOUS\"], [\"SURPRISED\", \"SURPRISED\"], [\"ASLEEP\", \"ASLEEP\"], [\"ANGRY\", \"ANGRY\"], [\"CONFUSED\", \"CONFUSED\"], [\"NO\", \"NO\"], [\"YES\", \"YES\"]\n // ,[\"LEFT_ARROW\", \"LEFT_ARROW\"],[\"RIGHT_ARROW\", \"RIGHT_ARROW\"],[\"DRESS\", \"DRESS\"],[\"TRANSFORMERS\", \"TRANSFORMERS\"],[\"SCISSORS\", \"SCISSORS\"],[\"EXIT\", \"EXIT\"],[\"TREE\", \"TREE\"],[\"PACMAN\", \"PACMAN\"],[\"TARGET\", \"TARGET\"],[\"TSHIRT\", \"TSHIRT\"],[\"ROLLERSKATE\", \"ROLLERSKATE\"],[\"DUCK\", \"DUCK\"],[\"HOUSE\", \"HOUSE\"],[\"TORTOISE\", \"TORTOISE\"],[\"BUTTERFLY\", \"BUTTERFLY\"],[\"STICKFIGURE\", \"STICKFIGURE\"],[\"GHOST\", \"GHOST\"],[\"PITCHFORK\", \"PITCHFORK\"],[\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"],[\"COW\", \"COW\"],[\"RABBIT\", \"RABBIT\"],[\"SQUARE_SMALL\", \"SQUARE_SMALL\"],[\"SQUARE\", \"SQUARE\"],[\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"],[\"DIAMOND\", \"DIAMOND\"],[\"CHESSBOARD\", \"CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"],[\"TRIANGLE\", \"TRIANGLE\"],[\"SNAKE\", \"SNAKE\"],[\"UMBRELLA\", \"UMBRELLA\"],[\"SKULL\", \"SKULL\"],[\"GIRAFFE\", \"GIRAFFE\"],[\"SWORD\", \"SWORD\"]\n ];\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Built_in_image1)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'image');\n this.setOutput(true, \"esp32_image\");\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\n\nexport const matrix_extern_image_arithmetic = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MICROBIT_DISPLAY_UNION, 'add'],\n [Blockly.Msg.MICROBIT_DISPLAY_MINUS, 'sub']\n ];\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.setOutput(true, \"esp32_image\");\n this.appendValueInput('A')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);\n this.appendValueInput('B')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n '+': Blockly.Msg.MIXLY_MICROBIT_image_add,\n '-': Blockly.Msg.MIXLY_MICROBIT_image_reduce\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const matrix_extern_image_invert = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('A')\n .setCheck(\"esp32_image\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Invert_image1);\n this.setInputsInline(true);\n this.setOutput(true, \"esp32_image\");\n }\n};\n\n//oled\nexport const display_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n // this.appendDummyInput(\"\")\n // .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + \"OLED\")\n // .appendField(new Blockly.FieldDropdown([\n // [\"OLED 128¡Á64\", \"OLED 128¡Á64\"]\n // ]), \"key\");\n this.appendValueInput('row')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + \"OLED\")\n .setCheck(Number);\n this.appendValueInput('column')\n .appendField(\"X\")\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip();\n }\n};\n\nexport const display_draw_4strings = {\n init: function () {\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n // .appendField(Blockly.Msg.OLEDDISPLAY);\n //.appendField(new Blockly.FieldImage(Blockly.pathToBlockly + 'blocks/display-oled-128x64-i2c/display-oled-128x64-i2c.jpg', Blockly.Arduino.imageSize, Blockly.Arduino.imageSize));\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendValueInput(\"Text_line1\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.line1);\n this.appendValueInput(\"Text_line2\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line2);\n this.appendValueInput(\"Text_line3\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line3);\n this.appendValueInput(\"Text_line4\", 'String')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.line4);\n this.setInputsInline(false);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setColour(DISPLAY_EXTERN_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_DF_LCD + Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING);\n }\n};\n\nexport const display_image_size = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_HEIGHT, 'height'],\n [Blockly.Msg.MIXLY_WIDTH, 'width']\n ];\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_MICROBIT_IMAGE);\n this.appendValueInput('VAR')\n .setCheck(\"esp32_image\")\n // .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_IMAGE\n var TOOLTIPS = {\n 'height': Blockly.Msg.MIXLY_HEIGHT,\n 'width': Blockly.Msg.MIXLY_WIDTH,\n };\n return mode0 + mode1 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const display_rect = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_EXTERN_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RECT)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_RECT,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"width\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"height\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_OLED_RECT);\n }\n};\n\nexport const display_line = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_DISPLAY_RLINE, \"hline\"], [Blockly.Msg.MIXLY_DISPLAY_VLINE, \"vline\"]]), \"direction\");\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_LINE,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"length\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_OLED_LINE);\n }\n};\n\nexport const display_line_arbitrarily = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x2\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y2\"\n },\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_OLED_LINE_ARBIT);\n }\n}\n\nexport const display_get_screen_image = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE);\n this.setInputsInline(true);\n this.setOutput(true, \"esp32_image\");\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP);\n }\n};\n\nexport const display_blink_rate = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE);\n }\n};\n\nexport const display_rgb_color = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RGB)\n this.appendValueInput(\"_LED_\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RGB_NUM);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS)\n .appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), 'FIELDNAME');\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_RGB_NUM_R_G_B);\n }\n};\n\nexport const display_onoff = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ESP32_ON, \"ON\"], [Blockly.Msg.MIXLY_ESP32_OFF, \"OFF\"]]), 'ONOFF')\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\n// export const switch = {\n// init: function () {\n// this.setColour(DISPLAY_EXTERN_HUE);\n// this.appendDummyInput(\"\")\n// .appendField(new Blockly.FieldDropdown([\n// [Blockly.Msg.MIXLY_ESP32_ON, \"1\"],\n// [Blockly.Msg.MIXLY_ESP32_OFF, \"0\"]\n// ]), \"flag\");\n// this.setOutput(true);\n// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n// }\n// };\n\nexport const display_fill = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"0\"],\n [Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, \"1\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n '0': Blockly.Msg.MIXLY_LCD_STAT_CLEAR,\n '1': Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL\n };\n return Blockly.Msg.MIXLY_DF_LCD + TOOLTIPS[mode];\n });\n }\n};\n\nexport const display_animate = {\n init: function () {\n var ANIMATE = [\n [\"ALL_CLOCKS\", 'ALL_CLOCKS'],\n [\"ALL_ARROWS\", 'ALL_ARROWS']\n ];\n this.setColour(DISPLAY_EXTERN_HUE);\n this.setOutput(true, 'Tuple');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_DISPLAY_ANIMATE)\n .appendField(new Blockly.FieldDropdown(ANIMATE), 'ANIMATION')\n //this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP);\n }\n};\n\nexport const display_circle = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_HANBIT_SHOW_CIRCLE,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"r\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE);\n }\n};\n\nexport const display_triangle = {\n init: function () {\n var brightness_or_not = [\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_ON, '1'],\n [Blockly.Msg.MIXLY_4DIGITDISPLAY_OFF, '0']\n ];\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_DISPLAY_DRAW + Blockly.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)\n .appendField(new Blockly.FieldDropdown(brightness_or_not), 'OP')\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_HANBIT_SHOW_triangle,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x0\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y0\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x2\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y2\"\n }, {\n \"type\": \"input_dummy\"\n }, {\n \"checked\": false,\n \"type\": \"field_checkbox\",\n \"name\": \"fill\"\n }\n ]\n });\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip('');\n this.setTooltip(Blockly.Msg.MIXLY_DISPLAY_DRAW + Blockly.Msg.MIXLY_HANBIT_DRAW_TRIANGLE);\n }\n};\n\nexport const display_help = {\n init: function () {\n this.setColour('#555555');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXGO_ONBOARDDISPLAY_HELP);\n this.setInputsInline(true);\n this.setTooltip('');\n }\n};\n\n//显示-OLED-显示图像\nexport const display_oled_showBitmap = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"START_X\", Number)\n .appendField(Blockly.Msg.OLED_START_X)\n .setCheck(Number);\n this.appendValueInput(\"START_Y\", Number)\n .appendField(Blockly.Msg.OLED_START_Y)\n .setCheck(Number);\n this.appendValueInput(\"bitmap_name\", String)\n .appendField(Blockly.Msg.OLED_BITMAP_NAME);\n this.appendValueInput(\"WIDTH\", Number)\n .appendField(Blockly.Msg.MIXLY_WIDTH)\n .setCheck(Number);\n this.appendValueInput(\"HEIGHT\", Number)\n .appendField(Blockly.Msg.MIXLY_HEIGHT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.OLED_SHOW_BMP_TOOLTIP);\n }\n};\n\n//显示-OLED-画点\nexport const display_oled_drawPixel = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.OLED)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.OLED_DRAWPIXEL);\n this.appendValueInput(\"POS_X\")\n .appendField(Blockly.Msg.OLED_POSX)\n this.appendValueInput(\"POS_Y\")\n .appendField(Blockly.Msg.OLED_POSY)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.OLED_DRAW_PIXE_TOOLTIP);\n }\n};\n\nexport const display_tm_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n // [\"MPU9250\", \"MPU9250\"],\n // [\"TM1637\", \"TM1637\"],\n [\"TM1650\", \"TM1650\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP;\n var TOOLTIPS = {\n // \"MPU9250\": \"MPU9250\",\n // \"TM1637\": \"TM1637\",\n \"TM1650\": \"TM1650\"\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const display_tm1650_power = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON, \"on\"], [Blockly.Msg.MIXLY_OFF, \"off\"], [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"clear\"]]), \"STAT\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_power);\n }\n};\n\nexport const display_tm1650_show_num = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendValueInput(\"VALUE\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n // this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_displayString);\n }\n};\n\nexport const display_tm1650_show_dot = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendValueInput(\"NO\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER1)\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY_NOMBER2 + Blockly.Msg.MIXLY_4DIGITDISPLAY_DOT)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot);\n }\n};\n\nexport const display_tm1650_set_brightness = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_4DIGITDISPLAY)\n .appendField(new Blockly.FieldDropdown([[\"TM1650\", \"tm1650\"]]), \"TYPE\");\n this.appendValueInput(\"VAR\")\n this.appendValueInput(\"VALUE\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_4DIGITDISPLAY_4DIGITDISPLAY_BRIGHTNESS_TOOLTIP);\n }\n};\n\nexport const tft_use_spi_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SPISUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"SPI\")\n .setCheck(\"var\");\n this.appendValueInput('PINDC')\n .appendField(\"DC\")\n this.appendValueInput('PINCS')\n .appendField(\"CS\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + Blockly.Msg.MSG.catTFT)\n this.appendValueInput(\"WIDTH\")\n .appendField(Blockly.Msg.MIXLY_WIDTH)\n .setCheck(Number);\n this.appendValueInput(\"HEIGHT\")\n .appendField(Blockly.Msg.MIXLY_HEIGHT)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_turtle_rotate)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"0\"],\n [Blockly.Msg.ANTI_CLOCKWISE + '90°', \"1\"],\n [Blockly.Msg.ANTI_CLOCKWISE + '180°', \"2\"],\n [Blockly.Msg.ANTI_CLOCKWISE + '270°', \"3\"]\n ]), 'rotate')\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const tft_show_image_xy = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catTFT);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const display_color_seclet = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: [\n // grays\n '#ffffff', '#cccccc', '#c0c0c0', '#999999', '#666666', '#333333', '#000000',\n // reds\n '#ffcccc', '#ff6666', '#ff0000', '#cc0000', '#990000', '#660000', '#330000',\n // oranges\n '#ffcc99', '#ff9966', '#ff9900', '#ff6600', '#cc6600', '#993300', '#663300',\n // yellows\n '#ffff99', '#ffff66', '#ffcc66', '#ffcc33', '#cc9933', '#996633', '#663333',\n // olives\n '#ffffcc', '#ffff33', '#ffff00', '#ffcc00', '#999900', '#666600', '#333300',\n // greens\n '#99ff99', '#66ff99', '#33ff33', '#33cc00', '#009900', '#006600', '#003300',\n // turquoises\n '#99ffff', '#33ffff', '#66cccc', '#00cccc', '#339999', '#336666', '#003333',\n // blues\n '#ccffff', '#66ffff', '#33ccff', '#3366ff', '#3333ff', '#000099', '#000066',\n // purples\n '#ccccff', '#9999ff', '#6666cc', '#6633ff', '#6600cc', '#333399', '#330099',\n // violets\n '#ffccff', '#ff99ff', '#cc66cc', '#cc33cc', '#993399', '#663366', '#330033'\n ],\n columns: 7\n }), \"COLOR\");\n this.setInputsInline(true);\n this.setOutput(true, String);\n }\n};\n\n\nexport const tft_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catTFT);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\n\nexport const tft_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catTFT);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const tft_show_frame_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catTFT);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\n\n\nexport const tft_fill = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catTFT);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_LCD_STAT_CLEAR, \"BLACK\"],\n [Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL, \"WHITE\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n '0': Blockly.Msg.MIXLY_LCD_STAT_CLEAR,\n '1': Blockly.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL\n };\n return Blockly.Msg.MIXLY_DF_LCD + TOOLTIPS[mode];\n });\n }\n};\n\nexport const tft_line_arbitrarily = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.OLED)\n // .appendField(new Blockly.FieldTextInput('lcd'), 'VAR')\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catTFT)\n .setCheck(\"var\");\n // this.appendValueInput(\"PIN\", Number)\n // .setCheck(Number)\n // .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(Blockly.Msg.MIXLY_PIN);\n this.jsonInit({\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,\n \"args0\": [{\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y1\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"x2\"\n }, {\n \"check\": Number,\n \"type\": \"input_value\",\n \"name\": \"y2\"\n },\n ]\n });\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_OLED_LINE_ARBIT);\n }\n}\n\nexport const display_lcd_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n // [\"MPU9250\", \"MPU9250\"],\n // [\"TM1637\", \"TM1637\"],\n [\"LCD1602\", \"16\"],\n [\"LCD2004\", \"20\"]\n ]), \"key\");\n this.appendValueInput(\"ADDR\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MQTT_SERVER_ADD);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_SETUP;\n var TOOLTIPS = {\n \"16\": \"LCD1602\",\n \"20\": \"LCD2004\"\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const lcd_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catLCD);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField(Blockly.Msg.array2_cols);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField(Blockly.Msg.array2_rows);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const lcd_print_string = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MSG.catLCD);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINT + Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField(Blockly.Msg.array2_cols);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField(Blockly.Msg.array2_rows);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const lcd_backlight = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catLCD);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TFT_Brightness)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display, \"1\"],\n [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, \"0\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n '1': Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,\n '0': Blockly.Msg.MIXLY_MICROBIT_Turn_off_display\n };\n return Blockly.Msg.MSG.catLCD + Blockly.Msg.TFT_Brightness + TOOLTIPS[mode];\n });\n }\n};\n\nexport const lcd_clear = {\n init: function () {\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catLCD);\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\nexport const display_oled_use_i2c_init = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO + 'oled128x64')\n this.appendValueInput(\"ADDR\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MQTT_SERVER_ADD);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_DRIVER)\n .appendField(new Blockly.FieldDropdown([\n ['SSD1306','0'],\n ['SSD1315','1']\n ]),'driver');\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_SETUP;\n var TOOLTIPS = {\n \"16\": \"LCD1602\",\n \"20\": \"LCD2004\"\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const extern_oled_show_image = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const extern_oled_show_image_xy = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const extern_oled_show_string = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const extern_oled_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const extern_oled_scroll_string = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const extern_oled_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const extern_oled_show_frame_string = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const extern_oled_show_frame_string_delay = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const extern_oled_shift = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_UP, 'shift_up'],\n [Blockly.Msg.MIXLY_DOWN, 'shift_down'],\n [Blockly.Msg.MIXLY_LEFT, 'shift_left'],\n [Blockly.Msg.MIXLY_RIGHT, 'shift_right'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n // this.setOutput(true);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET)\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.appendValueInput('val')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)\n .setCheck(Number);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT)\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.DISPLAY_IMAGE_LET;\n var mode1 = Blockly.Msg.DISPLAY_IMAGE_LET2;\n var mode2 = Blockly.Msg.DISPLAY_IMAGE_LET3;\n var TOOLTIPS = {\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode] + mode2;\n });\n }\n};\n\nexport const extern_oled_get_pixel = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS);\n }\n};\n\nexport const extern_oled_bright_point = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput(\"STAT\")\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\n\n\nexport const extern_oled_clear = {\n init: function () {\n this.setColour(DISPLAY_EXTERN_HUE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MSG.catOLED);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\nexport const extern_oled_shape_rect = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_EXTERN_HUE,\n \"args0\": [\n {\n \"name\": \"SUB\",\n\n \"type\": \"input_value\"\n },\n {\n \"name\": \"state\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_1, '1'],\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_0, '0']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"name\": \"shape\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'],\n [Blockly.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"w\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"h\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE1,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const extern_oled_hvline = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_EXTERN_HUE,\n \"args0\": [\n {\n \"name\": \"SUB\",\n\n \"type\": \"input_value\"\n },\n {\n \"name\": \"state\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_1, '1'],\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_0, '0']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"name\": \"dir_h_v\",\n \"options\": [\n [Blockly.Msg.mpython_vertical, '0'],\n [Blockly.Msg.mpython_horizontal, '1']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"length\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE1,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const extern_oled_line = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_EXTERN_HUE,\n \"args0\": [\n {\n \"name\": \"SUB\",\n\n \"type\": \"input_value\"\n },\n {\n \"name\": \"state\",\n \"options\": [[Blockly.Msg.mpython_display_hline_1, '1'], [Blockly.Msg.mpython_display_hline_0, '0']],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n }, {\n \"name\": \"x1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"x2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.mpython_display_line_TOOLTIP,\n \"message0\": Blockly.Msg.mpython_display_line_MESSAGE1,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};","import * as Blockly from 'blockly/core';\nimport { Boards, Profile } from 'mixly';\n\nconst DISPLAY_ONBOARD_HUE = '#569A98';\n\nexport const display_show_image = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n var version = Boards.getSelectedBoardKey()\n if (version == 'micropython:esp32:mixbot') {\n this.setTooltip(Blockly.Msg.MIXLY_MIXBOT_SHOW_SCROLL_STRING_TOOLTIP);\n }\n }\n};\n\nexport const display_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n\n }\n};\n\nexport const display_scroll_string = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n\n }\n};\n\nexport const display_show_frame_string = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_show_frame_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const display_image_create = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 12; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 32; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true);\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\nexport const display_image_builtins = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [{\n \"name\": \"image\",\n \"options\": [[\"HEART\", \"HEART\"], [\"HEART_SMALL\", \"HEART_SMALL\"], [\"HAPPY\", \"HAPPY\"], [\"SAD\", \"SAD\"], [\"SMILE\", \"SMILE\"], [\"SILLY\", \"SILLY\"], [\"FABULOUS\", \"FABULOUS\"], [\"SURPRISED\", \"SURPRISED\"], [\"ASLEEP\", \"ASLEEP\"], [\"ANGRY\", \"ANGRY\"], [\"CONFUSED\", \"CONFUSED\"], [\"NO\", \"NO\"], [\"YES\", \"YES\"]\n // ,[\"LEFT_ARROW\", \"LEFT_ARROW\"],[\"RIGHT_ARROW\", \"RIGHT_ARROW\"],[\"DRESS\", \"DRESS\"],[\"TRANSFORMERS\", \"TRANSFORMERS\"],[\"SCISSORS\", \"SCISSORS\"],[\"EXIT\", \"EXIT\"],[\"TREE\", \"TREE\"],[\"PACMAN\", \"PACMAN\"],[\"TARGET\", \"TARGET\"],[\"TSHIRT\", \"TSHIRT\"],[\"ROLLERSKATE\", \"ROLLERSKATE\"],[\"DUCK\", \"DUCK\"],[\"HOUSE\", \"HOUSE\"],[\"TORTOISE\", \"TORTOISE\"],[\"BUTTERFLY\", \"BUTTERFLY\"],[\"STICKFIGURE\", \"STICKFIGURE\"],[\"GHOST\", \"GHOST\"],[\"PITCHFORK\", \"PITCHFORK\"],[\"MUSIC_QUAVERS\", \"MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"MUSIC_CROTCHET\"],[\"COW\", \"COW\"],[\"RABBIT\", \"RABBIT\"],[\"SQUARE_SMALL\", \"SQUARE_SMALL\"],[\"SQUARE\", \"SQUARE\"],[\"DIAMOND_SMALL\", \"DIAMOND_SMALL\"],[\"DIAMOND\", \"DIAMOND\"],[\"CHESSBOARD\", \"CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"TRIANGLE_LEFT\"],[\"TRIANGLE\", \"TRIANGLE\"],[\"SNAKE\", \"SNAKE\"],[\"UMBRELLA\", \"UMBRELLA\"],[\"SKULL\", \"SKULL\"],[\"GIRAFFE\", \"GIRAFFE\"],[\"SWORD\", \"SWORD\"]\n ],\n \"type\": \"field_dropdown\"\n }],\n \"output\": [\"esp32_image\", \"List\"],\n \"helpUrl\": \"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes\",\n \"tooltip\": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1,\n \"message0\": Blockly.Msg.MIXLY_MICROBIT_Built_in_image\n });\n }\n};\n\nexport const display_image_builtins_all = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Built_in_image1)\n .appendField(new Blockly.FieldDropdown(Profile.default.builtinimg), 'image');\n this.setOutput(true, [\"esp32_image\", \"List\"]);\n }\n};\n\nexport const image_arithmetic = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MICROBIT_DISPLAY_UNION, 'add'],\n [Blockly.Msg.MICROBIT_DISPLAY_MINUS, 'sub']\n ];\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setOutput(true, \"esp32_image\");\n this.appendValueInput('A')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(Blockly.Msg.MICROBIT_DISPLAY_MERGE_SHAPE);\n this.appendValueInput('B')\n // .setCheck([\"esp32_image\", \"List\", String])\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n '+': Blockly.Msg.MIXLY_MICROBIT_image_add,\n '-': Blockly.Msg.MIXLY_MICROBIT_image_reduce\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const image_invert = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('A')\n .setCheck(\"esp32_image\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Invert_image1);\n this.setInputsInline(true);\n this.setOutput(true, \"esp32_image\");\n }\n};\n\nexport const display_shift = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_UP, 'shift_up'],\n [Blockly.Msg.MIXLY_DOWN, 'shift_down'],\n [Blockly.Msg.MIXLY_LEFT, 'shift_left'],\n [Blockly.Msg.MIXLY_RIGHT, 'shift_right'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(DISPLAY_ONBOARD_HUE);\n // this.setOutput(true);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET)\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.appendValueInput('val')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)\n .setCheck(Number);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT)\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.DISPLAY_IMAGE_LET;\n var mode1 = Blockly.Msg.DISPLAY_IMAGE_LET2;\n var mode2 = Blockly.Msg.DISPLAY_IMAGE_LET3;\n var TOOLTIPS = {\n 'shift_up': Blockly.Msg.MIXLY_UP,\n 'shift_down': Blockly.Msg.MIXLY_DOWN,\n 'shift_left': Blockly.Msg.MIXLY_LEFT,\n 'shift_right': Blockly.Msg.MIXLY_RIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode] + mode2;\n });\n }\n};\n\nexport const display_get_pixel = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS);\n }\n};\n\nexport const display_bright_point = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput(\"STAT\")\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\nexport const display_get_screen_pixel = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const display_bright_screen = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0');\n }\n};\n\nexport const display_clear = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\n\n\n\n\n\n\n//mixgo_me onboard_matrix below:\n\n\n\nexport const mixgome_display_image_create = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 5; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 8; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true);\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\nexport const mixgomini_display_image_create = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 8; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 12; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true);\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\nexport const mixgo_display_image_create_new = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 8; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 16; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true, \"esp32_image\");\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\n\n\nexport const mixgome_display_font = {\n init: function () {\n var OPERATORS = [\n ['4x5' + Blockly.Msg.MIXGO_ME_DISPLAY_HORIZONTAL, \"'4x5'\"],\n ['5x5' + Blockly.Msg.MIXGO_ME_DISPLAY_HORIZONTAL, \"'5x5'\"],\n ['5x8' + Blockly.Msg.MIXGO_ME_DISPLAY_VERTICAL, \"'5x8'\"]\n ];\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.OLED_SET_FONT)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n\n }\n};\n\n\n\n//mpython\n\nexport const onboard_oled_show_image = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const onboard_oled_show_image_xy = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const onboard_oled_show_string = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck([String, \"esp32_image\", \"List\", 'Tuple'])\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const onboard_oled_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const onboard_oled_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\n\nexport const onboard_oled_show_frame_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_oled_bright_point = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput(\"STAT\")\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\nexport const mpython_display_shape_rect = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"state\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_1, '1'],\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_0, '0']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"name\": \"shape\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'],\n [Blockly.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"w\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"h\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_DISPLAY_SHAPE_RECT_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const mpython_display_hvline = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"state\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_1, '1'],\n [Blockly.Msg.MPYTHON_DISPLAY_MODE_0, '0']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"name\": \"dir_h_v\",\n \"options\": [\n [Blockly.Msg.mpython_vertical, '0'],\n [Blockly.Msg.mpython_horizontal, '1']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"length\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,\n \"message0\": Blockly.Msg.MPYTHON_DISPLAY_HVLINE_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const mpython_display_line = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"state\",\n \"options\": [[Blockly.Msg.mpython_display_hline_1, '1'], [Blockly.Msg.mpython_display_hline_0, '0']],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n }, {\n \"name\": \"x1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"x2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.mpython_display_line_TOOLTIP,\n \"message0\": Blockly.Msg.mpython_display_line_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const mpython_pbm_image = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"type\": \"field_label\",\n \"name\": \"size_image\",\n \"text\": Blockly.Msg.MIXLY_MICROBIT_Built_in_image1\n },\n\n {\n \"name\": \"path\",\n \"options\": [\n [\"Heart\", \"Heart\"],\n [\"Angry\", \"Angry\"],\n [\"Bored\", \"Bored\"],\n [\"Confused\", \"Confused\"],\n [\"Happy\", \"Happy\"],\n [\"Paper\", \"Paper\"],\n [\"Rock\", \"Rock\"],\n [\"Sad\", \"Sad\"],\n [\"Scissors\", \"Scissors\"],\n [\"Silly\", \"Silly\"],\n [\"Sleep\", \"Sleep\"],\n [\"Small_heart\", \"Small_heart\"],\n [\"Small_paper\", \"Small_paper\"],\n [\"Small_rock\", \"Small_rock\"],\n [\"Small_scissors\", \"Small_scissors\"],\n [\"Smile\", \"Smile\"],\n [\"Surprise\", \"Surprise\"],\n [\"Wonderful\", \"Wonderful\"],\n [\"Eyes_Angry\", \"Eyes_Angry\"],\n [\"Awake\", \"Awake\"],\n [\"Black_eye\", \"Black_eye\"],\n [\"Bottom_left\", \"Bottom_left\"],\n [\"Bottom_right\", \"Bottom_right\"],\n [\"Crazy_1\", \"Crazy_1\"],\n [\"Crazy_2\", \"Crazy_2\"],\n [\"Disappointed\", \"Disappointed\"],\n [\"Dizzy\", \"Dizzy\"],\n [\"Down\", \"Down\"],\n [\"Evil\", \"Evil\"],\n [\"Hurt\", \"Hurt\"],\n [\"Knocked_out\", \"Knocked_out\"],\n [\"Love\", \"Love\"],\n [\"Middle_left\", \"Middle_left\"],\n [\"Middle_right\", \"Middle_right\"],\n [\"Neutral\", \"Neutral\"],\n [\"Nuclear\", \"Nuclear\"],\n [\"Pinch_left\", \"Pinch_left\"],\n [\"Pinch_middle\", \"Pinch_middle\"],\n [\"Pinch_right\", \"Pinch_right\"],\n [\"Tear\", \"Tear\"],\n [\"Tired_left\", \"Tired_left\"],\n [\"Tired_middle\", \"Tired_middle\"],\n [\"Tired_right\", \"Tired_right\"],\n [\"Toxic\", \"Toxic\"],\n [\"Up\", \"Up\"],\n [\"Winking\", \"Winking\"],\n [\"Accept\", \"Accept\"],\n [\"Backward\", \"Backward\"],\n [\"Decline\", \"Decline\"],\n [\"Forward\", \"Forward\"],\n [\"Left\", \"Left\"],\n [\"No_go\", \"No_go\"],\n [\"Question_mark\", \"Question_mark\"],\n [\"Right\", \"Right\"],\n [\"Stop_1\", \"Stop_1\"],\n [\"Stop_2\", \"Stop_2\"],\n [\"Thumbs_down\", \"Thumbs_down\"],\n [\"Thumbs_up\", \"Thumbs_up\"],\n [\"Warning\", \"Warning\"],\n [\"Bomb\", \"Bomb\"],\n [\"Boom\", \"Boom\"],\n [\"Fire\", \"Fire\"],\n [\"Flowers\", \"Flowers\"],\n [\"Forest\", \"Forest\"],\n [\"Lightning\", \"Lightning\"],\n [\"Light_off\", \"Light_off\"],\n [\"Light_on\", \"Light_on\"],\n [\"Night\", \"Night\"],\n [\"Pirate\", \"Pirate\"],\n [\"Snow\", \"Snow\"],\n [\"Target\", \"Target\"],\n [\"Bar_0\", \"Bar_0\"],\n [\"Bar_1\", \"Bar_1\"],\n [\"Bar_2\", \"Bar_2\"],\n [\"Bar_3\", \"Bar_3\"],\n [\"Bar_4\", \"Bar_4\"],\n [\"Dial_0\", \"Dial_0\"],\n [\"Dial_1\", \"Dial_1\"],\n [\"Dial_2\", \"Dial_2\"],\n [\"Dial_3\", \"Dial_3\"],\n [\"Dial_4\", \"Dial_4\"],\n [\"Dots_0\", \"Dots_0\"],\n [\"Dots_1\", \"Dots_1\"],\n [\"Dots_2\", \"Dots_2\"],\n [\"Dots_3\", \"Dots_3\"],\n [\"Hourglass_0\", \"Hourglass_0\"],\n [\"Hourglass_1\", \"Hourglass_1\"],\n [\"Hourglass_2\", \"Hourglass_2\"],\n [\"Timer_0\", \"Timer_0\"],\n [\"Timer_1\", \"Timer_1\"],\n [\"Timer_2\", \"Timer_2\"],\n [\"Timer_3\", \"Timer_3\"],\n [\"Timer_4\", \"Timer_4\"],\n [\"Water_level_0\", \"Water_level_0\"],\n [\"Water_level_1\", \"Water_level_1\"],\n [\"Water_level_2\", \"Water_level_2\"],\n [\"Water_level_3\", \"Water_level_3\"],\n\n\n ],\n \"type\": \"field_dropdown\"\n }\n ],\n \"output\": \"String\",\n \"helpUrl\": '',\n \"tooltip\": '',\n \"message0\": '%1 %2'\n });\n }\n};\n\n//mixbot onboard_matrix below:\n\n\n\nexport const mixbot_display_image_create = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 5; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 5; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true);\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\nexport const mixbot_display_get_screen_pixel = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const mixbot_display_get_ambientbright = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_AMBIENTBRIGHT);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n }\n};\n\nexport const mixbot_display_bright_screen = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0');\n }\n};\n\nexport const mixbot_display_rotate = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.mixpy_PL_PIE_SHADOW_N, '0'],\n [Blockly.Msg.CLOCKWISE + '90' + Blockly.Msg.blockpy_setheading_degree, '1'],\n [Blockly.Msg.CLOCKWISE + '180' + Blockly.Msg.blockpy_setheading_degree, '2'],\n [Blockly.Msg.CLOCKWISE + '270' + Blockly.Msg.blockpy_setheading_degree, '3']\n ];\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_SCREEN_ROTATE)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n\n }\n};\n\nexport const bitbot_display_image_create = {\n init: function () {\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_CREATE_IMAGE)\n for (let i = 0; i < 12; i++) {\n let dummyInputObj = this.appendDummyInput();\n for (let j = 0; j < 12; j++) {\n dummyInputObj.appendField(new Blockly.FieldColour('#000', null, {\n colourOptions: ['#f00', '#000'],\n columns: 2\n }), i + '-' + j);\n }\n }\n this.setOutput(true);\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Create_image1);\n }\n};\n\n//mixgo_nova onboard tft below:\nexport const onboard_tft_show_image = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const onboard_tft_show_image_xy = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .appendField(Blockly.Msg.OLED_BITMAP);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_NUMBER);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.OLED_BITMAP_OR_STRING);\n }\n};\n\nexport const onboard_tft_show_image_or_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.OLED_DRAWSTR);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TEXT_CENTER)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MICROPYTHON_DISPLAY_YES, \"True\"],\n [Blockly.Msg.MICROPYTHON_DISPLAY_NO, \"False\"]\n ]), 'center')\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const onboard_tft_scroll_string = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_scroll_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING);\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"space\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MICROPYTHON_DISPLAY_FONT_SPACE);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY);\n }\n};\n\nexport const onboard_tft_show_frame_string = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_show_frame_string_delay = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_MONITOR_SHOW_FRAME);\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TURTLE_WRITE_FONT_NUM);\n this.appendValueInput(\"time\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_display_shape_rect = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"shape\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_HOLLOW, 'rect'],\n [Blockly.Msg.MPYTHON_DISPLAY_SOLID, 'fill_rect']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"w\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"h\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"VAR\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_SHAPE_RECT_TOOLTIP,\n \"message0\": Blockly.Msg.ONBOARD_TFT_DISPLAY_SHAPE_RECT_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const onboard_tft_display_hvline = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"dir_h_v\",\n \"options\": [\n [Blockly.Msg.mpython_vertical, '0'],\n [Blockly.Msg.mpython_horizontal, '1']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"length\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"VAR\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.MPYTHON_DISPLAY_HVLINE_TOOLTIP,\n \"message0\": Blockly.Msg.ONBOARD_TFT_DISPLAY_HVLINE_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const onboard_tft_display_line = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"type\": \"input_dummy\"\n }, {\n \"name\": \"x1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y1\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"x2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y2\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"VAR\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"tooltip\": Blockly.Msg.mpython_display_line_TOOLTIP,\n \"message0\": Blockly.Msg.mpython_display_line_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const onboard_tft_shift = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_UP, 'shift_up'],\n [Blockly.Msg.MIXLY_DOWN, 'shift_down'],\n [Blockly.Msg.MIXLY_LEFT, 'shift_left'],\n [Blockly.Msg.MIXLY_RIGHT, 'shift_right'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(DISPLAY_ONBOARD_HUE);\n // this.setOutput(true);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET)\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.appendValueInput('val')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_SHIFT)\n .setCheck(Number);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_UNIT)\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var mode0 = Blockly.Msg.DISPLAY_IMAGE_LET;\n var mode1 = Blockly.Msg.DISPLAY_IMAGE_LET2;\n var mode2 = Blockly.Msg.DISPLAY_IMAGE_LET3;\n var TOOLTIPS = {\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT\n };\n return mode0 + mode1 + TOOLTIPS[mode] + mode2;\n });\n }\n};\n\nexport const onboard_tft_get_pixel = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS);\n }\n};\n\nexport const onboard_tft_bright_point = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_LCD_SETCOLOR)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X);\n this.appendValueInput('y')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL);\n }\n};\n\n\n\nexport const onboard_tft_clear = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Clear_display);\n }\n};\n\nexport const onboard_tft_get_screen_pixel = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS);\n }\n};\n\nexport const onboard_tft_bright_screen = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('x')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS + ' 0.0-1.0');\n }\n};\n\nexport const onboard_tft_fill = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_SCREEN_FILL)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_clock_init = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_INIT_CLOCK);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CENTER_POS);\n this.appendValueInput(\"x\")\n .setCheck(Number)\n .appendField('x');\n this.appendValueInput(\"y\")\n .setCheck(Number)\n .appendField('y');\n this.appendValueInput(\"size\")\n .setCheck(Number)\n .appendField(Blockly.Msg.OLED_CIRCLE_RADIUS);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.HTML_COLOUR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_clock_get_rtctime = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.GET_RTCTIME);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_clock_set_time = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.SET_TIME);\n this.appendValueInput(\"h\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_HOUR);\n this.appendValueInput(\"m\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MINUTE);\n this.appendValueInput(\"s\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_SECOND);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_clock_draw = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.DRAW_CLOCK);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_clock_clear = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendValueInput('SUB')\n this.appendDummyInput()\n .appendField(Blockly.Msg.CLEAR_CLOCK);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_STM32_TFT_BACKGROUND_COLOR);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const onboard_tft_display_shape_circle = {\n init: function () {\n this.jsonInit({\n \"colour\": DISPLAY_ONBOARD_HUE,\n \"args0\": [\n {\n \"name\": \"shape\",\n \"options\": [\n [Blockly.Msg.MPYTHON_DISPLAY_HOLLOW, 'False'],\n [Blockly.Msg.MPYTHON_DISPLAY_SOLID, 'True']\n ],\n \"type\": \"field_dropdown\"\n },\n {\n \"type\": \"input_dummy\"\n },\n {\n \"name\": \"x\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"y\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"r\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n },\n {\n \"name\": \"VAR\",\n \"type\": \"input_value\",\n //\"check\": \"Number\"\n }\n\n ],\n \"inputsInline\": true,\n \"helpUrl\": Blockly.Msg.mpython_HELPURL,\n \"message0\": Blockly.Msg.ONBOARD_TFT_DISPLAY_SHAPE_CIRCLE_MESSAGE0,\n \"nextStatement\": null,\n \"previousStatement\": null\n });\n }\n};\n\nexport const draw_pointer = {\n init: function () {\n this.setColour(DISPLAY_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.DRAW_POINTER)\n .appendField(Blockly.Msg.DRAW_POINTER_ANGLE);\n this.appendValueInput('angle');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DRAW_POINTER_DU);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.DRAW_POINTER_TOOLTIP);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst FACTORY_HUE = \"#777777\"//65;\n\nexport const factory_from_import = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"from \")\n .appendField(new Blockly.FieldTextInput('ESP32'), 'path')\n .appendField(\" import \")\n .appendField(new Blockly.FieldTextInput('*'), 'module');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const factory_import = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"import \")\n .appendField(new Blockly.FieldTextInput('module'), 'module');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const factory_function_noreturn = {\n init: function () {\n //console.log('init');\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('my_function'), 'NAME');\n this.itemCount_ = 1;\n this.arguments_ = ['x'];//add\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['factory_create_with_item'], this));\n },\n mutationToDom: function () {\n //console.log('mutationToDom');\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n //add\n for (var i = 0; i < this.arguments_.length; i++) {\n var parameter = document.createElement('arg');\n parameter.setAttribute('name', this.arguments_[i]);\n container.appendChild(parameter);\n }\n return container;\n },\n domToMutation: function (xmlElement) {\n //console.log('domToMutation');\n this.arguments_ = [];//add\n //add\n for (var i = 0; xmlElement.childNodes[i]; i++) {\n let childNode = xmlElement.childNodes[i];\n if (childNode.nodeName.toLowerCase() == 'arg') {\n this.arguments_.push(childNode.getAttribute('name'));\n }\n }\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n decompose: function (workspace) {\n //console.log('decompose');\n var containerBlock =\n workspace.newBlock('factory_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK')\n .connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('factory_create_with_item');\n itemBlock.initSvg();\n itemBlock.setFieldValue(this.arguments_[i], 'NAME');//add\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n compose: function (containerBlock) {\n //console.log('compose');\n this.arguments_ = [];//add\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n this.arguments_.push(itemBlock.getFieldValue('NAME'));//add\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n saveConnections: function (containerBlock) {\n //console.log('saveConnections');\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n updateShape_: function () {\n //console.log('updateShape_');\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n for (var i = 0; i < this.itemCount_; i++) {\n this.appendValueInput('ADD' + i)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(this.arguments_[i]);\n }\n }\n};\n\nexport const factory_create_with_container = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.appendStatementInput('STACK');\n this.contextMenu = false;\n }\n};\n\nexport const factory_create_with_item = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE + ':')\n .appendField(new Blockly.FieldTextInput('x'), 'NAME');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.contextMenu = false;\n }\n};\n\nexport const factory_function_return = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('my_function'), 'NAME');\n this.itemCount_ = 1;\n this.arguments_ = ['x'];//add\n this.updateShape_();\n this.setOutput(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['factory_create_with_item'], this));\n },\n mutationToDom: factory_function_noreturn.mutationToDom,\n domToMutation: factory_function_noreturn.domToMutation,\n decompose: factory_function_noreturn.decompose,\n compose: factory_function_noreturn.compose,\n saveConnections: factory_function_noreturn.saveConnections,\n updateShape_: factory_function_noreturn.updateShape_\n};\n\nexport const factory_declare = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('test'), 'NAME')\n .appendField(\"=\")\n .appendField(new Blockly.FieldTextInput('Test'), 'TYPE')\n .appendField(\"()\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n}\n\n\nexport const factory_callMethod_noreturn = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('test'), 'NAME')\n .appendField('.')\n .appendField(new Blockly.FieldTextInput('callMethod'), 'METHOD');\n this.itemCount_ = 1;\n this.arguments_ = ['x'];//add\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['factory_create_with_item'], this));\n },\n mutationToDom: factory_function_noreturn.mutationToDom,\n domToMutation: factory_function_noreturn.domToMutation,\n decompose: factory_function_noreturn.decompose,\n compose: factory_function_noreturn.compose,\n saveConnections: factory_function_noreturn.saveConnections,\n updateShape_: factory_function_noreturn.updateShape_\n};\n\nexport const factory_callMethod_return = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('test'), 'NAME')\n .appendField('.')\n .appendField(new Blockly.FieldTextInput('callMethod'), 'METHOD');\n this.itemCount_ = 1;\n this.arguments_ = ['x'];//add\n this.updateShape_();\n this.setOutput(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['factory_create_with_item'], this));\n },\n mutationToDom: factory_function_noreturn.mutationToDom,\n domToMutation: factory_function_noreturn.domToMutation,\n decompose: factory_function_noreturn.decompose,\n compose: factory_function_noreturn.compose,\n saveConnections: factory_function_noreturn.saveConnections,\n updateShape_: factory_function_noreturn.updateShape_\n};\n\nexport const factory_block = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('display.scroll(\"Hello World!\")'), 'VALUE');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const factory_block_return = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('test'), 'VALUE');\n this.setOutput(true);\n }\n};\n\nexport const factory_block_with_textarea = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldMultilineInput('display.scroll(\"Hello World!\")\\ndisplay.scroll(\"Hello Mixly!\")'), 'VALUE');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const factory_block_return_with_textarea = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldMultilineInput('Hello\\nMixly'), 'VALUE');\n this.setOutput(true);\n }\n};\n\nexport const folding_block = {\n init: function () {\n this.setColour(FACTORY_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput(Blockly.Msg.FOLDING_BLOCK), \"peien\");\n this.appendStatementInput('DO')\n .appendField('');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.FOLDING_BLOCK_HELP);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst BASE_HUE = 20//'#ae3838';//40;\n\nexport const inout_highlow = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_HIGH, \"HIGH\"], [Blockly.Msg.MIXLY_LOW, \"LOW\"]]), 'BOOL')\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP);\n }\n};\n\nexport const inout_digital_write = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Digital_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_STAT)\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP);\n }\n};\n\nexport const inout_digital_read = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_Digital_PINMODEIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)\n this.setInputsInline(true);\n this.setOutput(true, [Boolean, Number]);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP);\n }\n};\n\nexport const inout_pwm_analog_write = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"PWM\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_VALUE2)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_TOOLTIP);\n }\n};\n\nexport const inout_analog_write = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"DAC\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_VALUE2)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP);\n }\n};\n\nexport const inout_analog_write_set = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_mSecond, \"period\"],\n [Blockly.Msg.MIXLY_uSecond, \"period_microseconds\"]\n ]), \"key\");\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_STAT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP);\n }\n};\n\nexport const inout_pwm_analog_write_set_freq = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"PWM\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY + Blockly.Msg.MIXLY_STAT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP);\n }\n};\n\nexport const inout_analog_read = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_TOOLTIP);\n }\n};\n\nexport const inout_analog_atten = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_REF_VOLTAGE + Blockly.Msg.MIXLY_STAT)\n .appendField(new Blockly.FieldDropdown([\n [\"3.3V\", \"machine.ADC.ATTN_11DB\"],\n [\"2.2V\", \"machine.ADC.ATTN_6DB\"],\n [\"1.5V\", \"machine.ADC.ATTN_2_5DB\"],\n [\"1.2V\", \"machine.ADC.ATTN_0DB\"]\n ]), \"atten\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP);\n }\n};\n\n\nexport const inout_pin_pressed = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput('pin')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP);\n }\n};\n\nexport const inout_pin_attachInterrupt = {\n init: function () {\n this.setColour(20);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_ATTACHINTERRUPT_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP);\n }\n};\n\nexport const inout_digital_init = {\n init: function () {\n this.setColour(20);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('pin#'), 'PIN_OBJ');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n // .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_Digital_PINMODEOUT, \"machine.Pin.OUT\"],\n [Blockly.Msg.MIXLY_Digital_PINMODEIN, \"machine.Pin.IN\"],\n [Blockly.Msg.MIXLY_PINMODEPULLUP, \"machine.Pin.IN, machine.Pin.PULL_UP\"],\n [Blockly.Msg.MIXLY_PINMODEPULLDOWN, \"machine.Pin.IN, machine.Pin.PULL_DOWN\"]\n ]), \"MODE\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_pwm_analog_write_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('pwm#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(\"PWM\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .appendField(new Blockly.FieldDropdown(profile.default.pwm_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'pwm#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_analog_write_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('dac#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(\"DAC\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('dac')\n // .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_analog_read_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('adc#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)\n // .appendField('adc')\n // .appendField(new Blockly.FieldDropdown(profile.default.adc_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_READ_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'adc#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_pin_pressed_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('tc#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n // .appendField('tc')\n // .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_pinMode = inout_digital_init;\nexport const inout_analog_write_set_freq = inout_pwm_analog_write_set_freq;\nexport const pin_pressed_init = inout_pin_pressed_init;\nexport const pin_pressed = inout_pin_pressed;\nexport const controls_pin_attachInterrupt = inout_pin_attachInterrupt;\n","import * as Blockly from 'blockly/core';\nimport * as Mixly from 'mixly';\n\nconst IOT_HUE = '#526FC3';\n//'#2FAD7A';\n\nexport const iot_wifi_connect = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI);\n this.appendValueInput('WIFINAME')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_NAME);\n this.appendValueInput('PASSWORD')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_PASSWORD);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP);\n }\n};\n\nexport const iot_onenet_connect = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"OneNET\" + Blockly.Msg.TUPLE_JOIN);\n this.appendValueInput('CLIENT')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_CLIENT);\n this.appendValueInput('SERVER')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_SERVER);\n this.appendValueInput('USERNAME')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_USERNAME);\n this.appendValueInput('PASSWORD')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_PASSWORD);\n this.appendValueInput('TOPIC')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_TOPIC);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_ESP32_ONENET_SUB);\n //this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP);\n }\n};\n\nexport const iot_onenet_disconnect = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"OneNET\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_DISCONNECT_ONENET);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP);\n }\n};\n\nexport const iot_onenet_check = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"OneNET\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_CHECK_ONENET);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP);\n }\n};\n\nexport const iot_onenet_publish_dict = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"OneNET\")\n this.appendValueInput('DICT')\n .appendField(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA)\n .appendField(new Blockly.FieldCheckbox('TRUE'), 'is_print');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP);\n }\n};\n\nexport const iot_onenet_publish = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"OneNET\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendDummyInput()\n .appendField(new Blockly.FieldLabel(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET), 'TIP')\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.itemCount_ = 2;\n this.updateShape_();\n this.setInputsInline(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['iot_publish_item'], this));\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('iot_publish_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('iot_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n let i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (let i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n }\n var keyNames = [];\n for (let i = 0; this.getInput('ADD' + i); i++) {\n //this.getInput('VALUE' + i).removeField(\"KEY\"+i);\n keyNames.push(this.getFieldValue(\"KEY\" + i))\n this.removeInput('ADD' + i);\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n //this.getField('TIP')\n //.setText(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET_EMPTY);\n this.setFieldValue(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET_EMPTY, 'TIP');\n } else {\n //this.getField('TIP')\n //.setText(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET);\n this.setFieldValue(Blockly.Msg.MIXLY_ESP32_PUBLISH_ONENET, 'TIP');\n for (let i = 0; i < this.itemCount_; i++) {\n this.appendValueInput('ADD' + i)\n .setCheck(null)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\n new Blockly.FieldTextInput(\n keyNames.length > i\n ? keyNames[i]\n : '\"key' + (i + 1) + '\"'),\n 'KEY' + i)\n .appendField(\":\")\n }\n }\n }, getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const iot_publish_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\n\nexport const iot_publish_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const iot_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\n\nexport const iot_mixio_connect = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT);\n this.appendValueInput('SERVER')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_EMQX_SERVER)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('USERNAME')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_WIFI_USERNAME)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('PASSWORD')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_IOT_PASSWORD)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('PROJECT')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_EMQX_PROJECT)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const IOT_MIXIO_PUBLISH = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendValueInput('TOPIC')\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_NEW)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);\n this.appendValueInput('MSG')\n .appendField(Blockly.Msg.HTML_BODY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP);\n }\n};\n\nexport const IOT_MIXIO_SUBSCRIBE = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendValueInput('TOPIC')\n .appendField(Blockly.Msg.MIXLY_EMQX_SUBSCRIBE + Blockly.Msg.MIXLY_MICROBIT_MSG)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);\n this.appendValueInput('METHOD')\n .appendField(Blockly.Msg.MIXLY_EMQX_SET_METHOD);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP);\n }\n};\n\nexport const iot_mixio_disconnect = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_DISCONNECT_ONENET);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP);\n }\n};\n\nexport const iot_mixio_connect_only = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_EMQX_CONNECT);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP);\n }\n};\n\nexport const iot_mixio_check = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_CHECK_ONENET);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n // this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP);\n }\n};\n\nexport const iot_mixio_format_topic = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_FORMAT)\n .appendField(Blockly.Msg.MQTT_Topic);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const iot_mixio_format_msg = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_FORMAT)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_MSG);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const IOT_FORMATTING = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_ESP32_IOT_MAP_FORMATING);\n this.setOutput(true);\n // this.setTooltip();\n }\n};\n\nexport const IOT_FORMAT_STRING = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_FORMAT + '(Json)');\n this.setOutput(true);\n // this.setTooltip();\n }\n};\n\nexport const IOT_EMQX_PING = {\n init: function () {\n this.setColour(IOT_HUE);\n // this.appendValueInput('VAR')\n // .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(\"MixIO\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_EMQX_PING);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP);\n }\n};\n\nexport const IOT_MIXIO_NTP = {\n init: function () {\n this.setColour(IOT_HUE);\n // this.appendValueInput('VAR')\n // .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(\"MixIO\")\n .appendField(Blockly.Msg.MIXLY_GET_NTP)\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.blynk_SERVER_ADD);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT);\n this.appendValueInput('SERVER')\n .appendField(Blockly.Msg.MIXLY_EMQX_SERVER)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + Blockly.Msg.MIXLY_MIXIO_SHARE_KEY)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n\nexport const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT);\n this.appendValueInput('SERVER')\n .appendField(Blockly.Msg.MIXLY_EMQX_SERVER)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"Mixly Key\")\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n\nexport const iot_mixly_key = {\n init: function () {\n this.VISITOR_ID = Mixly.Config.BOARD.visitorId.str32.substring(0, 8).toUpperCase();\n this.setColour(IOT_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput(this.visitorId), 'VISITOR_ID');\n this.setOutput(true, null);\n },\n onchange: function () {\n const nowVisitorId = this.getFieldValue('VISITOR_ID');\n if (this.VISITOR_ID !== nowVisitorId)\n this.setFieldValue(this.VISITOR_ID, 'VISITOR_ID');\n }\n};\n\nexport const iot_client_onboard = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField('MixIO')\n .appendField(Blockly.Msg.MSG.catEthernet_clinet);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const iot_http_client = {\n init: function () {\n this.setColour(IOT_HUE);\n // this.appendValueInput('VAR')\n // .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(\"HTTP\" + Blockly.Msg.MIXLY_Client)\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_REQUESTS_GET)\n .appendField(Blockly.Msg.MIXLY_GET_CURRENT_TIME)\n .appendField(Blockly.Msg.MIXLY_OPEN_DEBUG)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, \"True\"],\n [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, \"False\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const iot_http_data = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"HTTP\" + Blockly.Msg.MIXLY_Client)\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_REQUESTS_LEN, \"client_len\"],\n [Blockly.Msg.MIXLY_REQUESTS_GET_LEN, \"server_len\"],\n [Blockly.Msg.MIXLY_REQUESTS_MESSAGE, \"text\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n\n }\n};\n\nexport const iot_mqtt_client = {\n init: function () {\n this.setColour(IOT_HUE);\n // this.appendValueInput('VAR')\n // .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(\"MQTT\" + Blockly.Msg.MIXLY_Client)\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_CONNECTTO);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_INIT_SUBSCRIBE)\n .appendField(Blockly.Msg.MQTT_Topic)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GET_CURRENT_TIME, \"\"],\n ]), \"key\")\n .appendField(Blockly.Msg.MIXLY_OPEN_DEBUG)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, \"True\"],\n [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, \"False\"]\n ]), \"key2\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const iot_mqtt_data = {\n init: function () {\n this.setColour(IOT_HUE);\n this.appendDummyInput()\n .appendField(\"MQTT\" + Blockly.Msg.MIXLY_Client)\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_REQUESTS_LEN, \"client_len\"],\n [Blockly.Msg.MIXLY_REQUESTS_GET_LEN, \"server_len\"],\n [Blockly.Msg.MIXLY_REQUESTS_MESSAGE, \"time_msg()\"]\n ]), \"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n\n }\n};\n\nexport const iot_wificonnect = iot_wifi_connect;\nexport const iot_onenetconnect = iot_onenet_connect;\nexport const iot_onenetdisconnect = iot_onenet_disconnect;\nexport const iot_checkonenet = iot_onenet_check;\nexport const iot_publish = iot_onenet_publish;","import * as Blockly from 'blockly/core';\n\nconst NETWORK_HUE = 225;\n\nexport const network_init = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NETWORK_INIT)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_NETWORK_MODE)\n .appendField(new Blockly.FieldDropdown([\n ['STA', \"STA\"],\n ['AP', \"AP\"]\n ]), \"mode\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP);\n }\n};\n\n\nexport const network_open = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_NETWORK_WIFI_OPEN, \"True\"],\n [Blockly.Msg.MIXLY_NETWORK_WIFI_CLOSE, \"False\"]\n ]), \"op\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_FLAG)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('op');\n var mode0 = Blockly.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;\n var TOOLTIPS = {\n 'True': Blockly.Msg.MIXLY_NETWORK_WIFI_OPEN,\n 'False': Blockly.Msg.MIXLY_NETWORK_WIFI_CLOSE,\n };\n return TOOLTIPS[mode] + mode0\n });\n }\n};\n\nexport const network_is_active = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE);\n }\n};\n\nexport const network_scan = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_SCAN)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode = 'all';\n var mode0 = Blockly.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP\n var TOOLTIPS = {\n '0': \"ssid\",\n '1': 'bssid',\n '2': \"channel\",\n '3': \"RSSI\",\n '4': \"authmode\",\n '5': \"hidden\",\n 'all': Blockly.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE,\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const network_connect = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_CONNECT);\n this.appendValueInput('id')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_NAME);\n this.appendValueInput('password')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_PASSWORD);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP);\n }\n};\n\nexport const network_wifi_connect = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_CONNECT + Blockly.Msg.MIXLY_SYMBOL_QUESTION);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP);\n }\n};\n\nexport const network_get_connect = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_GET_WIFI);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_NETWORK_IP, \"0\"],\n [Blockly.Msg.MIXLY_ESP32_NETWORK_MASK, \"1\"],\n [Blockly.Msg.MIXLY_ESP32_NETWORK_GATEWAY, \"2\"],\n [\"DNS\", \"3\"]\n ]), \"mode\");\n this.setOutput(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('mode');\n var mode0 = Blockly.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP\n var TOOLTIPS = {\n '0': Blockly.Msg.MIXLY_ESP32_NETWORK_IP,\n '1': Blockly.Msg.MIXLY_ESP32_NETWORK_MASK,\n '2': Blockly.Msg.MIXLY_ESP32_NETWORK_GATEWAY,\n '3': \"DNS\",\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const network_stop = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP);\n }\n};\n\nexport const network_get_wifi = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_GET_WIFI);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_NETWORK_WIFI_ESSID, \"essid\"],\n [Blockly.Msg.MIXLY_NETWORK_WIFI_CHANNEL, \"channel\"]\n ]), \"op\");\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP);\n }\n};\n\nexport const network_ap_connect = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET);\n this.appendValueInput('essid')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_ESSID);\n this.appendValueInput('channel')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_NETWORK_WIFI_CHANNEL);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP);\n }\n};\n\nexport const network_server = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_SERVER1);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NETWORK_SERVER2);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP);\n }\n};\n\nexport const network_socket_init = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_INIT)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE)\n .appendField(new Blockly.FieldDropdown([\n ['TCP', \"TCP\"],\n ['UDP', \"UDP\"]\n ]), \"mode\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('mode');\n var mode0 = Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP\n var TOOLTIPS = {\n 'TCP': 'TCP',\n 'UDP': 'UDP',\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const network_socket_bind = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET)\n this.appendValueInput('address')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP);\n }\n};\n\nexport const network_socket_connect = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET)\n this.appendValueInput('address')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP);\n }\n};\n\nexport const network_socket_listen = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendValueInput('queue')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP);\n }\n};\n\nexport const network_socket_accept = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP);\n }\n};\n\nexport const network_socket_receive = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"TCP\")\n this.appendValueInput('size')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP);\n }\n};\n\nexport const network_socket_send = {\n init: function () {\n this.setColour(NETWORK_HUE);\n // .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"TCP\")\n this.appendValueInput('content')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP);\n }\n};\n\nexport const network_socket_receive_from = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"UDP\")\n this.appendValueInput('size')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP);\n }\n};\n\nexport const network_socket_send_to = {\n init: function () {\n this.setColour(NETWORK_HUE);\n // .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n .appendField(\"UDP\")\n this.appendValueInput('content')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_SEND)\n this.appendValueInput('address')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_TO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP);\n }\n};\n\nexport const network_socket_close = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"var\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP);\n }\n};\n\n\nexport const requests_get = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendValueInput(\"DOMAIN\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n this.appendDummyInput(\"\")\n\n .appendField(Blockly.Msg.blockpy_REQUESTS_GET)\n .appendField(new Blockly.FieldTextInput('response'), 'VAR')\n\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.blockpy_REQUESTS_GET_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n\n}\n\n\nexport const requests_attribute = {\n init: function () {\n this.appendValueInput('VAL')\n\n var attr =\n [[Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'], [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text']\n , [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES, 'cookies'], [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content']];\n this.setColour(NETWORK_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown(attr), 'ATTR')\n\n\n this.setInputsInline(true);\n this.setOutput(true, String);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('DIR');\n var TOOLTIPS = {\n 'clear': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,\n 'reset': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_RESET,\n 'home': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_HOME\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\n\n\nexport const requests_method = {\n init: function () {\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n var method = [\n ['post', 'post'], ['put', 'put'],\n ['delete', 'delete'], ['head', 'head'],\n ['option', 'option']\n ];\n this.setColour(NETWORK_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_CONDUCT)\n .appendField(new Blockly.FieldDropdown(method), 'DIR')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_REQUESTS)\n\n\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('DIR');\n var TOOLTIPS = {\n 'forward': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,\n 'backward': Blockly.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const ntptime_time = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_NTP + '(NTP)')\n this.appendValueInput(\"data\")\n .appendField(Blockly.Msg.blynk_SERVER_ADD)\n this.setOutput(true, 'Tuple');\n this.setInputsInline(true);\n }\n};\n\nexport const ntptime_address = {\n init: function () {\n this.setColour(NETWORK_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n ['ntp.aliyun.com', \"ntp.aliyun.com\"],\n ['ntp1.aliyun.com', \"ntp1.aliyun.com\"],\n ['ntp2.aliyun.com', \"ntp2.aliyun.com\"],\n ['ntp3.aliyun.com', \"ntp3.aliyun.com\"],\n ['ntp4.aliyun.com', \"ntp4.aliyun.com\"],\n ['ntp5.aliyun.com', \"ntp5.aliyun.com\"],\n ['ntp6.aliyun.com', \"ntp6.aliyun.com\"],\n ['ntp7.aliyun.com', \"ntp7.aliyun.com\"],\n ['time1.cloud.tencent.com', \"time1.cloud.tencent.com\"],\n ['time2.cloud.tencent.com', \"time2.cloud.tencent.com\"],\n ['time3.cloud.tencent.com', \"time3.cloud.tencent.com\"],\n ['time4.cloud.tencent.com', \"time4.cloud.tencent.com\"],\n ['time5.cloud.tencent.com', \"time5.cloud.tencent.com\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nconst COMMUNICATE_HUE = '#3288dd';\n\nexport const requests_get2 = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput(\"URL\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_CONDUCT)\n .appendField(new Blockly.FieldDropdown([[\"get\", \"get\"], [\"head\", \"head\"], [\"delete\", \"delete\"]]), 'TYPE')\n .appendField(Blockly.Msg.blockpy_REQUESTS)\n .appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(\"\");\n },\n};\n\nexport const requests_post = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput(\"URL\")\n .appendField(Blockly.Msg.DISPLAY_IMAGE_LET2)\n .setCheck(String);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_CONDUCT)\n .appendField(new Blockly.FieldDropdown([[\"post\", \"post\"], [\"put\", \"put\"], [\"patch\", \"patch\"]]), 'TYPE')\n .appendField(Blockly.Msg.blockpy_REQUESTS)\n this.appendValueInput(\"data\")\n .appendField(Blockly.Msg.blockpy_REQUESTS + Blockly.Msg.OLED_STRING)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXPY_REQUESTS_GET_RESULT)\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(\"\");\n },\n};\n\nexport const requests_attribute2 = {\n init: function () {\n this.appendValueInput('VAL')\n\n var attr = [\n [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_TEXT, 'text'],\n [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_JSON, 'json()'],\n [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE, 'status_code'],\n [Blockly.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT, 'content'],\n [Blockly.Msg.MIXPY_TEXT_ENCODE, 'encoding']\n ];\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown(attr), 'ATTR')\n this.setInputsInline(true);\n this.setOutput(true, String);\n }\n};\n\n//educore_networke\nexport const educore_wifi_connect = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI);\n this.appendValueInput('WIFINAME')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_NAME);\n this.appendValueInput('PASSWORD')\n .setCheck(String)\n .appendField(Blockly.Msg.HTML_PASSWORD);\n this.appendValueInput('TIMEOUT')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_IR_TIMEOUT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MILLIS)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP);\n }\n};\n\n\n\nexport const educore_mqtt_connect = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP);\n this.appendValueInput('SERVER')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_EMQX_SERVER)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('PORT')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_EMQX_PORT)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('CLIENT_ID')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_EMQX_CLIENT_ID)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('USERNAME')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_WIFI_USERNAME)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.appendValueInput('PASSWORD')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_IOT_PASSWORD)\n .setAlign(Blockly.inputs.Align.RIGHT)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_mqtt_subscribe_message = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendValueInput('TOPIC')\n .appendField(Blockly.Msg.MIXLY_EMQX_SUBSCRIBE + Blockly.Msg.MIXLY_MICROBIT_MSG)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);\n this.appendValueInput('MESSAGE')\n .appendField(Blockly.Msg.blockpy_set_of);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_mqtt_topic_subscribe = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(\"mqtt\")\n this.appendValueInput('TOPIC')\n .appendField(Blockly.Msg.MIXLY_EMQX_SUBSCRIBE + Blockly.Msg.MIXLY_MICROBIT_MSG)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);\n this.appendValueInput('METHOD')\n .appendField(Blockly.Msg.MIXLY_EMQX_SET_METHOD);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_mqtt_topic_publish = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(\"mqtt\")\n this.appendValueInput('TOPIC')\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_NEW)\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH_TOPIC);\n this.appendValueInput('MSG')\n .appendField(Blockly.Msg.HTML_BODY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const educore_mqtt_connect_success = {\n init: function () {\n this.setColour(COMMUNICATE_HUE);\n this.appendDummyInput()\n .appendField(\"mqtt\"+Blockly.Msg.MIXLY_EMQX_IS_CONNECT)\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};","import * as Blockly from 'blockly/core';\nimport * as Mixly from 'mixly';\n\nconst NOVAG1_HUE = 100;\n\nexport const get_potential_num = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_nova\") { var name = 'Nova G1' }\n this.setColour(NOVAG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const nova_g1_motor = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_nova\") { var name = 'Nova G1' }\n this.setColour(NOVAG1_HUE);\n this.appendValueInput('PIN')\n .appendField(name)\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const nova_g1_usb = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_nova\") { var name = 'Nova G1' }\n this.setColour(NOVAG1_HUE);\n this.appendValueInput('PIN')\n .appendField(name)\n .appendField(Blockly.Msg.SET_USB);\n this.appendValueInput('percent')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_POWER_SUPPLY);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const nova_g1_spk_en = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_nova\") { var name = 'Nova G1' }\n this.setColour(NOVAG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_SPK_STATE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ON, \"True\"],\n [Blockly.Msg.MIXLY_OFF, \"False\"]\n ]), \"state\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}","import * as Blockly from 'blockly/core';\nimport * as Mixly from 'mixly';\n\nconst PEG1_HUE = 100;\n\nexport const pe_g1_use_i2c_init = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(name);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const pe_g1_battery_left = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const pe_g1_dc_motor = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.CLOCKWISE, \"CW\"],\n [Blockly.Msg.ANTI_CLOCKWISE, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const pe_g1_dc_motor_speed = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_STEPPER_GET_SPEED);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const pe_g1_servo_set_angle = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField('180°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n\n this.appendValueInput(\"NUM\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_MOVE);\n }\n};\n\nexport const pe_g1_servo_set_speed = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField('360°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n\n this.appendValueInput(\"NUM\", Number)\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_SPEED);\n this.appendDummyInput()\n .appendField('%');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS);\n }\n};\n\nexport const pe_g1_servo_get_angle = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField('180°' + Blockly.Msg.MIXLY_SERVO)\n\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const pe_g1_servo_get_speed = {\n init: function () {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_ce\") { var name = 'CE G6' }\n else if (version == \"mixgo_pe\") { var name = 'PE G1' }\n this.setColour(PEG1_HUE);\n this.appendValueInput('SUB')\n .appendField(name)\n .setCheck(\"var\");\n this.appendValueInput('PIN')\n .appendField('360°' + Blockly.Msg.MIXLY_SERVO)\n .appendField(Blockly.Msg.LCD_NUMBERING)\n\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_SPEED);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\n\nconst PINS_HUE = 230;\n\nexport const pins_digital = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_digital_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_input_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.input_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_output_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pwm_input = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_input), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const analog_input = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_input), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pwm_output = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_output), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const analog_output = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_output), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const espnow_channel = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.espnow_channel), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\n\nexport const i2c_A_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.i2c_A_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const i2c_B_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.i2c_B_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\n\nexport const spi_A_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_A_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_B_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_B_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_C_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_C_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_D_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_D_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_analog = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_analog_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_dac = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.dac), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_dac_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.dac_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_button = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.button), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_pwm = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_pwm_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_touch_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.touch_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_touch = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.touch), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_serial = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.serial_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_builtinimg = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.builtinimg), 'PIN');\n this.setOutput(true, \"esp32_image\");\n }\n};\n\nexport const pins_imglist = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.imglist), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_playlist = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.playlist), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_exlcdh = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.exlcdh), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_exlcdv = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.exlcdv), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_axis = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.axis), 'PIN');\n this.setOutput(true, Number);\n }\n};\nexport const pins_brightness = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.brightness), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_tone_notes = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.tone_notes), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_radio_power = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.radio_power), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_radio_datarate = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.radio_datarate), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_one_more = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.one_more), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_digital_dot = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital_dot), 'PIN');\n this.setOutput(true, Number);\n }\n};","import * as Blockly from 'blockly/core';\nimport { sensor_LTR308 } from './sensor_onboard';\n\nconst SENSOR_HUE = 40; //'#9e77c9'//40;\n\nexport const sensor_mixgo_button_is_pressed = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_button_get_presses = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);\n }\n};\n\nexport const sensor_mixgo_button_attachInterrupt = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"btn\")\n .appendField(Blockly.Msg.MIXLY_ESP32_INTERRUPT)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING or machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);\n }\n};\n\n\nexport const sensor_mixgo_extern_button_is_pressed = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_PRESSED);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_ELECLEVEL);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_extern_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_ELECLEVEL);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_extern_button_get_presses = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);\n }\n};\n\nexport const sensor_mixgo_extern_button_attachInterrupt = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING or machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);\n }\n};\n\nexport const sensor_mpu9250_attachGestureInterrupt = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_shake, \"shake\"], [Blockly.Msg.MIXLY_UP, \"up\"], [Blockly.Msg.MIXLY_DOWN, \"down\"], [Blockly.Msg.MIXLY_LEFT, \"left\"], [Blockly.Msg.MIXLY_RIGHT, \"right\"], [Blockly.Msg.MIXLY_MICROBIT_face_up, \"face up\"], [Blockly.Msg.MIXLY_MICROBIT_face_down, \"face down\"], [Blockly.Msg.MIXLY_MICROBIT_freefall, \"freefall\"], [\"3g\", \"3g\"], [\"6g\", \"6g\"], [\"8g\", \"8g\"]]), \"gesture\");\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('gesture');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;\n var mode1 = Blockly.Msg.MSG.catSensor;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE\n var TOOLTIPS = {\n 'shake': Blockly.Msg.MIXLY_MICROBIT_shake,\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT,\n 'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,\n 'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,\n 'freefall': Blockly.Msg.MIXLY_MICROBIT_freefall,\n '3g': '3g',\n '6g': '6g',\n '8g': '8g'\n };\n return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;\n });\n }\n};\n\nexport const sensor_mpu9250_gesture = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_shake, \"shake\"], [Blockly.Msg.MIXLY_UP, \"up\"], [Blockly.Msg.MIXLY_DOWN, \"down\"], [Blockly.Msg.MIXLY_LEFT, \"left\"], [Blockly.Msg.MIXLY_RIGHT, \"right\"], [Blockly.Msg.MIXLY_MICROBIT_face_up, \"face up\"], [Blockly.Msg.MIXLY_MICROBIT_face_down, \"face down\"]]), \"gesture\");\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('gesture');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;\n var mode1 = Blockly.Msg.MSG.catSensor;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE\n var TOOLTIPS = {\n 'shake': Blockly.Msg.MIXLY_MICROBIT_shake,\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT,\n 'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,\n 'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,\n // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall,\n // '3g': '3g',\n // '6g': '6g',\n // '8g': '8g'\n };\n return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;\n });\n }\n};\n\nexport const sensor_mpu9250_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\n\nexport const sensor_adxl345_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_ADXL345)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\n\nexport const sensor_light_level = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP);\n }\n};\n\nexport const sensor_mpu9250_calibrate_compass = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS);\n }\n};\n// export const sensor_mpu9250_is_compass_calibrated = {\n// init: function(){\n// this.setColour(SENSOR_HUE);\n// this.appendValueInput('SUB')\n// .setCheck(\"var\");\n// this.appendDummyInput()\n// .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_IS_COMPASS_CALIBRATED)\n// this.setOutput(true, Number);\n// this.setInputsInline(true);\n// this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_IS_COMPASS_CALIBRATED1);\n// }\n// };\n// export const sensor_mpu9250_compass_heading = {\n// init: function(){\n// this.setColour(SENSOR_HUE);\n// this.appendValueInput('SUB')\n// .setCheck(\"var\");\n// this.appendDummyInput()\n// .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE)\n// this.setOutput(true, Number);\n// this.setInputsInline(true);\n// }\n// };\n\nexport const sensor_mpu9250_temperature = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n this.setTooltip(Blockly.Msg.MIXLY_GETTEMPERATUE);\n }\n};\n\nexport const sensor_mpu9250_field_strength = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('compass');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS;\n var TOOLTIPS = {\n 'strength': Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,\n 'heading': Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE\n };\n return mode0 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const sensor_distance_hrsc04 = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CHAOSHENGBO)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_CHAOSHENGBO);\n }\n};\n\n//传感器-实时时钟块_获取时间\nexport const RTC_get_time = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"RTC\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCGETTIME);\n // this.appendDummyInput(\"\").setAlign(Blockly.inputs.Align.RIGHT).appendField('myRTC');\n // this.appendDummyInput(\"\").setAlign(Blockly.inputs.Align.RIGHT).appendField(new Blockly.FieldDropdown(RTC_TIME_TYPE), \"TIME_TYPE\");\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP);\n // var thisBlock = this;\n // this.setTooltip(function() {\n // var mode = thisBlock.getFieldValue('TIME_TYPE');\n // var mode0 = Blockly.Msg.MIXLY_RTCGETTIME;\n // var TOOLTIPS = {\n // 'Year':Blockly.Msg.MIXLY_YEAR,\n // 'Month':Blockly.Msg.MIXLY_MONTH,\n // 'Day':Blockly.Msg.MIXLY_DAY,\n // 'Hour':Blockly.Msg.MIXLY_HOUR,\n // 'Minute':Blockly.Msg.MIXLY_MINUTE,\n // 'Second':Blockly.Msg.MIXLY_SECOND,\n // 'Week':Blockly.Msg.MIXLY_WEEK,\n // 'Mix1':Blockly.Msg.MIXLY_MIX1,\n // 'Mix2':Blockly.Msg.MIXLY_MIX2\n // };\n // return mode0 +TOOLTIPS[mode];\n // });\n }\n};\n\nexport const RTC_set_time = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCSETTIME)\n .appendField('myRTC');\n this.appendValueInput(\"hour\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_HOUR);\n this.appendValueInput(\"minute\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_MINUTE);\n this.appendValueInput(\"second\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_SECOND);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(false);\n this.setTooltip(Blockly.Msg.MIXLY_RTCSETTIME + Blockly.Msg.MIXLY_MIX2);\n }\n};\n\nexport const RTC_set_date = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCSETDATE)\n .appendField('myRTC');\n this.appendValueInput(\"year\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_YEAR);\n this.appendValueInput(\"month\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_MONTH);\n this.appendValueInput(\"day\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_DAY);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_RTCSETDATE + Blockly.Msg.MIXLY_MIX1);\n }\n};\n\nexport const sensor_compass_reset = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS);\n }\n};\n\nexport const HCSR04 = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CHAOSHENGBO);\n this.appendValueInput(\"PIN1\", Number)\n .appendField('Trig #')\n .setCheck(Number);\n this.appendValueInput(\"PIN2\", Number)\n .appendField('Echo #')\n .setCheck(Number);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO);\n }\n\n};\n\nexport const sensor_dht11 = {\n init: function () {\n var WHAT = [[Blockly.Msg.MIXLY_GETTEMPERATUE, 'temperature'], [Blockly.Msg.MIXLY_GETHUMIDITY, 'relative_humidity'], [Blockly.Msg.MIXLY_DHT11_T_H, 'tempandhum']];\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(new Blockly.FieldDropdown([['DHT11', 'dht11']\n , ['DHT22', 'dht22']//, ['DHT21', '21'], ['DHT33', '33'], ['DHT44', '44']\n ]), 'TYPE')\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(WHAT), \"WHAT\");\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('WHAT');\n var TOOLTIPS = {\n 'temperature': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,\n 'relative_humidity': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,\n 'tempandhum': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM\n };\n return TOOLTIPS[op];\n });\n }\n};\n\n\nexport const sensor_mixgo_extern_light = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP);\n }\n};\n\nexport const sensor_mixgo_extern_sound = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_SOUND);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP);\n }\n};\n\nexport const number1 = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"1\", \"touch1\"], [\"2\", \"touch2\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const sensor_mixgo_pin_pressed = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"button\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_sensor_pin_pressed);\n }\n};\n\nexport const sensor_mixgo_extern_pin_near = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP + Blockly.Msg.MIXLY_ESP32_NEAR);\n }\n};\n\n\nexport const sensor_mixgo_pin_near = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"left\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"right\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NEAR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n var TOOLTIPS = {\n 'left': Blockly.Msg.TEXT_TRIM_LEFT,\n 'right': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const RTC_set_datetime = {\n init: function () {\n this.setColour(SENSOR_HUE);\n // this.appendDummyInput()\n this.appendValueInput('SUB')\n .appendField(\"RTC\")\n .appendField(Blockly.Msg.MIXLY_RTC_TIME)\n .setCheck(\"var\");\n this.appendValueInput('year')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_YEAR);\n this.appendValueInput('month')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_MONTH);\n this.appendValueInput('day')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_DAY);\n this.appendValueInput('weekday')\n .setCheck(Number)\n .appendField(\" \" +\n Blockly.Msg.MIXLY_WEEK2);\n this.appendValueInput('hour')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_HOUR);\n this.appendValueInput('minute')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_MINUTE);\n this.appendValueInput('second')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_SECOND);\n this.appendValueInput('millisecond')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_MILLISECOND);\n this.setInputsInline(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP);\n }\n};\n\nexport const sensor_rtc_init = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"RTC\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP);\n }\n};\n\nexport const sensor_use_i2c_init = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [\"MPU9250\", \"MPU9250\"],\n [\"BMP280\", \"BMP280\"],\n [\"SHT20\", \"SHT20\"],\n [\"ADXL345\", \"ADXL345\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setFieldValue(\"MPU9250\", \"key\");\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP;\n var TOOLTIPS = {\n \"MPU9250\": \"MPU9250\",\n \"SHT20\": \"SHT20\",\n \"BMP280\": \"BMP280\",\n \"ADXL345\": \"ADXL345\"\n };\n return mode0 + TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_bmp = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"get_BMP_temperature()\"],\n [Blockly.Msg.MIXLY_GETPRESSURE, \"get_BMP_pressure()\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"get_BMP_temperature()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,\n \"get_BMP_pressure()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP,\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_sht = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"SHT20\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"get_SHT_temperature()\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"get_SHT_relative_humidity()\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"get_SHT_temperature()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"get_SHT_relative_humidity()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP,\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_ds18x20 = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"DS18x20 \" + Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP);\n }\n};\n\nexport const sensor_mpu9250_get_magnetic = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_mpu9250_get_gyro = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_lm35 = {\n init: function () {\n this.setColour(SENSOR_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"LM35\" + Blockly.Msg.MIXLY_TEMP);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LM35);\n }\n};\n\nexport const sensor_button_is_pressed = sensor_mixgo_button_is_pressed;\nexport const sensor_button_was_pressed = sensor_mixgo_button_was_pressed;\nexport const sensor_button_get_presses = sensor_mixgo_button_get_presses;\nexport const sensor_pin_pressed = sensor_mixgo_pin_pressed;\nexport const sensor_pin_near = sensor_mixgo_pin_near;\nexport const sensor_mixgo_light = sensor_LTR308;\nexport const sensor_light = sensor_mixgo_light;\nexport const sensor_get_acceleration = sensor_mpu9250_get_acceleration;\nexport const dht11 = sensor_dht11;\nexport const sensor_field_strength = sensor_mpu9250_field_strength;\nexport const sensor_temperature = sensor_mpu9250_temperature","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\n\nconst SENSOR_EXTERN_HUE = '#A58C5B'; //'#9e77c9'//40;\n\n\nexport const sensor_mixgo_extern_button_is_pressed = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_PRESSED);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_ELECLEVEL);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_extern_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_ELECLEVEL);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_extern_button_get_presses = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);\n }\n};\n\nexport const sensor_mixgo_extern_button_attachInterrupt = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);\n }\n};\n\n\nexport const sensor_mpu9250_attachGestureInterrupt = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_shake, \"shake\"], [Blockly.Msg.MIXLY_UP, \"up\"], [Blockly.Msg.MIXLY_DOWN, \"down\"], [Blockly.Msg.MIXLY_LEFT, \"left\"], [Blockly.Msg.MIXLY_RIGHT, \"right\"], [Blockly.Msg.MIXLY_MICROBIT_face_up, \"face up\"], [Blockly.Msg.MIXLY_MICROBIT_face_down, \"face down\"], [Blockly.Msg.MIXLY_MICROBIT_freefall, \"freefall\"], [\"3g\", \"3g\"], [\"6g\", \"6g\"], [\"8g\", \"8g\"]]), \"gesture\");\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('gesture');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;\n var mode1 = Blockly.Msg.MSG.catSensor;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE\n var TOOLTIPS = {\n 'shake': Blockly.Msg.MIXLY_MICROBIT_shake,\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT,\n 'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,\n 'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,\n 'freefall': Blockly.Msg.MIXLY_MICROBIT_freefall,\n '3g': '3g',\n '6g': '6g',\n '8g': '8g'\n };\n return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;\n });\n }\n};\n\n\nexport const sensor_adxl345_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_ADXL345)\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\n\n\nexport const sensor_light_level = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP);\n }\n};\n\n\n\nexport const sensor_dht11 = {\n init: function () {\n var WHAT = [[Blockly.Msg.MIXLY_GETTEMPERATUE, 'temperature'], [Blockly.Msg.MIXLY_GETHUMIDITY, 'humidity']];\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(new Blockly.FieldDropdown([['DHT11', 'DHT11']\n , ['DHT22', 'DHT22']//, ['DHT21', '21'], ['DHT33', '33'], ['DHT44', '44']\n ]), 'TYPE')\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(WHAT), \"WHAT\");\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('WHAT');\n var TOOLTIPS = {\n 'temperature': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,\n 'relative_humidity': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,\n 'tempandhum': Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM\n };\n return TOOLTIPS[op];\n });\n }\n};\n\n\nexport const sensor_mixgo_extern_light = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP);\n }\n};\n\nexport const sensor_mixgo_extern_sound = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_SOUND);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP);\n }\n};\n\n\n\nexport const sensor_mixgo_extern_pin_near = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"left\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"right\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NEAR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n var TOOLTIPS = {\n 'left': Blockly.Msg.TEXT_TRIM_LEFT,\n 'right': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const sensor_bmp = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_ALTITUDE_SENSOR+\" BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"get_BMP_temperature()\"],\n [Blockly.Msg.MIXLY_GETPRESSURE, \"get_BMP_pressure()\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"get_BMP_temperature()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,\n \"get_BMP_pressure()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP,\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_sht = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR +\" SHT20\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"get_SHT_temperature()\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"get_SHT_relative_humidity()\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"get_SHT_temperature()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"get_SHT_relative_humidity()\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP,\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_DS18X20 = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"DS18X20 \" + Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP);\n }\n};\n\nexport const sensor_lm35 = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"LM35\" + Blockly.Msg.MIXLY_TEMP);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LM35);\n }\n};\n\n\n//pe\nexport const sensor_use_i2c_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('I2CSUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"I2C\")\n .setCheck(\"var\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT+\"(LTR308ALS)\", \"LTR308\"],\n [Blockly.Msg.MIXLY_COLOR_SENSOR+\"(LTR381RGB)\", \"LTR381RGB\"],\n [Blockly.Msg.MIXLY_COLOR_SENSOR+\"(UCS12071)\",\"UCS12071\"],\n [Blockly.Msg.MIXLY_EXTERN_LIGHTUV +\"(LTR390UV)\",\"LTR390UV\"],\n [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+\"(HP203X)\", \"HP203X\"],\n [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+\"(SPL06_001)\",\"SPL06_001\"],\n [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+\"(BMP280)\", \"BMP280\"],\n [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + \"(SHTC3)\", \"SHTC3\"],\n [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + \"(AHT21)\", \"AHT21\"],\n [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + \"(SHT20)\", \"SHT20\"],\n [Blockly.Msg.MIXLY_LASER_RANGE_SENSOR + \"(VL53L0X)\", \"VL53L0X\"],\n [Blockly.Msg.MIXLY_GEOMAGNETIC_SENSOR + \"(QMC5883L)\", \"QMC5883L\"],\n [Blockly.Msg.MIXLY_ESP32_MAX30102+\"(MAX30102)\", \"MAX30102\"],\n [Blockly.Msg.HTML_COLOUR +\"、\"+ Blockly.Msg.MIXLY_ENVIRONMENT_LIGHT+\"、\"+Blockly.Msg.MIXLY_NEXT+\"、\"+Blockly.Msg.MIXLY_ESP32_APDS9960+\"(APDS9960)\", \"APDS9960\"],\n [Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\"(MPU9250)\", \"MPU9250\"],\n [Blockly.Msg.MixGo_MPU9250+\"(ADXL345)\", \"ADXL345\"],\n [\"RFID\", \"RFID\"],\n [Blockly.Msg.MIXLY_RADAR_SENSOR+\"(CBR817)\", \"CBR817\"],\n [Blockly.Msg.MIXLY_AipSpeech_asr+\"(CI130X)\",\"CI130X\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setFieldValue(\"LTR308\", \"key\");\n }\n};\n\nexport const radar_set_DETECTION_THRESHOLD = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_RADAR+'CBR817')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION)\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_DETECTION_THRESHOLD);\n this.appendValueInput('VAR2')\n .appendField(Blockly.Msg.MIXLY_DELAY_TIME);\n this.appendDummyInput()\n .appendField('ms');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+Blockly.Msg.MIXLY_DELAY_TIME_RANGE)\n }\n};\n\nexport const radar_set_DETECTION_THRESHOLD_SANT = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RADAR)\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION)\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_DETECTION_THRESHOLD);\n this.appendValueInput('VAR2')\n .appendField(Blockly.Msg.MIXLY_DELAY_TIME);\n this.appendDummyInput()\n .appendField('ms');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+Blockly.Msg.MIXLY_DELAY_TIME_RANGE)\n }\n};\n\nexport const interaction_whether_to_interaction = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_RADAR+'CBR817')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const interaction_whether_to_interaction_SANT = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RADAR)\n .appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_IDENTIFY_AND_SAVE = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_GET_WHETHER_IDENTIFY = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_HELLO_XIAOZHI,\"1\"],\n [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI ,\"2\"],\n [Blockly.Msg.MIXLY_THE_FIRST ,\"3\"],\n [Blockly.Msg.MIXLY_THE_SECOND ,\"4\"],\n [Blockly.Msg.MIXLY_THE_THIRD ,\"5\"],\n [Blockly.Msg.MIXLY_THE_FOURTH ,\"6\"],\n [Blockly.Msg.MIXLY_THE_FIFTH ,\"7\"],\n [Blockly.Msg.MIXLY_THE_SIXTH ,\"8\"],\n [Blockly.Msg.MIXLY_THE_SEVENTH ,\"9\"],\n [Blockly.Msg.MIXLY_THE_EIGHTH ,\"10\"],\n [Blockly.Msg.MIXLY_THE_NINTH ,\"11\"],\n [Blockly.Msg.MIXLY_THE_TENTH ,\"12\"],\n [Blockly.Msg.MIXLY_THE_ELEVENTH ,\"13\"],\n [Blockly.Msg.MIXLY_THE_TWELFTH ,\"14\"],\n [Blockly.Msg.MIXLY_THE_13TH ,\"15\"],\n [Blockly.Msg.MIXLY_THE_14TH ,\"16\"],\n [Blockly.Msg.MIXLY_THE_15TH ,\"17\"],\n [Blockly.Msg.MIXLY_THE_16TH ,\"18\"],\n [Blockly.Msg.MIXLY_THE_17TH ,\"19\"],\n [Blockly.Msg.MIXLY_THE_18TH ,\"20\"],\n [Blockly.Msg.MIXLY_THE_19TH ,\"21\"],\n [Blockly.Msg.MIXLY_THE_20TH ,\"22\"],\n [Blockly.Msg.MIXLY_Turn_on_the_lights ,\"23\"],\n [Blockly.Msg.MIXLY_Turn_off_the_lights ,\"24\"],\n [Blockly.Msg.MIXLY_Turn_up_the_brightness ,\"25\"],\n [Blockly.Msg.MIXLY_Turn_down_the_brightness ,\"26\"],\n [Blockly.Msg.MIXLY_Set_it_to_red ,\"27\"],\n [Blockly.Msg.MIXLY_Set_it_to_orange ,\"28\"],\n [Blockly.Msg.MIXLY_Set_it_to_yellow ,\"29\"],\n [Blockly.Msg.MIXLY_Set_it_to_green ,\"30\"],\n [Blockly.Msg.MIXLY_Set_it_to_cyan ,\"31\"],\n [Blockly.Msg.MIXLY_Set_it_to_blue ,\"32\"],\n [Blockly.Msg.MIXLY_Set_it_to_purple ,\"33\"],\n [Blockly.Msg.MIXLY_Set_it_to_white ,\"34\"],\n [Blockly.Msg.MIXLY_Turn_on_the_fan ,\"35\"],\n [Blockly.Msg.MIXLY_Turn_off_the_fan ,\"36\"],\n [Blockly.Msg.MIXLY_First_gear ,\"37\"],\n [Blockly.Msg.MIXLY_Wind_speed_second ,\"38\"],\n [Blockly.Msg.MIXLY_Third_gear ,\"39\"],\n [Blockly.Msg.MIXLY_Previous ,\"40\"],\n [Blockly.Msg.MIXLY_Next_page ,\"41\"],\n [Blockly.Msg.MIXLY_Show_smiley_face ,\"42\"],\n [Blockly.Msg.MIXLY_Show_crying_face ,\"43\"],\n [Blockly.Msg.MIXLY_Show_love ,\"44\"],\n [Blockly.Msg.MIXLY_Close_display ,\"45\"],\n [Blockly.Msg.MIXLY_Start_execution ,\"46\"],\n [Blockly.Msg.MIXLY_FORWARD ,\"47\"],\n [Blockly.Msg.MIXLY_BACKWARD ,\"48\"],\n [Blockly.Msg.MIXLY_TURNLEFT ,\"49\"],\n [Blockly.Msg.MIXLY_TURNRIGHT ,\"50\"],\n [Blockly.Msg.MIXLY_STOP ,\"51\"],\n [Blockly.Msg.MIXLY_Accelerate ,\"52\"],\n [Blockly.Msg.MIXLY_retard ,\"53\"],\n [Blockly.Msg.ROTATION_FORWARD ,\"54\"],\n [Blockly.Msg.ROTATION_BACKWARD ,\"55\"],\n [Blockly.Msg.MIXLY_Query_temperature ,\"56\"],\n [Blockly.Msg.MIXLY_Query_humidity ,\"57\"],\n [Blockly.Msg.MIXLY_Query_brightness ,\"58\"],\n [Blockly.Msg.MIXLY_Query_sound ,\"59\"],\n [Blockly.Msg.MIXLY_Query_time ,\"60\"],\n [Blockly.Msg.MIXLY_Query_distance ,\"61\"],\n [Blockly.Msg.MIXLY_Query_pressure ,\"62\"],\n [Blockly.Msg.MIXLY_Query_key ,\"63\"],\n [Blockly.Msg.MIXLY_Query_touch ,\"64\"],\n [Blockly.Msg.MIXLY_Query_color ,\"65\"]\n ]),\"cmd\")\n .appendField(Blockly.Msg.MIXLY_WHETHER+Blockly.Msg.MIXLY_BE_IDENTIFIED);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_GET_THE_RECOGNIZED_CMD = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RECOGNIZED_STATE,\"status1\"],\n [Blockly.Msg.MIXLY_WHETHER_BROADCAST,\"status2\"],\n [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD,\"result\"]\n ]),\"key\")\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP);\n }\n};\n\nexport const CI130X_BROADCAST = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MP3_PLAY)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,\"None\"],\n [Blockly.Msg.MIXLY_WIND_SPEED,\"154\"],\n [Blockly.Msg.MIXLY_HYETAL,\"155\"],\n [Blockly.Msg.MIXLY_TEMPERATURE,\"156\"],\n [Blockly.Msg.MIXLY_Humidity,\"157\"],\n [Blockly.Msg.MIXLY_Altitude, \"158\"],\n [Blockly.Msg.MIXLY_SOUND, \"159\"],\n [Blockly.Msg.MIXLY_BRIGHTNESS, \"160\"],\n [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE,\"161\"],\n [Blockly.Msg.MIXLY_SERVO,\"162\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,\"163\"],\n [Blockly.Msg.MIXLY_BUTTON2,\"164\"],\n [Blockly.Msg.MIXLY_ESP32_TOUCH,\"165\"],\n [Blockly.Msg.MIXLY_PAY,\"166\"],\n [Blockly.Msg.MIXLY_CARSH_CHANGE,\"167\"],\n [Blockly.Msg.MIXLY_COUNTDOWN,\"168\"],\n [Blockly.Msg.MIXLY_TIMING,\"169\"],\n [Blockly.Msg.MIXLY_AT_THE_MOMENT,\"170\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,\"171\"],\n [Blockly.Msg.MIXLY_FORWARD ,\"172\"],\n [Blockly.Msg.MIXLY_BACKWARD ,\"173\"],\n [Blockly.Msg.MIXLY_TURNLEFT ,\"174\"],\n [Blockly.Msg.MIXLY_TURNRIGHT ,\"175\"],\n [Blockly.Msg.MIXLY_STOP ,\"176\"],\n [Blockly.Msg.MIXLY_Accelerate ,\"177\"],\n [Blockly.Msg.MIXLY_retard ,\"178\"],\n [Blockly.Msg.ROTATION_FORWARD ,\"179\"],\n [Blockly.Msg.ROTATION_BACKWARD ,\"180\"],\n [Blockly.Msg.TUPLE_JOIN,\"181\"],\n [Blockly.Msg.MIXLY_SHOW,\"182\"],\n [Blockly.Msg.MIXLY_LAMPLIGHT,\"183\"],\n [Blockly.Msg.MIXLY_ACCELERATION,\"184\"]\n ]),\"star\");\n this.appendValueInput('NUM')\n .appendField(Blockly.Msg.MIXLY_NUMBER);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_UNIT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,\"None\"],\n [Blockly.Msg.MIXLY_YEAR,\"117\"],\n [Blockly.Msg.MIXLY_MONTH,\"118\"],\n [Blockly.Msg.MIXLY_DAY,\"119\"],\n [Blockly.Msg.MIXLY_HOUR,\"120\"],\n [Blockly.Msg.MIXLY_MINUTE,\"121\"],\n [Blockly.Msg.MIXLY_SECOND,\"122\"],\n [Blockly.Msg.MIXLY_WEEK2,\"123\"],\n [Blockly.Msg.MIXLY_RMB_UNIT,\"124\"],\n [Blockly.Msg.blockpy_setheading_degree,\"125\"],\n [Blockly.Msg.MIXLY_GEAR,\"126\"],\n [Blockly.Msg.MIXLY_LAYER,\"127\"],\n [Blockly.Msg.MIXLY_GRAM,\"128\"],\n [Blockly.Msg.MIXLY_METER,\"129\"],\n [Blockly.Msg.MIXLY_CENTIMETER,\"130\"],\n [Blockly.Msg.MIXLY_MILLIMETER,\"131\"],\n [Blockly.Msg.MIXLY_LUMEN,\"132\"],\n [Blockly.Msg.MIXLY_DECIBEL,\"133\"],\n [Blockly.Msg.MIXLY_hectopascal,\"134\"],\n [Blockly.Msg.MIXLY_PERCENT,\"135\"],\n [Blockly.Msg.MIXLY_CELSIUS,\"136\"],\n [Blockly.Msg.MIXLY_METER_PER_SEC,\"137\"],\n [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,\"138\"],\n [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display,\"139\"],\n [Blockly.Msg.MIXLY_SUCCESS,\"140\"],\n [Blockly.Msg.MIXLY_FAILED,\"141\"],\n [Blockly.Msg.MIXLY_WRONG,\"142\"],\n [Blockly.Msg.MIXLY_GOOD,\"143\"],\n [Blockly.Msg.MIXLY_blockpy_set_add,\"144\"],\n [Blockly.Msg.MIXLY_DECREASE,\"145\"],\n [Blockly.Msg.COLOUR_RGB_RED,\"146\"],\n [Blockly.Msg.COLOUR_RGB_ORANGE,\"147\"],\n [Blockly.Msg.COLOUR_YELLOW,\"148\"],\n [Blockly.Msg.COLOUR_RGB_GREEN,\"149\"],\n [Blockly.Msg.COLOUR_CYAN,\"150\"],\n [Blockly.Msg.COLOUR_RGB_BLUE,\"151\"],\n [Blockly.Msg.COLOUR_RGB_PURPLE,\"152\"],\n [Blockly.Msg.COLOUR_RGB_WHITE,\"153\"]\n ]),\"end\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const CI130X_SET_SYSTEM_CMD = {\n init:function(){\n this.setColour(SENSOR_EXTERN_HUE); \n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MILXY_ENTER_WAKE_UP,\"1\"],\n [Blockly.Msg.MIXLY_INCREASE_VOLUME,\"202\"],\n [Blockly.Msg.MIXLY_REDUCE_VOLUME,\"203\"],\n [Blockly.Msg.MIXLY_MAX_VOLUME,\"204\"],\n [Blockly.Msg.MIXLY_MINIMUM,\"205\"],\n [Blockly.Msg.MIXLY_OPEN_RESPONSE,\"206\"],\n [Blockly.Msg.MIXLY_CLOSE_RESPONSE,\"207\"],\n [Blockly.Msg.MIXLY_QUIT_WAKE_UP,\"208\"]\n ]),\"cmd\")\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_MAX30102_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MAX30102 + \" MAX30102\");\n this.appendValueInput('SUB')\n //.appendField(\"BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_MAX30102_IR, \"[0]\"],\n [Blockly.Msg.MIXLY_ESP32_MAX30102_RED, \"[1]\"],\n [Blockly.Msg.MIXLY_ESP32_MAX30102_IR + ',' + Blockly.Msg.MIXLY_ESP32_MAX30102_RED, \"\"],\n ]), \"key\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_APDS9960_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_APDS9960 + \" APDS9960\");\n this.appendValueInput('SUB')\n //.appendField(\"BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ESP32_APDS9960_COLOR, \"color\"],\n [Blockly.Msg.MIXLY_ESP32_APDS9960_GESTURE, \"gesture\"],\n [Blockly.Msg.MIXLY_ESP32_APDS9960_APPROACH, \"proximity\"],\n ]), \"key\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_LTR308_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + \" LTR308ALS\");\n this.appendValueInput('SUB')\n //.appendField(\"BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_LIGHT_INTENSITY);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_ltr381_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor + \" LTR381RGB\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GET + Blockly.Msg.HTML_COLOUR, \"[2]\"],\n [Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_IR_STRENGTH, \"[1]\"],\n [Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_LIGHT_STRENGTH, \"[0]\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_ucs12071_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor + \" UCS12071\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GET +'RGB'+ Blockly.Msg.HTML_COLOUR, \"0\"],\n [Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_RGB_RAW, \"1\"],\n [Blockly.Msg.MIXLY_GET_ENV_LIGHT + Blockly.Msg.MIXLY_BRIGHTNESS, \"2\"],\n [Blockly.Msg.GET_IR_STRENGTH+Blockly.Msg.MIXLY_BRIGHTNESS,\"3\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_LTR390UV_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_EXTERN_LIGHTUV + \" LTR390UV\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GET_ENV_LIGHT, \"E\"],\n [Blockly.Msg.MIXLY_GET_ULTRAVIOLET, \"U\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_VL530LX_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LASER_RANGE + \" VL53L0X\");\n this.appendValueInput('SUB')\n //.appendField(\"BMP280\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_DISTANCE + '(mm)');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_shtc3_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_TEM_HUM + \" SHTC3\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"humidity\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"temperature\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"humidity\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_aht11_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_TEM_HUM + \" AHT21\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"humidity\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"temperature\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"relative_humidity\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const sensor_hp203_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + \" HP203X\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETPRESSURE, \"pressure()\"],\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature()\"],\n [Blockly.Msg.MIXLY_GET_ALTITUDE, \"altitude()\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_spl06_001_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + \" SPL06_001\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETPRESSURE, \"pressure()\"],\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature()\"],\n [Blockly.Msg.MIXLY_GET_ALTITUDE, \"altitude()\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_QMC5883L_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MIXGOPE_FIELD + Blockly.Msg.MSG.catSensor + \" QMC5883L\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, \"get_bearing()\"],\n [Blockly.Msg.MIXLY_TEMPERATURE, \"get_temp()\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_mpu9250_gesture = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_shake, \"shake\"], [Blockly.Msg.MIXLY_UP, \"up\"], [Blockly.Msg.MIXLY_DOWN, \"down\"], [Blockly.Msg.MIXLY_LEFT, \"left\"], [Blockly.Msg.MIXLY_RIGHT, \"right\"], [Blockly.Msg.MIXLY_MICROBIT_face_up, \"face up\"], [Blockly.Msg.MIXLY_MICROBIT_face_down, \"face down\"]]), \"gesture\");\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('gesture');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;\n var mode1 = Blockly.Msg.MSG.catSensor;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE\n var TOOLTIPS = {\n 'shake': Blockly.Msg.MIXLY_MICROBIT_shake,\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT,\n 'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,\n 'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,\n // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall,\n // '3g': '3g',\n // '6g': '6g',\n // '8g': '8g'\n };\n return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;\n });\n }\n};\n\nexport const sensor_mpu9250_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\" MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_mpu9250_get_magnetic = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\" MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_mpu9250_get_gyro = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\" MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_mpu9250_calibrate_compass = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\" MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS);\n }\n};\n\n\nexport const sensor_mpu9250_temperature = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+\" MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n this.setTooltip(Blockly.Msg.MIXLY_GETTEMPERATUE);\n }\n};\n\n\nexport const sensor_mpu9250_field_strength = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('compass');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS;\n var TOOLTIPS = {\n 'strength': Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,\n 'heading': Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE\n };\n return mode0 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const sensor_compass_reset = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"MPU9250\")\n .setCheck(\"var\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS);\n }\n};\n\nexport const sensor_use_spi_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SPISUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"SPI\")\n .setCheck(\"var\");\n this.appendValueInput('PINSUB')\n .appendField(\"CS\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [\"RFID\", \"RFID\"],\n [\"WS-LoRa\", \"Weather\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setFieldValue(\"RFID\", \"key\");\n }\n};\n\nexport const extern_rfid_read = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RFID_READ_CARD_UID, \"id\"],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL, \"content\"],\n [Blockly.Msg.MIXLY_ALL, \"ALL\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const extern_rfid_readid = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RFID_READ_CARD_UID);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const extern_rfid_readcontent = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL);\n this.setOutput(true, 'Tuple');\n this.setInputsInline(true);\n }\n};\n\nexport const extern_rfid_write = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const extern_rfid_write_return = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SUB')\n .setCheck(\"var\")\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.appendDummyInput()\n .appendField(Blockly.Msg.RETURN_SUCCESS_OR_NOT);\n this.setInputsInline(true);\n this.setOutput(true, Boolean);\n }\n};\n\nexport const extern_rfid_status = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\");\n this.appendValueInput('SUB')\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RFID_SCAN_OK, \"0\"],\n [Blockly.Msg.MIXLY_RFID_SCAN_NOTAGERR, \"1\"],\n [Blockly.Msg.MIXLY_RFID_SCAN_ERROR, \"2\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\n//--------------------待写气象数据\nexport const weather_data = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"无线气象站\" + \" WS-LoRa\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown([\n [\"全部(元组)\", \"data()[0]\"],\n [\"全部(json)\", \"data()[1]\"],\n [\"全部(json,附带位置信息)\", \"data()[2]\"],\n [\"编号\", \"data()[0][0]\"],\n [\"电量\", \"data()[0][1]\"],\n [\"风速\", \"data()[0][2]\"],\n [\"阵风\", \"data()[0][3]\"],\n [\"风向\", \"data()[0][4]\"],\n [\"雨量\", \"data()[0][5]\"],\n [\"温度\", \"data()[0][6]\"],\n [\"湿度\", \"data()[0][7]\"],\n [\"光照\", \"data()[0][8]\"],\n [\"紫外线\", \"data()[0][9]\"],\n [\"大气压\", \"data()[0][10]\"],\n [\"信号强度\", \"data()[0][11]\"],\n [\"信噪比\", \"data()[0][12]\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(\"返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)\");\n }\n};\n\nexport const weather_have_data = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"无线气象站\" + \" WS-LoRa\")\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SERIAL_AVAILABLE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const weather_uart_mixio = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"无线气象站\" + \" WS-LoRa\")\n .setCheck(\"var\");\n this.appendValueInput('BASE')\n .appendField(\"以主题\")\n this.appendDummyInput(\"\")\n .appendField(\"串口发送至MixIO\")\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const weather_set_label = {\n\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(\"无线气象站\" + \" WS-LoRa\")\n .setCheck(\"var\");\n this.itemCount_ = 2;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['weather_set_label_item'], this));\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip();\n },\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('weather_set_label_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('weather_set_label_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i)\n .connection.connect(connections[i]);\n }\n }\n },\n\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)');\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG + '(id,long,lat)');\n }\n }\n }\n }\n};\nexport const weather_set_label_container = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_GPS_LOCATION + Blockly.Msg.mixpy_PYLAB_TICKS_TAG);\n this.appendStatementInput('STACK');\n this.contextMenu = false;\n }\n};\n\nexport const weather_set_label_item = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.contextMenu = false;\n }\n};\n\nexport const sensor_mixgoce_hot_wheel_is_touched = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_HOT_WHEEL)\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_UP, \"4\"],\n [Blockly.Msg.MIXLY_DOWN, \"2\"],\n [Blockly.Msg.MIXLY_LEFT, \"3\"],\n [Blockly.Msg.MIXLY_RIGHT, \"1\"],\n [\"OK\", \"0\"]\n ]), \"key\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_DATA, \"value\"],\n [Blockly.Msg.MIXLY_PULSEIN_STAT, \"is_touched()\"]\n ]), \"stat\");\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip();\n }\n};\n\nexport const sensor_mixgoce_hot_wheel_degrees = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_HOT_WHEEL)\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE + '(-180°~180°)');\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip();\n }\n};\n\nexport const esp32_s2_weather_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor);\n this.appendValueInput('wd')\n .setCheck(Number)\n .appendField('wd');\n this.appendValueInput('ws')\n .setCheck(Number)\n .appendField('ws');\n this.appendValueInput('rain')\n .setCheck(Number)\n .appendField('rain');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const esp32_s2_weather_wd = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.ForecastFx)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const esp32_s2_weather_rain = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('rain')\n .appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RAIN_TIME + Blockly.Msg.MIXLY_RAIN)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const esp32_s2_weather_ws = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ForecastType + Blockly.Msg.MSG.catSensor)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blynk_IOT_IR_FAN, \"0\"],\n [Blockly.Msg.MIXLY_WIND_RATING, \"1\"],\n [Blockly.Msg.blynk_IOT_IR_FAN + Blockly.Msg.MIXLY_WIND_RATING, \"ALL\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const HCSR04 = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CHAOSHENGBO);\n this.appendValueInput(\"PIN1\", Number)\n .appendField('Trig #')\n .setCheck(Number);\n this.appendValueInput(\"PIN2\", Number)\n .appendField('Echo #')\n .setCheck(Number);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO);\n }\n\n};\n\n//PS2\nexport const PS2_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.PS2);\n this.appendDummyInput(\"\")\n .appendField('CLK#')\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), \"PS2_CLK\")\n .appendField('DOU#')\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), \"PS2_DOU\")\n .appendField('DIN#')\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), \"PS2_DIN\")\n .appendField('CS#')\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), \"PS2_CS\");\n // this.appendDummyInput(\"\")\n // .appendField(Blockly.Msg.PS2_setRumble)\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_ON,\"true\"],[Blockly.Msg.MIXLY_OFF,\"false\"]]), \"rumble\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n }\n};\n\n\nvar PSBUTTON = [\n [Blockly.Msg.PS2_TRIANGLE, \"PSB_GREEN\"],\n [Blockly.Msg.PS2_CIRCLE, \"PSB_RED\"],\n [Blockly.Msg.PS2_CROSS, \"PSB_BLUE\"],\n [Blockly.Msg.PS2_SQUARE, \"PSB_PINK\"],\n [Blockly.Msg.PS2_L1, \"PSB_L1\"],\n [Blockly.Msg.PS2_L2, \"PSB_L2\"],\n // [\"PSB_L3\",\"PSB_L3\"],\n [Blockly.Msg.PS2_R1, \"PSB_R1\"],\n [Blockly.Msg.PS2_R2, \"PSB_R2\"],\n // [\"PSB_R3\",\"PSB_R3\"],\n [Blockly.Msg.PS2_UP, \"PSB_PAD_UP\"],\n [Blockly.Msg.PS2_RIGHT, \"PSB_PAD_RIGHT\"],\n [Blockly.Msg.PS2_DOWN, \"PSB_PAD_DOWN\"],\n [Blockly.Msg.PS2_LEFT, \"PSB_PAD_LEFT\"],\n [Blockly.Msg.PS2_SELECT, \"PSB_SELECT\"],\n [Blockly.Msg.PS2_START, \"PSB_START\"]\n];\n\n//\nexport const PS2_vibration = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2 + Blockly.Msg.PS2_setRumble)\n .appendField(Blockly.Msg.MIXLY_STM32_OLED_SMALL + Blockly.Msg.MSG.catActuator_motor)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, \"0\"],\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, \"1\"],\n ]), \"smotorstate\")\n .appendField(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE)\n this.appendValueInput(\"AMP\", Number)\n this.setTooltip(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE + \"0-100\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n//\nexport const PS2_Button = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2_BUTTON)\n .appendField(new Blockly.FieldDropdown(PSBUTTON), \"psbt\")\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_BUTTON_HOLD, \"Button\"]\n // ,[Blockly.Msg.MIXLY_BUTTON_PRESSED, \"ButtonPressed\"]\n // ,[Blockly.Msg.MIXLY_BUTTON_RELEASED,\"ButtonReleased\"]\n // ,[Blockly.Msg.MIXLY_CHANGE,\"NewButtonState\"]\n ]), \"btstate\");\n this.setOutput(true, Boolean);\n this.setTooltip('');\n }\n};\n\n//\nexport const PS2_State = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.PS2_BUTTON)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PULSEIN_STAT, \"0\"]\n , [Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE, \"1\"]\n // ,[Blockly.Msg.MIXLY_BUTTON_RELEASED,\"ButtonReleased\"]\n // ,[Blockly.Msg.MIXLY_CHANGE,\"NewButtonState\"]\n ]), \"btstate\");\n this.setOutput(true, Boolean);\n this.setTooltip('');\n }\n};\n\nexport const PS2_Buttons = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2_BUTTON)\n .appendField(new Blockly.FieldDropdown(PSBUTTON), \"psbt\")\n this.setOutput(true, Boolean);\n this.setTooltip('');\n }\n};\n\nexport const PS2_stk = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n var PSSTK = [\n [Blockly.Msg.PS2_RX, \"0\"],\n [Blockly.Msg.PS2_RY, \"1\"],\n [Blockly.Msg.PS2_LX, \"2\"],\n [Blockly.Msg.PS2_LY, \"3\"],\n ];\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2_stick)\n .appendField(new Blockly.FieldDropdown(PSSTK), \"psstk\");\n this.setOutput(true, Number);\n this.setTooltip('');\n }\n};\n\nexport const PS2_init_new = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.PS2);\n this.appendValueInput('CLK')\n .appendField('CLK#');\n this.appendValueInput('DOU')\n .appendField('DOU#');\n this.appendValueInput('DIN')\n .appendField('DIN#');\n this.appendValueInput('CS')\n .appendField('CS#');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n }\n};\n\nexport const PS2_vibration_new = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.PS2);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2_setRumble)\n .appendField(Blockly.Msg.MIXLY_STM32_OLED_SMALL + Blockly.Msg.MSG.catActuator_motor)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF, \"0\"],\n [Blockly.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON, \"1\"],\n ]), \"smotorstate\")\n .appendField(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE)\n this.appendValueInput(\"AMP\", Number)\n this.setTooltip(Blockly.Msg.MIXLY_STM32_OLED_BIG + Blockly.Msg.MSG.catActuator_motor + Blockly.Msg.MIXLY_MIXGOPE_AMPLITUDE + \"0-100\");\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const PS2_Buttons_new = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.PS2);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.PS2_BUTTON.slice(3))\n .appendField(new Blockly.FieldDropdown(PSBUTTON), \"psbt\")\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED)\n this.setOutput(true, Boolean);\n this.setTooltip('');\n }\n};\n\nexport const PS2_stk_new = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n var PSSTK = [\n [Blockly.Msg.PS2_RX, \"RX\"],\n [Blockly.Msg.PS2_RY, \"RY\"],\n [Blockly.Msg.PS2_LX, \"LX\"],\n [Blockly.Msg.PS2_LY, \"LY\"],\n ];\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.PS2);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_JOYSTICK)\n .appendField(new Blockly.FieldDropdown(PSSTK), \"psstk\");\n this.setOutput(true, Number);\n this.setTooltip('');\n }\n};\n\nexport const sensor_use_uart_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"uart\")\n .appendField(new Blockly.FieldDropdown([\n [\"uart1\", \"uart1\"],\n [\"uart2\", \"uart2\"]\n ]), \"key\");\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PM25_SENSOR, \"PM\"],\n [Blockly.Msg.MIXLY_GNSS_SENSOR, \"GNSS\"]\n ]), \"sensor\");\n\n\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const pm25_get_data = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField('PM2.5' + Blockly.Msg.MSG.catSensor)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n ['PM2.5', \"[0]\"],\n ['PM10', \"[1]\"],\n ['(PM2.5, PM10)', \"\"],\n ]), \"pm\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CONCENTRATION)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PM_CONCENTRATION_TOOLTIP);\n }\n}\n\nexport const gnss_have_data = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GNSS_SENSOR)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SERIAL_AVAILABLE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const gnss_get_data = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GNSS_SENSOR)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GPS_TIME, \"time\"],\n [Blockly.Msg.MIXLY_GPS_LOCATION, \"locate\"],\n [Blockly.Msg.MIXLY_PULSEIN_STAT, \"status\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n 'time': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_TIME_TOOLTIP,\n 'locate': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_LOCATE_TOOLTIP,\n 'status': Blockly.Msg.MIXLY_GNSS_SENSOR_GET_STATUS_TOOLTIP\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\n//mixbot/feiyi extern below:\nexport const robot_button_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_BUTTON)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.TURTLE_POS)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.mixpy_PL_TEXT_TOP, '[0]'],\n [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, '[1]'],\n [Blockly.Msg.TEXT_TRIM_LEFT, '[2]'],\n [Blockly.Msg.TEXT_TRIM_RIGHT, '[3]'],\n [Blockly.Msg.mixpy_PL_TEXT_CENTER, '[4]']\n ]), \"num\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_touch_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_TOUCHED + \"?\")\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_infrared_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_infrared_extern_grey_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_ESP32_EXTERN_GRAY_NEAR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_potentiometer_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_KNOB_POTENTIOMETER)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_color_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_COLOUR + Blockly.Msg.HTML_NAME, '[0]'],\n [\"RGB\" + Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, '[1]'],\n [Blockly.Msg.MIXLY_ENVIRONMENT_BRIGHTNESS, '[2]'],\n [Blockly.Msg.MIXLY_REFLECTION_BRIGHTNESS, '[3]'],\n [Blockly.Msg.MIXLY_ALL, '']\n ]), \"color\");\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n }\n}\n\nexport const mixbot_sensor_extern_get_addr = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_BUTTON, 'ext_button'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor, 'ext_collision'],\n [Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'],\n [Blockly.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'],\n [Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor, 'ext_color'],\n [Blockly.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar']\n ]), \"name\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}\n\nexport const mixbot_sensor_extern_set_addr = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXBOT)\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_BUTTON, 'ext_button'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_EVENT_TOUCH + Blockly.Msg.MSG.catSensor, 'ext_collision'],\n [Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR, 'ext_infrared'],\n [Blockly.Msg.MIXLY_KNOB_POTENTIOMETER, 'ext_potentiometer'],\n [Blockly.Msg.HTML_COLOUR + Blockly.Msg.MSG.catSensor, 'ext_color'],\n [Blockly.Msg.MIXLY_EXTERN_SONAR, 'ext_sonar']\n ]), \"name\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR)\n this.appendValueInput('old')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE);\n this.appendValueInput('new')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_UPDATE);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_sonar_extern_get_value = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_EXTERN_SONAR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DATA + '(cm)')\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n}\n\nexport const robot_sonar_extern_led = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ME_GO_MOTOR_EXTERN + Blockly.Msg.MIXLY_EXTERN_SONAR)\n .appendField(Blockly.Msg.PIN_NUMBERING)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_LEFT, \"0\"], [Blockly.Msg.MIXLY_RIGHT, \"1\"]]), \"mode\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_EXTERN_INDICATOR_LIGHT)\n this.appendValueInput('light')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LCD_NUMBERING);\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const sensor_weather_solo_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.weather_solo);\n this.appendValueInput('wd')\n .appendField('W-D#');\n this.appendValueInput('ws')\n .appendField('W-S#');\n this.appendValueInput('rain')\n .appendField('Rain#');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n }\n};\n\nexport const sensor_weather_solo_wd = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.weather_solo);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.ForecastFx)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ABBR, \"[0]\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, \"[1]\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_weather_solo_ws = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.weather_solo);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_WIND_SPEED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SPEED + 'm/s', \"[0]\"],\n [Blockly.Msg.MIXLY_WIND_RATING, \"[1]\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_weather_solo_rain = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.weather_solo);\n this.appendValueInput('time')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RAIN_TIME)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ACCUMULATED, \"[0]\"],\n [Blockly.Msg.MIXLY_AVERAGE, \"[1]\"]\n ]), \"key\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RAIN + '(mm)');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\n//educore sensor_extern\nexport const educore_body_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_BODY_SENSOR);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_soilhum_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_SOILHUM_SENSOR);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_temphum_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_infrared_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_Infrared_pyroelectric_sensor);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_button_sensor_extern = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.HTML_BUTTON);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_read_humiture = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_of)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_TEMPERATURE,\"0\"],\n [Blockly.Msg.MIXLY_Humidity,\"1\"]\n ]),\"key\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_ultrasonic_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_EXTERN_SONAR);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const ultrasonic_sensor_read_distance = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_of+Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_temp_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_TEMP + Blockly.Msg.MIXLY_DS18B20);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_camera_sensor = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_SMARTCAMERA);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const camera_sensor_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_SMARTCAMERA);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_PROCCED)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_AipFace,\"FACE_RECOGNIZE\"],\n [Blockly.Msg.MIXLY_FACE_CLASSIFIER,\"FACE_DETECT\"]\n ]),\"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const camera_sensor_result = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_SMARTCAMERA);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_RECOGNIZED_RESULT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_weigh_init = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP + 'HX711/720' + Blockly.Msg.MIXLY_WEIGH_SENSOR);\n this.appendValueInput('sck')\n .appendField('#SCK');\n this.appendValueInput('dat')\n .appendField('#DAT');\n this.appendValueInput('pc')\n .appendField(Blockly.Msg.MIXLY_Calibration_ratio);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n }\n};\n\nexport const weigh_sensor_get_weight = {\n init: function () {\n this.setColour(SENSOR_EXTERN_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_WEIGH_SENSOR)\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_DATA)\n this.setOutput(true);\n this.setInputsInline(true);\n }\n}","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\nimport {\n sensor_dht11,\n sensor_mpu9250_field_strength,\n sensor_mpu9250_temperature\n} from './sensor_extern.js';\n\nconst SENSOR_ONBOARD_HUE = '#947C54'; //'#9e77c9'//40;\n\nexport const sensor_mixgo_button_is_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const sensor_mixgo_button_get_presses = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('btn')\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);\n }\n};\n\nexport const sensor_mixgo_button_attachInterrupt = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"btn\")\n .appendField(Blockly.Msg.MIXLY_ESP32_INTERRUPT)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);\n }\n};\n\nexport const sensor_mixgocar42_button_is_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_IS_PRESSED);\n }\n};\n\nexport const sensor_mixgocar42_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const sensor_mixgocar42_button_get_presses = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_GET_PRESSES_TIME);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_BUTTON + Blockly.Msg.MIXLY_GET_PRESSES);\n }\n};\n\nexport const sensor_mixgocar42_button_attachInterrupt = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_INTERRUPT)\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"], [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"], [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT);\n }\n};\n\nexport const sensor_mixgo_pin_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"button\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_sensor_pin_pressed);\n }\n};\n\nexport const sensor_mixgoce_pin_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"button\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_sensor_pin_pressed);\n }\n};\n\nexport const sensor_mpython_pin_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"button\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_sensor_pin_pressed);\n }\n};\n\nexport const sensor_mixgo_touch_slide = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TOUCH_SLIDE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP);\n }\n};\n\n\nexport const sensor_distance_hrsc04 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CHAOSHENGBO)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_CHAOSHENGBO);\n }\n};\n\n// var RTC_TIME_TYPE = [\n// [Blockly.Msg.MIXLY_YEAR, \"Year\"],\n// [Blockly.Msg.MIXLY_MONTH, \"Month\"],\n// [Blockly.Msg.MIXLY_DAY, \"Day\"],\n// [Blockly.Msg.MIXLY_HOUR, \"Hour\"],\n// [Blockly.Msg.MIXLY_MINUTE, \"Minute\"],\n// [Blockly.Msg.MIXLY_SECOND, \"Second\"],\n// [Blockly.Msg.MIXLY_WEEK, \"Week\"],\n// [Blockly.Msg.MIXLY_MIX1, \"Mix1\"],\n// [Blockly.Msg.MIXLY_MIX2, \"Mix2\"],\n// ];\n\nexport const RTC_set_time = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCSETTIME)\n .appendField('myRTC');\n this.appendValueInput(\"hour\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_HOUR);\n this.appendValueInput(\"minute\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_MINUTE);\n this.appendValueInput(\"second\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_SECOND);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(false);\n this.setTooltip(Blockly.Msg.MIXLY_RTCSETTIME + Blockly.Msg.MIXLY_MIX2);\n }\n};\n\nexport const RTC_set_date = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCSETDATE)\n .appendField('myRTC');\n this.appendValueInput(\"year\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_YEAR);\n this.appendValueInput(\"month\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_MONTH);\n this.appendValueInput(\"day\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\" \" + Blockly.Msg.MIXLY_DAY);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_RTCSETDATE + Blockly.Msg.MIXLY_MIX1);\n }\n};\n\n\n\nexport const HCSR04 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CHAOSHENGBO);\n this.appendValueInput(\"PIN1\", Number)\n .appendField('Trig #')\n .setCheck(Number);\n this.appendValueInput(\"PIN2\", Number)\n .appendField('Echo #')\n .setCheck(Number);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO);\n }\n\n};\n\nexport const sensor_mixgo_light = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_LIGHT);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP);\n }\n};\n\n\nexport const number1 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"1\", \"touch1\"], [\"2\", \"touch2\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number2 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"0\", \"0\"], [\"1\", \"1\"], [\"2\", \"2\"], [\"3\", \"3\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number3 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_UP, \"12\"], [Blockly.Msg.MIXLY_DOWN, \"14\"], [Blockly.Msg.MIXLY_LEFT, \"13\"], [Blockly.Msg.MIXLY_RIGHT, \"15\"], [\"A\", \"32\"], [\"B\", \"33\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number4 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"0\", \"0\"], [\"1\", \"1\"], [\"2\", \"2\"], [\"3\", \"3\"], [\"4\", \"4\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number5 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"0\", \"0\"], [\"1\", \"1\"], [\"2\", \"2\"], [\"3\", \"3\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number6 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"3\", \"3\"], [\"4\", \"4\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const number7 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[\"0\", \"0\"], [\"1\", \"1\"]]), 'op')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW);\n }\n};\n\nexport const sensor_mixgo_pin_near_single = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_NEAR);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_VALUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP + Blockly.Msg.MIXLY_ESP32_NEAR);\n }\n};\n\nexport const sensor_mixgo_pin_near_double = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"left\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"right\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NEAR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n var TOOLTIPS = {\n 'left': Blockly.Msg.TEXT_TRIM_LEFT,\n 'right': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const sensor_mixgo_pin_near = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_NEAR);\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, \"l\"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, \"r\"]]), \"direction\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n // var thisBlock = this;\n // this.setTooltip(function () {\n // var mode = thisBlock.getFieldValue('direction');\n // var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n // var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n // var TOOLTIPS = {\n // 'l': Blockly.Msg.mixpy_PL_TEXT_TOP,\n // 'r': Blockly.Msg.mixpy_PL_TEXT_BOTTOM,\n // };\n // return mode0 + TOOLTIPS[mode] + mode1\n // });\n }\n};\n\n\nexport const sensor_mixgo_nova_pin_near = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"l\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"r\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NEAR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n var TOOLTIPS = {\n 'l': Blockly.Msg.TEXT_TRIM_LEFT,\n 'r': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const sensor_mixgo_nova_LTR308 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"l\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"r\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + Blockly.Msg.MIXLY_DATA);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT;\n var TOOLTIPS = {\n 'l': Blockly.Msg.TEXT_TRIM_LEFT,\n 'r': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const sensor_mixgo_LTR308 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, \"l\"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, \"r\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + Blockly.Msg.MIXLY_DATA);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_mixgo_sant_color = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_COLOR_SENSOR + Blockly.Msg.MIXLY_DATA);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\n//传感器-实时时钟块_获取时间\nexport const onboard_RTC_get_time = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"RTC\")\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_RTCGETTIME);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP + ' (year, month, mday, hour, minute, second, weekday, yearday)');\n // var thisBlock = this;\n // this.setTooltip(function() {\n // var mode = thisBlock.getFieldValue('TIME_TYPE');\n // var mode0 = Blockly.Msg.MIXLY_RTCGETTIME;\n // var TOOLTIPS = {\n // 'Year':Blockly.Msg.MIXLY_YEAR,\n // 'Month':Blockly.Msg.MIXLY_MONTH,\n // 'Day':Blockly.Msg.MIXLY_DAY,\n // 'Hour':Blockly.Msg.MIXLY_HOUR,\n // 'Minute':Blockly.Msg.MIXLY_MINUTE,\n // 'Second':Blockly.Msg.MIXLY_SECOND,\n // 'Week':Blockly.Msg.MIXLY_WEEK,\n // 'Mix1':Blockly.Msg.MIXLY_MIX1,\n // 'Mix2':Blockly.Msg.MIXLY_MIX2\n // };\n // return mode0 +TOOLTIPS[mode];\n // });\n }\n};\n\nexport const onboard_RTC_get_timestamp = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_RTCGETTIMESTAMP);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP);\n }\n};\n\nexport const onboard_RTC_timestamp_totuple = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_RTC_TIMESTAMP);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_TO_TUPLE);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n }\n};\n\nexport const onboard_RTC_settime_string = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField('RTC');\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_USE_STRING_TUPLE)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RTCSETTIME);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const onboard_RTC_set_datetime = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"RTC\")\n this.appendValueInput('year')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_YEAR);\n this.appendValueInput('month')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_MONTH);\n this.appendValueInput('day')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_DAY);\n this.appendValueInput('hour')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_HOUR);\n this.appendValueInput('minute')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_MINUTE);\n this.appendValueInput('second')\n .setCheck(Number)\n .appendField(\" \" + Blockly.Msg.MIXLY_SECOND);\n this.setInputsInline(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP);\n }\n};\n\nexport const sensor_rtc_init = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"RTC\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .setCheck(\"var\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP);\n }\n};\n\nexport const onboard_RTC_get_time_str = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RTC_GET_TIME_STR);\n this.setOutput(true, String);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP);\n }\n};\n\nexport const onboard_RTC_get_timetuple_to_str = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_GPS_TIME + Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE)\n .setCheck()\n this.appendDummyInput()\n .appendField( Blockly.Msg.A_TO_B + Blockly.Msg.MIXLY_GPS_TIME + Blockly.Msg.LANG_MATH_STRING)\n this.setOutput(true, String);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_LTR308 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_LIGHT);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP);\n }\n};\n\nexport const sensor_sound = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_SOUND);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP);\n }\n};\n\nexport const sensor_aht11 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TEM_HUM + \" \")\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"humidity\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"temperature\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"humidity\": Blockly.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\n\nexport const sensor_get_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\n\n\n\n\nexport const sensor_hp203 = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + \" \")\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETPRESSURE, \"pressure()\"],\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature()\"],\n [Blockly.Msg.MIXLY_GET_ALTITUDE, \"altitude()\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const rfid_readid = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RFID_READ_CARD_UID);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const rfid_readcontent = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const rfid_write = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const rfid_write_return = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.appendDummyInput()\n .appendField(Blockly.Msg.RETURN_SUCCESS_OR_NOT);\n this.setInputsInline(true);\n this.setOutput(true, Boolean);\n }\n};\n\nexport const sensor_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"[0]\"],\n [\"y\", \"[1]\"],\n [\"z\", \"[2]\"],\n [\"(x,y,z)\", \"\"],\n [Blockly.Msg.MIXLY_STRENGTH, \"strength\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n '[0]': 'x',\n '[1]': 'y',\n '[2]': 'z',\n '': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_eulerangles = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_GESTURE_ALL)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.ME_GO_PITCH, '[0]'],\n [Blockly.Msg.ME_GO_ROLL, '[1]'],\n [Blockly.Msg.ME_GO_PITCH + ', ' + Blockly.Msg.ME_GO_ROLL, '']\n ]), 'angle');\n\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\nexport const sensor_onboard_mpu9250_gesture = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_shake, \"shake\"], [Blockly.Msg.MIXLY_UP, \"up\"], [Blockly.Msg.MIXLY_DOWN, \"down\"], [Blockly.Msg.MIXLY_LEFT, \"left\"], [Blockly.Msg.MIXLY_RIGHT, \"right\"], [Blockly.Msg.MIXLY_MICROBIT_face_up, \"face up\"], [Blockly.Msg.MIXLY_MICROBIT_face_down, \"face down\"]]), \"gesture\");\n this.setOutput(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('gesture');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT;\n var mode1 = Blockly.Msg.MSG.catSensor;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_STATE;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PERFORMANCE\n var TOOLTIPS = {\n 'shake': Blockly.Msg.MIXLY_MICROBIT_shake,\n 'up': Blockly.Msg.MIXLY_UP,\n 'down': Blockly.Msg.MIXLY_DOWN,\n 'left': Blockly.Msg.MIXLY_LEFT,\n 'right': Blockly.Msg.MIXLY_RIGHT,\n 'face up': Blockly.Msg.MIXLY_MICROBIT_face_up,\n 'face down': Blockly.Msg.MIXLY_MICROBIT_face_down,\n // 'freefall':Blockly.Msg.MIXLY_MICROBIT_freefall,\n // '3g': '3g',\n // '6g': '6g',\n // '8g': '8g'\n };\n return mode0 + mode1 + mode2 + TOOLTIPS[mode] + mode3;\n });\n }\n};\n\nexport const sensor_onboard_mpu9250_get_acceleration = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_onboard_mpu9250_get_magnetic = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_onboard_mpu9250_get_gyro = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"x\"],\n [\"y\", \"y\"],\n [\"z\", \"z\"],\n [\"(x,y,z)\", \"values\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;\n var TOOLTIPS = {\n 'x': 'x',\n 'y': 'y',\n 'z': 'z',\n '(x,y,z)': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_onboard_mpu9250_calibrate_compass = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS);\n }\n};\n\n\nexport const sensor_onboard_mpu9250_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n this.setTooltip(Blockly.Msg.MIXLY_GETTEMPERATUE);\n }\n};\n\n\nexport const sensor_onboard_mpu9250_field_strength = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH, 'strength'], [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, 'heading']]), 'compass');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('compass');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS;\n var TOOLTIPS = {\n 'strength': Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,\n 'heading': Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE\n };\n return mode0 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const sensor_onboard_compass_reset = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"MPU9250\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_COMPASS);\n }\n};\n\n//mixgo_cc onboard_sensor blocks:\nexport const sensor_mixgo_cc_mmc5603_get_magnetic = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"[0]\"],\n [\"y\", \"[1]\"],\n [\"z\", \"[2]\"],\n [\"(x,y,z)\", \"\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL, \"all\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;\n var TOOLTIPS = {\n '[0]': 'x',\n '[1]': 'y',\n '[2]': 'z',\n '': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\nexport const sensor_mixgo_cc_mmc5603_get_angle = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET_COMPASS + Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\nexport const sensor_mixgo_cc_mmc5603_calibrate_compass = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS);\n }\n};\n\n\n//mixgo_me onboard_sensor blocks:\n\n\nexport const sensor_mixgome_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\n//mixgo_ce onboard_sensor blocks:\n\n\nexport const sensor_mixgoce_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\n\n\n\nexport const sensor_mpython_qmi8658_get_gyro = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"[0]\"],\n [\"y\", \"[1]\"],\n [\"z\", \"[2]\"],\n [\"(x,y,z)\", \"\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;\n var TOOLTIPS = {\n '[0]': 'x',\n '[1]': 'y',\n '[2]': 'z',\n '': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_mpython_qmi8658_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n this.setTooltip(Blockly.Msg.MIXLY_GETTEMPERATUE);\n }\n};\n\n\n\n\nexport const sensor_rm_pin_near_double = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"1\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"2\"]]), \"direction\")\n .appendField(Blockly.Msg.MIXLY_ESP32_NEAR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('direction');\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n var TOOLTIPS = {\n 'left': Blockly.Msg.TEXT_TRIM_LEFT,\n 'right': Blockly.Msg.TEXT_TRIM_RIGHT,\n };\n return mode0 + TOOLTIPS[mode] + mode1\n });\n }\n};\n\nexport const sensor_rm_battery_left = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_rm_acc = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(\"acc\" + Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ADXL345_XA, \"[0]\"],\n [Blockly.Msg.MIXLY_ADXL345_YA, \"[1]\"],\n [Blockly.Msg.MIXLY_ACC_SHAKE, \"[2]\"],\n [Blockly.Msg.MIXLY_ADXL345_XA + ',' + Blockly.Msg.MIXLY_ADXL345_YA + ',' + Blockly.Msg.MIXLY_ACC_SHAKE, \"\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION);\n\n }\n};\n\n//car4.2\nexport const sensor_mixgocar_pin_near_line = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"[0]\"],\n [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"[3]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const sensor_mixgocar_pin_near = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT, \"[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT, \"[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK, \"[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK, \"[2]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_PROXIMITY_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const sensor_mixgocar_pin_near_state_change = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, \"AS\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, \"LP\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, \"OA\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\n\nexport const sensor_mixgocar_battery_left = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\n//mixbot onboard_sensor below:\n\n\nexport const sensor_mixbot_patrol_calibrate = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE, \"WHITE\"],\n [Blockly.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK, \"BLACK\"],\n [Blockly.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET, \"RESET_TO_FAB\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_mixbot_patrol_value = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT, \"[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT, \"[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK, \"[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK, \"[2]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const sensor_mixbot_temperature = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_Board_temperature)\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n\n }\n};\n\n\n\nexport const sensor_mixbot_get_gyro = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO)\n .appendField(new Blockly.FieldDropdown([\n [\"x\", \"[0]\"],\n [\"y\", \"[1]\"],\n [\"z\", \"[2]\"],\n [\"(x,y,z)\", \"\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_Direction;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SENOR_GYRO;\n var TOOLTIPS = {\n '[0]': 'x',\n '[1]': 'y',\n '[2]': 'z',\n '': Blockly.Msg.MIXLY_MICROBIT_Shiliang_Direction,\n };\n return mode0 + TOOLTIPS[mode] + mode1 + mode2;\n });\n }\n};\n\nexport const sensor_bitbot_ALS = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.ANALOG + Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT)\n this.appendValueInput('mode')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LCD_NUMBERING);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_LIGHT_INTENSITY + \"(%)\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const bitbot_als_num = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.als_num), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const sensor_button_is_pressed = sensor_mixgo_button_is_pressed;\nexport const sensor_button_was_pressed = sensor_mixgo_button_was_pressed;\nexport const sensor_button_get_presses = sensor_mixgo_button_get_presses;\nexport const sensor_pin_pressed = sensor_mixgo_pin_pressed;\nexport const sensor_pin_near = sensor_mixgo_pin_near;\nexport const sensor_light = sensor_mixgo_light;\nexport const dht11 = sensor_dht11;\nexport const sensor_field_strength = sensor_mpu9250_field_strength;\nexport const sensor_temperature = sensor_mpu9250_temperature\n\n//educore sensor_onboard\nexport const educore_voice_sensor = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_EXTERN_SOUND);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const sensor_read = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_light_sensor = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LIGHT_SENSOR);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_gyroscope_sensor = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GYROSCOPE_SENSOR);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_gyroscope_sensor_read = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_Horizontal_inclination, \"X\"],\n [\"y\", \"[1]\"],\n [\"z\", \"[2]\"]\n ]), \"key\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_gyroscope_sensor_shake = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_GET)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_BE_SHAKED)\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const educore_button_sensor = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_BUTTON)\n .appendField(new Blockly.FieldDropdown([\n [\"a\", \"a\"],\n [\"b\", \"b\"],\n [\"c\", \"c\"]\n ]), \"btn\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_button_was_pressed = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_BUTTON);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WAS_PRESSED);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SENOR_WAS_PRESSED);\n }\n};\n\nexport const educore_rfid_sensor = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"PIN\")\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_INITIAL);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_rfid_sensor_scan = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"SUB\")\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_READ);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const educore_rfid_sensor_scan_data = {\n init: function () {\n this.setColour(SENSOR_ONBOARD_HUE);\n this.appendValueInput(\"SUB\")\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_READ + Blockly.Msg.MIXLY_COMMUNICATION_DATA_FROM);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_SERIAL_NUMBER,\"serial_number\"]\n ]),\"key\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_IDENTIFY_AND_SAVE_SANT = {\n init:function(){\n this.setColour(SENSOR_ONBOARD_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_GET_WHETHER_IDENTIFY_SANT = {\n init:function(){\n this.setColour(SENSOR_ONBOARD_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_HELLO_XIAOZHI,\"1\"],\n [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI ,\"2\"],\n [Blockly.Msg.MIXLY_THE_FIRST ,\"3\"],\n [Blockly.Msg.MIXLY_THE_SECOND ,\"4\"],\n [Blockly.Msg.MIXLY_THE_THIRD ,\"5\"],\n [Blockly.Msg.MIXLY_THE_FOURTH ,\"6\"],\n [Blockly.Msg.MIXLY_THE_FIFTH ,\"7\"],\n [Blockly.Msg.MIXLY_THE_SIXTH ,\"8\"],\n [Blockly.Msg.MIXLY_THE_SEVENTH ,\"9\"],\n [Blockly.Msg.MIXLY_THE_EIGHTH ,\"10\"],\n [Blockly.Msg.MIXLY_THE_NINTH ,\"11\"],\n [Blockly.Msg.MIXLY_THE_TENTH ,\"12\"],\n [Blockly.Msg.MIXLY_THE_ELEVENTH ,\"13\"],\n [Blockly.Msg.MIXLY_THE_TWELFTH ,\"14\"],\n [Blockly.Msg.MIXLY_THE_13TH ,\"15\"],\n [Blockly.Msg.MIXLY_THE_14TH ,\"16\"],\n [Blockly.Msg.MIXLY_THE_15TH ,\"17\"],\n [Blockly.Msg.MIXLY_THE_16TH ,\"18\"],\n [Blockly.Msg.MIXLY_THE_17TH ,\"19\"],\n [Blockly.Msg.MIXLY_THE_18TH ,\"20\"],\n [Blockly.Msg.MIXLY_THE_19TH ,\"21\"],\n [Blockly.Msg.MIXLY_THE_20TH ,\"22\"],\n [Blockly.Msg.MIXLY_Turn_on_the_lights ,\"23\"],\n [Blockly.Msg.MIXLY_Turn_off_the_lights ,\"24\"],\n [Blockly.Msg.MIXLY_Turn_up_the_brightness ,\"25\"],\n [Blockly.Msg.MIXLY_Turn_down_the_brightness ,\"26\"],\n [Blockly.Msg.MIXLY_Set_it_to_red ,\"27\"],\n [Blockly.Msg.MIXLY_Set_it_to_orange ,\"28\"],\n [Blockly.Msg.MIXLY_Set_it_to_yellow ,\"29\"],\n [Blockly.Msg.MIXLY_Set_it_to_green ,\"30\"],\n [Blockly.Msg.MIXLY_Set_it_to_cyan ,\"31\"],\n [Blockly.Msg.MIXLY_Set_it_to_blue ,\"32\"],\n [Blockly.Msg.MIXLY_Set_it_to_purple ,\"33\"],\n [Blockly.Msg.MIXLY_Set_it_to_white ,\"34\"],\n [Blockly.Msg.MIXLY_Turn_on_the_fan ,\"35\"],\n [Blockly.Msg.MIXLY_Turn_off_the_fan ,\"36\"],\n [Blockly.Msg.MIXLY_First_gear ,\"37\"],\n [Blockly.Msg.MIXLY_Wind_speed_second ,\"38\"],\n [Blockly.Msg.MIXLY_Third_gear ,\"39\"],\n [Blockly.Msg.MIXLY_Previous ,\"40\"],\n [Blockly.Msg.MIXLY_Next_page ,\"41\"],\n [Blockly.Msg.MIXLY_Show_smiley_face ,\"42\"],\n [Blockly.Msg.MIXLY_Show_crying_face ,\"43\"],\n [Blockly.Msg.MIXLY_Show_love ,\"44\"],\n [Blockly.Msg.MIXLY_Close_display ,\"45\"],\n [Blockly.Msg.MIXLY_Start_execution ,\"46\"],\n [Blockly.Msg.MIXLY_FORWARD ,\"47\"],\n [Blockly.Msg.MIXLY_BACKWARD ,\"48\"],\n [Blockly.Msg.MIXLY_TURNLEFT ,\"49\"],\n [Blockly.Msg.MIXLY_TURNRIGHT ,\"50\"],\n [Blockly.Msg.MIXLY_STOP ,\"51\"],\n [Blockly.Msg.MIXLY_Accelerate ,\"52\"],\n [Blockly.Msg.MIXLY_retard ,\"53\"],\n [Blockly.Msg.ROTATION_FORWARD ,\"54\"],\n [Blockly.Msg.ROTATION_BACKWARD ,\"55\"],\n [Blockly.Msg.MIXLY_Query_temperature ,\"56\"],\n [Blockly.Msg.MIXLY_Query_humidity ,\"57\"],\n [Blockly.Msg.MIXLY_Query_brightness ,\"58\"],\n [Blockly.Msg.MIXLY_Query_sound ,\"59\"],\n [Blockly.Msg.MIXLY_Query_time ,\"60\"],\n [Blockly.Msg.MIXLY_Query_distance ,\"61\"],\n [Blockly.Msg.MIXLY_Query_pressure ,\"62\"],\n [Blockly.Msg.MIXLY_Query_key ,\"63\"],\n [Blockly.Msg.MIXLY_Query_touch ,\"64\"],\n [Blockly.Msg.MIXLY_Query_color ,\"65\"]\n ]),\"cmd\")\n .appendField(Blockly.Msg.MIXLY_WHETHER+Blockly.Msg.MIXLY_BE_IDENTIFIED);\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const CI130X_GET_THE_RECOGNIZED_CMD_SANT = {\n init:function(){\n this.setColour(SENSOR_ONBOARD_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RECOGNIZED_STATE,\"status1\"],\n [Blockly.Msg.MIXLY_WHETHER_BROADCAST,\"status2\"],\n [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD,\"result\"]\n ]),\"key\")\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP);\n }\n};\n\nexport const CI130X_BROADCAST_SANT = {\n init:function(){\n this.setColour(SENSOR_ONBOARD_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_MP3_PLAY)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,\"None\"],\n [Blockly.Msg.MIXLY_WIND_SPEED,\"154\"],\n [Blockly.Msg.MIXLY_HYETAL,\"155\"],\n [Blockly.Msg.MIXLY_TEMPERATURE,\"156\"],\n [Blockly.Msg.MIXLY_Humidity,\"157\"],\n [Blockly.Msg.MIXLY_Altitude, \"158\"],\n [Blockly.Msg.MIXLY_SOUND, \"159\"],\n [Blockly.Msg.MIXLY_BRIGHTNESS, \"160\"],\n [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE,\"161\"],\n [Blockly.Msg.MIXLY_SERVO,\"162\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,\"163\"],\n [Blockly.Msg.MIXLY_BUTTON2,\"164\"],\n [Blockly.Msg.MIXLY_ESP32_TOUCH,\"165\"],\n [Blockly.Msg.MIXLY_PAY,\"166\"],\n [Blockly.Msg.MIXLY_CARSH_CHANGE,\"167\"],\n [Blockly.Msg.MIXLY_COUNTDOWN,\"168\"],\n [Blockly.Msg.MIXLY_TIMING,\"169\"],\n [Blockly.Msg.MIXLY_AT_THE_MOMENT,\"170\"],\n [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,\"171\"],\n [Blockly.Msg.MIXLY_FORWARD ,\"172\"],\n [Blockly.Msg.MIXLY_BACKWARD ,\"173\"],\n [Blockly.Msg.MIXLY_TURNLEFT ,\"174\"],\n [Blockly.Msg.MIXLY_TURNRIGHT ,\"175\"],\n [Blockly.Msg.MIXLY_STOP ,\"176\"],\n [Blockly.Msg.MIXLY_Accelerate ,\"177\"],\n [Blockly.Msg.MIXLY_retard ,\"178\"],\n [Blockly.Msg.ROTATION_FORWARD ,\"179\"],\n [Blockly.Msg.ROTATION_BACKWARD ,\"180\"],\n [Blockly.Msg.TUPLE_JOIN,\"181\"],\n [Blockly.Msg.MIXLY_SHOW,\"182\"],\n [Blockly.Msg.MIXLY_LAMPLIGHT,\"183\"],\n [Blockly.Msg.MIXLY_ACCELERATION,\"184\"]\n ]),\"star\");\n this.appendValueInput('NUM')\n .appendField(Blockly.Msg.MIXLY_NUMBER);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_UNIT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,\"None\"],\n [Blockly.Msg.MIXLY_YEAR,\"117\"],\n [Blockly.Msg.MIXLY_MONTH,\"118\"],\n [Blockly.Msg.MIXLY_DAY,\"119\"],\n [Blockly.Msg.MIXLY_HOUR,\"120\"],\n [Blockly.Msg.MIXLY_MINUTE,\"121\"],\n [Blockly.Msg.MIXLY_SECOND,\"122\"],\n [Blockly.Msg.MIXLY_WEEK2,\"123\"],\n [Blockly.Msg.MIXLY_RMB_UNIT,\"124\"],\n [Blockly.Msg.blockpy_setheading_degree,\"125\"],\n [Blockly.Msg.MIXLY_GEAR,\"126\"],\n [Blockly.Msg.MIXLY_LAYER,\"127\"],\n [Blockly.Msg.MIXLY_GRAM,\"128\"],\n [Blockly.Msg.MIXLY_METER,\"129\"],\n [Blockly.Msg.MIXLY_CENTIMETER,\"130\"],\n [Blockly.Msg.MIXLY_MILLIMETER,\"131\"],\n [Blockly.Msg.MIXLY_LUMEN,\"132\"],\n [Blockly.Msg.MIXLY_DECIBEL,\"133\"],\n [Blockly.Msg.MIXLY_hectopascal,\"134\"],\n [Blockly.Msg.MIXLY_PERCENT,\"135\"],\n [Blockly.Msg.MIXLY_CELSIUS,\"136\"],\n [Blockly.Msg.MIXLY_METER_PER_SEC,\"137\"],\n [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,\"138\"],\n [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display,\"139\"],\n [Blockly.Msg.MIXLY_SUCCESS,\"140\"],\n [Blockly.Msg.MIXLY_FAILED,\"141\"],\n [Blockly.Msg.MIXLY_WRONG,\"142\"],\n [Blockly.Msg.MIXLY_GOOD,\"143\"],\n [Blockly.Msg.MIXLY_blockpy_set_add,\"144\"],\n [Blockly.Msg.MIXLY_DECREASE,\"145\"],\n [Blockly.Msg.COLOUR_RGB_RED,\"146\"],\n [Blockly.Msg.COLOUR_RGB_ORANGE,\"147\"],\n [Blockly.Msg.COLOUR_YELLOW,\"148\"],\n [Blockly.Msg.COLOUR_RGB_GREEN,\"149\"],\n [Blockly.Msg.COLOUR_CYAN,\"150\"],\n [Blockly.Msg.COLOUR_RGB_BLUE,\"151\"],\n [Blockly.Msg.COLOUR_RGB_PURPLE,\"152\"],\n [Blockly.Msg.COLOUR_RGB_WHITE,\"153\"]\n ]),\"end\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const CI130X_SET_SYSTEM_CMD_SANT = {\n init:function(){\n this.setColour(SENSOR_ONBOARD_HUE); \n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MILXY_ENTER_WAKE_UP,\"1\"],\n [Blockly.Msg.MIXLY_INCREASE_VOLUME,\"202\"],\n [Blockly.Msg.MIXLY_REDUCE_VOLUME,\"203\"],\n [Blockly.Msg.MIXLY_MAX_VOLUME,\"204\"],\n [Blockly.Msg.MIXLY_MINIMUM,\"205\"],\n [Blockly.Msg.MIXLY_OPEN_RESPONSE,\"206\"],\n [Blockly.Msg.MIXLY_CLOSE_RESPONSE,\"207\"],\n [Blockly.Msg.MIXLY_QUIT_WAKE_UP,\"208\"]\n ]),\"cmd\")\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst SERIAL_HUE = 65; //'#58a8de'//65;\n\nexport const serial_print_byte = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"CONTENT\", String)\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_WRITE + '(' + Blockly.Msg.LANG_MATH_BYTE + ')');\n //this.setFieldValue('1','mode')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);\n }\n};\n\nexport const serial_print = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"CONTENT\", String)\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINT);\n //this.setFieldValue('1','mode')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);\n }\n};\n\nexport const serial_println = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"CONTENT\", String)\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINTLN);\n //this.setFieldValue('1','mode')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.TEXT_PRINT_Huanhang_TOOLTIP + Blockly.Msg.TEXT_PRINT_TOOLTIP);\n }\n};\n\n//打印16进制数\nexport const serial_print_hex = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINTLN);\n this.appendValueInput(\"CONTENT\", Number)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MATH_BIN, \"bin\"], [Blockly.Msg.MATH_OCT, \"oct\"], [Blockly.Msg.MATH_DEC, \"int\"], [Blockly.Msg.MATH_HEX, \"hex\"]]), \"STAT\")\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setFieldValue('hex', 'STAT')\n this.setTooltip(Blockly.Msg.TEXT_PRINT_HEX_TOOLTIP);\n }\n};\n\nexport const serial_receive_data_event = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput('char_marker')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_SERIAL_WHEN_CONTAIN_DATA)\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n }\n};\n\nexport const serial_readstr = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_READSTR);\n //this.setFieldValue('1','mode')\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERIAL_READ_STR);\n }\n};\n\nexport const serial_any = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_SERIAL_AVAILABLE);\n //this.setFieldValue('1','mode')\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_SERIAL_AVAILABLE1);\n }\n};\n\nexport const serial_readline = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_ESP32_READ_LINE);\n //this.setFieldValue('1','mode')\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_JS_SERIAL_READ_LINE1);\n }\n};\n\nexport const serial_readstr_until = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial \" + Blockly.Msg.MIXLY_SERIAL_READSTR_UNTIL)\n .appendField(new Blockly.FieldDropdown([\n [\"new line\", \"serial.delimiters(Delimiters.NewLine)\"],\n [\",\", \"serial.delimiters(Delimiters.Comma)\"],\n [\"$\", \"serial.delimiters(Delimiters.Dollar)\"],\n [\":\", \"serial.delimiters(Delimiters.Colon)\"],\n [\".\", \"serial.delimiters(Delimiters.Fullstop)\"],\n [\"#\", \"serial.delimiters(Delimiters.Hash)\"]\n ]), \"char_marker\");\n\n this.setInputsInline(true);\n this.setOutput(true, String);\n }\n};\n\nexport const serial_softserial_new = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"RX\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(\"RX#\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendValueInput(\"TX\")\n .appendField(\"TX#\")\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SERIAL_BEGIN)\n .appendField(new Blockly.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SERIAL_softserial);\n }\n};\n\nexport const serial_softserial = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldDropdown([['uart1 (RX=23,TX=19)', '1'], ['uart2 (RX=5,TX=18)', '2']]), 'mode');\n //this.setFieldValue('1','mode')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SERIAL_BEGIN)\n .appendField(new Blockly.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SERIAL_softserial);\n }\n};\n\nexport const serial_begin = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial \" + Blockly.Msg.MIXLY_SERIAL_BEGIN)\n .appendField(new Blockly.FieldDropdown([['115200', '115200'], ['57600', '57600'], ['37400', '38400'], ['31250', '31250'], ['28800', '28800'], ['19200', '19200'], ['14400', '14400'], ['9600', '9600'], ['4800', '4800'], ['2400', '2400'], ['1200', '1200'], ['300', '300']]), 'baudrate');\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SERIAL_BEGIN);\n }\n};\n\nexport const system_input = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.blockpy_inout_raw_input)\n .setCheck(String);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.INOUT_input_TOOLTIP);\n }\n}\n\nexport const system_print = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINTLN);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.BLOCKPY_PRINT_TOOLTIP);\n }\n};\n\nexport const system_print_inline = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINT);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);\n }\n};\n\nexport const system_print_end = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINT);\n this.appendValueInput(\"END\")\n .appendField(Blockly.Msg.MIXLY_ENDSWITH);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP);\n }\n};\n\nexport const system_print_many = {\n\n init: function () {\n this.setColour(SERIAL_HUE);\n\n this.itemCount_ = 2;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['system_print_item'], this));\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP);\n },\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('system_print_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('system_print_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i)\n .connection.connect(connections[i]);\n }\n }\n },\n\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_EMPTY);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.MIXLY_SERIAL_PRINTLN);\n }\n }\n }\n }\n};\nexport const system_print_container = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SERIAL_PRINTLN);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const system_print_item = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const serial_send_to_ai = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendValueInput(\"CONTENT\")\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_EMQX_PUBLISH);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO + Blockly.Msg.MIXLY_OTHER + 'MP' + Blockly.Msg.MIXLY_DEVICE)\n .appendField(Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE, 'True'], [Blockly.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE, 'False']]), 'STAT')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const serial_read_from_ai = {\n init: function () {\n this.setColour(SERIAL_HUE);\n this.appendDummyInput()\n .appendField(\"Serial\")\n .appendField(new Blockly.FieldDropdown([['uart1', '1']]), 'mode')\n .appendField(Blockly.Msg.MIXLY_ESP32_READ + Blockly.Msg.MIXLY_OTHER + 'MP' + Blockly.Msg.MIXLY_DEVICE + Blockly.Msg.MIXLY_SD_DATA);\n this.setOutput(true, Boolean);\n }\n};","import * as Blockly from 'blockly/core';\n\n\nconst SYSTEM_HUE = 120; //'#EB8045';\n\nexport const controls_delay_new = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DELAY)\n this.appendValueInput(\"DELAY_TIME\", Number)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_SECOND, \"s\"], [Blockly.Msg.MIXLY_mSecond, \"ms\"], [Blockly.Msg.MIXLY_uSecond, \"us\"]]), 'Time');\n this.setFieldValue('s', 'Time')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_DELAY);\n }\n};\n\nexport const controls_delay = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DELAY)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_SECOND, \"s\"], [Blockly.Msg.MIXLY_mSecond, \"ms\"], [Blockly.Msg.MIXLY_uSecond, \"us\"]]), 'Time');\n this.appendValueInput(\"DELAY_TIME\", Number)\n .setCheck(Number);\n this.setFieldValue('ms', 'Time')\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_DELAY);\n }\n};\n\nexport const Panic_with_status_code = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendValueInput(\"STATUS_CODE\", Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Panic_with_status_code)\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n // this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Panic_with_status_code);\n }\n};\n\nexport const reset = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Reset_micro);\n this.setPreviousStatement(true);\n // this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_Reset_micro);\n }\n};\n\nexport const controls_millis = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_RUNTIME);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_mSecond, \"ms\"], [Blockly.Msg.MIXLY_uSecond, \"us\"]]), 'Time');\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_CONTROLS_MILLIS_TOOLTIP);\n }\n};\n\nexport const raw_block = {\n // Container.\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendDummyInput()\n .appendField('Code Block:');\n this.appendDummyInput()\n .appendField(new Blockly.FieldMultilineInput('12345'), 'TEXT');\n }\n};\n\nexport const controls_uname = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME);\n\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_UNAME);\n }\n};\n\nexport const timer = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendValueInput('VAR')\n .appendField(\"Timer\")\n .setCheck(\"var\");\n this.appendValueInput('period')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n // .appendField(\"Timer\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL);\n this.appendValueInput('mode')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE);\n this.appendValueInput('callback')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);\n // this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_TIMER_TOOLTIP);\n }\n};\n\nexport const system_timer = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendValueInput('VAR')\n .appendField(\"Timer\")\n .setCheck(\"var\");\n // .appendField(\"I2C \" + Blockly.Msg.MIXLY_SETUP)\n this.appendValueInput(\"period\")\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_mSecond)\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_PYTHON_ONE_SHOT, \"ONE_SHOT\"], [Blockly.Msg.MIXLY_PYTHON_PERIODIC, \"PERIODIC\"]]), \"mode\");\n this.appendValueInput('callback')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SYSTEM_TIMER_TOOLTIP);\n }\n};\n\nexport const system_ticks_diff = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendValueInput('END')\n // .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_ESP32_TIME_TICKS_DIFF);\n this.appendValueInput('START')\n // .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_ESP32_TIME_MINUS);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SYSTEM_TICKS_DIFF_TOOLTIP);\n }\n};\n\nexport const system_timer_init = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput(\"\")\n .appendField(\"Timer\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_SETUP)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_SYSTEM_TIMER_INIT_TOOLTIP);\n }\n};\n\nexport const system_wdt_init = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MACHINE_WDT)\n .appendField(Blockly.Msg.MIXLY_SETUP)\n this.appendValueInput('period')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_MACHINE_WDT_TIMEOUT)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_mSecond)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_MACHINE_WDT_INIT_TOOLTIP);\n }\n};\n\nexport const system_wdt_feed = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MACHINE_WDT)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MACHINE_FEED)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_MACHINE_WDT_FEED_TOOLTIP);\n }\n};\n\nexport const system_machine_reset = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MACHINE_RESET)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_MACHINE_RESET_TOOLTIP);\n }\n};\n\nexport const system_bitbot_shutdown = {\n init: function () {\n this.setColour(SYSTEM_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.BITBOT)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.SHUTDOWN)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MICROPYTHON_BITBOT_SHUTDOWN_TOOLTIP);\n }\n};\n\nexport const Timer_init = system_timer_init;\nexport const timer2 = system_timer;\nexport const time_ticks_diff = system_ticks_diff;\nexport const base_delay = controls_delay;","import * as Blockly from 'blockly/core';\n\nconst WEATHER_HUE = '#27b6ac';\n\nexport const WEATHER_NOW = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catweather)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW, \"weather_now\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM, \"weather_alarm\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW, \"air_now\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY, \"tide_daily\"],\n [Blockly.Msg.MIXLY_WEB_PLACE + Blockly.Msg.HTML_SEARCH, \"location_search\"]\n ]), \"mode\");\n this.appendValueInput('key')\n .appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_GEOGRAPHIC_LOCATION);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const WEATHER_DAILY = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catweather)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY, \"weather_daily\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION, \"life_suggestion\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY, \"air_daily\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN, \"geo_sun\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON, \"geo_moon\"]\n ]), \"mode\");\n this.appendValueInput('key')\n .appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_GEOGRAPHIC_LOCATION);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.MIXLY_WEB_DAILY);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const WEATHER_HOUR = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catweather)\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_HOURS);\n this.appendValueInput('key')\n .appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_GEOGRAPHIC_LOCATION);\n this.appendValueInput('hour')\n .appendField(Blockly.Msg.MIXLY_WEB_HOURS);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Weather_now = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catweather)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW, \"Weather_now\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM, \"Weather_alarm\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW, \"Air_now\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY, \"Tide_daily\"],\n [Blockly.Msg.MIXLY_WEB_PLACE + Blockly.Msg.HTML_SEARCH, \"Location_search\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION, \"Life_suggestion\"]\n ]), \"mode\");\n this.appendValueInput('key')\n .appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_GEOGRAPHIC_LOCATION);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const Weather_now_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_WEATHER_PHENOMENON, \"text\"],\n [Blockly.Msg.MIXLY_WEATHER_PHENOMENON_CODE, \"code\"],\n [Blockly.Msg.MIXLY_TEMPERATURE + Blockly.Msg.MIXLY_TEMPERATURE_UNIT_, \"temperature\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_FEEL, \"feels_like\"],\n [Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MIXLY_PRESSURE_UNIT, \"pressure\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_HUMIDITY, \"humidity\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_VISIBILITY, \"visibility\"],\n [Blockly.Msg.ForecastFx, \"wind_direction\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_DIRECT_DEGREE, \"wind_direction_degree\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_SPEED, \"wind_speed\"],\n [Blockly.Msg.MIXLY_WIND_RATING, \"wind_scale\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_CLOUDS, \"clouds\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Air_now_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_NOW + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_AIR_NOW_AIRQUAILTY, \"api\"],\n [Blockly.Msg.MIXLY_AIR_NOW_PM25, \"pm25\"],\n [Blockly.Msg.MIXLY_AIR_NOW_PM10, \"pm10\"],\n [Blockly.Msg.MIXLY_AIR_NOW_so2, \"so2\"],\n [Blockly.Msg.MIXLY_AIR_NOW_no2, \"no2\"],\n [Blockly.Msg.MIXLY_AIR_NOW_co, \"co\"],\n [Blockly.Msg.MIXLY_AIR_NOW_o3, \"o3\"],\n [Blockly.Msg.MIXLY_AIR_NOW_pp, \"primary_pollutant\"],\n [Blockly.Msg.MIXLY_AIR_NOW_quailty, \"quality\"],\n [Blockly.Msg.MIXLY_AIR_NOW_last_update, \"last_update\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Weather_alarm_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_ALARM + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_WEATHER_ALARM_TITLE, \"title\"],\n [Blockly.Msg.MIXLY_WEATHER_ALARM_TYPE, \"type\"],\n [Blockly.Msg.MIXLY_WEATHER_ALARM_LEVEL, \"level\"],\n [Blockly.Msg.MIXLY_WEATHER_ALARM_DESCRIPTION, \"description\"],\n [Blockly.Msg.MIXLY_WEATHER_ALARM_PUB_DATE, \"pub_date\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Life_suggestion_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_LIFE_SUGGESTION + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_AC, \"ac\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_AP, \"air_pollution\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_AIRING, \"airing\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_ALLERGY, \"allergy\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_BEER, \"beer\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_BOATING, \"boating\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_CAR_WS, \"car_washing\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_CHILL, \"chill\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_COMFORT, \"comfort\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_DATING, \"dating\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_DRESSING, \"dressing\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_FISHING, \"fishing\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_FLU, \"flu\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_HAIR_DRESS, \"hair_dressing\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_KITEFLYING, \"kiteflying\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_MAKEUP, \"makeup\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_MOOD, \"mood\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_MORNINIG_SPORT, \"morning_sport\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_NIGHT_LIFE, \"night_life\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_ROAD_CONDI, \"road_condition\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_SHOPPING, \"shopping\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_SPORT, \"sport\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_SUNSCREEN, \"sunscreen\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_TRAFFIC, \"traffic\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_TRAVEL, \"travel\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_UMBRELLA, \"umbrella\"],\n [Blockly.Msg.MIXLY_LIFE_SUGGESTION_UV, \"uv\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Tide_daily_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_TIDE_DAILY + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_GPS_DATE, \"date\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_HEIGHT, \"tide\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_0_TIME, \"0,time\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_0_HEIGHT, \"0,height\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_1_TIME, \"1,time\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_1_HEIGHT, \"1,height\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_2_TIME, \"2,time\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_2_HEIGHT, \"2,height\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_3_TIME, \"3,time\"],\n [Blockly.Msg.MIXLY_TIDE_DAILY_3_HEIGHT, \"3,height\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Location_search_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_PLACE + Blockly.Msg.HTML_SEARCH + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_ID, \"id\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_NAME, \"name\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_COUNTRY, \"country\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_PATH, \"path\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_TIMEZONE, \"timezone\"],\n [Blockly.Msg.MIXLY_LOCATION_SEARCH_TIMEZONE_O, \"timezone_offset\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Weather_daily = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MSG.catweather)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY, \"Weather_daily\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY, \"Air_daily\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN, \"Geo_sun\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON, \"Geo_moon\"]\n ]), \"mode\");\n this.appendValueInput('key')\n .appendField(Blockly.Msg.MIXLY_API_PRIVATE_KEY);\n this.appendValueInput('addr')\n .appendField(Blockly.Msg.MIXLY_GEOGRAPHIC_LOCATION);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.MIXLY_WEB_DAILY);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const Weather_daily_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_GPS_DATE, \"date\"],\n [Blockly.Msg.MIXLY_DAYTIME_WEATHER_PHENOMENON, \"text_day\"],\n [Blockly.Msg.MIXLY_DAYTIME_WEATHER_PHENOMENON_CODE, \"code_day\"],\n [Blockly.Msg.MIXLY_EVENING_WEATHER_PHENOMENON, \"text_night\"],\n [Blockly.Msg.MIXLY_EVENING_WEATHER_PHENOMENON_CODE, \"code_night\"],\n [Blockly.Msg.ForecastHigh + Blockly.Msg.MIXLY_TEMPERATURE_UNIT_, \"high\"],\n [Blockly.Msg.ForecastLow + Blockly.Msg.MIXLY_TEMPERATURE_UNIT_, \"low\"],\n [Blockly.Msg.MIXLY_PROBABILITY_OF_PRECIPITATION, \"precip\"],\n [Blockly.Msg.ForecastFx, \"wind_direction\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_DIRECT_DEGREE, \"wind_direction_degree\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_WIND_SPEED, \"wind_speed\"],\n [Blockly.Msg.MIXLY_WIND_RATING, \"wind_scale\"],\n [Blockly.Msg.MIXLY_RAINFALL, \"rainfall\"],\n [Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_NOW_HUMIDITY, \"humidity\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Air_daily_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_AIR_DAILY);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_AIR_NOW_AIRQUAILTY, \"api\"],\n [Blockly.Msg.MIXLY_AIR_NOW_PM25, \"pm25\"],\n [Blockly.Msg.MIXLY_AIR_NOW_PM10, \"pm10\"],\n [Blockly.Msg.MIXLY_AIR_NOW_so2, \"so2\"],\n [Blockly.Msg.MIXLY_AIR_NOW_no2, \"no2\"],\n [Blockly.Msg.MIXLY_AIR_NOW_co, \"co\"],\n [Blockly.Msg.MIXLY_AIR_NOW_o3, \"o3\"],\n [Blockly.Msg.MIXLY_AIR_NOW_quailty, \"quality\"],\n [Blockly.Msg.MIXLY_GPS_DATE, \"date\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Geo_sun_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_SUN);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_GPS_DATE, \"date\"],\n [Blockly.Msg.MIXLY_SUNRISE_T, \"sunrise\"],\n [Blockly.Msg.MIXLY_SUNSET_T, \"sunset\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const Geo_moon_content = {\n init: function () {\n this.setColour(WEATHER_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_GEO_MOON);\n this.appendValueInput('day')\n .appendField(Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_WEB_DATA_SENIVERSE_GET_WEATHER_DAILY_DAY + Blockly.Msg.MIXLY_BELONG);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PARAMETER_FREE, \"none\"],\n [Blockly.Msg.MIXLY_GPS_DATE, \"date\"],\n [Blockly.Msg.MIXLT_MOONRISE_T, \"rise\"],\n [Blockly.Msg.MIXLY_MOONSET_T, \"set\"],\n [Blockly.Msg.MIXLY_MOON_FRACTION, \"fraction\"],\n [Blockly.Msg.MIXLY_MOON_PHASE, \"phase\"],\n [Blockly.Msg.MIXLY_MOON_PHASE_NAME, \"phase_name\"]\n ]), \"content\");\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};","import * as MicroPythonActuatorExternBlocks from './blocks/actuator_extern';\nimport * as MicroPythonActuatorOnBoardBlocks from './blocks/actuator_onboard';\nimport * as MicroPythonActuatorBlocks from './blocks/actuator';\nimport * as MicroPythonAISensorBlocks from './blocks/ai_sensor';\nimport * as MicroPythonAIBlocks from './blocks/ai';\nimport * as MicroPythonBlynkBlocks from './blocks/blynk';\nimport * as MicroPythonCCG1Blocks from './blocks/cc_g1';\nimport * as MicroPythonCEGOBlocks from './blocks/ce_go';\nimport * as MicroPythonCommunicateBlocks from './blocks/communicate';\nimport * as MicroPythonControlBlocks from './blocks/control';\nimport * as MicroPythonDisplayExternBlocks from './blocks/display_extern';\nimport * as MicroPythonDisplayOnBoardBlocks from './blocks/display_onboard';\nimport * as MicroPythonDisplayBlocks from './blocks/display';\nimport * as MicroPythonFactoryBlocks from './blocks/factory';\nimport * as MicroPythonInputBlocks from './blocks/inout';\nimport * as MicroPythonIotBlocks from './blocks/iot';\nimport * as MicroPythonNetworkBlocks from './blocks/network';\nimport * as MicroPythonNovaG1Blocks from './blocks/nova_g1';\nimport * as MicroPythonPeG1Blocks from './blocks/pe_g1';\nimport * as MicroPythonPinsBlocks from './blocks/pins';\nimport * as MicroPythonSensorExternBlocks from './blocks/sensor_extern';\nimport * as MicroPythonSensorOnBoardBlocks from './blocks/sensor_onboard';\nimport * as MicroPythonSensorBlocks from './blocks/sensor';\nimport * as MicroPythonSerialBlocks from './blocks/serial';\nimport * as MicroPythonSystemBlocks from './blocks/system';\nimport * as MicroPythonWeatherBlocks from './blocks/weather';\n\nimport * as MicroPythonActuatorExternGenerators from './generators/actuator_extern';\nimport * as MicroPythonActuatorOnBoardGenerators from './generators/actuator_onboard';\nimport * as MicroPythonActuatorGenerators from './generators/actuator';\nimport * as MicroPythonAISensorGenerators from './generators/ai_sensor';\nimport * as MicroPythonAIGenerators from './generators/ai';\nimport * as MicroPythonBlynkGenerators from './generators/blynk';\nimport * as MicroPythonCCG1Generators from './generators/cc_g1';\nimport * as MicroPythonCEGOGenerators from './generators/ce_go';\nimport * as MicroPythonCommunicateGenerators from './generators/communicate';\nimport * as MicroPythonControlGenerators from './generators/control';\nimport * as MicroPythonDisplayExternGenerators from './generators/display_extern';\nimport * as MicroPythonDisplayOnBoardGenerators from './generators/display_onboard';\nimport * as MicroPythonDisplayGenerators from './generators/display';\nimport * as MicroPythonFactoryGenerators from './generators/factory';\nimport * as MicroPythonInputGenerators from './generators/inout';\nimport * as MicroPythonIotGenerators from './generators/iot';\nimport * as MicroPythonNetworkGenerators from './generators/network';\nimport * as MicroPythonNovaG1Generators from './generators/nova_g1';\nimport * as MicroPythonPeG1Generators from './generators/pe_g1';\nimport * as MicroPythonPinsGenerators from './generators/pins';\nimport * as MicroPythonSensorExternGenerators from './generators/sensor_extern';\nimport * as MicroPythonSensorOnBoardGenerators from './generators/sensor_onboard';\nimport * as MicroPythonSensorGenerators from './generators/sensor';\nimport * as MicroPythonSerialGenerators from './generators/serial';\nimport * as MicroPythonSystemGenerators from './generators/system';\nimport * as MicroPythonWeatherGenerators from './generators/weather';\n\nexport {\n MicroPythonActuatorExternBlocks,\n MicroPythonActuatorOnBoardBlocks,\n MicroPythonActuatorBlocks,\n MicroPythonAISensorBlocks,\n MicroPythonAIBlocks,\n MicroPythonBlynkBlocks,\n MicroPythonCCG1Blocks,\n MicroPythonCEGOBlocks,\n MicroPythonCommunicateBlocks,\n MicroPythonControlBlocks,\n MicroPythonDisplayExternBlocks,\n MicroPythonDisplayOnBoardBlocks,\n MicroPythonDisplayBlocks,\n MicroPythonFactoryBlocks,\n MicroPythonInputBlocks,\n MicroPythonIotBlocks,\n MicroPythonNetworkBlocks,\n MicroPythonNovaG1Blocks,\n MicroPythonPeG1Blocks,\n MicroPythonPinsBlocks,\n MicroPythonSensorExternBlocks,\n MicroPythonSensorOnBoardBlocks,\n MicroPythonSensorBlocks,\n MicroPythonSerialBlocks,\n MicroPythonSystemBlocks,\n MicroPythonWeatherBlocks,\n MicroPythonActuatorExternGenerators,\n MicroPythonActuatorOnBoardGenerators,\n MicroPythonActuatorGenerators,\n MicroPythonAISensorGenerators,\n MicroPythonAIGenerators,\n MicroPythonBlynkGenerators,\n MicroPythonCCG1Generators,\n MicroPythonCEGOGenerators,\n MicroPythonCommunicateGenerators,\n MicroPythonControlGenerators,\n MicroPythonDisplayExternGenerators,\n MicroPythonDisplayOnBoardGenerators,\n MicroPythonDisplayGenerators,\n MicroPythonFactoryGenerators,\n MicroPythonInputGenerators,\n MicroPythonIotGenerators,\n MicroPythonNetworkGenerators,\n MicroPythonNovaG1Generators,\n MicroPythonPeG1Generators,\n MicroPythonPinsGenerators,\n MicroPythonSensorExternGenerators,\n MicroPythonSensorOnBoardGenerators,\n MicroPythonSensorGenerators,\n MicroPythonSerialGenerators,\n MicroPythonSystemGenerators,\n MicroPythonWeatherGenerators\n};","export const esp32_music_pitch = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'music.pitch(' + pin + ', ' + number_pitch + ')\\n';\n return code;\n}\n\nexport const esp32_music_pitch_with_time = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'music.pitch_time(' + pin + ', ' + number_pitch + ', ' + number_time + ')\\n';\n return code;\n}\n\nexport const esp32_music_stop = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'music.stop(' + pin + ')\\n';\n return code;\n}\n\nexport const esp32_music_set_tempo = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT);\n var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT);\n var code = \"music.set_tempo(\" + ticks + \", \" + bpm + \")\\n\";\n return code;\n}\n\nexport const esp32_music_get_tempo = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var code = \"music.get_tempo()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_onboard_music_pitch = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC);\n var code = 'music.pitch(' + number_pitch + ')\\n';\n return code;\n}\n\nexport const esp32_onboard_music_pitch_with_time = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var number_pitch = generator.valueToCode(this, 'pitch', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var code = 'music.pitch_time(' + number_pitch + ', ' + number_time + ')\\n';\n return code;\n}\n\nexport const esp32_onboard_music_stop = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var code = 'music.stop(' + ')\\n';\n return code;\n}\n\nexport const esp32_onboard_music_play_list = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);\n var code = \"music.play(\" + lst + \")\\n\";\n return code;\n}\n\nexport const esp32_music_play_list = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ASSIGNMENT);\n var code = \"music.play(\" + lst + \", \" + pin + \")\\n\";\n return code;\n}\n\nexport const esp32_mixgo_music_play_list_show = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n generator.definitions_['import_matrix'] = 'import matrix';\n var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ASSIGNMENT);\n // var display = generator.valueToCode(this, 'DISPLAY', generator.ORDER_ASSIGNMENT);\n var code = \"music.play_show(\" + lst + \", \" + pin + \")\\n\";\n return code;\n}\n\nexport const esp32_music_reset = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n return \"music.reset()\\n\";\n}\n\nexport const servo_move = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC);\n var code = 'servo.servo_write_angle(' + dropdown_pin + ',' + value_degree + ')\\n';\n return code;\n}\n\nexport const number = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ledswitch = function (_, generator) {\n var code = this.getFieldValue('flag');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_extern_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n // var bright = this.getFieldValue('bright');\n var code = \"mixgo.led(\" + pin + \").setonoff(\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_extern_get_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = \"mixgo.led(\" + pin + \").getonoff(\" + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_extern_led_brightness = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = 'mixgo.led(' + pin + ').setbrightness(' + flag + ')\\n';\n return code;\n}\n\nexport const actuator_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n // var bright = this.getFieldValue('bright');\n var code = \"mixgo.led\" + op + \".setonoff(\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_get_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var code = \"mixgo.led\" + op + \".getonoff(\" + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_led_brightness = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = 'mixgo.led' + op + '.setbrightness(' + flag + ')\\n';\n return code;\n}\n\nexport const actuator_neopixel_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var code = v + ' = neopixel.NeoPixel(machine.Pin(' + dropdown_rgbpin + '), ' + value_ledcount + ', timing = True)\\n';\n return code;\n}\n\nexport const actuator_neopixel_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.write()\\n';\n return code;\n}\n\nexport const actuator_neopixel_rgb = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = v + '[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_write = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var code = 'mixgo.rgb.write()\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = 'mixgo.rgb[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb_all = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = 'mixgo.rgb.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\\n';\n return code;\n}\n\nexport const led_light = actuator_led_bright;\nexport const get_led_bright = actuator_get_led_bright;\nexport const led_brightness = actuator_led_brightness;","import { Boards } from 'mixly';\n\nexport const servo_init = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n generator.definitions_['import_board'] = 'import board';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = v + ' = servo.Servo(board.' + dropdown_pin + ')\\n';\n return code;\n}\n\nexport const servo_speed_360 = function (_, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var speed = generator.valueToCode(this, 'SPEED', generator.ORDER_ATOMIC);\n var code = v + '.set_speed(' + speed + ')\\n';\n return code;\n}\n\nexport const servo_set_angle = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var code = 'servo.servo180_angle(' + dropdown_pin + ',' + num + ')\\n';\n return code;\n}\n\nexport const servo_set_speed = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var code = 'servo.servo360_speed(' + dropdown_pin + ',' + num + ')\\n';\n return code;\n}\n\nexport const servo_get_angle = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'servo.servo180_angle(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const servo_get_speed = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'servo.servo360_speed(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_ms32006_init = function (_, generator) {\n generator.definitions_['import ms32006'] = 'import ms32006';\n var address = this.getFieldValue('mode')\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sub1 = generator.valueToCode(this, 'SUB1', generator.ORDER_ATOMIC);\n var code = sub + '=ms32006.MS32006(' + sub1 + ',addr=' + address + ')\\n';\n return code;\n}\n\nexport const actuator_ms32006_dcmotor = function (_, generator) {\n generator.definitions_['import ms32006'] = 'import ms32006';\n var direction = this.getFieldValue('direction')\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = sub + '.dc_motor(' + direction + ',' + speed + ')\\n';\n return code;\n}\n\nexport const actuator_ms32006_stepper = function (_, generator) {\n generator.definitions_['import ms32006'] = 'import ms32006';\n var mode = this.getFieldValue('mode')\n var direction = this.getFieldValue('direction')\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var steps = generator.valueToCode(this, 'steps', generator.ORDER_ATOMIC);\n var code = sub + '.move(' + mode + ',' + direction + ',' + speed + ',' + steps + ')\\n';\n return code;\n}\n\nexport const esp32_music_pitch_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n generator.definitions_['import_music'] = 'import music';\n var code = v + ' = music.MIDI(' + dropdown_rgbpin + ')\\n';\n return code;\n}\n\nexport const esp32_music_pitch = function (block, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var code = v + '.pitch(' + number_pitch + ')\\n';\n return code;\n}\n\nexport const esp32_music_pitch_with_time = function (block, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC);\n var code = v + '.pitch_time(' + number_pitch + ', ' + number_time + ')\\n';\n return code;\n}\n\nexport const esp32_music_stop = function (block, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.stop(' + ')\\n';\n return code;\n}\n\nexport const esp32_music_set_tempo_extern = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT);\n var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT);\n var code = v + \".set_tempo(\" + ticks + \", \" + bpm + \")\\n\";\n return code;\n}\n\nexport const esp32_music_get_tempo_extern = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + \".get_tempo()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_music_play_list = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + \".play(\" + v + '.' + lst + \")\\n\";\n return code;\n}\n\nexport const esp32_music_reset_extern = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return v + \".reset()\\n\";\n}\n\nexport const servo_move = function (_, generator) {\n generator.definitions_['import_servo'] = 'import servo';\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_degree = generator.valueToCode(this, 'DEGREE', generator.ORDER_ATOMIC);\n var code = 'servo.servo_write_angle(' + dropdown_pin + ',' + value_degree + ')\\n';\n return code;\n}\n\nexport const actuator_extern_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n // var bright = this.getFieldValue('bright');\n var code = \"mixgo.LED(\" + pin + \").setonoff(\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_extern_get_led_bright = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = \"mixgo.LED(\" + pin + \").getbrightness(\" + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_extern_get_led_state = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = \"mixgo.LED(\" + pin + \").getonoff(\" + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_extern_led_brightness = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = 'mixgo.LED(' + pin + ').setbrightness(' + flag + ')\\n';\n return code;\n}\n\nexport const actuator_neopixel_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_rgbpin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_ledcount = generator.valueToCode(this, 'LEDCOUNT', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var code = v + ' = neopixel.NeoPixel(machine.Pin(' + dropdown_rgbpin + '), ' + value_ledcount + ')\\n';\n return code;\n}\n\nexport const actuator_neopixel_rgb_all = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = v + '.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\\n';\n return code;\n}\n\nexport const actuator_neopixel_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.write()\\n';\n return code;\n}\n\nexport const actuator_neopixel_rgb = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_neopixel'] = 'import neopixel';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = v + '[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\\n';\n return code;\n}\n\nexport const actuator_use_uart_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var key2 = this.getFieldValue('key2');\n if (key2=='SYN6288'){\n generator.definitions_['import_syn6288'] = 'import syn6288';\n var code = v + '=syn6288.SYN6288(' + key + ')\\n';\n return code;\n }else if(key2=='NS9300'){\n generator.definitions_['import_ns9300'] = 'import ns9300';\n var code = v + '=ns9300.NS9300(' + key + ')\\n';\n return code;\n }\n \n}\n\nexport const player_whether_stop = function(_,generator){\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v+'.status('+key+')';\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const player_set_play = function(_,generator){\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v+'.control('+key+')\\n';\n return code;\n}\n\nexport const player_set_volume = function(_,generator){\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var vol = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC);\n var code = v+'.volume('+vol+')\\n';\n return code;\n}\n\nexport const player_set_mode = function(_,generator){\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v +'.mode('+key+')\\n';\n return code;\n}\n\nexport const player_play_music = function(_,generator){\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var s = generator.valueToCode(this, 'song', generator.ORDER_ATOMIC);\n var code = v +'.'+key+'('+s+')\\n';\n return code;\n}\n\nexport const syn6288_set_voice = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT);\n var code = v + \".volume(\" + voice + \")\\n\";\n return code;\n}\n\nexport const syn6288_get_voice = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + \".volume()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const syn6288_builtin_voice = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT);\n var code = v + \".hint_tones(\" + voice + ',blocking=' + mode + \")\\n\";\n return code;\n}\n\nexport const syn6288_tts_play = function (_, generator) {\n generator.definitions_['import_music'] = 'import music';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n var voice = generator.valueToCode(this, 'VOICE', generator.ORDER_ASSIGNMENT);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".synthesis(\" + data + ',music=' + voice + ',blocking=' + mode + \")\\n\";\n return code;\n}\n\n//mixbot extern below:\nexport const mixbot_addr_extern = function (_, generator) {\n var code = this.getFieldValue('PIN');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const robot_motor_extern = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_motor'] = 'from mixbot_ext import ext_motor';\n var code = 'ext_motor.run(' + mode + ',' + speed + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_motor'] = 'ext_motor_left = i2cdevice.Motor(ext_i2c_left)';\n var code = 'ext_motor_left.run(0,' + speed + ')\\n';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_motor'] = 'ext_motor_right = i2cdevice.Motor(ext_i2c_right)';\n var code = 'ext_motor_right.run(0,' + speed + ')\\n';\n }\n return code;\n }\n}\n\nexport const robot_motor_extern_get_speed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n var code = 'ext_motor.run(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_motor'] = 'ext_motor_left = i2cdevice.Motor(ext_i2c_left)';\n var code = 'ext_motor_left.run()';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_motor'] = 'ext_motor_right = i2cdevice.Motor(ext_i2c_right)';\n var code = 'ext_motor_right.run()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_traffic_light_extern = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var light = this.getFieldValue('light');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_traffic'] = 'from mixbot_ext import ext_traffic';\n var mode = this.getFieldValue('mode');\n var light = this.getFieldValue('light');\n var code = 'ext_traffic.led(' + mode + ',';\n if (light == '0' || light == '1' || light == '2') { code += '0' + ',' }\n else if (light == '3' || light == '4') { code += '1' + ',' }\n else if (light == '5' || light == '6') { code += '2' + ',' }\n if (light == '0') { code += '0' }\n else if (light == '1' || light == '3' || light == '5') { code += '1' }\n else if (light == '2' || light == '4' || light == '6') { code += '-1' }\n code += \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_traffic'] = 'ext_traffic_left = i2cdevice.Traffic_LED(ext_i2c_left)';\n var code = 'ext_traffic_left.led(0,';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_traffic'] = 'ext_traffic_right = i2cdevice.Traffic_LED(ext_i2c_right)';\n var code = 'ext_traffic_right.led(0,';\n }\n if (light == '0' || light == '1' || light == '2') { code += '0' + ',' }\n else if (light == '3' || light == '4') { code += '1' + ',' }\n else if (light == '5' || light == '6') { code += '2' + ',' }\n if (light == '0') { code += '0' }\n else if (light == '1' || light == '3' || light == '5') { code += '1' }\n else if (light == '2' || light == '4' || light == '6') { code += '-1' }\n code += \")\\n\";\n return code;\n }\n}\n\nexport const robot_led_extern = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var color = this.getFieldValue('color');\n var value = generator.valueToCode(this, 'value', generator.ORDER_ATOMIC);\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_' + color + '_LED'] = 'from mixbot_ext import ' + color + '_LED';\n var code = color + '_LED.brightness(' + mode + ',' + value + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_' + color + '_LED'] = 'ext_' + color + '_LED_left = i2cdevice.' + color + '_LED(ext_i2c_left)';\n var code = 'ext_' + color + '_LED_left.brightness(' + '0,' + value + \")\\n\";\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_' + color + '_LED'] = 'ext_' + color + '_LED_right = i2cdevice.' + color + '_LED(ext_i2c_right)';\n var code = 'ext_' + color + '_LED_right.brightness(' + '0,' + value + \")\\n\";\n }\n return code;\n }\n}\n\nexport const robot_led_extern_get_value = function (_, generator) {\n var mode = this.getFieldValue('mode');\n var color = this.getFieldValue('color');\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_' + color + '_LED'] = 'from mixbot_ext import ' + color + '_LED';\n var code = color + '_LED.brightness(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_' + color + '_LED'] = 'ext_' + color + '_LED_left = i2cdevice.' + color + '_LED(ext_i2c_left)';\n var code = 'ext_' + color + '_LED_left.brightness(0)';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_' + color + '_LED'] = 'ext_' + color + '_LED_right = i2cdevice.' + color + '_LED(ext_i2c_right)';\n var code = 'ext_' + color + '_LED_right.brightness(0)';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_servo_extern_get_status = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var status = this.getFieldValue('status');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.state(' + mode + \")\" + status;\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.state(0)' + status;\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.state(0)' + status;\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_servo_extern_stop_mode = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var status = this.getFieldValue('status');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.stop_mode(' + mode + \",\" + status + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.stop_mode(' + \"0,\" + status + \")\\n\";\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.stop_mode(' + \"0,\" + status + \")\\n\";\n }\n return code;\n }\n}\n\nexport const robot_servo_extern_stop = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.stop(' + mode + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.stop(0)\\n';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.stop(0)\\n';\n }\n return code;\n }\n}\n\nexport const robot_servo_extern_absolute_run = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var status = this.getFieldValue('status');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var direction = this.getFieldValue('direction');\n var angle = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC);\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.absolute_run(' + mode + \",\" + status + \",\" + speed + \",\" + direction + \",\" + angle + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.absolute_run(' + \"0,\" + status + \",\" + speed + \",\" + direction + \",\" + angle + \")\\n\";\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.absolute_run(' + \"0,\" + status + \",\" + speed + \",\" + direction + \",\" + angle + \")\\n\";\n }\n return code;\n }\n}\n\nexport const robot_servo_extern_relative_origin = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.relative_origin(' + mode + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.relative_origin(0)\\n';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.relative_origin(0)\\n';\n }\n return code;\n }\n}\n\nexport const robot_servo_extern_relative_run = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var status = this.getFieldValue('status');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var angle = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC);\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.relative_run(' + mode + \",\" + status + \",\" + speed + \",\" + angle + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.relative_run(' + \"0,\" + status + \",\" + speed + \",\" + angle + \")\\n\";\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.relative_run(' + \"0,\" + status + \",\" + speed + \",\" + angle + \")\\n\";\n }\n return code;\n }\n}\n\nexport const robot_servo_extern_relative_continue = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var status = this.getFieldValue('status');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var direction = this.getFieldValue('direction');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_servo'] = 'from mixbot_ext import ext_servo';\n var code = 'ext_servo.relative_continue(' + mode + \",\" + status + \",\" + speed + \",\" + direction + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_servo'] = 'ext_servo_left = i2cdevice.Motor_servo(ext_i2c_left)';\n var code = 'ext_servo_left.relative_continue(' + \"0,\" + status + \",\" + speed + \",\" + direction + \")\\n\";\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_servo'] = 'ext_servo_right = i2cdevice.Motor_servo(ext_i2c_right)';\n var code = 'ext_servo_right.relative_continue(' + \"0,\" + status + \",\" + speed + \",\" + direction + \")\\n\";\n }\n return code;\n }\n}\n\nexport const mixbot_actuator_extern_get_addr = function (_, generator) {\n var name = this.getFieldValue('name');\n generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name;\n var code = name + '.addr_get()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_actuator_extern_set_addr = function (_, generator) {\n var name = this.getFieldValue('name');\n generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name;\n var oldaddr = generator.valueToCode(this, 'old', generator.ORDER_ATOMIC);\n var newaddr = generator.valueToCode(this, 'new', generator.ORDER_ATOMIC);\n var code = name + '.addr_set(' + oldaddr + ',' + newaddr + ')\\n';\n return code;\n}\n\n//educore\nexport const PIN_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'pin('+ dropdown_pin +')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pin_led_bright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = pin+\".write_digital(value=\" + bright + \")\\n\";\n return code;\n}\n\nexport const servo_PIN_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'servo('+ dropdown_pin +')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const servo_move_angle = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var a = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC);\n var code = sub+'.angle('+ a +')\\n';\n return code;\n}\n\nexport const parrot_PIN_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'parrot('+ dropdown_pin +')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const parrot_move_speed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = sub+'.speed('+ speed +')\\n';\n return code;\n}","import { Boards } from 'mixly';\n\nexport const esp32_music_set_tempo = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var bpm = generator.valueToCode(this, 'BPM', generator.ORDER_ASSIGNMENT);\n var ticks = generator.valueToCode(this, 'TICKS', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_music.set_tempo(\" + ticks + \", \" + bpm + \")\\n\";\n return code;\n}\n\nexport const esp32_music_get_tempo = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var code = \"onboard_music.get_tempo()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_onboard_music_pitch = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var code = 'onboard_music.pitch(' + number_pitch + ')\\n';\n return code;\n}\n\nexport const esp32_onboard_music_pitch_with_time = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC);\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_spk_midi'] = \"from mixgo_zero_voice import spk_midi\";\n var code = 'spk_midi.pitch_time(' + number_pitch + ', ' + number_time + ')\\n';\n } else if (version == 'mixgo_nova') {\n generator.definitions_['import_mixgo_nova_voice_spk_midi'] = \"from mixgo_nova_voice import spk_midi\";\n var code = 'spk_midi.pitch_time(' + number_pitch + ', ' + number_time + ')\\n';\n } else {\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var code = 'onboard_music.pitch_time(' + number_pitch + ', ' + number_time + ')\\n';\n }\n return code;\n}\n\nexport const esp32_onboard_music_stop = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var code = 'onboard_music.stop(' + ')\\n';\n return code;\n}\n\nexport const esp32_onboard_music_play_list = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var lst = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT);\n if (version == 'mixgo_sant') {\n generator.definitions_['import_mixgo_sant_onboard_music'] = \"from mixgo_sant import onboard_music\";\n var code = \"onboard_music.play(\" + lst + \")\\n\";\n } else if (version == 'mixgo_nova') {\n generator.definitions_['import_mixgo_nova_voice_spk_midi'] = \"from mixgo_nova_voice import spk_midi\";\n var code = \"spk_midi.play(\" + lst + \")\\n\";\n } else {\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n var code = \"onboard_music.play(\" + lst + \")\\n\";\n }\n return code;\n}\n\nexport const esp32_music_reset = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_music'] = 'from ' + version + ' import onboard_music';\n return \"onboard_music.reset()\\n\";\n}\n\nexport const number = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ledswitch = function (_, generator) {\n var code = this.getFieldValue('flag');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_led_bright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"onboard_led.setonoff(\" + op + \",\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_get_led_bright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led';\n var code = \"onboard_led.getbrightness(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_get_led_state = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led';\n var code = \"onboard_led.getonoff(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_led_brightness = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led';\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"onboard_led.setbrightness(\" + op + \",\" + flag + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_zero_led_color = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_led'] = 'from ' + version + ' import onboard_led';\n var color = this.getFieldValue('colorvalue');\n var code = \"onboard_led.setcolor(\" + op + \",\" + color + \")\\n\";\n return code;\n}\n\nexport const cc_number = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const rm_actuator_led_bright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = this.getFieldValue('color');\n generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = op + \"led.setonoff(\" + bright + \")\\n\";\n return code;\n}\n\nexport const rm_actuator_get_led_bright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = this.getFieldValue('color');\n generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led';\n var code = op + \"led.getbrightness()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const rm_actuator_get_led_state = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = this.getFieldValue('color');\n generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led';\n var code = op + \"led.getonoff()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const rm_actuator_led_brightness = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var op = this.getFieldValue('color');\n generator.definitions_['import_' + version + '_' + op + 'led'] = 'from ' + version + ' import ' + op + 'led';\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = op + \"led.setbrightness(\" + flag + \")\\n\";\n return code;\n}\n\nexport const actuator_onboard_neopixel_write = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';\n var code = 'onboard_rgb.write()\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';\n var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = 'onboard_rgb[' + value_led + '] = (' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ')\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb_all = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = 'onboard_rgb.fill((' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + '))\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb_show_all_chase = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var code = 'onboard_rgb.color_chase(' + value_rvalue + ', ' + value_gvalue + ', ' + value_bvalue + ', ' + number_time + ')\\n';\n return code;\n}\n\nexport const actuator_onboard_neopixel_rgb_show_all_rainbow = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rgb'] = 'from ' + version + ' import onboard_rgb';\n var number_time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var code = 'onboard_rgb.rainbow_cycle(' + number_time + ')\\n';\n return code;\n}\n\nexport const rm_motor = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n generator.definitions_['import_rm_e1_motor' + wheel] = 'from rm_e1 import motor' + wheel;\n var v = this.getFieldValue('direction');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = \"motor\" + wheel + '.motion(\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\n//c3 motor onboard\nexport const actuator_stepper_keep = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car';\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = 'car.motor_move(\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const actuator_stepper_stop = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car';\n var code = 'car.motor_move(\"' + v + '\"' + \")\\n\";\n return code;\n}\n\nexport const actuator_dc_motor = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car';\n var v = this.getFieldValue('direction');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = \"car.motor(car.MOTO_\" + wheel + ',\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const actuator_dc_motor_stop = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n generator.definitions_['import_mixgocar_c3_car'] = 'from mixgocar_c3 import car';\n var v = this.getFieldValue('direction');\n var code = \"car.motor(car.MOTO_\" + wheel + ',\"' + v + '\"' + \")\\n\";\n return code;\n}\n\n//mixbot onboard_motor below:\n\nexport const mixbot_motor_status = function (_, generator) {\n generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor';\n var code = 'motor.status()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_move = function (_, generator) {\n var v = this.getFieldValue('VAR');\n var mode = this.getFieldValue('mode');\n generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor';\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = 'motor.move(\"' + v + '\",motor.' + mode + '_MODE,' + speed + \")\\n\";\n return code;\n}\n\nexport const mixbot_stop = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor';\n if (v == 'N') {\n var code = 'motor.move(\"N\",motor.STOP_MODE)\\n'\n } else if (v == 'P') {\n var code = 'motor.move(\"P\",motor.BRAKE_MODE)\\n'\n }\n return code;\n}\n\nexport const mixbot_motor = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n generator.definitions_['import_mixbot_motor'] = 'from mixbot import motor';\n var mode = this.getFieldValue('mode');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = 'motor.run(' + wheel + ',motor.' + mode + '_MODE,' + speed + \")\\n\";\n return code;\n}\n\nexport const actuator_mixbot_buzzer_on_off = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_spk_en'] = 'from ' + version + ' import spk_en';\n var op = this.getFieldValue('on_off');\n var code = \"spk_en.value(\" + op + \")\\n\";\n return code;\n}\n\n//bitbot onboard_motor below:\nexport const bitbot_move = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = 'onboard_bot51.move(\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const bitbot_stop = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var code = 'onboard_bot51.move(\"' + v + '\"' + \")\\n\";\n return code;\n}\n\nexport const bitbot_motor = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n var direction = this.getFieldValue('direction');\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = 'onboard_bot51.motor(' + wheel + ',\"' + direction + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_mic_set = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_ob_code'] = \"from mixgo_zero_voice import ob_code\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_ob_code'] = \"from mixgo_nova_voice import ob_code\";\n }\n\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"ob_code.mic_volume(\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_mic_get = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_ob_code'] = \"from mixgo_zero_voice import ob_code\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_ob_code'] = \"from mixgo_nova_voice import ob_code\";\n }\n var code = \"ob_code.mic_volume()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_mixgo_nova_voice_set = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_ob_code'] = \"from mixgo_zero_voice import ob_code\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_ob_code'] = \"from mixgo_nova_voice import ob_code\";\n }\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"ob_code.voice_volume(\" + bright + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_voice_get = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_ob_code'] = \"from mixgo_zero_voice import ob_code\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_ob_code'] = \"from mixgo_nova_voice import ob_code\";\n }\n var code = \"ob_code.voice_volume()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const actuator_mixgo_nova_record_audio = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_record_audio'] = \"from mixgo_zero_voice import record_audio\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_record_audio'] = \"from mixgo_nova_voice import record_audio\";\n }\n var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'TIME', generator.ORDER_ASSIGNMENT);\n var code = \"record_audio(\" + path + \", \" + time + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_play_audio = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_play_audio'] = \"from mixgo_zero_voice import play_audio\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_play_audio'] = \"from mixgo_nova_voice import play_audio\";\n }\n var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT);\n var code = \"play_audio(\" + path + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_play_online_audio = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_play_audio_url'] = \"from mixgo_zero_voice import play_audio_url\";\n } else {\n generator.definitions_['import_mixgo_nova_voice_play_audio_url'] = \"from mixgo_nova_voice import play_audio_url\";\n }\n var path = generator.valueToCode(this, 'PATH', generator.ORDER_ASSIGNMENT);\n var code = \"play_audio_url(\" + path + \")\\n\";\n return code;\n}\n\nexport const actuator_mixgo_nova_onboard_music_pitch = function (block, generator) {\n generator.definitions_['import_mixgo_nova_voice_spk_midi'] = \"from mixgo_nova_voice import spk_midi\";\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var code = 'spk_midi.pitch(' + number_pitch + ')\\n';\n return code;\n}\n\nexport const actuator_mixgo_nova_onboard_music_stop = function (block, generator) {\n generator.definitions_['import_mixgo_nova_voice_spk_midi'] = \"from mixgo_nova_voice import spk_midi\";\n var code = 'spk_midi.stop(' + ')\\n';\n return code;\n}\n\nexport const set_power_output = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var index = this.getFieldValue('index');\n var duty = generator.valueToCode(this, 'duty', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.usben(' + index + ',' + duty + ')\\n';\n return code;\n}\n\nexport const get_power_output = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var index = this.getFieldValue('index');\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.usben(' + index + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_all_power_output = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var duty = generator.valueToCode(this, 'duty', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.usben(freq = ' + duty + ')\\n';\n return code;\n}\n\nexport const analog_keyboard_input = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC);\n var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = \"onboard_bot.hid_keyboard(\" + sp + \",\" + ge + \",\" + re + \")\\n\";\n return code;\n}\n\nexport const special_key = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const general_key = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const analog_mouse_input = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = \"onboard_bot.hid_mouse(keys=\" + key + \",move=(\" + x + \",\" + y + \"),wheel=\" + wheel + \",release=\" + re + \")\\n\";\n return code;\n}\n\nexport const mouse_key = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const analog_keyboard_str = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);\n var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = \"onboard_bot.hid_keyboard_str(\" + str + \",delay=\" + t + \")\\n\";\n return code;\n}\n\nexport const general_key_tuple = function (_, generator) {\n // Create a list with any number of elements of any type.\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n if (this.itemCount_ != 1) {\n var code = '(' + code.join(', ') + ')';\n } else {\n var code = '(' + code.join(', ') + ',)';\n }\n\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const analog_ble_keyboard_init = function (_, generator) {\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var kname = generator.valueToCode(this, 'kname', generator.ORDER_ATOMIC)\n var code = 'ble_keyboard=Keyboard(' + kname + ')\\n';\n return code;\n}\n\nexport const ble_keyboard_get_mac = function (_, generator) {\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var code = 'ble_keyboard.mac';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ble_keyboard_connect = function (_, generator) {\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var code = 'ble_keyboard.is_connected()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const analog_ble_keyboard_input = function (_, generator) {\n var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC);\n var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var code = \"ble_keyboard.notify_hid(\" + sp + \",\" + ge + \",\" + re + \")\\n\";\n return code;\n}\n\nexport const analog_ble_keyboard_str = function (_, generator) {\n var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);\n var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var code = \"ble_keyboard.notify_str(\" + str + \",delay=\" + t + \")\\n\";\n return code;\n}\n\nexport const analog_ble_keyboard_send_battery = function (_, generator) {\n var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC);\n generator.definitions_['import_ble_keyboard'] = 'from ble_hid_keyboard import Keyboard';\n var code = \"ble_keyboard.notify_battery(\" + b + \")\\n\";\n return code;\n}\n\nexport const analog_ble_mouse_init = function (_, generator) {\n generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse';\n var name = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC)\n var code = 'ble_mouse=Mouse(' + name + ')\\n';\n return code;\n}\n\nexport const ble_mouse_get_mac = function (_, generator) {\n generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse';\n var code = 'ble_mouse.mac';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ble_mouse_connect = function (_, generator) {\n generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse';\n var code = 'ble_mouse.is_connected()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const analog_ble_mouse_input = function (_, generator) {\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse';\n var code = \"ble_mouse.notify_hid(\" + key + \",(\" + x + \",\" + y + \"),\" + wheel + \",\" + re + \")\\n\";\n return code;\n}\n\nexport const analog_ble_mouse_send_battery = function (_, generator) {\n var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC);\n generator.definitions_['import_ble_mouse'] = 'from ble_hid_mouse import Mouse';\n var code = \"ble_mouse.notify_battery(\" + b + \")\\n\";\n return code;\n}\n\nexport const analog_ble_keyboard_mouse_init = function (_, generator) {\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var kname = generator.valueToCode(this, 'kname', generator.ORDER_ATOMIC)\n var code = 'ble_hid = HID(' + kname + ')\\n';\n return code;\n}\n\nexport const ble_keyboard_mouse_get_mac = function (_, generator) {\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = 'ble_hid.mac';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ble_keyboard_mouse_connect = function (_, generator) {\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = 'ble_hid.is_connected()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const analog_ble_keyboard_mouse_send_battery = function (_, generator) {\n var b = generator.valueToCode(this, 'battery', generator.ORDER_ATOMIC);\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = \"ble_hid.battery_notify(\" + b + \")\\n\";\n return code;\n}\n\nexport const analog_ble_keyboard_mouse_input = function (_, generator) {\n var sp = generator.valueToCode(this, 'special', generator.ORDER_ATOMIC);\n var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = \"ble_hid.keyboard_notify(\" + sp + \",\" + ge + \",\" + re + \")\\n\";\n return code;\n}\n\nexport const analog_ble_keyboard_mouse_str = function (_, generator) {\n var str = generator.valueToCode(this, 'str', generator.ORDER_ATOMIC);\n var t = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = \"ble_hid.keyboard_str(\" + str + \",delay=\" + t + \")\\n\";\n return code;\n}\n\nexport const analog_ble_mouse_keyboard_input = function (_, generator) {\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var wheel = generator.valueToCode(this, 'wheel', generator.ORDER_ATOMIC);\n var re = this.getFieldValue('release');\n generator.definitions_['import_HID_ble_hid'] = 'from ble_hid import HID';\n var code = \"ble_hid.mouse_notify(\" + key + \",(\" + x + \",\" + y + \"),\" + wheel + \",\" + re + \")\\n\";\n return code;\n}\n//educore actuator\nexport const educore_buzzer = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';\n var code = \"speaker()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_buzzer_play_tone = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';\n var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var code = bu+'.tone(freq=[' + number_pitch + '])\\n';\n return code;\n}\n\nexport const educore_buzzer_play_tone_time = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';\n var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);\n var number_pitch = generator.valueToCode(block, 'pitch', generator.ORDER_ATOMIC);\n var number_time = generator.valueToCode(block, 'time', generator.ORDER_ATOMIC);\n var code = bu+'.tone(freq=' + number_pitch + ', dur=' + number_time + ')\\n';\n return code;\n}\n\nexport const educore_buzzer_stop = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_speaker'] = 'from ' + version + ' import spesker';\n var bu = generator.valueToCode(this, 'buzzer', generator.ORDER_ATOMIC);\n var code = bu+'.stop()\\n';\n return code;\n}\n\nexport const educore_rgb_light = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';\n var code = \"rgb()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_neopixel_rgb = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';\n var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC);\n var value_led = generator.valueToCode(this, '_LED_', generator.ORDER_ATOMIC);\n var value_rvalue = generator.valueToCode(this, 'RVALUE', generator.ORDER_ATOMIC);\n var value_gvalue = generator.valueToCode(this, 'GVALUE', generator.ORDER_ATOMIC);\n var value_bvalue = generator.valueToCode(this, 'BVALUE', generator.ORDER_ATOMIC);\n var code = rgb+'.write(index[' + value_led + '], r=int(' + value_rvalue + '), g=int(' + value_gvalue + '), b=int(' + value_bvalue + '))\\n';\n return code;\n}\n\nexport const educore_neopixel_clear = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'rgb'] = 'from ' + version + ' import rgb';\n var rgb = generator.valueToCode(this, 'rgb', generator.ORDER_ATOMIC);\n var code = rgb+'.clear()\\n';\n return code;\n}\n\nexport const educore_ble_sensor_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid';\n var n = generator.valueToCode(this, 'name', generator.ORDER_ATOMIC);\n var code = 'hid.(name='+ n +')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_ble_sensor_connected = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_hid'] = 'from ' + version + ' import hid';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+'.isconnected()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_ble_keyboard_input = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_keycode'] = 'from ' + version + ' import keycode';\n var ge = generator.valueToCode(this, 'general', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+\".keyboard_send(\"+ ge + \")\\n\";\n return code;\n}","import * as Mixly from 'mixly';\n\nexport const MICROPYTHON_AI_client = function (_, generator) {\n var ctype = this.getFieldValue('CTYPE');\n generator.definitions_['import_baidu_speech'] = 'import baidu_speech';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var api_key = generator.valueToCode(this, 'API_KEY', generator.ORDER_ATOMIC);\n var sound = '';\n if (ctype == \"ASR\") {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_sound'] = \"from \" + version + \" import onboard_sound\";\n sound += 'onboard_sound.adc' + ',';\n }\n var secret_key = generator.valueToCode(this, 'SECRET_KEY', generator.ORDER_ATOMIC);\n var code = v + ' = ' + 'baidu_speech.' + ctype + '(' + sound + api_key + ', ' + secret_key + ')\\n';\n return code;\n}\n\nexport const MICROPYTHON_AI_Speech_unit = function (_, generator) {\n generator.definitions_['import_baidu_speech'] = 'import baidu_speech';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var id = generator.valueToCode(this, 'ID', generator.ORDER_ATOMIC);\n var s = generator.valueToCode(this, 'STR', generator.ORDER_ATOMIC);\n var code = v + '.chatbot(' + id + ',' + s + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const MICROPYTHON_AI_Speech_asr = function (_, generator) {\n var language = this.getFieldValue('LANGUAGE');\n generator.definitions_['import_baidu_speech'] = 'import baidu_speech';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var fn = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC) || '\"\"';\n var code = v + '.recognize(record_time=' + fn + ',dev_pid=' + language + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\n","export const ai_sensor_use_uart_init = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v + '=mixgo_ai.AI(' + key + ',quick=1)\\n';\n return code;\n}\n\nexport const ai_sensor_qrcode_lite = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var type = this.getFieldValue('TYPE');\n var code = sub + '.find_' + type + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_config = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);\n var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);\n var dropdown_uart = this.getFieldValue('mode');\n var code = v + '.configure(' + tx + ',' + rx + ',restart=' + dropdown_uart + ')\\n';\n return code;\n}\n\nexport const ai_sensor_rgb = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var led1 = generator.valueToCode(this, 'led1', generator.ORDER_ATOMIC);\n var led2 = generator.valueToCode(this, 'led2', generator.ORDER_ATOMIC);\n var code = v + '.led_rgb(' + led1 + ',' + led2 + ')\\n';\n return code;\n}\n\nexport const ai_sensor_qrcode = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_qrcodes = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_qrcodes()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_barcode = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_barcodes = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_barcodes()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_tag = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_tags = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_apriltags()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_line = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_lines = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC);\n var code = v + '.find_lines(' + v1 + ',' + v2 + ',' + v3 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_circle = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_circles = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC);\n var code = v + '.find_circles(' + v1 + ',' + v2 + ',' + v3 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_rect = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_rects = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var code = v + '.find_rects(' + v1 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_color = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_colors = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_colors()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_color_chases_result = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_color_chases = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC);\n var code = v + '.color_track(' + v1 + ',' + v2 + ',' + v3 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_ailocal_train = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v3 = generator.valueToCode(this, 'VAR3', generator.ORDER_ATOMIC);\n var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC);\n var code = v + '.ailocal_train(' + v1 + ',' + v2 + ',' + v3 + ',' + v4 + ')\\n';\n return code;\n}\n\nexport const ai_sensor_ailocal_class = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC);\n var code = v + '.ailocal_class(' + v1 + ',' + v2 + ',' + v4 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_ailocal_class_result = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_audio_record = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var code = v + '.audio_record(path=' + v1 + ',times=' + v2 + ')\\n';\n return code;\n}\n\nexport const ai_sensor_audio_play = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var code = v + '.audio_play(path=' + v1 + ',volume=' + v2 + ')\\n';\n return code;\n}\n\nexport const ai_sensor_yolo_recognize = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var v4 = generator.valueToCode(this, 'VAR4', generator.ORDER_ATOMIC);\n var code = v + '.yolo_recognize(' + v1 + ',' + v2 + ',' + v4 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_yolo_recognize_result = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_asr_recognize = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var v1 = generator.valueToCode(this, 'VAR1', generator.ORDER_ATOMIC);\n var v2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var code = v + '.asr_recognize(' + v1 + ',threshold=' + v2 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_licenseplate = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_licenseplates = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_licenseplate()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_face = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_classifier_faces = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.face_detect()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_20object = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var sub = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ai_sensor_find_20objects = function (_, generator) {\n generator.definitions_['import_mixgo_ai'] = 'import mixgo_ai';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.find_20object()';\n return [code, generator.ORDER_ATOMIC];\n}","// Blynk 第二版\n// Blynk 自定义终端部件 Terminal\nexport const mpython_blynk_terminal_widget_vpin = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC);\n\n generator.functions_['terminal_widget_vpin_' + virtual_pin] =\n `\nALLOWED_COMMANDS_LIST = ['ls', 'lsusb', 'ip a', 'ip abc']\n\n@blynk.handle_event('write V${virtual_pin}')\ndef write_handler(pin, _values):\n header = ''\n result = ''\n delimiter = '{}\\\\n'.format('=' * 30)\n if _values and _values[0] in ALLOWED_COMMANDS_LIST:\n cmd_params = _values[0].split(' ')\n try:\n result = subprocess.check_output(cmd_params).decode('utf-8')\n header = '[output]\\\\n'\n except subprocess.CalledProcessError as exe_err:\n header = '[error]\\\\n'\n result = 'Return Code: {}\\\\n'.format(exe_err.returncode)\n except Exception as g_err:\n print(\"Command caused '{}'\".format(g_err))\n elif _values and _values[0] == 'help':\n header = '[help -> allowed commands]\\\\n'\n result = '{}\\\\n'.format('\\\\n'.join(ALLOWED_COMMANDS_LIST))\n\n # communicate with terminal if help or some allowed command\n if result:\n output = '{}{}{}{}'.format(header, delimiter, result, delimiter)\n print(output)\n blynk.virtual_write(pin, output)\n blynk.virtual_write(pin, '\\\\n')\n`\n\n var code = '';\n return code;\n}\n\n// Blynk 同步虚拟管脚的状态\nexport const mpython_blynk_sync_virtual = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC);\n\n var code = 'blynk.virtual_sync(' + virtual_pin + ')\\n';\n return code;\n}\n\n// 斷開连接 Blynk\nexport const mpython_blynk_on_disconnected = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n\n var branch = generator.statementToCode(this, 'DO');\n branch = generator.addLoopTrap(branch, this.id) || generator.PASS;\n\n generator.definitions_['blynk_on_disconnected'] =\n '@blynk.handle_event(\"disconnect\")\\n' +\n 'def connect_handler():\\n' +\n \" print('Blynk disconnected')\\n\" + branch;\n\n return '';\n}\n\n// 连接上 Blynk\nexport const mpython_blynk_on_connected = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n\n var branch = generator.statementToCode(this, 'DO');\n branch = generator.addLoopTrap(branch, this.id) || generator.PASS;\n\n generator.definitions_['blynk_on_connected'] =\n '@blynk.handle_event(\"connect\")\\n' +\n 'def connect_handler():\\n' +\n \" print('Blynk connected')\\n\" + branch;\n\n return '';\n}\n\n// Blynk 定时器的进程生效并运行\nexport const mpython_blynktimer_run = function () {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n // generator.definitions_['import_blynktimer'] = 'import blynktimer';\n\n var code = 'blynk_timer.run()\\n';\n return code;\n}\n\n// Blynk 进程生效并运行\nexport const mpython_blynk_run = function () {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n\n var code = 'blynk.run()\\n';\n return code;\n}\n\n// Blynk APP 显示通知\nexport const mpython_blynk_app_notify = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var notification = generator.valueToCode(this, 'notification', generator.ORDER_ATOMIC);\n\n var code = 'blynk.notify(' + notification + ')\\n';\n return code;\n}\n\n// 停止 Blynk 定时器 %1\nexport const mpython_blynk_stop_timers = function (_, generator) {\n generator.definitions_['import_blynktimer'] = 'import blynktimer';\n generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)';\n\n var timer_num = generator.valueToCode(this, 'timer_num', generator.ORDER_ATOMIC);\n var code = `blynk_timer.stop('${timer_num}_blynk_timer${timer_num}')` + '\\n';\n\n return code;\n}\n\n// 可用的 Blynk 定时器\nexport const mpython_blynk_get_timers = function (_, generator) {\n generator.definitions_['import_blynktimer'] = 'import blynktimer';\n generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)';\n\n var code = `blynk_timer.get_timers()`;\n return [code, generator.ORDER_ATOMIC];\n}\n\n//blynk定时器\nexport const mpython_blynktimer = function (_, generator) {\n generator.definitions_['import_blynktimer'] = 'import blynktimer';\n\n var Num = generator.valueToCode(this, 'Num', generator.ORDER_ATOMIC);\n var period = generator.valueToCode(this, 'period', generator.ORDER_ATOMIC);\n var Timer_mode = this.getFieldValue('Timer_mode');\n\n var branch = generator.statementToCode(this, 'DO');\n branch = generator.addLoopTrap(branch, this.id) || generator.PASS;\n\n generator.definitions_['def_blynktimer'] = 'blynk_timer = blynktimer.Timer(no_timers_err=False)';\n\n generator.definitions_['blynktimer_event' + Num] =\n `\n@blynk_timer.register(interval=${period}, run_once=${Timer_mode})\ndef blynk_timer${Num}():\n`\n + branch;\n\n return '';\n}\n\n// 发送数据 %1 到 Bylnk APP 的虚拟管脚 %2\nexport const mpython_blynk_sensor_data_to_app = function (_, generator) {\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var sensor_data = generator.valueToCode(this, 'sensor_data', generator.ORDER_ATOMIC);\n var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC);\n var code = 'blynk.virtual_write(' + virtual_pin + ', ' + sensor_data + ')\\n';\n return code;\n}\n\n// 从 Bylnk APP 获取虚拟管脚 %1 的值\nexport const mpython_blynk_app_data = function (_, generator) {\n\n // generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var virtual_pin = generator.valueToCode(this, 'virtual_pin', generator.ORDER_ATOMIC);\n\n var branch = generator.statementToCode(this, 'DO');\n branch = generator.addLoopTrap(branch, this.id) || generator.PASS;\n\n generator.definitions_['blynk_VIRTUAL_WRITE_' + virtual_pin] =\n \"@blynk.handle_event('write V\" + virtual_pin + \"')\\n\" +\n 'def write_virtual_pin_handler(pin, _value):\\n' +\n ' for i in range(0, len(_value)):\\n' +\n ' try: _value[i] = eval(_value[i])\\n' +\n ' except: pass\\n' +\n ' if len(_value) == 1: _value = _value[0]\\n' + branch;\n //' print('+'\"v' + virtual_pin + '_value: {}\".format(_value))\\n'\n // var code = 'blynk.run()\\n';\n return '';\n}\n\n// 向 %1 发邮件 主题 %2 正文 %3\nexport const mpython_blynk_email = function (_, generator) {\n var body = generator.valueToCode(this, 'body', generator.ORDER_ATOMIC);\n var subject = generator.valueToCode(this, 'subject', generator.ORDER_ATOMIC);\n var TargetEmail = generator.valueToCode(this, 'TargetEmail', generator.ORDER_ATOMIC);\n\n var code = `blynk.email(${TargetEmail}, ${subject}, ${body})` + '\\n';\n return code;\n}\n\n// 给虚拟管脚添加 属性 %1 值 %2\nexport const mpython_blynk_set_property = function (_, generator) {\n var attribute_value = generator.valueToCode(this, 'attribute_value', generator.ORDER_ATOMIC);\n var attribute_name = generator.valueToCode(this, 'attribute_name', generator.ORDER_ATOMIC);\n\n var code = `blynk.set_property(pin, ${attribute_name}, ${attribute_value})` + '\\n';\n\n return code;\n}\n\n// Bylnk设置\nexport const mpython_blynk_setup = function (_, generator) {\n generator.definitions_['import_BlynkLib'] = 'import blynklib';\n var server = generator.valueToCode(this, 'server', generator.ORDER_ATOMIC);\n var auth = generator.valueToCode(this, 'auth', generator.ORDER_ATOMIC);\n var port = generator.valueToCode(this, 'port', generator.ORDER_ATOMIC);\n\n generator.definitions_['mpython_blynk_setup'] =\n \"blynk = blynklib.Blynk(\" + auth + \", server=\" + server + \", port=\" + port + \")\";\n\n generator.definitions_['blynk_on_connected'] =\n `\n@blynk.handle_event(\"connect\")\ndef connect_handler():\n print('Blynk connected')\n`\n\n generator.definitions_['blynk_on_disconnected'] =\n `\n@blynk.handle_event(\"disconnect\")\ndef connect_handler():\n print('Blynk disconnected')\n`\n\n return '';\n}","export const cc_g1_read_bat = function (_, generator) {\n generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle';\n var code = 'handle.read_bat()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const cc_g1_read_joystick = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle';\n var code = 'handle.read_joystick()' + v + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const cc_g1_read_key = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle';\n var code = 'handle.read_key(' + v + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const cc_g1_turnoff = function (_, generator) {\n generator.definitions_['import_cc_g1'] = 'from cc_g1 import handle';\n var code = 'handle.shutdown()';\n return code;\n}","import * as Mixly from 'mixly';\n\nexport const ce_go_light_number = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n } else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var code = 'car.' + this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_led_bright = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"car.setonoff(\" + op + \",\" + bright + \")\\n\";\n return code;\n}\n\nexport const ce_go_get_led_bright = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var code = \"car.getrightness(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_get_led_state = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var code = \"car.getonoff(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_led_brightness = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"car.setbrightness(\" + op + \",\" + flag + \")\\n\";\n return code;\n}\n\nexport const ce_go_stepper_keep = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var v = this.getFieldValue('VAR');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = 'car.move(\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const ce_go_stepper_stop = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var v = this.getFieldValue('VAR');\n var code = 'car.move(\"' + v + '\")\\n';\n return code;\n}\n\nexport const ce_go_dc_motor = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_car'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_car'] = 'from mini_go import car';\n }\n var wheel = this.getFieldValue('wheel');\n var v = this.getFieldValue('direction');\n if (wheel == 0) {\n if (v == 'CW') { v = 'CCW' }\n else if (v == 'CCW') { v = 'CW' }\n }\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = \"car.motor(car.MOTO[\" + wheel + '],\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const ce_go_hall_attachInterrupt = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode;\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode;\n }\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'hall_' + dropdown_mode + '.irq_cb(' + atta + ')\\n'\n return code;\n}\n\nexport const ce_go_hall_initialize = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n var args = this.getFieldValue('args');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode;\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode;\n }\n var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC);\n if (args == 'all') {\n var code = 'hall_' + dropdown_mode + '.initial(' + 'turns' + '=' + num + ',distance=' + num + ')\\n'\n return code;\n }\n var code = 'hall_' + dropdown_mode + '.initial(' + args + '=' + num + ')\\n'\n return code;\n}\n\nexport const ce_go_hall_data = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n var args = this.getFieldValue('args');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall_' + dropdown_mode] = 'from ce_go import hall_' + dropdown_mode;\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall' + dropdown_mode] = 'from mini_go import hall_'+ dropdown_mode;\n }\n var code = 'hall_' + dropdown_mode + '.' + args + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_pin_near_line = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall'] = 'from mini_go import car';\n }\n var code = 'car.patrol()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_pin_near = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall'] = 'from mini_go import car';\n }\n var code = 'car.obstacle()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_pin_near_state_change = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall'] = 'from mini_go import car';\n }\n var code = 'car.ir_mode(car.' + key + ')\\n';\n return code;\n}\n\nexport const sensor_mixgome_eulerangles = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_mixgo_me_onboard_mxc6655xa'] = \"from mixgo_me import onboard_mxc6655xa\";\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_mixgo_ce_onboard_mxc6655xa'] = \"from mixgo_ce import onboard_mxc6655xa\";\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_onboard_mxc6655xa'] = 'from mini_go import onboard_mxc6655xa';\n }\n var angle = this.getFieldValue('angle');\n var code = 'onboard_mxc6655xa.eulerangles(upright=True)' + angle;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ce_go_pin_light = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\" || version == \"mixgo_cc\") {\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n }\n else if (version == \"mixgo_ce\") {\n generator.definitions_['import_ce_go_hall'] = 'from ce_go import car';\n }else if (version == \"mixgo_mini\"){\n generator.definitions_['import_mini_go_hall'] = 'from mini_go import car';\n }\n var code = 'car.light()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//educore car\n\nexport const educore_car = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';\n var code = 'car()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_car_stepper_keep = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';\n var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);\n var v = this.getFieldValue('VAR');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = car+'.'+ v +'('+speed+\")\\n\";\n return code;\n}\n\nexport const educore_car_stepper_stop = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';\n var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);\n var v = this.getFieldValue('VAR');\n var code = car+'.'+ v +\"()\\n\";\n return code;\n}\n\nexport const educore_car_pin_near_line = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';\n var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);\n var key = this.getFieldValue('key');\n var code = car+'.get_itr_dnum(' + key + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_car_pin_near = function (_, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_car'] = 'from '+version+' import car';\n var car = generator.valueToCode(this, 'car', generator.ORDER_ASSIGNMENT);\n var code = car+'.get_distance()';\n return [code, generator.ORDER_ATOMIC];\n}","import * as Blockly from 'blockly/core';\nimport * as Mixly from 'mixly';\n\nexport const communicate_i2c_onboard = function (block, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_i2c'] = 'from ' + version + ' import onboard_i2c';\n var code = 'onboard_i2c';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_onboard = function (block, generator) {\n var version = Mixly.Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_i2c'] = 'from ' + version + ' import onboard_spi';\n var code = 'onboard_spi';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_i2c_init = function (block, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin1 = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);\n var dropdown_pin2 = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);\n var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return \"\" + sub + \" = machine.SoftI2C(scl = machine.Pin(\" + dropdown_pin2 + \"), sda = machine.Pin(\" + dropdown_pin1 + \"), freq = \" + freq + \")\\n\";\n}\n\nexport const communicate_i2c_read = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return [\"\" + name + \".readfrom(\" + address + \", \" + data + \")\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_i2c_write = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return \"\" + name + \".writeto(\" + address + \", \" + data + \")\\n\";\n}\n\nexport const communicate_i2c_scan = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [\"\" + name + \".scan()\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_i2c_master_read = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".read()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_i2c_available = function (block, generator) {\n\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".available()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const i2c_slave_onreceive = function (block, generator) {\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n generator.setups_['setup_i2c_' + pin] = 'Wire.begin(' + pin + ');';\n generator.setups_['setup_i2c_onReceive_' + pin] = 'Wire.onReceive(i2cReceiveEvent_' + pin + ');';\n var funcName = 'i2cReceiveEvent_' + pin;\n var branch = generator.statementToCode(this, 'DO');\n var code2 = 'void' + ' ' + funcName + '(int howMany) {\\n' + branch + '}\\n';\n generator.definitions_[funcName] = code2;\n return '';\n}\n\nexport const communicate_spi_init = function (block, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var freq = generator.valueToCode(this, 'freq', generator.ORDER_ATOMIC);\n var mosi = generator.valueToCode(this, 'mosi', generator.ORDER_ATOMIC);\n var miso = generator.valueToCode(this, 'miso', generator.ORDER_ATOMIC);\n var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC);\n return \"\" + name + \" = machine.SoftSPI(baudrate=\" + freq + \", sck=machine.Pin(\" + sck + \"), mosi=machine.Pin(\" + mosi + \"), miso=machine.Pin(\" + miso + \"))\\n\";\n}\n\nexport const communicate_spi_set = function (block, generator) {\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return \"spi.init(baudrate=\" + data + \")\\n\";\n}\n\nexport const communicate_spi_buffer = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return \"\" + varname + \"=bytearray(\" + data + \")\\n\";\n}\n\nexport const communicate_spi_read = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return [\"\" + varname + \".read(\" + data + \")\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_read_output = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);\n return [\"\" + varname + \".read(\" + data + \",\" + val + \")\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_readinto = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return [\"\" + varname + \".readinto(\" + data + \")\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_readinto_output = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);\n return [\"\" + varname + \".readinto(\" + data + \",\" + val + \")\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_write = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n return [\"\" + varname + \".write(\" + data + \".encode('utf-8'))\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_spi_write_readinto = function (block, generator) {\n var varname = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'val', generator.ORDER_ATOMIC);\n // var op=this.getFieldValue('op');\n // if(op==\"byte\"){\n return [\"\" + varname + \".write_readinto(\" + data + \".encode('utf-8'),\" + val + \")\", generator.ORDER_ATOMIC];\n // }else{\n // return [\"\"+varname+\".write_readinto(\" + data + \",\"+val+\")\", generator.ORDER_ATOMIC];\n // }\n}\n\nexport const communicate_ow_init = function (block, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_onewire'] = \"import onewire\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var varName = generator.valueToCode(this, 'BUS', generator.ORDER_ATOMIC);\n var code = \"\" + name + \"=onewire.OneWire(machine.Pin(\" + varName + \"))\\n\";\n return code;\n}\n\nexport const communicate_ow_scan = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".scan()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_ow_reset = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".reset()\\n\";\n return code;\n}\n\nexport const communicate_ow_read = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".readbyte()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_ow_write = function (block, generator) {\n var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var op = this.getFieldValue('op');\n var code = \"\" + name + \".\" + op + \"(\" + varName + \")\\n\";\n return code;\n}\n\nexport const communicate_ow_select = function (block, generator) {\n var varName = generator.valueToCode(this, 'byte', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + name + \".select_rom(\" + varName + \".encode('utf-8'))\\n\";\n return code;\n}\n\nexport const communicate_ir_recv_init = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var bit = this.getFieldValue('type');\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (sub == \"\" && bit == \"RC5\") {\n var code = \"ir_rx = irremote.RC5_RX(\" + pin + \")\\n\";\n }\n else if (sub == \"\") {\n var code = \"ir_rx = irremote.NEC_RX(\" + pin + \",\" + bit + \")\\n\";\n }\n else {\n var code = \"ir_rx = irremote.NEC_RX(\" + pin + \",\" + bit + \",\" + sub + \")\\n\";\n }\n return code;\n}\n\nexport const internal_variable = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var index = this.getFieldValue('index');\n var code = \"ir_rx.code[\" + index + \"]\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const recv_fun = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var en = this.getFieldValue('en');\n var code = \"ir_rx.enable(\" + en + \")\\n\";\n return code;\n}\n\nexport const ir_whether_recv = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var code = \"ir_rx.any()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ir_recv_timeout = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var code = \"ir_rx.timeout(\" + time + \")\\n\";\n return code;\n}\n\nexport const communicate_ir_send_init = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var sam = this.getFieldValue('type');\n var power = generator.valueToCode(this, 'power', generator.ORDER_ATOMIC);\n if (sam == \"RC5\") {\n var code = \"ir_tx = irremote.RC5_TX(\" + pin + \",\" + power + \")\\n\";\n }\n else {\n var code = \"ir_tx = irremote.NEC_TX(\" + pin + \",\" + sam + \",\" + power + \")\\n\";\n }\n return code;\n}\n\nexport const ir_transmit_conventional_data = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var cmd = generator.valueToCode(this, 'cmd', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var toggle = generator.valueToCode(this, 'toggle', generator.ORDER_ATOMIC);\n var code = \"ir_tx.transmit(\" + cmd + \",\" + addr + \",\" + toggle + \")\\n\";\n return code;\n}\n\nexport const ir_transmit_study_code = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var s_code = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);\n var code = \"ir_tx.transmit(pulses=\" + s_code + \")\\n\";\n return code;\n}\n\nexport const ir_transmit_raw_code = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var raw = generator.valueToCode(this, 'raw', generator.ORDER_ATOMIC);\n var code = \"ir_tx.transmit(raw=\" + raw + \")\\n\";\n return code;\n}\n\nexport const ir_transmit_busy = function (block, generator) {\n generator.definitions_['import_irremote'] = 'import irremote';\n var code = \"ir_tx.busy()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_bluetooth_central_init = function (block, generator) {\n generator.definitions_['import_ble_central'] = 'import ble_central';\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \" = ble_central.BLESimpleCentral()\\n\";\n return code;\n}\n\nexport const communicate_bluetooth_peripheral_init = function (block, generator) {\n generator.definitions_['import_ble_peripheral'] = 'import ble_peripheral';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \" = ble_peripheral.BLESimplePeripheral(\" + data + \")\\n\";\n return code;\n}\n\nexport const communicate_bluetooth_scan = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \".scan()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_bluetooth_connect = function (block, generator) {\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n var code = name + \".connect(\" + mode + '=' + data + \")\\n\";\n return code;\n}\n\nexport const communicate_bluetooth_disconnect = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + '.disconnect()\\n';\n return code;\n}\n\nexport const communicate_bluetooth_mac = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [name + \".mac\", generator.ORDER_ATOMIC];\n}\n\nexport const communicate_bluetooth_is_connected = function (block, generator) {\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \".is_connected()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_bluetooth_send = function (block, generator) {\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \".send(\" + data + \")\\n\";\n return code;\n}\n\nexport const communicate_bluetooth_recv_only = function (block, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = v + '.recv()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const communicate_bluetooth_recv = function (block, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);\n var code = v + '.recv(' + method + ')\\n';\n return code;\n}\n\nexport const communicate_bluetooth_handle = function (block, generator) {\n generator.definitions_['import_ble_handle'] = 'import ble_handle';\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);\n var code = v + '=ble_handle.Handle()\\n' + v + '.recv(' + method + ')\\n';\n return code;\n}\n\n//espnow\nexport const communicate_espnow_init = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC);\n var power = this.getFieldValue('op');\n var code = \"\" + name + \"=radio.ESPNow(channel=\" + varName + \",txpower=\" + power + \")\\n\";\n return code;\n}\n\nexport const communicate_espnow_init_new = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC);\n var varName2 = generator.valueToCode(this, 'DB', generator.ORDER_ATOMIC);\n var code = \"\" + name + \"=radio.ESPNow(channel=\" + varName + ',txpower=' + varName2 + \")\\n\";\n return code;\n}\n\nexport const network_espnow_mac = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [name + \".mac\", generator.ORDER_ATOMIC];\n}\n\nexport const network_espnow_info = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [name + \".info()\", generator.ORDER_ATOMIC];\n}\n\nexport const network_espnow_recv = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var mode = this.getFieldValue('mode');\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \".recv()\" + mode;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const network_espnow_send = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var mac = generator.valueToCode(this, 'mac', generator.ORDER_ATOMIC);\n var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);\n var code = name + \".send(\" + mac + \",\" + content + \")\\n\";\n return code;\n}\n\nexport const network_espnow_recv_handle = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);\n var code = name + \".recv_cb(\" + method + \")\\n\";\n return code;\n}\n\n//radio\nexport const espnow_radio_channel = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['var_declare_ESPNow_radio'] = \"ESPNow_radio=radio.ESPNow()\";\n var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC);\n var code = \"ESPNow_radio.set_channel(channel=\" + varName + \")\\n\";\n return code;\n}\n\nexport const espnow_radio_txpower = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['var_declare_ESPNow_radio'] = \"ESPNow_radio=radio.ESPNow()\";\n var power = this.getFieldValue('op');\n var code = \"ESPNow_radio.set_channel(txpower=\" + power + \")\\n\";\n return code;\n}\n\nexport const espnow_radio_channel_new = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n var varName2 = generator.valueToCode(this, 'DB', generator.ORDER_ATOMIC);\n generator.definitions_['var_declare_ESPNow_radio'] = \"ESPNow_radio=radio.ESPNow(channel=1,txpower=\" + varName2 + \")\";\n var varName = generator.valueToCode(this, 'CHNL', generator.ORDER_ATOMIC);\n var code = \"ESPNow_radio.set_channel(\" + varName + \")\\n\";\n return code;\n}\n\nexport const espnow_radio_on_off = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var op = this.getFieldValue('on_off');\n var code = \"ESPNow_radio.active(\" + op + \")\\n\";\n return code;\n}\n\nexport const espnow_radio_send = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var varName = generator.valueToCode(this, 'send', generator.ORDER_ATOMIC);\n var code = 'ESPNow_radio.send(\"ffffffffffff\",' + varName + \")\\n\";\n return code;\n}\n\nexport const espnow_radio_rec = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var code = \"ESPNow_radio.recv()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const espnow_radio_recv_msg = function (block, generator) {\n var code = \"ESPNow_radio_msg\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const espnow_radio_recv = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['import_ubinascii'] = 'import ubinascii';\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var doCode = generator.statementToCode(block, 'DO') || generator.PASS;\n generator.definitions_['def_ESPNow_radio_recv'] = 'def ESPNow_radio_recv(mac,ESPNow_radio_msg):\\n' + doCode;\n generator.definitions_['def_ESPNow_radio_recv_all'] = '_radio_msg_list = []\\n' + 'def ESPNow_radio_recv_callback(mac,ESPNow_radio_msg):\\n' + ' global _radio_msg_list\\n' + ' try: ESPNow_radio_recv(mac,ESPNow_radio_msg)\\n' + ' except: pass\\n' + ' if str(ESPNow_radio_msg) in _radio_msg_list:\\n' + \" eval('radio_recv_' + bytes.decode(ubinascii.hexlify(ESPNow_radio_msg)) + '()')\\n\";\n generator.definitions_['ESPNow_radio_recv_callback'] = \"ESPNow_radio.recv_cb(ESPNow_radio_recv_callback)\\n\";\n\n return '';\n}\n\nvar writeUTF = function (str, isGetBytes) {\n var back = [];\n var byteSize = 0;\n for (var i = 0; i < str.length; i++) {\n var code = str.charCodeAt(i);\n if (0x00 <= code && code <= 0x7f) {\n byteSize += 1;\n back.push(code);\n } else if (0x80 <= code && code <= 0x7ff) {\n byteSize += 2;\n back.push((192 | (31 & (code >> 6))));\n back.push((128 | (63 & code)))\n } else if ((0x800 <= code && code <= 0xd7ff) || (0xe000 <= code && code <= 0xffff)) {\n byteSize += 3;\n back.push((224 | (15 & (code >> 12))));\n back.push((128 | (63 & (code >> 6))));\n back.push((128 | (63 & code)))\n }\n }\n for (i = 0; i < back.length; i++) {\n back[i] &= 0xff;\n }\n if (isGetBytes) {\n return back;\n }\n if (byteSize <= 0xff) {\n return [0, byteSize].concat(back);\n }\n return [byteSize >> 8, byteSize & 0xff].concat(back);\n}\n\nvar toUTF8Hex = function (str) {\n var charBuf = writeUTF(str, true);\n var re = '';\n for (var i = 0; i < charBuf.length; i++) {\n var x = (charBuf[i] & 0xFF).toString(16);\n if (x.length === 1) {\n x = '0' + x;\n }\n re += x;\n }\n return re;\n}\n\nexport const espnow_radio_recv_certain_msg = function (block, generator) {\n generator.definitions_['import_radio'] = \"import radio\";\n generator.definitions_['import_ubinascii'] = 'import ubinascii';\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var doCode = generator.statementToCode(block, 'DO') || generator.PASS;\n generator.definitions_['def_ESPNow_radio_recv_all'] = '_radio_msg_list = []\\n' + 'def ESPNow_radio_recv_callback(mac,ESPNow_radio_msg):\\n' + ' global _radio_msg_list\\n' + ' try: ESPNow_radio_recv(mac,ESPNow_radio_msg)\\n' + ' except: pass\\n' + ' if str(ESPNow_radio_msg) in _radio_msg_list:\\n' + \" eval('radio_recv_' + bytes.decode(ubinascii.hexlify(ESPNow_radio_msg)) + '()')\\n\";\n generator.definitions_['ESPNow_radio_recv_callback'] = \"ESPNow_radio.recv_cb(ESPNow_radio_recv_callback)\\n\";\n var message = block.getFieldValue('msg');\n var message_utf8 = toUTF8Hex(message);\n generator.definitions_['def_radio_recv_' + message_utf8] =\n '_radio_msg_list.append(\\'' + message + '\\')\\n' +\n 'def radio_recv_' + message_utf8 + '():\\n' + doCode;\n return '';\n}\n\nexport const espnow_radio_recv_new = function (block, generator) {\n generator.definitions_['import_radio'] = 'import radio';\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var doCode = generator.statementToCode(block, 'DO') || generator.PASS;\n generator.definitions_['def_ESPNow_radio_recv'] = 'def ESPNow_radio_recv(mac, ESPNow_radio_msg):\\n'\n + `${doCode}\\nESPNow_radio.recv_cb(\"__all__\", ESPNow_radio_recv)\\n`;\n return '';\n}\n\nexport const espnow_radio_recv_certain_msg_new = function (block, generator) {\n generator.definitions_['import_radio'] = 'import radio';\n generator.definitions_['var_declare_ESPNow_radio'] = 'ESPNow_radio = radio.ESPNow()';\n var doCode = generator.statementToCode(block, 'DO') || generator.PASS;\n var message = block.getFieldValue('msg');\n generator.definitions_['def_ESPNow_radio_recv_' + message] = 'def ESPNow_radio_recv(mac, ESPNow_radio_msg):\\n'\n + `${doCode}\\nESPNow_radio.recv_cb(\"${message}\", ESPNow_radio_recv)\\n`;\n return '';\n}\n\nexport const lora_init = function (block, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC);\n var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC);\n var fr = generator.valueToCode(this, 'frequency', generator.ORDER_ATOMIC);\n var r = generator.valueToCode(this, 'rate', generator.ORDER_ATOMIC);\n var f = generator.valueToCode(this, 'factor', generator.ORDER_ATOMIC);\n var p = generator.valueToCode(this, 'power', generator.ORDER_ATOMIC);\n var bandwidth = this.getFieldValue('bandwidth');\n var code;\n generator.definitions_['import_rfm98'] = 'import rfm98';\n var code = v + ' = rfm98.RFM98(' + sv + ',cs_pin=' + pv + ',frequency_mhz=' + fr + ',signal_bandwidth=' + bandwidth + ',coding_rate=' + r + ',spreading_factor=' + f + ',tx_power=' + p + ')\\n';\n return code;\n}\n\nexport const lora_packet = function (block, generator) {\n generator.definitions_['import_rfm98'] = 'import rfm98';\n var key = this.getFieldValue('key');\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [name + \".\" + key + '()', generator.ORDER_ATOMIC];\n}\n\nexport const lora_send = function (block, generator) {\n generator.definitions_['import_rfm98'] = 'import rfm98';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = name + \".send(\" + data + \")\\n\";\n return code;\n}\n\nexport const lora_recv = function (block, generator) {\n generator.definitions_['import_rfm98'] = 'import rfm98';\n var name = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [name + '.recv()', generator.ORDER_ATOMIC];\n}\n\nexport const urequests_get = function (block, generator) {\n generator.definitions_.import_requests = \"import urequests\";\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE);\n var str = generator.valueToCode(this, 'DOMAIN', generator.ORDER_ATOMIC);\n var code = varName + '= ' + 'urequests.get(' + str + ')\\n';\n return code;\n}\n\nexport const urequests_attribute = function (block, generator) {\n generator.definitions_.import_requests = \"import urequests\";\n var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0';\n var attr = this.getFieldValue('ATTR');\n var code = varName + \".\" + attr;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const urequests_method = function (block, generator) {\n generator.definitions_.import_requests = \"import urequests\";\n var method = this.getFieldValue('DIR');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"urequests.\" + method + \"(\" + str + ')';\n return [code, generator.ORDER_ATOMIC];\n}","import * as Blockly from 'blockly/core';\nimport { controls_repeat_ext } from '@mixly/python/generators/control';\n\nexport const base_setup = function (_, generator) {\n var branch = generator.statementToCode(this, 'DO');\n branch = branch.replace(/(^\\s*)|(\\s*$)/g, \"\").replace(/\\n {4}/g, '\\n');//去除两端空格\n if (branch) {\n if (branch.endsWith('\\n')) {\n generator.setups_['setup_setup'] = branch;\n } else {\n generator.setups_['setup_setup'] = branch + '\\n';\n }\n }\n return '';\n}\n\n// ok\nexport const controls_if = function (a, generator) {\n var b = 0,\n c = \"\",\n d,\n e;\n do\n e = generator.valueToCode(a, \"IF\" + b, generator.ORDER_NONE) || \"False\", d = generator.statementToCode(a, \"DO\" + b) || generator.PASS, c += (0 == b ? \"if \" : \"elif \") + e + \":\\n\" + d, ++b;\n while (a.getInput(\"IF\" + b));\n a.getInput(\"ELSE\") && (d = generator.statementToCode(a, \"ELSE\") || generator.PASS, c += \"else:\\n\" + d);\n return c\n}\n\n// ok\nexport const controls_for = function (a, generator) {\n var b = generator.variableDB_.getName(a.getFieldValue(\"VAR\"), Blockly.Variables.NAME_TYPE),\n //var b = generator.valueToCode(a, \"VAR\", generator.ORDER_MEMBER) || \"''\",\n c = generator.valueToCode(a, \"FROM\", generator.ORDER_NONE) || \"0\",\n d = generator.valueToCode(a, \"TO\", generator.ORDER_NONE) || \"0\",\n e = generator.valueToCode(a, \"STEP\", generator.ORDER_NONE) || \"1\",\n f = generator.addLoopTrap(generator.statementToCode(a, \"DO\"), a.id) || generator.PASS,\n g = \"\",\n h = function (_, generator) {\n return generator.provideFunction_(\"upRange\",\n [\"def \" + generator.FUNCTION_NAME_PLACEHOLDER_ + \"(start, stop, step):\", \" while start <= stop:\", \" yield start\", \" start += abs(step)\"])\n },\n k = function (_, generator) {\n return generator.provideFunction_(\"downRange\", [\"def \" + generator.FUNCTION_NAME_PLACEHOLDER_ + \"(start, stop, step):\", \" while start >= stop:\", \" yield start\", \" start -= abs(step)\"])\n }\n a = function (a, b, c) {\n return \"(\" + a + \" <= \" + b + \") and \" + h() + \"(\" + a + \", \" + b + \", \" + c + \") or \" + k() + \"(\" + a + \", \" + b + \", \" + c + \")\"\n }\n if (Blockly.isNumber(c) && Blockly.isNumber(d) &&\n Blockly.isNumber(e))\n c = parseFloat(c), d = parseFloat(d), e = Math.abs(parseFloat(e)), 0 === c % 1 && 0 === d % 1 && 0 === e % 1 ? (c <= d ? (d++, a = 0 == c && 1 == e ? d : c + \", \" + d, 1 != e && (a += \", \" + e)) : (d--, a = c + \", \" + d + \", -\" + e), a = \"range(\" + a + \")\") : (a = c < d ? h() : k(), a += \"(\" + c + \", \" + d + \", \" + e + \")\");\n else {\n var l = function (a, c) {\n if (Blockly.isNumber(a))\n a = parseFloat(a);\n else {\n var d = generator.variableDB_.getDistinctName(b + c, Blockly.Variables.NAME_TYPE);\n g += d + \" = \" + a + \"\\n\";\n a = d\n }\n return a\n }\n c = l(c, \"_start\");\n d = l(d, \"_end\");\n l(e, \"_inc\");\n a = \"number\" == typeof c && \"number\" == typeof d ? c < d ? h(c, d, e) : k(c, d, e) : a(c, d, e)\n }\n return g += \"for \" + b + \" in \" + a + \":\\n\" + f\n}\n\n// ok\nexport const controls_repeat = controls_repeat_ext;\n\nexport const controls_whileUntil = function (a, generator) {\n var b = \"UNTIL\" == a.getFieldValue(\"MODE\"),\n c = generator.valueToCode(a, \"BOOL\", b ? generator.ORDER_LOGICAL_NOT : generator.ORDER_NONE) || \"False\",\n d = generator.addLoopTrap(generator.statementToCode(a, \"DO\"), a.id) || generator.PASS;\n b && (c = \"not \" + c);\n return \"while \" + c + \":\\n\" + d\n}\n\n// ok\nexport const controls_flow_statements = function (a) {\n switch (a.getFieldValue(\"FLOW\")) {\n case \"BREAK\":\n return \"break\\n\";\n case \"CONTINUE\":\n return \"continue\\n\"\n }\n throw \"Unknown flow statement.\";\n}\n\n//ok\nexport const controls_forEach = function (block, generator) {\n // For each loop.\n var variable0 = generator.variableDB_.getName(\n block.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE);\n var argument0 = generator.valueToCode(block, 'LIST',\n generator.ORDER_RELATIONAL) || '[]';\n var branch = generator.statementToCode(block, 'DO');\n branch = generator.addLoopTrap(branch, block.id) ||\n generator.PASS;\n var code = 'for ' + variable0 + ' in ' + argument0 + ':\\n' + branch;\n return code;\n}\n\n// ok\nexport const controls_type = function (_, generator) {\n var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || '1000'\n var code = 'type(' + data + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const controls_typeLists = function (_, generator) {\n generator.definitions_['import_microbit_*'] = 'from microbit import *';\n var type = this.getFieldValue('type');\n // generator.definitions_['func_type' + type] = code;\n return [type, generator.ORDER_ATOMIC];\n}\n","export const display_show_image_or_string = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"matrix.show(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_scroll_string = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"matrix.scroll(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_show_static = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"matrix.showstatic(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_show_image_or_string_delay = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = \"matrix.show(\" + data + ',' + time + \")\\n\";\n return code;\n}\n\nexport const display_scroll_string_delay = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = \"matrix.scroll(\" + data + ',' + time + \")\\n\";\n return code;\n}\n\nexport const display_image_create = function (block, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var colours = {\n \"#000000\": \"0\",\n //\"#440000\": \"1\",\n //\"#660000\": \"2\",\n //\"#880000\": \"3\",\n //\"#aa0000\": \"4\",\n //\"#bb0000\": \"5\",\n //\"#cc0000\": \"6\",\n //\"#dd0000\": \"7\",\n //\"#ee0000\": \"8\",\n \"#ff0000\": \"1\"\n }\n var colour_00 = colours[block.getFieldValue(\"00\")];\n var colour_01 = colours[block.getFieldValue(\"01\")];\n var colour_02 = colours[block.getFieldValue(\"02\")];\n var colour_03 = colours[block.getFieldValue(\"03\")];\n var colour_04 = colours[block.getFieldValue(\"04\")];\n var colour_05 = colours[block.getFieldValue(\"05\")];\n var colour_06 = colours[block.getFieldValue(\"06\")];\n var colour_07 = colours[block.getFieldValue(\"07\")];\n var colour_08 = colours[block.getFieldValue(\"08\")];\n var colour_09 = colours[block.getFieldValue(\"09\")];\n var colour_0a = colours[block.getFieldValue(\"0a\")];\n var colour_0b = colours[block.getFieldValue(\"0b\")];\n var colour_0c = colours[block.getFieldValue(\"0c\")];\n var colour_0d = colours[block.getFieldValue(\"0d\")];\n var colour_0e = colours[block.getFieldValue(\"0e\")];\n var colour_0f = colours[block.getFieldValue(\"0f\")];\n var colour_10 = colours[block.getFieldValue(\"10\")];\n var colour_11 = colours[block.getFieldValue(\"11\")];\n var colour_12 = colours[block.getFieldValue(\"12\")];\n var colour_13 = colours[block.getFieldValue(\"13\")];\n var colour_14 = colours[block.getFieldValue(\"14\")];\n var colour_15 = colours[block.getFieldValue(\"15\")];\n var colour_16 = colours[block.getFieldValue(\"16\")];\n var colour_17 = colours[block.getFieldValue(\"17\")];\n var colour_18 = colours[block.getFieldValue(\"18\")];\n var colour_19 = colours[block.getFieldValue(\"19\")];\n var colour_1a = colours[block.getFieldValue(\"1a\")];\n var colour_1b = colours[block.getFieldValue(\"1b\")];\n var colour_1c = colours[block.getFieldValue(\"1c\")];\n var colour_1d = colours[block.getFieldValue(\"1d\")];\n var colour_1e = colours[block.getFieldValue(\"1e\")];\n var colour_1f = colours[block.getFieldValue(\"1f\")];\n var colour_20 = colours[block.getFieldValue(\"20\")];\n var colour_21 = colours[block.getFieldValue(\"21\")];\n var colour_22 = colours[block.getFieldValue(\"22\")];\n var colour_23 = colours[block.getFieldValue(\"23\")];\n var colour_24 = colours[block.getFieldValue(\"24\")];\n var colour_25 = colours[block.getFieldValue(\"25\")];\n var colour_26 = colours[block.getFieldValue(\"26\")];\n var colour_27 = colours[block.getFieldValue(\"27\")];\n var colour_28 = colours[block.getFieldValue(\"28\")];\n var colour_29 = colours[block.getFieldValue(\"29\")];\n var colour_2a = colours[block.getFieldValue(\"2a\")];\n var colour_2b = colours[block.getFieldValue(\"2b\")];\n var colour_2c = colours[block.getFieldValue(\"2c\")];\n var colour_2d = colours[block.getFieldValue(\"2d\")];\n var colour_2e = colours[block.getFieldValue(\"2e\")];\n var colour_2f = colours[block.getFieldValue(\"2f\")];\n var colour_30 = colours[block.getFieldValue(\"30\")];\n var colour_31 = colours[block.getFieldValue(\"31\")];\n var colour_32 = colours[block.getFieldValue(\"32\")];\n var colour_33 = colours[block.getFieldValue(\"33\")];\n var colour_34 = colours[block.getFieldValue(\"34\")];\n var colour_35 = colours[block.getFieldValue(\"35\")];\n var colour_36 = colours[block.getFieldValue(\"36\")];\n var colour_37 = colours[block.getFieldValue(\"37\")];\n var colour_38 = colours[block.getFieldValue(\"38\")];\n var colour_39 = colours[block.getFieldValue(\"39\")];\n var colour_3a = colours[block.getFieldValue(\"3a\")];\n var colour_3b = colours[block.getFieldValue(\"3b\")];\n var colour_3c = colours[block.getFieldValue(\"3c\")];\n var colour_3d = colours[block.getFieldValue(\"3d\")];\n var colour_3e = colours[block.getFieldValue(\"3e\")];\n var colour_3f = colours[block.getFieldValue(\"3f\")];\n var colour_40 = colours[block.getFieldValue(\"40\")];\n var colour_41 = colours[block.getFieldValue(\"41\")];\n var colour_42 = colours[block.getFieldValue(\"42\")];\n var colour_43 = colours[block.getFieldValue(\"43\")];\n var colour_44 = colours[block.getFieldValue(\"44\")];\n var colour_45 = colours[block.getFieldValue(\"45\")];\n var colour_46 = colours[block.getFieldValue(\"46\")];\n var colour_47 = colours[block.getFieldValue(\"47\")];\n var colour_48 = colours[block.getFieldValue(\"48\")];\n var colour_49 = colours[block.getFieldValue(\"49\")];\n var colour_4a = colours[block.getFieldValue(\"4a\")];\n var colour_4b = colours[block.getFieldValue(\"4b\")];\n var colour_4c = colours[block.getFieldValue(\"4c\")];\n var colour_4d = colours[block.getFieldValue(\"4d\")];\n var colour_4e = colours[block.getFieldValue(\"4e\")];\n var colour_4f = colours[block.getFieldValue(\"4f\")];\n var colour_50 = colours[block.getFieldValue(\"50\")];\n var colour_51 = colours[block.getFieldValue(\"51\")];\n var colour_52 = colours[block.getFieldValue(\"52\")];\n var colour_53 = colours[block.getFieldValue(\"53\")];\n var colour_54 = colours[block.getFieldValue(\"54\")];\n var colour_55 = colours[block.getFieldValue(\"55\")];\n var colour_56 = colours[block.getFieldValue(\"56\")];\n var colour_57 = colours[block.getFieldValue(\"57\")];\n var colour_58 = colours[block.getFieldValue(\"58\")];\n var colour_59 = colours[block.getFieldValue(\"59\")];\n var colour_5a = colours[block.getFieldValue(\"5a\")];\n var colour_5b = colours[block.getFieldValue(\"5b\")];\n var colour_5c = colours[block.getFieldValue(\"5c\")];\n var colour_5d = colours[block.getFieldValue(\"5d\")];\n var colour_5e = colours[block.getFieldValue(\"5e\")];\n var colour_5f = colours[block.getFieldValue(\"5f\")];\n var colour_60 = colours[block.getFieldValue(\"60\")];\n var colour_61 = colours[block.getFieldValue(\"61\")];\n var colour_62 = colours[block.getFieldValue(\"62\")];\n var colour_63 = colours[block.getFieldValue(\"63\")];\n var colour_64 = colours[block.getFieldValue(\"64\")];\n var colour_65 = colours[block.getFieldValue(\"65\")];\n var colour_66 = colours[block.getFieldValue(\"66\")];\n var colour_67 = colours[block.getFieldValue(\"67\")];\n var colour_68 = colours[block.getFieldValue(\"68\")];\n var colour_69 = colours[block.getFieldValue(\"69\")];\n var colour_6a = colours[block.getFieldValue(\"6a\")];\n var colour_6b = colours[block.getFieldValue(\"6b\")];\n var colour_6c = colours[block.getFieldValue(\"6c\")];\n var colour_6d = colours[block.getFieldValue(\"6d\")];\n var colour_6e = colours[block.getFieldValue(\"6e\")];\n var colour_6f = colours[block.getFieldValue(\"6f\")];\n var colour_70 = colours[block.getFieldValue(\"70\")];\n var colour_71 = colours[block.getFieldValue(\"71\")];\n var colour_72 = colours[block.getFieldValue(\"72\")];\n var colour_73 = colours[block.getFieldValue(\"73\")];\n var colour_74 = colours[block.getFieldValue(\"74\")];\n var colour_75 = colours[block.getFieldValue(\"75\")];\n var colour_76 = colours[block.getFieldValue(\"76\")];\n var colour_77 = colours[block.getFieldValue(\"77\")];\n var colour_78 = colours[block.getFieldValue(\"78\")];\n var colour_79 = colours[block.getFieldValue(\"79\")];\n var colour_7a = colours[block.getFieldValue(\"7a\")];\n var colour_7b = colours[block.getFieldValue(\"7b\")];\n var colour_7c = colours[block.getFieldValue(\"7c\")];\n var colour_7d = colours[block.getFieldValue(\"7d\")];\n var colour_7e = colours[block.getFieldValue(\"7e\")];\n var colour_7f = colours[block.getFieldValue(\"7f\")];\n var code = 'matrix.Image(\"' + colour_00 + colour_01 + colour_02 + colour_03 + colour_04 + colour_05 + colour_06 + colour_07 + colour_08 + colour_09 + colour_0a + colour_0b + colour_0c + colour_0d + colour_0e + colour_0f + ':' + colour_10 + colour_11 + colour_12 + colour_13 + colour_14 + colour_15 + colour_16 + colour_17 + colour_18 + colour_19 + colour_1a + colour_1b + colour_1c + colour_1d + colour_1e + colour_1f + ':' + colour_20 + colour_21 + colour_22 + colour_23 + colour_24 + colour_25 + colour_26 + colour_27 + colour_28 + colour_29 + colour_2a + colour_2b + colour_2c + colour_2d + colour_2e + colour_2f + ':' + colour_30 + colour_31 + colour_32 + colour_33 + colour_34 + colour_35 + colour_36 + colour_37 + colour_38 + colour_39 + colour_3a + colour_3b + colour_3c + colour_3d + colour_3e + colour_3f + ':' + colour_40 + colour_41 + colour_42 + colour_43 + colour_44 + colour_45 + colour_46 + colour_47 + colour_48 + colour_49 + colour_4a + colour_4b + colour_4c + colour_4d + colour_4e + colour_4f + ':' + colour_50 + colour_51 + colour_52 + colour_53 + colour_54 + colour_55 + colour_56 + colour_57 + colour_58 + colour_59 + colour_5a + colour_5b + colour_5c + colour_5d + colour_5e + colour_5f + ':' + colour_60 + colour_61 + colour_62 + colour_63 + colour_64 + colour_65 + colour_66 + colour_67 + colour_68 + colour_69 + colour_6a + colour_6b + colour_6c + colour_6d + colour_6e + colour_6f + ':' + colour_70 + colour_71 + colour_72 + colour_73 + colour_74 + colour_75 + colour_76 + colour_77 + colour_78 + colour_79 + colour_7a + colour_7b + colour_7c + colour_7d + colour_7e + colour_7f + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_image_builtins = function (block, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var dropdown_image = block.getFieldValue('image');\n var code = 'matrix.Image.' + dropdown_image;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_get_pixel = function (block, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = 'matrix.get_pixel(int(' + value_x + '), int(' + value_y + '))';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_bright_point = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'matrix.set_pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + \")\\n\";\n return code;\n}\n\nexport const display_get_screen_pixel = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var code = 'matrix.get_brightness()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_get_screen_image = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var code = 'matrix.get_screenimage()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_bright_screen = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = 'matrix.set_brightness(' + x + ')\\n';\n return code;\n}\n\nexport const display_blink_rate = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = 'matrix.blink_rate(' + x + ')\\n';\n return code;\n}\n\nexport const display_clear = function (_, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var code = 'matrix.clear()\\n';\n return code;\n}\n\nexport const display_use_i2c_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var i2csub = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC);\n var column = generator.valueToCode(this, 'column', generator.ORDER_ATOMIC);\n var code = sub + \" = ssd1306.SSD1306_I2C(\" + row + \",\" + column + \",\" + i2csub + \")\\n\";\n return code;\n}\n\nexport const display_draw_4strings = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var value_text_line1 = generator.valueToCode(this, 'Text_line1', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line2 = generator.valueToCode(this, 'Text_line2', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line3 = generator.valueToCode(this, 'Text_line3', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line4 = generator.valueToCode(this, 'Text_line4', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var code = varName + '.show_str(' + value_text_line1 + ',' + value_text_line2 + ',' + value_text_line3 + ',' + value_text_line4 + ')\\n'\n return code;\n}\n\nexport const display_line_arbitrarily = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC);\n var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC);\n var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC);\n var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC);\n var code = varName + '.show_line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', 1)\\n';\n return code;\n}\n\nexport const display_rect = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_width = generator.valueToCode(this, 'width', generator.ORDER_ATOMIC);\n var value_height = generator.valueToCode(this, 'height', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n var code = '';\n switch (checkbox_fill) {\n case \"True\":\n code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\\n';\n break;\n case \"False\":\n code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\\n';\n break;\n }\n return code;\n}\n\nexport const image_arithmetic = function (block, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var op = block.getFieldValue(\"OP\");\n var imga = generator.valueToCode(block, 'A', generator.ORDER_ATOMIC);\n var imgb = generator.valueToCode(block, 'B', generator.ORDER_ATOMIC);\n var code = '';\n if (op == 'INTERSECTION') {\n code = imga + '-(' + imga + '-' + imgb + ')';\n }\n else {\n code = imga + op + imgb;\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_line = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_length = generator.valueToCode(this, 'length', generator.ORDER_ATOMIC);\n var value_direction = this.getFieldValue(\"direction\");\n var code = varName + '.show_' + value_direction + '(' + location_x + ', ' + location_y + ', ' + value_length + ', 1)\\n';\n return code;\n}\n\nexport const display_onoff = function (_, generator) {\n var code = (this.getFieldValue('ONOFF') == 'ON') ? '1' : '0';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const image_shift = function (block, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var op = block.getFieldValue(\"OP\");\n var image = generator.valueToCode(block, 'img', generator.ORDER_ATOMIC);\n var value = generator.valueToCode(block, 'val', generator.ORDER_ATOMIC);\n var code = image + '.shift_' + op + '(' + value + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_fill = function (_, generator) {\n var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var code = varName + '.show_fill(' + key + ')\\n';\n return code;\n}\n\n// export const switch = function (_, generator) {\n// var code = this.getFieldValue('flag');\n// return [code, generator.ORDER_ATOMIC];\n// }\n\nexport const display_tm_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue(\"key\");\n var code;\n if (key == 'TM1650') {\n generator.definitions_['import_tm1650'] = 'import tm1650';\n code = v + ' = tm1650.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'TM1637') {\n generator.definitions_['import_tm1637'] = 'import tm1637';\n code = v + ' = tm1637.' + key + \"(\" + iv + ')\\n';\n }\n return code;\n}\n\nexport const display_tm1650_power = function (_, generator) {\n var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var stat = this.getFieldValue(\"STAT\");\n var code = v + '.' + type + stat + \"()\\n\";\n return code;\n}\n\nexport const display_tm1650_show_num = function (_, generator) {\n var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC);\n var code = v + '.' + type + \"_show_num(\" + val + \")\\n\";\n return code;\n}\n\nexport const display_tm1650_show_dot = function (_, generator) {\n var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var n = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);\n var stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = v + '.' + type + \"_show_dot(\" + n + \", \" + stat + \")\\n\";\n return code;\n}\n\nexport const display_animate = function (_, generator) {\n // Boolean values true and false.\n var name = this.getFieldValue(\"ANIMATION\");\n var code = 'matrix.Image.' + name;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_circle = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_r = generator.valueToCode(this, 'r', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n var code = '';\n switch (checkbox_fill) {\n case \"True\":\n code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\\n';\n break;\n case \"False\":\n code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\\n';\n break;\n }\n return code;\n}\n\nexport const display_triangle = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var location_x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC);\n var location_y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC);\n var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC);\n var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC);\n var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC);\n var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n var code = '';\n switch (checkbox_fill) {\n case \"True\":\n code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\\n';\n break;\n case \"False\":\n code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\\n';\n break;\n }\n return code;\n}\n\nexport const display_oled_showBitmap = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'START_X', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'START_Y', generator.ORDER_ATOMIC);\n var bmp = generator.valueToCode(this, 'bitmap_name', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);\n var code = varName + '.show_bitmap(' + location_x + ', ' + location_y + ', ' + bmp + ',' + w + ',' + h + ')\\n';\n return code;\n}\n\nexport const display_oled_drawPixel = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'POS_X', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'POS_Y', generator.ORDER_ATOMIC);\n var code = varName + '.show_pixel(' + location_x + ', ' + location_y + ')\\n';\n return code;\n}\n\n// pe:\nexport const display_matrix_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue(\"key\");\n var code;\n if (key == '32x12 Matrix') {\n generator.definitions_['import_matrix32x12'] = 'import matrix32x12';\n code = v + ' = matrix32x12.Matrix(' + iv + ')\\n';\n } else if (key == 'TM1637') {\n generator.definitions_['import_tm1637'] = 'import tm1637';\n code = v + ' = tm1637.' + key + \"(\" + iv + ')\\n';\n }\n return code;\n}\n\nexport const display_show_image = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_matrix32x12'] = 'import matrix32x12';\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".set_buffer(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_scroll_string_extern = function (_, generator) {\n generator.definitions_['import_matrix32x12'] = 'import matrix32x12';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".scroll(\" + data + \")\\n\";\n return code;\n}","import { Boards } from 'mixly';\n\nexport const display_matrix_use_i2c_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue(\"key\");\n var font = '';\n if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) {\n font = '0x700000'\n } else if (['mixgo_sant'].indexOf(version) >= 0) {\n font = '0xE00000'\n } else {\n font = '0x3A0000'\n }\n var code;\n if (key == '32x12 Matrix') {\n generator.definitions_['import_matrix32x12'] = 'import matrix32x12';\n code = v + ' = matrix32x12.Matrix(' + iv + ',font_address=' + font + ')\\n';\n } else if (key == '16x8 Matrix') {\n generator.definitions_['import_matrix16x8'] = 'import matrix16x8';\n code = v + ' = matrix16x8.Matrix(' + iv + ')\\n';\n }\n return code;\n}\n\nexport const display_matrix_extern_show_image = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".shows(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_show_image_or_string_delay = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n var code = v + \".shows(\" + data + ',space = ' + space + ',center = ' + op + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_show_frame_string = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".frame(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_show_frame_string_delay = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = v + \".frame(\" + data + ',delay = ' + time + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_scroll_string = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".scroll(\" + data + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_scroll_string_delay = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var code = v + \".scroll(\" + data + ',speed =' + time + ',space = ' + space + \")\\n\";\n return code;\n}\n\nexport const display_matrix_extern_clear = function (block, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.fill(0)\\n' + v + '.show()\\n';\n return code;\n}\n\nexport const display_matrix_extern_shift = function (a, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var op = a.getFieldValue(\"OP\");\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = v + '.' + op + '(' + value + ')\\n';\n return code;\n}\n\nexport const display_matrix_extern_get_pixel = function (block, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = v + '.pixel(int(' + value_x + '), int(' + value_y + '))';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_matrix_extern_bright_point = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = v + '.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + \")\\n\" + v + '.show()\\n';\n return code;\n}\n\nexport const display_matrix_extern_get_screen_pixel = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.get_brightness()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_matrix_extern_bright_screen = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = v + '.set_brightness(' + x + ')\\n';\n return code;\n}\n\nexport const display_matrix_extern_image_builtins = function (block, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_image = block.getFieldValue('image');\n var code = v + '.' + dropdown_image;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const matrix_extern_image_arithmetic = function (a, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var op = a.getFieldValue(\"OP\");\n var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC);\n var imgb = generator.valueToCode(a, 'B', generator.ORDER_ATOMIC);\n var code = v + '.map_' + op + '(' + imga + ',' + imgb + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const matrix_extern_image_invert = function (a, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC);\n var code = v + '.map_invert(' + imga + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//oled\nexport const display_use_i2c_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var i2csub = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC);\n var column = generator.valueToCode(this, 'column', generator.ORDER_ATOMIC);\n var code = sub + \" = ssd1306.SSD1306_I2C(\" + row + \",\" + column + \",\" + i2csub + \")\\n\";\n return code;\n}\n\nexport const display_draw_4strings = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var value_text_line1 = generator.valueToCode(this, 'Text_line1', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line2 = generator.valueToCode(this, 'Text_line2', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line3 = generator.valueToCode(this, 'Text_line3', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var value_text_line4 = generator.valueToCode(this, 'Text_line4', generator.ORDER_ASSIGNMENT) || '\\'\\'';\n var code = varName + '.show_str(' + value_text_line1 + ',' + value_text_line2 + ',' + value_text_line3 + ',' + value_text_line4 + ')\\n'\n return code;\n}\n\nexport const display_line_arbitrarily = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC);\n var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC);\n var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC);\n var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC);\n var code = varName + '.show_line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', 1)\\n';\n return code;\n}\n\nexport const display_rect = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_width = generator.valueToCode(this, 'width', generator.ORDER_ATOMIC);\n var value_height = generator.valueToCode(this, 'height', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n switch (checkbox_fill) {\n case \"True\":\n var code = varName + '.show_fill_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\\n';\n return code;\n case \"False\":\n var code = varName + '.show_rect(' + location_x + ', ' + location_y + ', ' + value_width + ', ' + value_height + ',' + size + ')\\n';\n return code;\n }\n}\n\n\nexport const display_line = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_length = generator.valueToCode(this, 'length', generator.ORDER_ATOMIC);\n var value_direction = this.getFieldValue(\"direction\");\n var code = varName + '.show_' + value_direction + '(' + location_x + ', ' + location_y + ', ' + value_length + ', 1)\\n';\n return code;\n}\n\nexport const display_onoff = function (_, generator) {\n var code = (this.getFieldValue('ONOFF') == 'ON') ? '1' : '0';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const image_shift = function (a, generator) {\n generator.definitions_['import_matrix'] = 'import matrix';\n var op = a.getFieldValue(\"OP\");\n var image = generator.valueToCode(a, 'img', generator.ORDER_ATOMIC);\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = image + '.shift_' + op + '(' + value + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_fill = function (_, generator) {\n var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var code = varName + '.show_fill(' + key + ')\\n';\n return code;\n}\n\n// export const switch = function (_, generator) {\n// var code = this.getFieldValue('flag');\n// return [code, generator.ORDER_ATOMIC];\n// };\n\nexport const display_animate = function (_, generator) {\n // Boolean values true and false.\n var name = this.getFieldValue(\"ANIMATION\");\n var code = 'matrix.Image.' + name;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_circle = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var location_x = generator.valueToCode(this, 'x', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'y', generator.ORDER_ATOMIC);\n var value_r = generator.valueToCode(this, 'r', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n switch (checkbox_fill) {\n case \"True\":\n var code = varName + '.show_fill_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\\n';\n return code;\n case \"False\":\n var code = varName + '.show_circle(' + location_x + ', ' + location_y + ', ' + value_r + ', ' + size + ')\\n';\n return code;\n }\n}\n\nexport const display_triangle = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var location_x0 = generator.valueToCode(this, 'x0', generator.ORDER_ATOMIC);\n var location_y0 = generator.valueToCode(this, 'y0', generator.ORDER_ATOMIC);\n var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC);\n var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC);\n var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC);\n var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC);\n var checkbox_fill = this.getFieldValue(\"fill\") == 'TRUE' ? 'True' : 'False';\n var size = this.getFieldValue('OP');\n switch (checkbox_fill) {\n case \"True\":\n var code = varName + '.show_fill_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\\n';\n return code;\n case \"False\":\n var code = varName + '.show_triangle(' + location_x0 + ', ' + location_y0 + ', ' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', ' + size + ')\\n';\n return code;\n }\n}\n\nexport const display_oled_showBitmap = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'START_X', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'START_Y', generator.ORDER_ATOMIC);\n var bmp = generator.valueToCode(this, 'bitmap_name', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);\n var code = varName + '.show_bitmap(' + location_x + ', ' + location_y + ', ' + bmp + ',' + w + ',' + h + ')\\n';\n return code;\n}\n\nexport const display_oled_drawPixel = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_ssd1306'] = 'import ssd1306';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var location_x = generator.valueToCode(this, 'POS_X', generator.ORDER_ATOMIC);\n var location_y = generator.valueToCode(this, 'POS_Y', generator.ORDER_ATOMIC);\n var code = varName + '.show_pixel(' + location_x + ', ' + location_y + ')\\n';\n return code;\n}\n\n//tm1650\nexport const display_tm_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue(\"key\");\n var code;\n if (key == 'TM1650') {\n generator.definitions_['import_tm1650'] = 'import tm1650';\n code = v + ' = tm1650.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'TM1637') {\n generator.definitions_['import_tm1637'] = 'import tm1637';\n code = v + ' = tm1637.' + key + \"(\" + iv + ')\\n';\n }\n return code;\n}\n\nexport const display_tm1650_power = function (_, generator) {\n // var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var stat = this.getFieldValue(\"STAT\");\n var code = v + '.' + stat + \"()\\n\";\n return code;\n}\n\nexport const display_tm1650_show_num = function (_, generator) {\n // var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC);\n var code = v + \".shownum(\" + val + \")\\n\";\n return code;\n}\n\nexport const display_tm1650_show_dot = function (_, generator) {\n // var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var n = generator.valueToCode(this, 'NO', generator.ORDER_ATOMIC);\n var stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = v + '.showDP(' + n + \", \" + stat + \")\\n\";\n return code;\n}\n\nexport const display_tm1650_set_brightness = function (_, generator) {\n // var type = this.getFieldValue(\"TYPE\");\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var val = generator.valueToCode(this, 'VALUE', generator.ORDER_ATOMIC);\n var code = v + \".intensity(\" + val + \")\\n\";\n return code;\n}\n\nexport const tft_use_spi_init = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var font = '';\n if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) {\n font = '0x700000'\n } else if (['mixgo_sant'].indexOf(version) >= 0) {\n font = '0xE00000'\n } else {\n font = '0x3A0000'\n }\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC);\n var pv = generator.valueToCode(this, 'PINCS', generator.ORDER_ATOMIC);\n var dv = generator.valueToCode(this, 'PINDC', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(this, 'WIDTH', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ATOMIC);\n var op = this.getFieldValue('rotate');\n var code = v + ' = st7789.ST7789(' + sv + ',' + w + ',' + h + ',dc_pin=' + dv + ',cs_pin=' + pv + ',rotation=' + op + ',font_address=' + font + ')\\n';\n return code;\n}\n\nexport const tft_show_image_xy = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = v + \".image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = v + \".image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const display_color_seclet = function (_, generator) {\n var colour = this.getFieldValue('COLOR');\n var code = '0x' + colour.slice(1) + ''\n var rgb565 = (code & 0xf80000) >> 8 | (code & 0xfc00) >> 5 | (code & 0xff) >> 3\n return ['0x' + rgb565.toString(16), generator.ORDER_ATOMIC];\n}\n\nexport const tft_show_image_or_string_delay = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var op = this.getFieldValue('center');\n if (color.slice(0, 2) == \"0x\") {\n var code = v + \".shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = v + \".shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const tft_show_frame_string_delay = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = v + \".frame(\" + data + ',size = ' + size + ',delay = ' + time + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = v + \".frame(\" + data + ',size = ' + size + ',delay = ' + time + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const tft_scroll_string_delay = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = v + \".scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = v + \".scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const tft_fill = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v + '.fill(st7789.' + key + ')\\n';\n return code;\n}\n\nexport const tft_line_arbitrarily = function (_, generator) {\n generator.definitions_['import_st7789'] = 'import st7789';\n var varName = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var location_x1 = generator.valueToCode(this, 'x1', generator.ORDER_ATOMIC);\n var location_y1 = generator.valueToCode(this, 'y1', generator.ORDER_ATOMIC);\n var location_x2 = generator.valueToCode(this, 'x2', generator.ORDER_ATOMIC);\n var location_y2 = generator.valueToCode(this, 'y2', generator.ORDER_ATOMIC);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = varName + '.line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', color=' + color + ')\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = varName + '.line(' + location_x1 + ', ' + location_y1 + ', ' + location_x2 + ', ' + location_y2 + ', color=0x' + rgb565.toString(16) + ')\\n';\n }\n return code;\n}\n\nexport const display_lcd_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue(\"key\");\n var addr = generator.valueToCode(this, 'ADDR', generator.ORDER_ATOMIC);\n var code;\n generator.definitions_['import_i2clcd'] = 'import i2clcd';\n code = v + ' = i2clcd.LCD' + \"(\" + iv + ',lcd_width=' + key + ',i2c_addr=' + addr +')\\n';\n return code;\n}\n\nexport const lcd_show_image_or_string_delay = function (_, generator) {\n generator.definitions_['import_i2clcd'] = 'import i2clcd';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n var code = v + \".shows(\" + data + ',column = ' + x + ',line = ' + y + ',center = ' + op + \")\\n\";\n return code;\n}\n\nexport const lcd_print_string = function (_, generator) {\n generator.definitions_['import_i2clcd'] = 'import i2clcd';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var delay = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = v + \".print(\" + data + ',column = ' + x + ',line = ' + y + ',delay=' + delay + \")\\n\";\n return code;\n}\n\nexport const lcd_backlight = function (_, generator) {\n generator.definitions_['import_i2clcd'] = 'import i2clcd';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = v + '.backlight(' + key + ')\\n';\n return code;\n}\n\nexport const lcd_clear = function (block, generator) {\n generator.definitions_['import_i2clcd'] = 'import i2clcd';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.clear()\\n';\n return code;\n}\n\nexport const display_oled_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'ADDR', generator.ORDER_ATOMIC);\n var m =this.getFieldValue(\"driver\");\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var font = '';\n if (['mpython', 'mixgo_pe', 'mixgo_nova'].indexOf(version) >= 0) {\n font = '0x700000'\n } else if (['mixgo_sant'].indexOf(version) >= 0) {\n font = '0xE00000'\n } else {\n font = '0x3A0000'\n }\n var code;\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n code = v + ' = oled128x64.OLED' + \"(\" + iv + ',address=' + addr + ',font_address=' + font + ',types='+m+')\\n';\n\n return code;\n}\n\nexport const extern_oled_show_image = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".image(\" + data + \")\\n\";\n return code;\n}\n\nexport const extern_oled_show_image_xy = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var code = v + \".image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + \")\\n\";\n return code;\n}\n\nexport const extern_oled_show_string = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".shows(\" + data + \")\\n\";\n return code;\n}\n\nexport const extern_oled_show_image_or_string_delay = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n var code = v + \".shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + \")\\n\";\n return code;\n}\n\nexport const extern_oled_show_frame_string = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".frame(\" + data + \")\\n\";\n return code;\n}\n\nexport const extern_oled_show_frame_string_delay = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = v + \".frame(\" + data + ',size = ' + size + ',delay = ' + time + \")\\n\";\n return code;\n}\n\nexport const extern_oled_scroll_string = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = v + \".scroll(\" + data + \")\\n\";\n return code;\n}\n\nexport const extern_oled_scroll_string_delay = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var code = v + \".scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + \")\\n\";\n return code;\n}\n\nexport const extern_oled_clear = function (block, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.fill(0)\\n' + v + '.show()\\n';\n return code;\n}\n\nexport const extern_oled_shift = function (a, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var op = a.getFieldValue(\"OP\");\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = v + '.' + op + '(' + value + ')\\n';\n return code;\n}\n\nexport const extern_oled_get_pixel = function (block, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = v + '.pixel(int(' + value_x + '), int(' + value_y + '))';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const extern_oled_bright_point = function (_, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = v + '.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + \")\\n\" + v + '.show()\\n';\n return code;\n}\n\nexport const extern_oled_shape_rect = function (block, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var shape = block.getFieldValue('shape');\n var code = v + '.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + state + ')\\n' + v + '.show()\\n';\n return code;\n}\n\nexport const extern_oled_hvline = function (block, generator) { //水平线\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var hv = block.getFieldValue('dir_h_v');\n var code = v + '.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + state + ')\\n' + v + '.show()\\n';\n return code;\n}\n\nexport const extern_oled_line = function (block, generator) {\n generator.definitions_['import_oled128x64'] = 'import oled128x64';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC);\n var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC);\n var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC);\n var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var code = v + '.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + state + ')\\n' + v + '.show()\\n';\n return code;\n}","import { Boards } from 'mixly';\n\nexport const display_show_image = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n if (version == \"educore\"){\n generator.definitions_['import_' + version + 'oled'] = \"from \" + version + \" import oled\";\n var code = \"oled.print(\" + data + \")\\n\";\n }else{\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = \"onboard_matrix.shows(\" + data + \")\\n\";\n }\n return code;\n}\n\nexport const display_show_image_or_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n if (version == \"mixgo_sant\" || version == \"mixgo_nova\") {\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var code = \"onboard_tft.shows(\" + data + \",space = \" + space + ',center = ' + op + \")\\n\";\n return code;\n }else if (version == \"educore\"){\n generator.definitions_['import_' + version + 'oled'] = \"from \" + version + \" import oled\";\n var code = \"oled.print(\" + data + ',space = ' + space + ',center = ' + op + \")\\n\";\n }\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = \"onboard_matrix.shows(\" + data + ',space = ' + space + ',center = ' + op + \")\\n\";\n return code;\n}\n\nexport const display_show_frame_string = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mpython' || version == 'educore') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.frame(\" + data + \")\\n\";\n } else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_matrix.frame(\" + data + \")\\n\";\n }\n return code;\n}\n\nexport const display_show_frame_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n if (version == 'mpython' || version == 'educore') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.frame(\" + data + ',delay = ' + time + \")\\n\";\n } else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = \"onboard_matrix.frame(\" + data + ',delay = ' + time + \")\\n\";\n }\n return code;\n}\n\nexport const display_scroll_string = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mpython'|| version == 'educore') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.scroll(\" + data + \")\\n\";\n } else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_matrix.scroll(\" + data + \")\\n\";\n }\n return code;\n}\n\nexport const display_scroll_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n if (version == 'mpython'|| version == 'educore') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var code = \"onboard_oled.scroll(\" + data + ',speed =' + time + ',space = ' + space + \")\\n\";\n }else{\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = \"onboard_matrix.scroll(\" + data + ',speed =' + time + ',space = ' + space + \")\\n\";\n }\n return code;\n}\n\nexport const display_image_builtins = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var dropdown_image = block.getFieldValue('image');\n var code = 'onboard_matrix.' + dropdown_image;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_image_builtins_all = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var dropdown_image = block.getFieldValue('image');\n var code = 'onboard_matrix.' + dropdown_image;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_image_create = function (block, generator) {\n var colours = {\n \"#000000\": \"0\",\n //\"#440000\": \"1\",\n //\"#660000\": \"2\",\n //\"#880000\": \"3\",\n //\"#aa0000\": \"4\",\n //\"#bb0000\": \"5\",\n //\"#cc0000\": \"6\",\n //\"#dd0000\": \"7\",\n //\"#ee0000\": \"8\",\n \"#ff0000\": \"1\"\n }\n function pad(num) {\n let newNum = '';\n if (num.length % 2 === 1) {\n num = '0' + num;\n }\n if (num.length < 8) {\n let k = 8 - num.length\n for (let i = 1; i <= k; i++) {\n num = '0' + num;\n }\n }\n\n for (let i = 1; i <= num.length; i++)\n if (i % 2 === 0 && i !== num.length)\n newNum = newNum + num[i - 1] + ',0x';\n else\n newNum += num[i - 1];\n return '0x' + newNum;\n }\n let colorList = [];\n for (let i = 0; i < 12; i++) {\n let colorRow = '';\n let colorNum = 0;\n let correct = 0;\n\n for (let j = 0; j < 32; j++) {\n if (j < 8) {\n correct = 7 - j\n }\n else if (j < 16) {\n correct = 23 - j\n }\n else if (j < 24) {\n correct = 39 - j\n }\n else if (j < 32) {\n correct = 55 - j\n }\n colorNum += Number(colours[block.getFieldValue(i + '-' + j)]) * Math.pow(2, 31 - correct);\n\n }\n colorRow += pad(colorNum.toString(16));\n colorList.unshift(colorRow);\n }\n let codelist = [];\n for (let i = 0; i < colorList.length; i++) {\n codelist[i] = colorList[colorList.length - 1 - i];\n }\n //var code = \"bytearray(b'\" + colorList.join('') + \"')\";\n var code = '[' + codelist + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_clear = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mpython') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var code = 'onboard_oled.fill(0)\\n' + 'onboard_oled.show()\\n';\n }\n else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = 'onboard_matrix.fill(0)\\n' + 'onboard_matrix.show()\\n';\n }\n return code;\n}\n\nexport const image_arithmetic = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var op = a.getFieldValue(\"OP\");\n var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC);\n var imgb = generator.valueToCode(a, 'B', generator.ORDER_ATOMIC);\n var code = 'onboard_matrix.map_' + op + '(' + imga + ',' + imgb + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const image_invert = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var imga = generator.valueToCode(a, 'A', generator.ORDER_ATOMIC);\n var code = 'onboard_matrix.map_invert(' + imga + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_shift = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mpython') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var op = a.getFieldValue(\"OP\");\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = 'onboard_oled.' + op + '(' + value + ')\\n';\n } else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var op = a.getFieldValue(\"OP\");\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = 'onboard_matrix.' + op + '(' + value + ')\\n';\n }\n return code;\n}\n\n// export const onboard_oled_shift = function (a) {\n// var version = Boards.getSelectedBoardKey().split(':')[2]\n\n// return code;\n// };\n\nexport const display_get_pixel = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == 'mpython') {\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = 'onboard_oled.pixel(int(' + value_x + '), int(' + value_y + '))';\n } else {\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = 'onboard_matrix.pixel(int(' + value_x + '), int(' + value_y + '))';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_bright_point = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'onboard_matrix.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + \")\\n\" + 'onboard_matrix.show()\\n';\n return code;\n}\n\nexport const display_get_screen_pixel = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = 'onboard_matrix.get_brightness()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const display_bright_screen = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = 'onboard_matrix.set_brightness(' + x + ')\\n';\n return code;\n}\n\n//mixgo_me onboard_matrix below:\n\nexport const mixgome_display_image_create = function (block, generator) {\n var colours = {\n \"#000000\": \"0\",\n \"#ff0000\": \"1\"\n }\n function pad(num) {\n let newNum = '';\n if (num.length % 2 === 1) {\n num = '0' + num;\n }\n\n for (let i = 1; i <= num.length; i++)\n if (i % 2 === 0 && i !== num.length)\n newNum = newNum + num[i - 1] + '\\\\x';\n else\n newNum += num[i - 1];\n return '\\\\x' + newNum;\n }\n let colorList = [];\n for (let i = 0; i < 5; i++) {\n let colorRow = '';\n let colorNum = 0;\n for (let j = 0; j < 8; j++) {\n colorNum += Number(colours[block.getFieldValue((4 - i) + '-' + j)]) * Math.pow(2, j);\n }\n colorRow += pad(colorNum.toString(16));\n colorList.unshift(colorRow);\n }\n\n var code = \"bytearray(b'\" + colorList.join('') + \"')\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixgomini_display_image_create = function (block, generator) {\n var blinkColor = '#ff0000';\n var code = '';\n for (let i = 0; i < 12; i++) {\n let value = 0;\n for (let j = 0; j < 8; j++) {\n if (block.getFieldValue(`${j}-${i}`) !== blinkColor) {\n continue;\n }\n value += 1 << j;\n }\n let temp = value.toString(16);\n code += '\\\\x' + Array(2 - temp.length).fill(0).join('') + temp;\n }\n code = `bytearray(b'${code}')`;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixgome_display_font = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var op = a.getFieldValue(\"OP\");\n var code = 'onboard_matrix.font(' + op + ')\\n';\n return code;\n}\n\nexport const mixgo_display_image_create_new = function (block, generator) {\n var colours = {\n \"#000000\": \"0\",\n \"#ff0000\": \"1\"\n }\n function pad(num) {\n let newNum = '';\n if (num.length % 2 === 1) {\n num = '0' + num;\n }\n while (num.length < 4) {\n num = '0' + num;\n }\n for (let i = 1; i <= num.length; i++)\n if (i % 2 === 0 && i !== num.length)\n newNum = newNum + num[i - 1] + '\\\\x';\n else\n newNum += num[i - 1];\n return '\\\\x' + newNum;\n }\n let colorList = [];\n for (let i = 0; i < 8; i++) {\n let colorRow = '';\n let colorNum = 0;\n for (let j = 0; j < 16; j++) {\n var c = (j + 8) % 16\n colorNum += Number(colours[block.getFieldValue((7 - i) + '-' + c)]) * Math.pow(2, j);\n }\n colorRow += pad(colorNum.toString(16));\n colorList.unshift(colorRow);\n }\n\n var code = \"bytearray(b'\" + colorList.join('') + \"')\";\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mpython\n\nexport const mpython_pbm_image = function (block, generator) {\n var code = block.getFieldValue('path');\n var sort = ['expression_picture', 'eye_picture', 'informatio_picture', 'object_picture', 'progres_picture']\n var img = [[\"Angry\", \"Bored\", \"Confused\", \"Happy\", \"Heart\", \"Paper\", \"Rock\", \"Sad\", \"Scissors\", \"Silly\", \"Sleep\", \"Small_heart\", \"Small_paper\", \"Small_rock\", \"Small_scissors\", \"Smile\", \"Surprise\", \"Wonderful\"], [\"Eyes_Angry\", \"Awake\", \"Black_eye\", \"Bottom_left\", \"Bottom_right\", \"Crazy_1\", \"Crazy_2\", \"Disappointed\", \"Dizzy\", \"Down\", \"Hurt\", \"Evil\", \"Knocked_out\", \"Love\", \"Middle_left\", \"Middle_right\", \"Neutral\", \"Nuclear\", \"Pinch_left\", \"Pinch_middle\", \"Pinch_right\", \"Tear\", \"Tired_middle\", \"Tired_left\", \"Tired_right\", \"Toxic\", \"Up\", \"Winking\"], [\"Accept\", \"Backward\", \"Decline\", \"Forward\", \"Left\", \"No_go\", \"Question_mark\", \"Right\", \"Stop_1\", \"Stop_2\", \"Thumbs_down\", \"Thumbs_up\", \"Warning\"], [\"Bomb\", \"Boom\", \"Fire\", \"Flowers\", \"Forest\", \"Lightning\", \"Light_off\", \"Light_on\", \"Night\", \"Pirate\", \"Snow\", \"Target\"], [\"Bar_0\", \"Bar_1\", \"Bar_2\", \"Bar_3\", \"Bar_4\", \"Dial_0\", \"Dial_1\", \"Dial_2\", \"Dial_3\", \"Dial_4\", \"Dots_0\", \"Dots_1\", \"Dots_2\", \"Dots_3\", \"Hourglass_0\", \"Hourglass_1\", \"Hourglass_2\", \"Timer_0\", \"Timer_1\", \"Timer_2\", \"Timer_3\", \"Timer_4\", \"Water_level_0\", \"Water_level_1\", \"Water_level_2\", \"Water_level_3\"]]\n for (var i = 0; i < 5; i++) {\n if (img[i].indexOf(code) != -1) {\n var tag = i;\n break;\n }\n }\n generator.definitions_['import_' + sort[tag] + '_' + code] = \"from \" + sort[tag] + \" import \" + code;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_oled_show_image = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.image(\" + data + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_show_image_xy = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_show_string = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.shows(\" + data + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_show_image_or_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n var code = \"onboard_oled.shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_show_frame_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.frame(\" + data + ',size = ' + size + ',delay = ' + time + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_scroll_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_oled.scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + \")\\n\";\n return code;\n}\n\nexport const onboard_oled_bright_point = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'onboard_oled.pixel(int(' + x + '), int(' + y + '), ' + dropdown_stat + \")\\n\" + 'onboard_oled.show()\\n';\n return code;\n}\n\nexport const mpython_display_shape_rect = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var shape = block.getFieldValue('shape');\n var code = 'onboard_oled.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + state + ')\\n' + 'onboard_oled.show()\\n';\n return code;\n}\n\nexport const mpython_display_hvline = function (block, generator) { //水平线\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var hv = block.getFieldValue('dir_h_v');\n var code = 'onboard_oled.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + state + ')\\n' + 'onboard_oled.show()\\n';\n return code;\n}\n\nexport const mpython_display_line = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_oled\";\n var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC);\n var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC);\n var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC);\n var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC);\n var state = block.getFieldValue('state');\n var code = 'onboard_oled.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + state + ')\\n' + 'onboard_oled.show()\\n';\n return code;\n}\n\n//mixbot onboard_matrix below:\n\nexport const mixbot_display_image_create = function (block, generator) {\n var colours = {\n \"#000000\": \"0\",\n \"#ff0000\": \"1\"\n }\n function pad(num) {\n let newNum = '';\n if (num.length % 2 === 1) {\n num = '0' + num;\n }\n\n for (let i = 1; i <= num.length; i++)\n if (i % 2 === 0 && i !== num.length)\n newNum = newNum + num[i - 1] + '\\\\x';\n else\n newNum += num[i - 1];\n return '\\\\x' + newNum;\n }\n let colorList = [];\n for (let i = 0; i < 5; i++) {\n let colorRow = '';\n let colorNum = 0;\n for (let j = 0; j < 5; j++) {\n colorNum += Number(colours[block.getFieldValue((4 - i) + '-' + j)]) * Math.pow(2, j);\n }\n colorRow += pad(colorNum.toString(16));\n colorList.unshift(colorRow);\n }\n\n var code = \"b'\" + colorList.join('') + \"'\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_display_get_screen_pixel = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = 'onboard_matrix.screenbright()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_display_get_ambientbright = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var code = 'onboard_matrix.ambientbright()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_display_bright_screen = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = 'onboard_matrix.screenbright(' + x + ')\\n';\n return code;\n}\n\nexport const mixbot_display_rotate = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_matrix'] = \"from \" + version + \" import onboard_matrix\";\n var op = a.getFieldValue(\"OP\");\n var code = 'onboard_matrix.direction(' + op + ')\\n';\n return code;\n}\n\nexport const bitbot_display_image_create = function (block, generator) {\n var colours = {\n \"#000000\": \"0\",\n \"#ff0000\": \"1\"\n }\n function pad(num) {\n\n if (num.length == 1) {\n return '\\\\x0' + num + '\\\\x00';\n }\n if (num.length == 2) {\n return '\\\\x' + num + '\\\\x00';\n }\n if (num.length == 3) {\n return '\\\\x' + num[1] + num[2] + '\\\\x0' + num[0];\n }\n }\n let colorList = [];\n for (let i = 0; i < 12; i++) {\n let colorRow = '';\n let colorNum = 0;\n for (let j = 0; j < 12; j++) {\n colorNum += Number(colours[block.getFieldValue((11 - i) + '-' + j)]) * Math.pow(2, j);\n }\n colorRow += pad(colorNum.toString(16));\n colorList.unshift(colorRow);\n }\n\n var code = \"b'\" + colorList.join('') + \"'\";\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mixgo_nova onboard tft below:\nexport const onboard_tft_show_image = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_tft.image(\" + data + \", color=0xffff)\\n\";\n return code;\n}\n\nexport const onboard_tft_show_image_xy = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = \"onboard_tft.image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = \"onboard_tft.image(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_show_image_or_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var op = this.getFieldValue('center');\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = \"onboard_tft.shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = \"onboard_tft.shows(\" + data + ',x = ' + x + ',y = ' + y + ',size = ' + size + ',space = ' + space + ',center = ' + op + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_show_frame_string = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_tft.frame(\" + data + \",color=0xffff)\\n\";\n return code;\n}\n\nexport const onboard_tft_show_frame_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = \"onboard_tft.frame(\" + data + ',size = ' + size + ',delay = ' + time + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = \"onboard_tft.frame(\" + data + ',size = ' + size + ',delay = ' + time + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_scroll_string = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_oled'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_tft.scroll(\" + data + \",color=0xffff)\\n\";\n return code;\n}\n\nexport const onboard_tft_scroll_string_delay = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var data = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ASSIGNMENT);\n var space = generator.valueToCode(this, 'space', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = \"onboard_tft.scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = \"onboard_tft.scroll(\" + data + ',y = ' + y + ',size = ' + size + ',speed =' + time + ',space = ' + space + ',color=0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_display_shape_rect = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var w = generator.valueToCode(block, 'w', generator.ORDER_ATOMIC);\n var h = generator.valueToCode(block, 'h', generator.ORDER_ATOMIC);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var shape = block.getFieldValue('shape');\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', ' + color + ')\\n' + 'onboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.' + shape + '(' + x + ', ' + y + ', ' + w + ', ' + h + ', 0x' + rgb565.toString(16) + ')\\n' + 'onboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const onboard_tft_display_hvline = function (block, generator) { //水平线\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var var_length = generator.valueToCode(block, 'length', generator.ORDER_ATOMIC);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var hv = block.getFieldValue('dir_h_v');\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', ' + color + ')\\n' + 'onboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.' + (('0' == hv) ? 'v' : 'h') + 'line(' + x + ', ' + y + ', ' + var_length + ', 0x' + rgb565.toString(16) + ')\\n' + 'onboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const onboard_tft_display_line = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x1 = generator.valueToCode(block, 'x1', generator.ORDER_ATOMIC);\n var y1 = generator.valueToCode(block, 'y1', generator.ORDER_ATOMIC);\n var x2 = generator.valueToCode(block, 'x2', generator.ORDER_ATOMIC);\n var y2 = generator.valueToCode(block, 'y2', generator.ORDER_ATOMIC);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', ' + color + ')\\n' + 'onboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.line(' + x1 + ', ' + y1 + ', ' + x2 + ', ' + y2 + ', 0x' + rgb565.toString(16) + ')\\n' + 'onboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const onboard_tft_clear = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var code = 'onboard_tft.fill(0)\\n' + 'onboard_tft.show()\\n';\n return code;\n}\n\nexport const onboard_tft_shift = function (a, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var op = a.getFieldValue(\"OP\");\n var value = generator.valueToCode(a, 'val', generator.ORDER_ATOMIC);\n var code = 'onboard_tft.' + op + '(' + value + ')\\n';\n return code;\n}\n\nexport const onboard_tft_get_pixel = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var value_x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var value_y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var code = 'hex(onboard_tft.pixel(int(' + value_x + '), int(' + value_y + ')))';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_tft_bright_point = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), ' + color + \")\\n\" + 'onboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.pixel(int(' + x + '), int(' + y + '), 0x' + rgb565.toString(16) + \")\\n\" + 'onboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const onboard_tft_get_screen_pixel = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var code = 'onboard_tft.get_brightness()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_tft_bright_screen = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var code = 'onboard_tft.set_brightness(' + x + ')\\n';\n return code;\n}\n\nexport const onboard_tft_fill = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT);\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.fill(' + color + ')\\nonboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.fill(0x' + rgb565.toString(16) + ')\\nonboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const onboard_tft_clock_init = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_Clock'] = \"from \" + version + \" import Clock\";\n var x = generator.valueToCode(this, 'x', generator.ORDER_ASSIGNMENT);\n var y = generator.valueToCode(this, 'y', generator.ORDER_ASSIGNMENT);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ASSIGNMENT);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = sub + \"=Clock(\" + x + ',' + y + ',' + size + ',' + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = sub + \"=Clock(\" + x + ',' + y + ',' + size + ',0x' + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_clock_get_rtctime = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_Clock'] = \"from \" + version + \" import Clock\";\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT);\n var code = sub + \".set_rtctime()\\n\";\n return code;\n}\n\nexport const onboard_tft_clock_set_time = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_Clock'] = \"from \" + version + \" import Clock\";\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT);\n var h = generator.valueToCode(this, 'h', generator.ORDER_ASSIGNMENT);\n var m = generator.valueToCode(this, 'm', generator.ORDER_ASSIGNMENT);\n var s = generator.valueToCode(this, 's', generator.ORDER_ASSIGNMENT);\n var code = sub + \".set_time(\" + h + ',' + m + ',' + s + \")\\n\";\n return code;\n}\n\nexport const onboard_tft_clock_draw = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_Clock'] = \"from \" + version + \" import Clock\";\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT);\n var code = sub + \".draw_clock()\\n\";\n return code;\n}\n\nexport const onboard_tft_clock_clear = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_Clock'] = \"from \" + version + \" import Clock\";\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (color.slice(0, 2) == \"0x\") {\n var code = sub + \".clear(\" + color + \")\\n\";\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = sub + \".clear(0x\" + rgb565.toString(16) + \")\\n\";\n }\n return code;\n}\n\nexport const onboard_tft_display_shape_circle = function (block, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_tft'] = \"from \" + version + \" import onboard_tft\";\n var x = generator.valueToCode(block, 'x', generator.ORDER_ATOMIC);\n var y = generator.valueToCode(block, 'y', generator.ORDER_ATOMIC);\n var R = generator.valueToCode(block, 'r', generator.ORDER_ATOMIC);\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var shape = block.getFieldValue('shape');\n if (color.slice(0, 2) == \"0x\") {\n var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', ' + color + ',' + shape + ')\\n' + 'onboard_tft.show()\\n';\n } else {\n const rgbValues = color.match(/\\d+/g);\n const r = parseInt(rgbValues[0]);\n const g = parseInt(rgbValues[1]);\n const b = parseInt(rgbValues[2]);\n var rgb = \"0x\" + ((r << 16) + (g << 8) + b).toString(16).padStart(4, \"0\");\n var rgb565 = (rgb & 0xf80000) >> 8 | (rgb & 0xfc00) >> 5 | (rgb & 0xff) >> 3;\n var code = 'onboard_tft.ellipse(' + x + ', ' + y + ', ' + R + ', ' + R + ', 0x' + rgb565.toString(16) + ',' + shape + ')\\n' + 'onboard_tft.show()\\n';\n }\n return code;\n}\n\nexport const draw_pointer = function(_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_onboard_matrix'] = \"from \"+version+\" import onboard_matrix\";\n var angle = generator.valueToCode(this, 'angle', generator.ORDER_ASSIGNMENT);\n var code = \"onboard_matrix.pointern(angle=\" + angle + \")\\n\";\n return code;\n}","export const factory_from_import = function (_, generator) {\n var path = this.getFieldValue('path');\n var module = this.getFieldValue('module');\n generator.definitions_['import_' + path + '_' + module] = 'from ' + path + ' import ' + module;\n return '';\n}\n\nexport const factory_import = function (_, generator) {\n var module = this.getFieldValue('module');\n generator.definitions_['import_' + module] = 'import ' + module;\n return '';\n}\n\nexport const factory_function_noreturn = function (_, generator) {\n var NAME = this.getFieldValue('NAME');\n var code = new Array(this.itemCount_);\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || '';\n }\n return NAME + '(' + code.join(', ') + ')\\n';\n}\n\nexport const factory_function_return = function (_, generator) {\n var NAME = this.getFieldValue('NAME');\n var code = new Array(this.itemCount_);\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || '';\n }\n return [NAME + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC];\n}\n\nexport const factory_declare = function () {\n var TYPE = this.getFieldValue('TYPE');\n var NAME = this.getFieldValue('NAME');\n return NAME + ' = ' + TYPE + '()\\n';\n}\n\nexport const factory_callMethod_noreturn = function (_, generator) {\n var NAME = this.getFieldValue('NAME');\n var METHOD = this.getFieldValue('METHOD');\n var code = new Array(this.itemCount_);\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || '';\n }\n return NAME + '.' + METHOD + '(' + code.join(', ') + ')\\n';\n}\n\nexport const factory_callMethod_return = function (_, generator) {\n var NAME = this.getFieldValue('NAME');\n var METHOD = this.getFieldValue('METHOD');\n var code = new Array(this.itemCount_);\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || '';\n }\n return [NAME + '.' + METHOD + '(' + code.join(', ') + ')', generator.ORDER_ATOMIC];\n}\n\nexport const factory_block = function () {\n var VALUE = this.getFieldValue('VALUE');\n //if(!(VALUE.charAt(VALUE.length-1)==\";\")){\n //VALUE=VALUE+';';\n //}\n return VALUE + '\\n';\n}\n\nexport const factory_block_return = function (_, generator) {\n var VALUE = this.getFieldValue('VALUE');\n return [VALUE, generator.ORDER_ATOMIC];\n}\n\nexport const factory_block_with_textarea = function () {\n var VALUE = this.getFieldValue('VALUE');\n //if(!(VALUE.charAt(VALUE.length-1)==\";\")){\n //VALUE=VALUE+';';\n //}\n return VALUE + '\\n';\n}\n\nexport const factory_block_return_with_textarea = function (_, generator) {\n var VALUE = this.getFieldValue('VALUE');\n return [VALUE, generator.ORDER_ATOMIC];\n}\n\nexport const folding_block = function (_, generator) {\n var comment = this.getFieldValue('peien');\n comment = \"#\" + comment;\n var branch = generator.statementToCode(this, 'DO');\n branch = branch.replace(/(^\\s*)|(\\s*$)/g, \"\");//去除两端空格\n branch = branch.replace(/(\\n\\s\\s\\s\\s)/g, \"\\n\");//去除换行时空格\n return comment + '\\n' + branch + '\\n';\n}","import * as Blockly from 'blockly/core';\n\n// ok\nexport const inout_highlow = function (_, generator) {\n // Boolean values HIGH and LOW.\n var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const inout_digital_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = \"\";\n code += dropdown_pin + '.value(' + dropdown_stat + ')\\n'\n return code;\n}\n\n// ok\nexport const inout_digital_read = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = \"\";\n code = dropdown_pin + '.value()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const inout_pwm_analog_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //var dropdown_stat = this.getFieldValue('STAT');\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);';\n var code = dropdown_pin + '.duty_u16(' + value_num + ')\\n';\n return code;\n}\n\n// ok\nexport const inout_analog_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //var dropdown_stat = this.getFieldValue('STAT');\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);';\n var code = dropdown_pin + '.write(' + value_num + ')\\n';\n return code;\n}\n\n// ok\nexport const inout_analog_write_set = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\\n';\n //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\\n';\n return code;\n}\n\nexport const inout_pwm_analog_write_set_freq = function (_, generator) {\n //generator.definitions_['import_machine_Pin'] = \"from machine import Pin\";\n // generator.definitions_['import_machine_PWM'] = \"from machine import PWM\";\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var code = dropdown_pin + '.freq(' + value_num + ')\\n';\n //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\\n';\n return code;\n}\n\n// ok\nexport const inout_analog_read = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //generator.setups_['setup_input_'+dropdown_pin] = 'pinMode('+dropdown_pin+', INPUT);';\n var code = dropdown_pin + '.read_u16()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const inout_pin_pressed = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);\n var code = pin + '.read()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const inout_pin_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n //var funcName = 'attachInterrupt_func_' + dropdown_pin;\n //var branch = generator.statementToCode(this, 'DO') || generator.PASS;\n //var code2 = 'def' + ' ' + funcName + '(p):\\n' + branch + '\\n';\n //generator.setups_[funcName] = code2;\n return code;\n}\n\nexport const inout_digital_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('MODE');\n var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\\n';\n return code;\n}\n\nexport const inout_pwm_analog_write_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'pwm#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'pwm#') ? 'pwm' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.PWM(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}\n\n// ok\nexport const inout_analog_write_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}\n\nexport const inout_analog_read_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'adc#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'adc#') ? 'adc' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.ADC(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}\n\nexport const inout_analog_atten = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //var dropdown_stat = this.getFieldValue('STAT');\n var value_atten = this.getFieldValue('atten')\n var code = dropdown_pin + '.atten(' + value_atten + ')\\n';\n return code;\n}\n\n// ok\nexport const inout_pin_pressed_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}","export const iot_wifi_connect = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);\n var code = 'mixiot.wlan_connect(' + username + ',' + password + ')\\n';\n return code;\n}\n\nexport const iot_onenet_connect = function (_, generator) {\n generator.definitions_['import_onenet'] = \"import onenet\";\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var client = generator.valueToCode(this, 'CLIENT', generator.ORDER_ATOMIC);\n var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);\n var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || 'None';\n var code = v + ' = onenet.init_MQTT_client(' + client + ', ' + server + ', ' + username + ', ' + password + ', ' + topic + ', ' + subscribe + ')\\n';\n return code;\n}\n\nexport const iot_onenet_disconnect = function (_, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_onenet'] = \"import onenet\";\n var code = v + '.do_disconnect()\\n';\n return code;\n}\n\nexport const iot_onenet_publish_dict = function (_, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var d = generator.valueToCode(this, 'DICT', generator.ORDER_ATOMIC);\n var check = this.getFieldValue(\"is_print\") == 'TRUE' ? 'True' : 'False';\n generator.definitions_['import_onenet'] = \"import onenet\";\n var code = v + '.publish(' + d + ', is_print = ' + check + ')\\n';\n return code;\n}\n\nexport const iot_onenet_check = function (_, generator) {\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n generator.definitions_['import_onenet'] = \"import onenet\";\n var code = v + '.check_msg()\\n';\n return code;\n}\n\nexport const iot_onenet_publish = function (_, generator) {\n // Create a list with any number of elements of any type.\n\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n generator.definitions_['import_onenet'] = \"import onenet\";\n var ck = new Array(this.itemCount_);\n var cv = new Array(this.itemCount_);\n var ct = new Array(this.itemCount_);\n\n var default_value = '0';\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n\n for (let n = 0; n < this.itemCount_; n++) {\n var keyName = this.getFieldValue('KEY' + n);\n ck[n] = keyName;\n }\n for (let n = 0; n < this.itemCount_; n++) {\n cv[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = v + \".publish({\";\n for (let n = 0; n < this.itemCount_; n++) {\n ct[n] = ck[n] + ': ' + cv[n];\n }\n //var code = \"c.publish('$dp', pubData(\"+ '{' + code.join(', ') + '})\\n';\n //var code =''+varName+'['+size+\"]\"+'='+ '{' + code.join(', ') + '}\\n';\n //generator.setups_['setup_lists'+varName] = code;\n code = code + ct.join(', ') + \"})\\n\";\n return code;\n}\n\nexport const iot_mixio_connect = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n generator.definitions_['import_machine'] = \"import machine\";\n generator.definitions_['import_ubinascii_hexlify'] = \"from ubinascii import hexlify\";\n var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);\n var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);\n var project = generator.valueToCode(this, 'PROJECT', generator.ORDER_ATOMIC);\n //var subscribe = generator.valueToCode(this, 'SUB', generator.ORDER_ASSIGNMENT) || '0';\n var a = \"'\" + username.replace(\"'\", \"\").replace(\"'\", \"\") + \"/\" + project.replace(\"'\", \"\").replace(\"'\", \"\") + \"/'\"\n var code = 'MQTT_USR_PRJ = ' + a + '\\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\\n';\n return code;\n}\n\nexport const IOT_MIXIO_PUBLISH = function (_, generator) {\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.publish(MQTT_USR_PRJ + ' + topic + ', ' + msg + ')\\n';\n return code;\n}\n\nexport const IOT_MIXIO_SUBSCRIBE = function (_, generator) {\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\\n';\n code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\\n';\n return code;\n}\n\nexport const iot_mixio_disconnect = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.disconnect(MQTT_USR_PRJ)\\n';\n return code;\n}\n\nexport const iot_mixio_connect_only = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.connect()\\n';\n return code;\n}\n\nexport const iot_mixio_check = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.check_msg()\\n';\n return code;\n}\n\nexport const iot_mixio_format_topic = function (_, generator) {\n var code = 'mqtt_client.decode(\"utf-8\").split(\"/\")[-1]';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const iot_mixio_format_msg = function (_, generator) {\n var code = 'mqtt_client.decode(\"utf-8\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const IOT_FORMATTING = function (_, generator) {\n generator.definitions_['import_mixpy'] = \"import mixpy\";\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = 'mixpy.format_content(' + v + ', mqtt_client.client_id)';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const IOT_FORMAT_STRING = function (_, generator) {\n generator.definitions_['import_mixpy'] = \"import mixpy\";\n var v = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = 'mixpy.format_str(' + v + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE = function (_, generator) {\n var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);\n // var port = '1883';\n var share_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n generator.definitions_['import_machine'] = \"import machine\";\n generator.definitions_['import_urequests'] = \"import urequests\";\n generator.definitions_['import_ubinascii_hexlify'] = \"from ubinascii import hexlify\";\n generator.definitions_['import_mixpy_analyse_sharekey'] = \"from mixpy import analyse_sharekey\";\n // var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]'\n // var socket_pool = 'socketpool.SocketPool(wifi.radio)'\n // var ssl_context = 'ssl.create_default_context()'\n var code = 'sk = analyse_sharekey(\\'http://'+server.substring(1, server.length-1)+'/mixio-php/sharekey.php?sk=' + share_code + '\\')\\n'+\n 'MQTT_USR_PRJ = sk[0]+\\'/\\'+sk[1]+\\'/\\'\\n' +\n 'mqtt_client = mixiot.init_MQTT_client(' + server + ', sk[0], sk[2]' + ', MQTT_USR_PRJ)\\n';\n return code;\n}\n\nexport const iot_mixly_key = function (_, generator) {\n var code = this.getFieldValue('VISITOR_ID');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n generator.definitions_['import_machine'] = \"import machine\";\n generator.definitions_['import_ubinascii_hexlify'] = \"from ubinascii import hexlify\";\n var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);\n // var port = '1883';\n var username = '\"MixIO_public\"';\n var password = '\"MixIO_public\"';\n var mixly_code = generator.valueToCode(this, 'KEY', generator.ORDER_ATOMIC);\n var a = '\"MixIO/' + mixly_code + '/default/\"'\n // var mac_address = 'str(binascii.hexlify(wifi.radio.mac_address))[2:14]'\n // var socket_pool = 'socketpool.SocketPool(wifi.radio)'\n // var ssl_context = 'ssl.create_default_context()'\n var code = 'MQTT_USR_PRJ = ' + a + '\\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\\n';\n return code;\n}\n\nexport const IOT_EMQX_PING = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var code = 'mqtt_client.pingSync()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const IOT_MIXIO_NTP = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var code = 'mixiot.ntp(' + addr + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const iot_client_onboard = function (_, generator) {\n var code = 'mqtt_client';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const iot_http_client = function (_, generator) {\n generator.definitions_['import_debugnet'] = \"import debugnet\";\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = 'HTTP_client = debugnet.request(\"GET\",' + addr + ',debug=' + key + ')\\n';\n return code;\n}\n\nexport const iot_http_data = function (_, generator) {\n generator.definitions_['import_debugnet'] = \"import debugnet\";\n var key = this.getFieldValue('key');\n var code = 'HTTP_client.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const iot_mqtt_client = function (_, generator) {\n generator.definitions_['import_debugnet'] = \"import debugnet\";\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key2');\n var code = 'mqtt_client = debugnet.init_MQTT_client(' + addr + ', \"MixIO_public\", \"MixIO_public\", \"MixIO/3QBAGKRL/default/\",debug=' + key + ')\\n';\n code += 'mqtt_client.subscribe(\"$SYS/hello\")\\n';\n return code;\n}\n\nexport const iot_mqtt_data = function (_, generator) {\n generator.definitions_['import_mixiot'] = \"import mixiot\";\n var key = this.getFieldValue('key');\n var code = 'mqtt_client.' + key;\n return [code, generator.ORDER_ATOMIC];\n}","import * as Blockly from 'blockly/core';\n\nexport const network_init = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n return \"\" + varName + \" = network.WLAN(network.\" + mode + \"_IF);\\n\";\n}\n\n// export const network_connect = function() {\n// generator.definitions_['import_network'] = \"import network\";\n// // generator.setups_['class_wlan'] ='wlan.active(True)\\n';\n// var varName =generator.valueToCode(this, 'VAR',generator.ORDER_ATOMIC);\n// var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC);\n// var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);\n// return \"if not \"+varName+\".isconnected():\\n\"+\n// \" \"+varName+\".connect(\"+id+\",\"+password+\")\\n\"+\n// \" while not \"+varName+\".isconnected():\\n\"+\n// \" pass\\n\";\n// }\n\nexport const network_connect = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n // generator.setups_['class_wlan'] ='wlan.active(True)\\n';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var id = generator.valueToCode(this, 'id', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'password', generator.ORDER_ATOMIC);\n return \"\" + varName + \".connect(\" + id + \",\" + password + \")\\n\"\n}\n\nexport const network_wifi_connect = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = varName + '.isconnected()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const network_get_connect = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n var code = \"\" + varName + \".ifconfig()[\" + mode + \"]\";\n return [code, generator.ORDER_ATOMIC]\n}\n\nexport const network_stop = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return \"\" + varName + \".disconnect()\\n\";\n}\n\nexport const network_open = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var op = this.getFieldValue('op');\n var code = \"\" + varName + \".active(\" + op + \")\\n\";\n return code;\n}\n\nexport const network_is_active = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".active()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const network_get_wifi = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var op = this.getFieldValue('op');\n var code = \"\" + varName + \".config('\" + op + \"')\";\n return [code, generator.ORDER_ATOMIC]\n}\n\nexport const network_ap_connect = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n // generator.setups_['class_wlan'] ='ap = network.WLAN(network.AP_IF)\\n'+'ap.active(True)\\n';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var essid = generator.valueToCode(this, 'essid', generator.ORDER_ATOMIC);\n var channel = generator.valueToCode(this, 'channel', generator.ORDER_ATOMIC);\n return \"\" + varName + \".config(essid = \" + essid + \", channel = \" + channel + \")\\n\";\n}\n\nexport const network_scan = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".scan()\";\n return [code, generator.ORDER_ATOMIC];\n\n}\n\nexport const network_server = function (_, generator) {\n generator.definitions_['import_server_*'] = 'from server import *';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n // generator.setups_['class_wlan'] ='SSID=\"ying\"\\n'+'PASSWORD=\"201411132040\"\\n';\n return 'if not ' + varName + '.isconnected():\\n'\n + ' connectWifi(SSID, PASSWORD)\\n'\n + 'ip=' + varName + '.ifconfig()[0]\\n'\n + 'print(ip)\\n'\n + 'time.sleep(1)\\n'\n + 'DATA=listenData()\\n'\n}\n\nexport const network_socket_init = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('mode');\n if (mode == 'UDP') {\n mode = 'socket.SOCK_DGRAM'\n }\n else if (mode == 'TCP') {\n mode = 'socket.SOCK_STREAM'\n }\n return \"\" + varName + \" = socket.socket(socket.AF_INET,\" + mode + \")\\n\";\n}\n\nexport const network_socket_bind = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);\n return \"\" + varName + \".bind(\" + address + \")\\n\";\n}\n\nexport const network_socket_connect = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);\n return \"\" + varName + \".connect(socket.getaddrinfo\" + address + \"[0][-1])\\n\";\n}\n\nexport const network_socket_listen = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var queue = generator.valueToCode(this, 'queue', generator.ORDER_ATOMIC);\n return \"\" + varName + \".listen(\" + queue + \")\\n\";\n}\n\nexport const network_socket_accept = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".accept()\";\n return [code, generator.ORDER_ASSIGNMENT];\n}\n\nexport const network_socket_receive = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".recv(\" + size + \")\";\n return [code, generator.ORDER_ASSIGNMENT];\n}\n\nexport const network_socket_send = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".send(\" + content + \")\\n\";\n return code;\n}\n\nexport const network_socket_receive_from = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var size = generator.valueToCode(this, 'size', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".recvfrom(\" + size + \")\";\n return [code, generator.ORDER_ASSIGNMENT];\n}\n\nexport const network_socket_send_to = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var content = generator.valueToCode(this, 'content', generator.ORDER_ATOMIC);\n var address = generator.valueToCode(this, 'address', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".sendto(\" + content + \",\" + address + \")\\n\";\n return code;\n}\n\nexport const network_socket_close = function (_, generator) {\n generator.definitions_['import_network'] = \"import network\";\n generator.definitions_['import_socket'] = \"import socket\";\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"\" + varName + \".close()\\n\";\n return code;\n}\n\nexport const requests_get = function (_, generator) {\n generator.definitions_.import_requests = \"import requests\";\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n var str = generator.valueToCode(this, 'DOMAIN', generator.ORDER_ATOMIC);\n var code = varName + '= ' + 'requests.get(' + str + ')\\n';\n\n return code;\n}\n\nexport const requests_attribute = function (_, generator) {\n generator.definitions_.import_requests = \"import requests\";\n var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0';\n var attr = this.getFieldValue('ATTR');\n var code = varName + \".\" + attr;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const requests_method = function (_, generator) {\n generator.definitions_.import_requests = \"import requests\";\n var method = this.getFieldValue('DIR');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"requests.\" + method + \"(\" + str + ')\\n';\n return code;\n}\n\nexport const ntptime_time = function (_, generator) {\n generator.definitions_['import_ntptime'] = \"import ntptime\";\n var str = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var code = \"ntptime.time(host=\" + str + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ntptime_address = function (_, generator) {\n var code = \"'\" + this.getFieldValue('op') + \"'\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const requests_get2 = function (_, generator) {\n generator.definitions_['import_urequests'] = \"import urequests\";\n var dropdown_type = this.getFieldValue('TYPE');\n var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC);\n var code = 'urequests.' + dropdown_type + '(' + str + ')';\n return [code, generator.ORDER_ATOMIC];\n\n};\n\nexport const requests_attribute2 = function (_, generator) {\n generator.definitions_['import_urequests'] = \"import urequests\";\n var varName = generator.valueToCode(this, 'VAL', generator.ORDER_ASSIGNMENT) || '0';\n var attr = this.getFieldValue('ATTR');\n var code = varName + \".\" + attr;\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const requests_post = function (_, generator) {\n generator.definitions_['import_urequests'] = \"import urequests\";\n var dropdown_type = this.getFieldValue('TYPE');\n var str = generator.valueToCode(this, 'URL', generator.ORDER_ATOMIC);\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var code = 'urequests.' + dropdown_type + '(' + str + ',data=' + data + ')';\n return [code, generator.ORDER_ATOMIC];\n\n};\n\nexport const educore_wifi_connect = function (_, generator) {\n generator.definitions_['import_educore_wifi'] = \"from educore import wifi\";\n var username = generator.valueToCode(this, 'WIFINAME', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);\n var timeout = generator.valueToCode(this, 'TIMEOUT', generator.ORDER_ATOMIC);\n var code = 'wifi.connect(ssid='+username+', psd='+password+', timeout='+timeout+')\\n';\n return code;\n}\n\nexport const educore_mqtt_connect = function (_, generator) {\n generator.definitions_['import_educore_mqttclient'] = \"from educore import mqttclient\";\n var server = generator.valueToCode(this, 'SERVER', generator.ORDER_ATOMIC);\n var port = generator.valueToCode(this, 'PORT', generator.ORDER_ATOMIC);\n var client_id = generator.valueToCode(this, 'CLIENT_ID', generator.ORDER_ATOMIC);\n var username = generator.valueToCode(this, 'USERNAME', generator.ORDER_ATOMIC);\n var password = generator.valueToCode(this, 'PASSWORD', generator.ORDER_ATOMIC);\n // var a = \"'\" + username.replace(\"'\", \"\").replace(\"'\", \"\") + \"/\" + project.replace(\"'\", \"\").replace(\"'\", \"\") + \"/'\"\n // var code = 'MQTT_USR_PRJ = ' + a + '\\n' + 'mqtt_client = mixiot.init_MQTT_client(' + server + ', ' + username + ', ' + password + ', MQTT_USR_PRJ)\\n';\n var code = 'mqttclient.connect(server='+server+', port='+port+',client_id='+client_id+',user='+username+',psd='+password+')\\n'\n return code;\n}\n\nexport const educore_mqtt_subscribe_message = function (_, generator) {\n generator.definitions_['import_educore_mqttclient'] = \"from educore import mqttclient\";\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var message = generator.valueToCode(this, 'MESSAGE', generator.ORDER_ATOMIC);\n var code = 'mqttclient.'+message+'(' + topic + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_mqtt_topic_subscribe = function (_, generator) {\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var method = generator.valueToCode(this, 'METHOD', generator.ORDER_ATOMIC);\n generator.definitions_['import_educore_mqttclient'] = \"from educore import mqttclient\";\n // var code = 'mqtt_client.set_callback(' + topic + ',' + method + ', MQTT_USR_PRJ)\\n';\n // code += 'mqtt_client.subscribe(MQTT_USR_PRJ + ' + topic + ')\\n';\n var code = 'mqttclient.received(topic='+topic+', callback='+method+')\\n';\n return code;\n}\n\nexport const educore_mqtt_topic_publish = function (_, generator) {\n generator.definitions_['import_educore_mqttclient'] = \"from educore import mqttclient\";\n var topic = generator.valueToCode(this, 'TOPIC', generator.ORDER_ATOMIC);\n var msg = generator.valueToCode(this, 'MSG', generator.ORDER_ATOMIC);\n var code = 'mqtt_client.publish(topic=' + topic + ',content=' + msg + ')\\n';\n return code;\n}\n\nexport const educore_mqtt_connect_success = function (_, generator) {\n generator.definitions_['import_educore_mqttclient'] = \"from educore import mqttclient\";\n var code = 'mqtt_client.connescted()';\n return [code, generator.ORDER_ATOMIC];\n}","export const get_potential_num = function (_, generator) {\n generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1';\n var code = 'ext_g1.varistor()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const nova_g1_motor = function (_, generator) {\n generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1';\n var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var v = this.getFieldValue('direction');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = \"ext_g1.motor(\" + wheel + ',\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const nova_g1_usb = function (_, generator) {\n generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1';\n var p = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var percent = generator.valueToCode(this, 'percent', generator.ORDER_ATOMIC);\n var code = \"ext_g1.usb_pwm(\" + p + ',' + percent + \")\\n\";\n return code;\n}\n\nexport const nova_g1_spk_en = function (_, generator) {\n generator.definitions_['from_nova_g1_import_ext_g1'] = 'from nova_g1 import ext_g1';\n var state = this.getFieldValue('state');\n var code = \"ext_g1.spk_en(\" + state + \")\\n\";\n return code;\n}","export const pe_g1_use_i2c_init = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var code = v + ' = pe_g1.PE_G1(' + iv + ')\\n';\n return code;\n}\n\nexport const pe_g1_battery_left = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + '.read_bat()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pe_g1_dc_motor = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var s = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var v = this.getFieldValue('direction');\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = s + \".motor(\" + wheel + ',\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const pe_g1_dc_motor_speed = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var s = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var wheel = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var v = 'NC';\n var code = s + \".motor(\" + wheel + ',\"' + v + '\"' + \")\\n\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pe_g1_servo_set_angle = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var code = v + '.servo180(' + dropdown_pin + ',' + num + ')\\n';\n return code;\n}\n\nexport const pe_g1_servo_set_speed = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var code = v + '.servo360(' + dropdown_pin + ',' + num + ')\\n';\n return code;\n}\n\nexport const pe_g1_servo_get_angle = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = v + '.servo180(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pe_g1_servo_get_speed = function (_, generator) {\n generator.definitions_['import_pe_g1'] = 'import pe_g1';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = v + '.servo360(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}","export const pins_digital = function (_, generator) {\n var code = this.getFieldValue('PIN');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pins_button = pins_digital;\nexport const pins_digital_pin = pins_digital;\nexport const pins_analog_pin = pins_digital;\nexport const pins_analog = pins_digital;\nexport const pins_pwm_pin = pins_digital;\nexport const pins_pwm = pins_digital;\nexport const pins_dac_pin = pins_digital;\nexport const pins_dac = pins_digital;\nexport const pins_touch_pin = pins_digital;\nexport const pins_touch = pins_digital;\nexport const espnow_channel = pins_digital;\nexport const pins_interrupt = pins_digital;\nexport const pins_serial = pins_digital;\nexport const pins_builtinimg = pins_digital;\nexport const pins_imglist = pins_digital;\nexport const pins_playlist = pins_digital;\nexport const pins_axis = pins_digital;\nexport const pins_exlcdh = pins_digital;\nexport const pins_exlcdv = pins_digital;\nexport const pins_brightness = pins_digital;\nexport const pins_tone_notes = pins_digital;\nexport const pins_radio_power = pins_digital;\nexport const pins_radio_datarate = pins_digital;\nexport const pins_one_more = pins_digital;\nexport const pins_digital_dot = pins_digital;","import { sensor_LTR308 } from './sensor_onboard';\n\nexport const sensor_mixgo_button_is_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var code = 'mixgo.' + btn + '.is_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mixgo_button_was_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var code = 'mixgo.' + btn + '.was_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_button_get_presses = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'mixgo.' + btn + '.get_presses(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_button_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var dropdown_btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'mixgo.' + dropdown_btn + '.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n return code;\n}\n\n//ok\nexport const sensor_mixgo_extern_button_is_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').is_pressed(' + dropdown_stat + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mixgo_extern_button_was_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').was_pressed(' + dropdown_stat + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_button_get_presses = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'mixgo.Button(' + pin + ').get_presses(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_button_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n return code;\n}\n\n//ok\nexport const sensor_mpu9250_attachGestureInterrupt = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var gesture = this.getFieldValue('gesture');\n var branch = generator.statementToCode(this, 'DO');\n var d = branch || generator.PASS;\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = 'if ' + v + '.mpu9250_is_gesture(\"' + gesture + '\"):\\n' + d;\n return code;\n}\n\nexport const sensor_mpu9250_gesture = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var gesture = this.getFieldValue('gesture');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_is_gesture(\"' + gesture + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mpu9250_get_acceleration = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_get_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_adxl345_get_acceleration = function (_, generator) {\n generator.definitions_['import_adxl345'] = 'import adxl345';\n // generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code;\n if (key == 'x') {\n code = v + '.readX()';\n } else if (key == 'y') {\n code = v + '.readY()';\n } else if (key == 'z') {\n code = v + '.readZ()';\n } else if (key == 'values') {\n code = v + '.readXYZ()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_get_magnetic = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_magnetic_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_get_gyro = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_gyro_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_calibrate_compass = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return '' + v + '.calibrate()\\n';\n}\n\nexport const sensor_mpu9250_temperature = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n return [v + '.mpu9250_get_temperature()', generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_field_strength = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"compass\")\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var compass = this.getFieldValue('compass');\n var a;\n if (compass == 'strength') {\n a = v + '.get_field_strength()';\n }\n else if (compass == 'heading') {\n a = v + '.heading()';\n }\n return [a, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_distance_hrsc04 = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n generator.setups_['class_hrsc04'] =\n 'class HCSR04:\\n' +\n ' def __init__(self, tpin=pin15, epin=pin14, spin=pin13):\\n' +\n ' self.trigger_pin = tpin\\n' +\n ' self.echo_pin = epin\\n' +\n ' self.sclk_pin = spin\\n' +\n '\\n' +\n ' def distance_mm(self):\\n' +\n ' spi.init(baudrate=125000, sclk=self.sclk_pin,\\n' +\n ' mosi=self.trigger_pin, miso=self.echo_pin)\\n' +\n ' pre = 0\\n' +\n ' post = 0\\n' +\n ' k = -1\\n' +\n ' length = 500\\n' +\n ' resp = bytearray(length)\\n' +\n ' resp[0] = 0xFF\\n' +\n ' spi.write_readinto(resp, resp)\\n' +\n ' # find first non zero value\\n' +\n ' try:\\n' +\n ' i, value = next((ind, v) for ind, v in enumerate(resp) if v)\\n' +\n ' except StopIteration:\\n' +\n ' i = -1\\n' +\n ' if i > 0:\\n' +\n ' pre = bin(value).count(\"1\")\\n' +\n ' # find first non full high value afterwards\\n' +\n ' try:\\n' +\n ' k, value = next((ind, v)\\n' +\n ' for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\\n' +\n ' post = bin(value).count(\"1\") if k else 0\\n' +\n ' k = k + i\\n' +\n ' except StopIteration:\\n' +\n ' i = -1\\n' +\n ' dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\\n' +\n ' return dist\\n' +\n '\\n' +\n 'sonar=HCSR04()\\n'\n return ['sonar.distance_mm()/10.0', generator.ORDER_ATOMIC];\n}\n\nexport const RTC_get_time = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"rtc\")\n generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc';\n var code = v + '.datetime()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const RTC_set_time = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var hour = generator.valueToCode(this, \"hour\", generator.ORDER_ASSIGNMENT);\n var minute = generator.valueToCode(this, \"minute\", generator.ORDER_ASSIGNMENT);\n var second = generator.valueToCode(this, \"second\", generator.ORDER_ASSIGNMENT);\n generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;\n var code = 'str(ds.Hour(' + hour + '))+ str(ds.Minute(' + minute + ')) +str(ds.Second(' + second + '))\\n';\n return code;\n}\n\nexport const RTC_set_date = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var year = generator.valueToCode(this, \"year\", generator.ORDER_ASSIGNMENT);\n var month = generator.valueToCode(this, \"month\", generator.ORDER_ASSIGNMENT);\n var day = generator.valueToCode(this, \"day\", generator.ORDER_ASSIGNMENT);\n generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;\n var code = 'str(ds.Year(' + year + '))+ str(ds.Month(' + month + ')) +str(ds.Day(' + day + '))\\n';\n return code;\n}\n\nexport const sensor_compass_reset = function (block, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return '' + v + '.reset_calibrate()\\n';\n}\n\nexport const HCSR04 = function (_, generator) {\n generator.definitions_['import_sonar'] = 'import sonar';\n var dropdown_pin1 = generator.valueToCode(this, \"PIN1\", generator.ORDER_ASSIGNMENT);\n var dropdown_pin2 = generator.valueToCode(this, \"PIN2\", generator.ORDER_ASSIGNMENT);\n var code = 'sonar.Sonar(' + dropdown_pin1 + ', ' + dropdown_pin2 + ').checkdist()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_dht11 = function (_, generator) {\n generator.definitions_['import_dhtx'] = 'import dhtx';\n var sensor_type = this.getFieldValue('TYPE');\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var what = this.getFieldValue('WHAT');\n var code = 'dhtx.get_dht_' + what + \"('\" + sensor_type + \"', \" + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_light = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'mixgo.get_brightness(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_sound = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'mixgo.get_soundlevel(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number1 = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC);\n var code = 'mixgo.' + pin + '.is_touched()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_pin_near = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'mixgo.' + 'Infrared(' + pin + ')()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_near = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var direction = this.getFieldValue('direction');\n var code = 'mixgo.' + 'infrared_' + direction + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const RTC_set_datetime = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var year = generator.valueToCode(this, \"year\", generator.ORDER_ASSIGNMENT);\n var month = generator.valueToCode(this, \"month\", generator.ORDER_ASSIGNMENT);\n var day = generator.valueToCode(this, \"day\", generator.ORDER_ASSIGNMENT);\n var hour = generator.valueToCode(this, \"hour\", generator.ORDER_ASSIGNMENT);\n var minute = generator.valueToCode(this, \"minute\", generator.ORDER_ASSIGNMENT);\n var second = generator.valueToCode(this, \"second\", generator.ORDER_ASSIGNMENT);\n var week = generator.valueToCode(this, \"weekday\", generator.ORDER_ASSIGNMENT);\n var millisecond = generator.valueToCode(this, \"millisecond\", generator.ORDER_ASSIGNMENT);\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"rtc\")\n generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc';\n var code = v + '.datetime((' + year + ',' + month + ',' + day + ',' + week + ',' + hour + ',' + minute + ',' + second + ',' + millisecond + '))\\n';\n return code;\n}\n\nexport const sensor_rtc_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n var code = v + ' = machine.RTC()\\n';\n return code;\n}\n\nexport const sensor_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_machine'] = 'import machine';\n var code;\n if (key == 'MPU9250') {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n code = v + ' = mpu9250.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'BMP280') {\n generator.definitions_['import_bmp280'] = 'import bmp280';\n code = v + ' = bmp280.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'SHT20') {\n generator.definitions_['import_sht20'] = 'import sht20';\n code = v + ' = sht20.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'ADXL345') {\n generator.definitions_['import_adxl345'] = 'import adxl345';\n code = v + ' = adxl345.' + key + \"(\" + iv + ')\\n';\n }\n return code;\n}\n\nexport const sensor_bmp = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_bmp280'] = 'import bmp280';\n var code = v + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_sht = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_sht20'] = 'import sht20';\n var code = v + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_ds18x20 = function (_, generator) {\n generator.definitions_['import_ds18x20x'] = 'import ds18x20x';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'ds18x20x.get_ds18x20_temperature(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_lm35 = function (_, generator) {\n generator.definitions_['import_lm35'] = 'import lm35';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'lm35.get_LM35_temperature(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_button_is_pressed = sensor_mixgo_button_is_pressed;\nexport const sensor_button_was_pressed = sensor_mixgo_button_was_pressed;\nexport const sensor_button_get_presses = sensor_mixgo_button_get_presses;\nexport const sensor_pin_pressed = sensor_mixgo_pin_pressed;\nexport const sensor_pin_near = sensor_mixgo_pin_near;\nexport const sensor_mixgo_light = sensor_LTR308;\nexport const sensor_light = sensor_mixgo_light;\n// export const sensor_get_acceleration = sensor_mixgo_get_acceleration;\nexport const dht11 = sensor_dht11;","import { Boards } from 'mixly';\n\nexport const sensor_mixgo_extern_button_is_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').is_pressed(' + dropdown_stat + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mixgo_extern_button_was_pressed = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').was_pressed(' + dropdown_stat + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_button_get_presses = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'mixgo.Button(' + pin + ').get_presses(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_button_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'mixgo.Button(' + pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n return code;\n}\n\nexport const sensor_mpu9250_attachGestureInterrupt = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var gesture = this.getFieldValue('gesture');\n var branch = generator.statementToCode(this, 'DO');\n var d = branch || generator.PASS;\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = 'if ' + v + '.mpu9250_is_gesture(\"' + gesture + '\"):\\n' + d;\n return code;\n}\n\nexport const sensor_distance_hrsc04 = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n generator.setups_['class_hrsc04'] =\n 'class HCSR04:\\n' +\n ' def __init__(self, tpin=pin15, epin=pin14, spin=pin13):\\n' +\n ' self.trigger_pin = tpin\\n' +\n ' self.echo_pin = epin\\n' +\n ' self.sclk_pin = spin\\n' +\n '\\n' +\n ' def distance_mm(self):\\n' +\n ' spi.init(baudrate=125000, sclk=self.sclk_pin,\\n' +\n ' mosi=self.trigger_pin, miso=self.echo_pin)\\n' +\n ' pre = 0\\n' +\n ' post = 0\\n' +\n ' k = -1\\n' +\n ' length = 500\\n' +\n ' resp = bytearray(length)\\n' +\n ' resp[0] = 0xFF\\n' +\n ' spi.write_readinto(resp, resp)\\n' +\n ' # find first non zero value\\n' +\n ' try:\\n' +\n ' i, value = next((ind, v) for ind, v in enumerate(resp) if v)\\n' +\n ' except StopIteration:\\n' +\n ' i = -1\\n' +\n ' if i > 0:\\n' +\n ' pre = bin(value).count(\"1\")\\n' +\n ' # find first non full high value afterwards\\n' +\n ' try:\\n' +\n ' k, value = next((ind, v)\\n' +\n ' for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\\n' +\n ' post = bin(value).count(\"1\") if k else 0\\n' +\n ' k = k + i\\n' +\n ' except StopIteration:\\n' +\n ' i = -1\\n' +\n ' dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\\n' +\n ' return dist\\n' +\n '\\n' +\n 'sonar=HCSR04()\\n'\n return ['sonar.distance_mm()/10.0', generator.ORDER_ATOMIC];\n}\n\nexport const RTC_set_time = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var hour = generator.valueToCode(this, \"hour\", generator.ORDER_ASSIGNMENT);\n var minute = generator.valueToCode(this, \"minute\", generator.ORDER_ASSIGNMENT);\n var second = generator.valueToCode(this, \"second\", generator.ORDER_ASSIGNMENT);\n generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;\n var code = 'str(ds.Hour(' + hour + '))+ str(ds.Minute(' + minute + ')) +str(ds.Second(' + second + '))\\n';\n return code;\n}\n\nexport const RTC_set_date = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var year = generator.valueToCode(this, \"year\", generator.ORDER_ASSIGNMENT);\n var month = generator.valueToCode(this, \"month\", generator.ORDER_ASSIGNMENT);\n var day = generator.valueToCode(this, \"day\", generator.ORDER_ASSIGNMENT);\n generator.setups_['class_DS1307'] = generator.CLASS_DS1307_INIT;\n var code = 'str(ds.Year(' + year + '))+ str(ds.Month(' + month + ')) +str(ds.Day(' + day + '))\\n';\n return code;\n}\n\nexport const sensor_mixgo_extern_light = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'mixgo.get_brightness(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_sound = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'mixgo.get_soundlevel(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_extern_pin_near = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var direction = this.getFieldValue('direction');\n var code = 'mixgo.' + 'infrared_' + direction + '.near()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_rtc_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n var code = v + ' = machine.RTC()\\n';\n return code;\n}\n\nexport const sensor_bmp = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_bmp280'] = 'import bmp280';\n var code = v + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_sht = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_sht20'] = 'import sht20';\n var code = v + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\n//pe\nexport const sensor_use_i2c_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var iv = generator.valueToCode(this, 'I2CSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code;\n if (key == 'MPU9250') {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n code = v + ' = mpu9250.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'BMP280') {\n generator.definitions_['import_bmp280'] = 'import bmp280';\n code = v + ' = bmp280.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'SHT20') {\n generator.definitions_['import_sht20'] = 'import sht20';\n code = v + ' = sht20.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'ADXL345') {\n generator.definitions_['import_adxl345'] = 'import adxl345';\n code = v + ' = adxl345.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'LTR308') {\n generator.definitions_['import_ltr308al'] = 'import ltr308al';\n code = v + ' = ltr308al.LTR_308ALS(' + iv + ')\\n';\n } else if (key == 'LTR381RGB') {\n generator.definitions_['import_ltr381rgb'] = 'import ltr381rgb';\n code = v + ' = ltr381rgb.LTR_381RGB(' + iv + ')\\n';\n } else if(key == 'UCS12071'){\n generator.definitions_['import_ucs12071'] = 'import ucs12071';\n code = v + ' = ucs12071.UCS12071(' + iv + ')\\n';\n } else if (key == 'LTR390UV'){\n generator.definitions_['import_ltr390uv'] = 'import ltr390uv';\n code = v + ' = ltr390uv.ALS_UVS(' + iv +')\\n';\n } else if (key == 'HP203X') {\n generator.definitions_['import_hp203x'] = 'import hp203x';\n code = v + ' = hp203x.HP203X(' + iv + ')\\n';\n } else if(key == \"SPL06_001\"){\n generator.definitions_['import_spl06_001'] = 'import spl06_001';\n code = v + ' = spl06_001.SPL06(' + iv + ')\\n';\n } else if (key == 'SHTC3') {\n generator.definitions_['import_shtc3'] = 'import shtc3';\n code = v + ' = shtc3.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'AHT21') {\n generator.definitions_['import_ahtx0'] = 'import ahtx0';\n code = v + ' = ahtx0.AHTx0(' + iv + ')\\n';\n } else if (key == 'VL53L0X') {\n generator.definitions_['import_vl53l0x'] = 'import vl53l0x';\n code = v + ' = vl53l0x.' + key + \"(\" + iv + ')\\n';\n } else if (key == 'QMC5883L') {\n generator.definitions_['import_qmc5883l'] = 'import qmc5883l';\n code = v + ' = qmc5883l.Compass(' + iv + ')\\n';\n } else if (key == 'MAX30102') {\n generator.definitions_['import_max30102'] = 'import max30102';\n code = v + ' = max30102.MAX30102(' + iv + ')\\n';\n } else if (key == 'APDS9960') {\n generator.definitions_['import_apds9960'] = 'import apds9960';\n code = v + ' = apds9960.APDS9960(' + iv + ')\\n';\n } else if (key == 'RFID') {\n generator.definitions_['import_rc522'] = 'import rc522';\n code = v + ' = rc522.RC522(' + iv + ')\\n';\n }else if (key == 'CBR817') {\n generator.definitions_['import_cbr817'] = 'import cbr817';\n code = v + ' = cbr817.' + key + \"(\" + iv + ')\\n';\n }else if (key == 'CI130X'){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n code = v + ' = ci130x.' + key + \"(\" + iv + ')\\n';\n }\n return code;\n}\n\nexport const radar_set_DETECTION_THRESHOLD = function (_, generator) {\n generator.definitions_['import_cbr817'] = 'import cbr817';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var code = sub + '.threshold(' + value +')\\n'+sub + '.delay_ms(' + value2 +')\\n';\n return code;\n}\n\nexport const radar_set_DETECTION_THRESHOLD_SANT = function (_, generator) {\n generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw';\n var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC);\n var code = 'ext_mmw.threshold(' + value +')\\n'+ 'ext_mmw.delay_ms(' + value2 +')\\n';\n return code;\n}\n\nexport const interaction_whether_to_interaction = function(_,generator){\n generator.definitions_['import_cbr817'] = 'import cbr817';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+'.result()';\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const interaction_whether_to_interaction_SANT = function(_,generator){\n generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw';\n var code = 'ext_mmw.result()';\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_IDENTIFY_AND_SAVE = function(_,generator){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+'.cmd_id()\\n';\n return code;\n}\n\nexport const CI130X_GET_WHETHER_IDENTIFY = function(_,generator){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var cmd = this.getFieldValue('cmd');\n var code = sub+'.result('+cmd+')';\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_GET_THE_RECOGNIZED_CMD = function(_,generator){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n if(key == 'status1'){\n var code = sub+'.status()[0]';\n }else if(key == 'status2'){\n var code = sub+'.status()[1]';\n }else{\n var code = sub+'.'+key +'()';\n }\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_BROADCAST = function(_,generator){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var star = this.getFieldValue('star');\n var end = this.getFieldValue('end');\n var code = sub+'.play('+star+','+num+','+end+')\\n';\n return code;\n}\n\nexport const CI130X_SET_SYSTEM_CMD = function(_,generator){\n generator.definitions_['import_ci130x'] = 'import ci130x';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var cmd = this.getFieldValue('cmd');\n var code = sub+'.sys_cmd('+cmd+')\\n';\n return code;\n}\n\nexport const sensor_MAX30102_extern = function (_, generator) {\n generator.definitions_['import_max30102'] = 'import max30102';\n var key = this.getFieldValue('key');\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + '.heartrate()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_APDS9960_extern = function (_, generator) {\n generator.definitions_['import_apds9960'] = 'import apds9960';\n var key = this.getFieldValue('key');\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + '.' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_LTR308_extern = function (_, generator) {\n generator.definitions_['import_ltr308al'] = 'import ltr308al';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + '.getdata()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_hp203_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_hp203x'] = 'import hp203x';\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_spl06_001_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_spl06_001'] = 'import spl06_001';\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_ltr381_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_ltr381rgb'] = 'import ltr381rgb';\n var code = sub + '.getdata()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_ucs12071_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_ucs12071'] = 'import ucs12071';\n if (key == '0'){\n var code = sub + '.color()';\n }\n else if(key == '1'){\n var code = sub + '.color_raw()';\n }\n else if(key == '2'){\n var code = sub + '.als()';\n }\n else{\n var code = sub + '.ir()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_LTR390UV_extern = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_time'] = 'import time';\n generator.definitions_['import_ltr390uv'] = 'import ltr390uv';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n if (key == 'E') {\n var code = sub + '.ambient_light()';\n } else {\n var code = sub + '.ultraviolet()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_QMC5883L_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_qmc5883l'] = 'import qmc5883l';\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_shtc3_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_shtc3'] = 'import shtc3';\n var code = sub + '.' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_aht11_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_ahtx0'] = 'import ahtx0';\n var code = sub + '.' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_VL530LX_extern = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_vl53l0x'] = 'import vl53l0x';\n var code = sub + '.read()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_use_spi_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC);\n var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code;\n if (key == 'RFID') {\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = v + ' = rc522.RC522(' + sv + ',' + pv + ')\\n';\n } else if (key == 'Weather') {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n generator.definitions_['import_ws_lora'] = 'import ws_lora';\n if (version == 'mixgo_pe') {\n var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ')\\n';\n } else if (version == 'mixgo_nova') {\n var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ',' + version + '.onboard_i2c_soft' + ')\\n';\n } else {\n var code = v + ' = ws_lora.Weather(' + sv + ',' + pv + ',' + version + '.onboard_i2c' + ')\\n';\n }\n }\n return code;\n}\n\nexport const extern_rfid_read = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.read_card(' + sector + ',\"' + key + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const extern_rfid_readid = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.read_card(0, x=\"id\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const extern_rfid_readcontent = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.read_card(' + sector + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const extern_rfid_write = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.write_card(' + cnt + ',' + sector + ')\\n';\n return code;\n}\n\nexport const extern_rfid_write_return = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.write_card(' + cnt + ',' + sector + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const extern_rfid_status = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_rc522'] = 'import rc522';\n var code = sub + '.scan_card()==' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const weather_data = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_ws_lora'] = 'import ws_lora';\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const weather_have_data = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_ws_lora'] = 'import ws_lora';\n var code = sub + '.any()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const weather_uart_mixio = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var base = generator.valueToCode(this, 'BASE', generator.ORDER_ATOMIC);\n generator.definitions_['import_ws_lora'] = 'import ws_lora';\n var code = sub + '.uart_mixio(topic=' + base + ')\\n';\n return code;\n}\n\nexport const weather_set_label = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_ws_lora'] = 'import ws_lora';\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = sub + '.label(' + code.join(', ') + ')\\n';\n return code;\n}\n\nexport const sensor_mixgoce_hot_wheel_is_touched = function (_, generator) {\n var key = this.getFieldValue('key');\n var stat = this.getFieldValue('stat');\n generator.definitions_['import_tpwheel'] = 'import tpwheel';\n var code = 'tpwheel.TouchPadWheels(' + key + ').' + stat;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgoce_hot_wheel_degrees = function (_, generator) {\n generator.definitions_['import_tpwheel'] = 'import tpwheel';\n var code = 'tpwheel.hot_wheels_degree()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_s2_weather_init = function (_, generator) {\n generator.definitions_['import_weather'] = 'import weather';\n generator.definitions_['import_board_*'] = 'from board import *';\n var wd = generator.valueToCode(this, 'wd', generator.ORDER_ATOMIC);\n var ws = generator.valueToCode(this, 'ws', generator.ORDER_ATOMIC);\n var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC);\n var code = \"wd = weather.Weather_wd(\" + wd + \")\\n\"\n code += \"ws = weather.Weather_ws(\" + ws + \")\\n\"\n code += \"rain = weather.Weather_rain(\" + rain + \")\\n\"\n return code;\n}\n\nexport const esp32_s2_weather_wd = function (_, generator) {\n generator.definitions_['import_weather'] = 'import weather';\n var code = 'wd.wind_direction()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_s2_weather_rain = function (_, generator) {\n generator.definitions_['import_weather'] = 'import weather';\n var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC);\n var code = 'rain.rain_count(time_Hour=' + rain + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const esp32_s2_weather_ws = function (_, generator) {\n generator.definitions_['import_weather'] = 'import weather';\n var key = this.getFieldValue('key');\n if (key == 'ALL') {\n var code = 'ws.wind_speed()';\n } else {\n var code = 'ws.wind_speed()[' + key + ']';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const HCSR04 = function (_, generator) {\n generator.definitions_['import_sonar'] = 'import sonar';\n var dropdown_pin1 = generator.valueToCode(this, \"PIN1\", generator.ORDER_ASSIGNMENT);\n var dropdown_pin2 = generator.valueToCode(this, \"PIN2\", generator.ORDER_ASSIGNMENT);\n var code = 'sonar.Sonar(' + dropdown_pin1 + ',' + dropdown_pin2 + ').checkdist()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_init = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n //generator.definitions_['import_board'] = 'import board';\n var PS2_CLK = this.getFieldValue('PS2_CLK');\n var PS2_DOU = this.getFieldValue('PS2_DOU');\n var PS2_DIN = this.getFieldValue('PS2_DIN');\n var PS2_CS = this.getFieldValue('PS2_CS');\n var code = 'mixgope_ps = ps2.PS2Controller(' + PS2_CLK + ',' + PS2_DOU + ',' + PS2_DIN + ',' + PS2_CS + ')\\n';\n return code;\n}\n\nexport const PS2_vibration = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var ss = this.getFieldValue('smotorstate');\n var amp = generator.valueToCode(this, 'AMP', generator.ORDER_ATOMIC);\n var code = \"mixgope_ps.PS2_vibration(\" + ss + ',' + amp + \")\\n\";\n return code;\n}\n\nexport const PS2_Button = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var bt = this.getFieldValue('psbt');\n var code = \"mixgope_ps.PS2_keydata()[0] & (ps2.\" + bt + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_Buttons = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var bt = this.getFieldValue('psbt');\n var code = \"ps2.\" + bt;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_State = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var bt = this.getFieldValue('btstate');\n var code = \"mixgope_ps.PS2_keydata()[\" + bt + \"]\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_stk = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var stk = this.getFieldValue('psstk');\n var code = \"mixgope_ps.PS2_keydata()[1][\" + stk + \"]\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const RTC_set_datetime = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var year = generator.valueToCode(this, \"year\", generator.ORDER_ASSIGNMENT);\n var month = generator.valueToCode(this, \"month\", generator.ORDER_ASSIGNMENT);\n var day = generator.valueToCode(this, \"day\", generator.ORDER_ASSIGNMENT);\n var hour = generator.valueToCode(this, \"hour\", generator.ORDER_ASSIGNMENT);\n var minute = generator.valueToCode(this, \"minute\", generator.ORDER_ASSIGNMENT);\n var second = generator.valueToCode(this, \"second\", generator.ORDER_ASSIGNMENT);\n var week = generator.valueToCode(this, \"weekday\", generator.ORDER_ASSIGNMENT);\n var millisecond = generator.valueToCode(this, \"millisecond\", generator.ORDER_ASSIGNMENT);\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"rtc\")\n generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc';\n var code = v + '.datetime((' + year + ',' + month + ',' + day + ',' + week + ',' + hour + ',' + minute + ',' + second + ',' + millisecond + '))\\n';\n return code;\n}\n\nexport const RTC_get_time = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"rtc\")\n generator.definitions_['import_mixgo_rtc'] = 'from mixgo import rtc';\n var code = v + '.datetime()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_dht11 = function (_, generator) {\n generator.definitions_['import_dhtx'] = 'import dhtx';\n var sensor_type = this.getFieldValue('TYPE');\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var what = this.getFieldValue('WHAT');\n var code = 'dhtx.' + sensor_type + \"(\" + dropdown_pin + ').' + what + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_init_new = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n //generator.definitions_['import_board'] = 'import board';\n var PS2_CLK = generator.valueToCode(this, 'CLK', generator.ORDER_ATOMIC);\n var PS2_DOU = generator.valueToCode(this, 'DOU', generator.ORDER_ATOMIC);\n var PS2_DIN = generator.valueToCode(this, 'DIN', generator.ORDER_ATOMIC);\n var PS2_CS = generator.valueToCode(this, 'CS', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + ' = ps2.PS2Controller(' + PS2_CLK + ',' + PS2_DOU + ',' + PS2_DIN + ',' + PS2_CS + ')\\n';\n return code;\n}\n\nexport const PS2_vibration_new = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var ss = this.getFieldValue('smotorstate');\n var amp = generator.valueToCode(this, 'AMP', generator.ORDER_ATOMIC);\n var code = sub + \".vibration(\" + ss + ',' + amp + \")\\n\";\n return code;\n}\n\nexport const PS2_Buttons_new = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var bt = this.getFieldValue('psbt');\n var code = sub + '.button(ps2.' + bt + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const PS2_stk_new = function (_, generator) {\n generator.definitions_['import_ps2'] = 'import ps2';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var stk = this.getFieldValue('psstk');\n var code = sub + \".analog(ps2.PSS_\" + stk + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_use_uart_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var s = this.getFieldValue('sensor');\n var code = ''\n if (s == 'PM') {\n generator.definitions_['import_pm2_5'] = 'import pm2_5';\n code = v + '=pm2_5.PM2_5(' + key + ')\\n';\n } else if (s == 'GNSS') {\n generator.definitions_['import_gnss'] = 'import gnss';\n code = v + '=gnss.NMEA0183(' + key + ')\\n';\n }\n return code;\n}\n\nexport const pm25_get_data = function (_, generator) {\n generator.definitions_['import_pm2_5'] = 'import pm2_5';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var pm = this.getFieldValue('pm');\n var code = v + \".concentration()\" + pm;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const gnss_get_data = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n generator.definitions_['import_gnss'] = 'import gnss';\n var code = sub + '.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const gnss_have_data = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_gnss'] = 'import gnss';\n var code = sub + '.any()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mixbot/feiyi extern below:\nexport const robot_button_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var num = this.getFieldValue('num');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_button'] = 'from mixbot_ext import ext_button';\n var code = 'ext_button.value(' + mode + \")\" + num;\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_button'] = 'ext_button_left = i2cdevice.Buttonx5(ext_i2c_left)';\n var code = 'ext_button_left.value()' + num;\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_button'] = 'ext_button_right = i2cdevice.Buttonx5(ext_i2c_right)';\n var code = 'ext_button_right.value()' + num;\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_touch_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_collision'] = 'from mixbot_ext import ext_collision';\n var code = 'ext_collision.value(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_collision'] = 'ext_collision_left = i2cdevice.Button(ext_i2c_left)';\n var code = 'ext_collision_left.value()';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_collision'] = 'ext_collision_right = i2cdevice.Button(ext_i2c_right)';\n var code = 'ext_collision_right.value()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_infrared_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixbot') {\n var mode = this.getFieldValue('mode');\n generator.definitions_['import_mixbot_ext_ext_infrared'] = 'from mixbot_ext import ext_infrared';\n var code = 'ext_infrared.value(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n var mode = this.getFieldValue('mode');\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var code = 'onboard_bot51.read_ps(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_infrared_extern_grey_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_grey_near'] = 'ext_grey_near_left = i2cdevice.Infrared(ext_i2c_left)';\n var code = 'ext_grey_near_left.value()';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_grey_near'] = 'ext_grey_near_right = i2cdevice.Infrared(ext_i2c_right)';\n var code = 'ext_grey_near_right.value()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_potentiometer_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_potentiometer'] = 'from mixbot_ext import ext_potentiometer';\n var code = 'ext_potentiometer.value(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_potentiometer'] = 'ext_potentiometer_left = i2cdevice.Dimmer(ext_i2c_left)';\n var code = 'ext_potentiometer_left.value()';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_potentiometer'] = 'ext_potentiometer_right = i2cdevice.Dimmer(ext_i2c_right)';\n var code = 'ext_potentiometer_right.value()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_color_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var color = this.getFieldValue('color');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_color'] = 'from mixbot_ext import ext_color';\n var code = 'ext_color.recognition(' + mode + \")\" + color;\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_color'] = 'ext_color_left = i2cdevice.Color_ID(ext_i2c_left)';\n var code = 'ext_color_left.recognition()' + color;\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_color'] = 'ext_color_right = i2cdevice.Color_ID(ext_i2c_right)';\n var code = 'ext_color_right.recognition()' + color;\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_sonar_extern_get_value = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_sonar'] = 'from mixbot_ext import ext_sonar';\n var code = 'ext_sonar.value(' + mode + \")\";\n return [code, generator.ORDER_ATOMIC];\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_sonar'] = 'ext_sonar_left = i2cdevice.Sonar(ext_i2c_left)';\n var code = 'ext_sonar_left.value()';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_sonar'] = 'ext_sonar_right = i2cdevice.Sonar(ext_i2c_right)';\n var code = 'ext_sonar_right.value()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\nexport const robot_sonar_extern_led = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var mode = this.getFieldValue('mode');\n var light = generator.valueToCode(this, 'light', generator.ORDER_ATOMIC);\n var op = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n if (version == 'mixbot') {\n generator.definitions_['import_mixbot_ext_ext_sonar'] = 'from mixbot_ext import ext_sonar';\n var code = 'ext_sonar.led(' + mode + ',' + light + ',' + op + \")\\n\";\n return code;\n } else if (version == 'feiyi') {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_i2cdevice'] = 'import i2cdevice';\n if (mode == \"0\") {\n generator.definitions_['import_left_ext_i2c'] = 'ext_i2c_left = i2cdevice.I2C_device(scl = machine.Pin(0), sda = machine.Pin(1), freq = 10000)';\n generator.definitions_['import_left_sonar'] = 'ext_sonar_left = i2cdevice.Sonar(ext_i2c_left)';\n var code = 'ext_sonar_left.led(0,' + light + ',' + op + ')\\n';\n } else if (mode == \"1\") {\n generator.definitions_['import_right_ext_i2c'] = 'ext_i2c_right = i2cdevice.I2C_device(scl = machine.Pin(2), sda = machine.Pin(3), freq = 10000)';\n generator.definitions_['import_right_sonar'] = 'ext_sonar_right = i2cdevice.Sonar(ext_i2c_right)';\n var code = 'ext_sonar_right.led(0,' + light + ',' + op + ')\\n';\n }\n return code;\n }\n}\n\nexport const mixbot_sensor_extern_get_addr = function (_, generator) {\n var name = this.getFieldValue('name');\n generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name;\n var code = name + '.addr_get()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mixbot_sensor_extern_set_addr = function (_, generator) {\n var name = this.getFieldValue('name');\n generator.definitions_['import_mixbot_ext_' + name] = 'from mixbot_ext import ' + name;\n var oldaddr = generator.valueToCode(this, 'old', generator.ORDER_ATOMIC);\n var newaddr = generator.valueToCode(this, 'new', generator.ORDER_ATOMIC);\n var code = name + '.addr_set(' + oldaddr + ',' + newaddr + ')\\n';\n return code;\n}\n\nexport const sensor_weather_solo_init = function (_, generator) {\n generator.definitions_['import_ws_solo'] = 'import ws_solo';\n var wd = generator.valueToCode(this, 'wd', generator.ORDER_ATOMIC);\n var ws = generator.valueToCode(this, 'ws', generator.ORDER_ATOMIC);\n var rain = generator.valueToCode(this, 'rain', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + ' = ws_solo.Weather_Solo(' + wd + ', ' + ws + ', ' + rain + ')\\n';\n return code;\n}\n\nexport const sensor_weather_solo_wd = function (_, generator) {\n generator.definitions_['import_ws_solo'] = 'import ws_solo';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.wind_direction()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_weather_solo_ws = function (_, generator) {\n generator.definitions_['import_ws_solo'] = 'import ws_solo';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.wind_speed()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_weather_solo_rain = function (_, generator) {\n generator.definitions_['import_ws_solo'] = 'import ws_solo';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var time = generator.valueToCode(this, 'time', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub + '.rain_count(' + time + ')' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\n\nexport const sensor_DS18X20 = function(_, generator){\n generator.definitions_['import_DS18X20'] = 'from ds18b20 import DS18X20';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code ='DS18X20('+dropdown_pin+').temperature()';\n return [code, generator.ORDER_ATOMIC];\n};\n\n//educore sensor_extern \nexport const educore_body_sensor = function (_, generator) {\n generator.definitions_['import_educore_tsd'] = 'from educore import tsd';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'tsd(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_soilhum_sensor = function (_, generator) {\n generator.definitions_['import_educore_solihum'] = 'from educore import soilhum';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'soilhum(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_temphum_sensor = function (_, generator) {\n generator.definitions_['import_educore_dht'] = 'from educore import dht';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'dht(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_infrared_sensor = function (_, generator) {\n generator.definitions_['import_educore_tsd'] = 'from educore import tsd';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'tsd(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_button_sensor_extern = function (_, generator) {\n generator.definitions_['import_educore_button'] = 'from educore import button';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'button(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_read_humiture = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub+\".read()[\"+key+\"]\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_ultrasonic_sensor = function (_, generator) {\n generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'ultrasonic(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const ultrasonic_sensor_read_distance = function (_, generator) {\n generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+\".diatance()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_temp_sensor = function (_, generator) {\n generator.definitions_['import_educore_ds18b20'] = 'from educore import ds18b20';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'ds18b20(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_camera_sensor = function (_, generator) {\n generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'smartcamera(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const camera_sensor_init = function (_, generator) {\n generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub+'.init(' + key + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const camera_sensor_result = function (_, generator) {\n generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+'.result()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_weigh_init = function (_, generator) {\n generator.definitions_['import_hx270'] = 'import hx720';\n var sck = generator.valueToCode(this, 'sck', generator.ORDER_ATOMIC);\n var dat = generator.valueToCode(this, 'dat', generator.ORDER_ATOMIC);\n var pc = generator.valueToCode(this, 'pc', generator.ORDER_ATOMIC);\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + ' = hx720.HX720(' + sck + ', ' + dat + ', ' + pc + ')\\n';\n return code;\n}\n\nexport const weigh_sensor_get_weight = function (_, generator) {\n generator.definitions_['import_hx270'] = 'import hx720';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = v + \".read_weight(10)\";\n return [code, generator.ORDER_ATOMIC];\n}","import { Boards } from 'mixly';\nimport { sensor_dht11 } from './sensor_extern.js';\n\nexport const sensor_mixgo_button_is_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var code = version + '.' + btn + '.is_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mixgo_button_was_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var code = version + '.' + btn + '.was_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_button_get_presses = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = version + '.' + btn + '.get_presses(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_button_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var dropdown_btn = generator.valueToCode(this, 'btn', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = version + '.' + dropdown_btn + '.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n return code;\n}\n\n//ok\nexport const sensor_mixgocar42_button_is_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var code = version + '.' + 'button.is_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mixgocar42_button_was_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var code = version + '.' + 'button.was_pressed()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgocar42_button_get_presses = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = version + '.' + 'button.get_presses(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgocar42_button_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = version + '.' + 'button.irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n return code;\n}\n\nexport const HCSR04 = function (_, generator) {\n generator.definitions_['import_sonar'] = 'import sonar';\n var dropdown_pin1 = generator.valueToCode(this, \"PIN1\", generator.ORDER_ASSIGNMENT);\n var dropdown_pin2 = generator.valueToCode(this, \"PIN2\", generator.ORDER_ASSIGNMENT);\n var code = 'sonar.Sonar(' + dropdown_pin1 + ', ' + dropdown_pin2 + ').checkdist()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number1 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number2 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number3 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number4 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number5 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number6 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const number7 = function (_, generator) {\n var code = this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_near_single = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_als'] = \"from \" + version + \" import onboard_als\";\n var code = 'onboard_als.ps_nl()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_near_double = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var direction = this.getFieldValue('direction');\n var code = version + '.' + 'infrared_' + direction + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_near = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als';\n var code = 'onboard_als.ps()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_nova_pin_near = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var direction = this.getFieldValue('direction');\n generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction;\n var code = 'onboard_als_' + direction + '.ps_nl()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_LTR308 = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als';\n var code = 'onboard_als.als()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_sant_color = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als';\n var code = 'onboard_als.color()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_nova_LTR308 = function (_, generator) {\n var direction = this.getFieldValue('direction');\n generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction;\n var code = 'onboard_als_' + direction + '.als_vis()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_ds18x20 = function (_, generator) {\n generator.definitions_['import_ds18x20x'] = 'import ds18x20x';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'ds18x20x.get_ds18x20_temperature(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_lm35 = function (_, generator) {\n generator.definitions_['import_lm35'] = 'import lm35';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'lm35.get_LM35_temperature(' + dropdown_pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_LTR308 = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo\") {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n return ['mixgo.get_brightness()', generator.ORDER_ATOMIC];\n } else if (version == \"mixgo_ce\") {\n generator.definitions_['import_mixgo_ce'] = 'import mixgo_ce';\n return ['mixgo_ce.get_brightness()', generator.ORDER_ATOMIC];\n } else if (version == \"mpython\") {\n generator.definitions_['import_mpython_onboard_light'] = 'from mpython import onboard_light';\n return ['onboard_light.brightness()', generator.ORDER_ATOMIC];\n }\n generator.definitions_['import_' + version + '_onboard_als'] = \"from \" + version + \" import onboard_als\";\n var code = 'onboard_als.als_vis()';\n return [code, generator.ORDER_ATOMIC];\n // else{return ['', generator.ORDER_ATOMIC];}\n}\n\nexport const sensor_sound = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixbot') {\n generator.definitions_['import_' + version + '_sound'] = 'from ' + version + ' import sound';\n var code = 'sound.loudness()';\n } else if (version == 'mixgo_zero') {\n generator.definitions_['import_mixgo_zero_voice_sound_level'] = \"from mixgo_zero_voice import sound_level\";\n var code = 'sound_level()';\n } else if (version == 'mixgo_nova') {\n generator.definitions_['import_mixgo_nova_voice_sound_level'] = \"from mixgo_nova_voice import sound_level\";\n var code = 'sound_level()';\n } else if (version == \"mixgo\") {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n return ['mixgo.get_soundlevel()', generator.ORDER_ATOMIC];\n } else if (version == \"mpython\") {\n generator.definitions_['import_mpython_onboard_sound'] = 'from mpython import onboard_sound';\n return ['onboard_sound.soundlevel()', generator.ORDER_ATOMIC];\n } else if (version == \"mixgo_mini\") {\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.soundlevel()';\n } else {\n generator.definitions_['import_' + version + '_onboard_sound'] = 'from ' + version + ' import onboard_sound';\n var code = 'onboard_sound.read()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\n// export const sensor_mixgo_nova_sound = function (_, generator) {\n// var version = Boards.getSelectedBoardKey().split(':')[2]\n// return [code, generator.ORDER_ATOMIC];\n// }\n\nexport const sensor_hp203 = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var key = this.getFieldValue('key');\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';\n generator.definitions_['import_spl06_001'] = 'import spl06_001';\n generator.definitions_['import_onboard_bps'] = 'onboard_bps = spl06_001.SPL06(onboard_i2c)';\n } else {\n generator.definitions_['import_' + version + '_onboard_bps'] = \"from \" + version + \" import onboard_bps\";\n }\n var code = 'onboard_bps.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_aht11 = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var key = this.getFieldValue('key');\n if (version == 'mixgo_nova' || version == 'mixgo_zero') {\n generator.definitions_['import_' + version + '_onboard_ths'] = \"from \" + version + \" import onboard_ths\";\n } else if (version == 'mixgo_mini') {\n generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';\n generator.definitions_['import_shtc3'] = 'import shtc3';\n generator.definitions_['import_onboard_ths'] = 'onboard_ths = shtc3.SHTC3(onboard_i2c)';\n } else {\n generator.definitions_['import_' + version + '_onboard_ths'] = \"from \" + version + \" import onboard_ths\";\n }\n var code = 'onboard_ths.' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_get_temperature = function (_, generator) {\n generator.definitions_['import_feiyi_onboard_acc'] = 'from feiyi import onboard_acc';\n return ['onboard_acc.temperature()', generator.ORDER_ATOMIC];\n}\n\nexport const rfid_readid = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_rfid'] = \"from \" + version + \" import onboard_rfid\";\n var code = 'onboard_rfid.read_card(0, x=\"id\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const rfid_readcontent = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_rfid'] = \"from \" + version + \" import onboard_rfid\";\n var code = 'onboard_rfid.read_card(' + sector + ', x=\"content\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const rfid_write = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_rfid'] = \"from \" + version + \" import onboard_rfid\";\n var code = 'onboard_rfid.write_card(' + cnt + ',' + sector + ')\\n';\n return code;\n}\n\nexport const rfid_write_return = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n generator.definitions_['import_' + version + '_onboard_rfid'] = \"from \" + version + \" import onboard_rfid\";\n var code = 'onboard_rfid.write_card(' + cnt + ',' + sector + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_get_acceleration = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var key = this.getFieldValue('key');\n if (key == 'strength') {\n if (version == 'mixbot') {\n generator.definitions_['import_' + version + '_acc_gyr'] = 'from ' + version + ' import acc_gyr';\n var code = 'acc_gyr.strength()';\n } else {\n generator.definitions_['import_' + version + '_onboard_acc'] = \"from \" + version + \" import onboard_acc\";\n var code = 'onboard_acc.strength()';\n }\n return [code, generator.ORDER_ATOMIC];\n }\n if (version == 'mixbot') {\n generator.definitions_['import_' + version + '_acc_gyr'] = 'from ' + version + ' import acc_gyr';\n var code = 'acc_gyr.accelerometer()' + key;\n } else if (version == 'mpython') {\n generator.definitions_['import_mpython_motion'] = 'from mpython import motion';\n var code = 'motion.accelerometer()' + key;\n } else {\n generator.definitions_['import_' + version + '_onboard_acc'] = \"from \" + version + \" import onboard_acc\";\n var code = 'onboard_acc.acceleration()' + key;\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_eulerangles = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_acc'] = \"from \" + version + \" import onboard_acc\";\n var angle = this.getFieldValue('angle');\n var code = 'onboard_acc.eulerangles()' + angle;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_gesture = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var gesture = this.getFieldValue('gesture');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_is_gesture(\"' + gesture + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const sensor_mpu9250_get_acceleration = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_get_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgoce_pin_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC);\n if ( 'mixgo_mini'|| version == 'mixgo_sant') {\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.touched(' + pin + ')';\n }else {\n generator.definitions_['import_' + version] = 'import ' + version;\n var code = version + '.touched(' + pin + ')';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_touch_slide = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_mini'|| version == 'mixgo_sant') {\n generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot';\n var code = 'onboard_bot.touch_slide()';\n } else {\n generator.definitions_['import_' + version] = 'import ' + version;\n var code = version + '.touch_slide(3,4)';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_pin_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version] = 'import ' + version;\n var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC);\n var code = version + '.' + pin + '.is_touched()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpython_pin_pressed = function (_, generator) {\n generator.definitions_['import_mpython'] = 'import mpython';\n var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC);\n var code = 'mpython.touch_' + pin + '.is_touched()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_adxl345_get_acceleration = function (_, generator) {\n generator.definitions_['import_adxl345'] = 'import adxl345';\n // generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code;\n if (key == 'x') {\n code = v + '.readX()';\n } else if (key == 'y') {\n code = v + '.readY()';\n } else if (key == 'z') {\n code = v + '.readZ()';\n } else if (key == 'values') {\n code = v + '.readXYZ()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_get_magnetic = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_magnetic_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_get_gyro = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n var code = v + '.mpu9250_gyro_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_calibrate_compass = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return '' + v + '.calibrate()\\n';\n}\n\nexport const sensor_mpu9250_temperature = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"mpu\")\n generator.definitions_['import_mixgo_mpu'] = 'from mixgo import mpu';\n return [v + '.mpu9250_get_temperature()', generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpu9250_field_strength = function (_, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n if (v == \"compass\")\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var compass = this.getFieldValue('compass');\n var a;\n if (compass == 'strength') {\n a = v + '.get_field_strength()';\n } else if (compass == 'heading') {\n a = v + '.heading()';\n }\n return [a, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_compass_reset = function (block, generator) {\n generator.definitions_['import_mpu9250'] = 'import mpu9250';\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_compass'] = 'from mixgo import compass';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n return '' + v + '.reset_calibrate()\\n';\n}\n\nexport const sensor_onboard_mpu9250_gesture = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var gesture = this.getFieldValue('gesture');\n generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu';\n var code = 'onboard_mpu.mpu9250_is_gesture(\"' + gesture + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_mpu9250_get_acceleration = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu';\n var code = 'onboard_mpu.mpu9250_get_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_mpu9250_get_magnetic = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu';\n var code = 'onboard_mpu.mpu9250_magnetic_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_mpu9250_get_gyro = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu';\n var code = 'onboard_mpu.mpu9250_gyro_' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_mpu9250_calibrate_compass = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass';\n return '' + 'onboard_compass.calibrate()\\n';\n}\n\nexport const sensor_onboard_mpu9250_temperature = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_onboard_mpu'] = 'from mixgo import onboard_mpu';\n return ['onboard_mpu.mpu9250_get_temperature()', generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_mpu9250_field_strength = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass';\n var compass = this.getFieldValue('compass');\n var a;\n if (compass == 'strength') {\n a = 'onboard_compass.get_field_strength()';\n } else if (compass == 'heading') {\n a = 'onboard_compass.heading()';\n }\n return [a, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_onboard_compass_reset = function (block, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n generator.definitions_['import_mixgo_onboard_compass'] = 'from mixgo import onboard_compass';\n return '' + 'onboard_compass.reset_calibrate()\\n';\n}\n\nexport const onboard_RTC_set_datetime = function (_, generator) {\n generator.definitions_['import_rtctime'] = \"import rtctime\";\n var year = generator.valueToCode(this, \"year\", generator.ORDER_ASSIGNMENT);\n var month = generator.valueToCode(this, \"month\", generator.ORDER_ASSIGNMENT);\n var day = generator.valueToCode(this, \"day\", generator.ORDER_ASSIGNMENT);\n var hour = generator.valueToCode(this, \"hour\", generator.ORDER_ASSIGNMENT);\n var minute = generator.valueToCode(this, \"minute\", generator.ORDER_ASSIGNMENT);\n var second = generator.valueToCode(this, \"second\", generator.ORDER_ASSIGNMENT);\n var code = 'rtctime.settime((' + year + ',' + month + ',' + day + ',' + hour + ',' + minute + ',' + second + ',0,0))\\n';\n return code;\n}\n\nexport const onboard_RTC_settime_string = function (_, generator) {\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n generator.definitions_['import_rtctime'] = \"import rtctime\";\n var code = 'rtctime.settime(' + cnt + ')\\n';\n return code;\n}\n\nexport const onboard_RTC_get_time = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var code = 'time.localtime()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_RTC_get_timestamp = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var time = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC);\n var code = 'time.mktime(' + time + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_RTC_timestamp_totuple = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var ts = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = 'time.localtime(' + ts + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_RTC_get_time_str = function(_,generator){\n generator.definitions_['import_rtctime'] = 'import rtctime';\n var code = 'rtctime.strtime()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const onboard_RTC_get_timetuple_to_str = function(_,generator){\n generator.definitions_['import_rtctime'] = 'import rtctime';\n var ct = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n var code = 'rtctime.strtime('+ ct +')';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mixgo_cc onboard_sensor generators:\n\nexport const sensor_mixgo_cc_mmc5603_get_magnetic = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mpython') {\n generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic';\n if (key == 'all') {\n var code = 'magnetic.getstrength()';\n } else {\n var code = 'magnetic.getdata()' + key;\n }\n } else if (version == 'mixgo_mini') {\n generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';\n generator.definitions_['import_mmc5603'] = 'import mmc5603';\n generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';\n if (key == 'all') {\n var code = 'onboard_mgs.getstrength()';\n } else {\n var code = 'onboard_mgs.getdata()' + key;\n }\n } else {\n generator.definitions_['import_' + version + '_onboard_mgs'] = \"from \" + version + \" import onboard_mgs\";\n if (key == 'all') {\n var code = 'onboard_mgs.getstrength()';\n } else {\n var code = 'onboard_mgs.getdata()' + key;\n }\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mpython') {\n generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic';\n var code = 'magnetic.getangle()';\n } else if (version == 'mixgo_mini') {\n generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';\n generator.definitions_['import_mmc5603'] = 'import mmc5603';\n generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';\n } else {\n generator.definitions_['import_' + version + '_onboard_mgs'] = \"from \" + version + \" import onboard_mgs\";\n }\n var code = 'onboard_mgs.getangle()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgo_cc_mmc5603_calibrate_compass = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_mini') {\n generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c';\n generator.definitions_['import_mmc5603'] = 'import mmc5603';\n generator.definitions_['import_onboard_mgs'] = 'onboard_mgs = mmc5603.MMC5603(onboard_i2c)';\n } else {\n generator.definitions_['import_' + version + '_onboard_mgs'] = \"from \" + version + \" import onboard_mgs\";\n }\n var code = 'onboard_mgs.calibrate()\\n';\n return code;\n}\n\n//mixgo_me onboard_sensor generators:\n\nexport const sensor_mixgome_temperature = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'mixgo_mini') {\n generator.definitions_['import_mixgo_mini_onboard_temperature'] = 'from mixgo_mini import onboard_temperature';\n var code = 'onboard_temperature()';\n } else {\n generator.definitions_['import_mixgo_me_onboard_acc'] = \"from mixgo_me import onboard_acc\";\n var code = 'onboard_acc.temperature()';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mixgo_ce onboard_sensor generators:\nexport const sensor_mixgoce_temperature = function (_, generator) {\n generator.definitions_['import_mixgo_ce'] = \"import mixgo_ce\";\n var code = 'mixgo_ce.get_temperature()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mpython onboard_sensor:\n\nexport const sensor_mpython_qmi8658_get_gyro = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mpython_motion'] = 'from mpython import motion';\n var code = 'motion.gyroscope()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mpython_qmi8658_temperature = function (_, generator) {\n generator.definitions_['import_mpython_motion'] = 'from mpython import motion';\n return ['motion.temperature()', generator.ORDER_ATOMIC];\n}\n\nexport const sensor_rm_pin_near_double = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var direction = this.getFieldValue('direction');\n generator.definitions_['import_' + version + '_adc' + direction] = 'from ' + version + ' import adc' + direction;\n var code = 'adc' + direction + '.read()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_rm_battery_left = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == 'feiyi') {\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var code = 'onboard_bot51.read_bat()';\n return [code, generator.ORDER_ATOMIC];\n }\n generator.definitions_['import_' + version + '_battery'] = 'from ' + version + ' import battery';\n var code = 'battery.voltage()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_rm_acc = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_rm_e1_gyro'] = 'from rm_e1 import gyro';\n var code = 'gyro.acceleration()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\n//car4.2\nexport const sensor_mixgocar_pin_near_line = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info';\n var code = 'onboard_info.patrol()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgocar_pin_near = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info';\n var code = 'onboard_info.obstacle()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixgocar_pin_near_state_change = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info';\n var code = 'onboard_info.ir_mode(onboard_info.' + key + ')\\n';\n return code;\n}\n\nexport const sensor_mixgocar_battery_left = function (_, generator) {\n generator.definitions_['import_mixgocar_c3_onboard_info'] = 'from mixgocar_c3 import onboard_info';\n var code = 'onboard_info.read_bat()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//mixbot onboard_sensor below:\n\nexport const sensor_mixbot_patrol_calibrate = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol';\n var code = 'patrol.correct(patrol.CORRECTING_' + key + ')\\n';\n return code;\n}\n\nexport const sensor_mixbot_patrol_value = function (_, generator) {\n var key = this.getFieldValue('key');\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol';\n var code = 'patrol.getdata()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixbot_temperature = function (_, generator) {\n generator.definitions_['import_mixbot_acc_gyr'] = \"from mixbot import acc_gyr\";\n var code = 'acc_gyr.temperature()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_mixbot_get_gyro = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mixbot_acc_gyr'] = \"from mixbot import acc_gyr\";\n var code = 'acc_gyr.gyroscope()' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_bitbot_ALS = function (_, generator) {\n generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51';\n var mode = generator.valueToCode(this, 'mode', generator.ORDER_ATOMIC);\n var code = 'onboard_bot51.' + 'read_als(' + mode + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const bitbot_als_num = function (_, generator) {\n var code = this.getFieldValue('PIN');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_button_is_pressed = sensor_mixgo_button_is_pressed;\nexport const sensor_button_was_pressed = sensor_mixgo_button_was_pressed;\nexport const sensor_button_get_presses = sensor_mixgo_button_get_presses;\nexport const sensor_pin_pressed = sensor_mixgo_pin_pressed;\nexport const sensor_pin_near = sensor_mixgo_pin_near;\nexport const sensor_mixgo_light = sensor_LTR308;\nexport const sensor_light = sensor_mixgo_light;\nexport const dht11 = sensor_dht11;\n\n//educore onboard_sensor\nexport const educore_voice_sensor = function (_, generator) {\n generator.definitions_['import_educore_sound'] = 'from educore import sound';\n var code = \"sound()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sensor_read = function (_, generator) {\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+\".read()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_light_sensor = function (_, generator) {\n generator.definitions_['import_educore_light'] = 'from educore import light';\n var code = \"light()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_gyroscope_sensor = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';\n var code = \"accelerometer()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_gyroscope_sensor_read = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub+\".\"+key+\"()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_gyroscope_sensor_shake = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+\".shake()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_button_sensor = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button';\n var btn = this.getFieldValue('btn');\n var code = 'button(button.'+btn+')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_button_was_pressed = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub + '.status()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_rfid_sensor = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';\n var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = 'rfid(' + pin + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_rfid_sensor_scan = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var code = sub+'.scanning()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const educore_rfid_sensor_scan_data = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid';\n var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = sub+'.'+key+'()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_IDENTIFY_AND_SAVE_SANT = function(_,generator){\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';\n var code = 'onboard_asr.cmd_id()\\n';\n return code;\n}\n\nexport const CI130X_GET_WHETHER_IDENTIFY_SANT = function(_,generator){\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';\n var cmd = this.getFieldValue('cmd');\n var code = 'onboard_asr.result('+cmd+')';\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function(_,generator){\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';\n var key = this.getFieldValue('key');\n if(key == 'status1'){\n var code = 'onboard_asr.status()[0]';\n }else if(key == 'status2'){\n var code = 'onboard_asr.status()[1]';\n }else{\n var code = 'onboard_asr.'+key +'()';\n }\n return [code,generator.ORDER_ATOMIC];\n}\n\nexport const CI130X_BROADCAST_SANT = function(_,generator){\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';\n var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var star = this.getFieldValue('star');\n var end = this.getFieldValue('end');\n var code = 'onboard_asr.play('+star+','+num+','+end+')\\n';\n return code;\n}\n\nexport const CI130X_SET_SYSTEM_CMD_SANT = function(_,generator){\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr';\n var cmd = this.getFieldValue('cmd');\n var code = 'onboard_asr.sys_cmd('+cmd+')\\n';\n return code;\n}","export const serial_print = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '\"\"'\n var code = \"uart\" + dropdown_uart + \".write(str(\" + content + \"))\\n\";\n return code;\n}\n\nexport const serial_print_byte = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '\"\"'\n var code = \"uart\" + dropdown_uart + \".write(\" + content + \")\\n\";\n return code;\n}\n\nexport const serial_println = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '\"\"'\n var code = \"uart\" + dropdown_uart + \".write(str(\" + content + \")+'\\\\r\\\\n')\\n\";\n return code;\n}\n\nexport const serial_print_hex = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var dropdown_stat = this.getFieldValue('STAT');\n var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0';\n var code = \"uart\" + dropdown_uart + \".write(str(\" + dropdown_stat + \"(\" + content + \"))+'\\\\r\\\\n')\\n\";\n return code;\n}\n\nexport const serial_any = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var code = \"uart\" + dropdown_uart + \".any()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const serial_readstr = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var code = \"uart\" + dropdown_uart + \".read()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const serial_readline = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode');\n var code = \"uart\" + dropdown_uart + \".readline()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const serial_softserial = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_uart = this.getFieldValue('mode')\n var baudrate = this.getFieldValue('baudrate');\n return \"uart\" + dropdown_uart + \"=machine.UART(\" + dropdown_uart + \", \" + baudrate + \")\\n\";\n}\n\nexport const serial_softserial_new = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var rx = generator.valueToCode(this, 'RX', generator.ORDER_ATOMIC);\n var tx = generator.valueToCode(this, 'TX', generator.ORDER_ATOMIC);\n var dropdown_uart = this.getFieldValue('mode')\n var baudrate = this.getFieldValue('baudrate');\n return \"uart\" + dropdown_uart + \"=machine.UART(\" + dropdown_uart + \", tx=\" + tx + \", rx=\" + rx + \", baudrate=\" + baudrate + \")\\n\";\n}\n\nexport const system_input = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n return ['input(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const system_print = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var code = \"print(\" + str + \")\\n\";\n return code;\n}\n\nexport const system_print_inline = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var code = \"print(\" + str + ',end =\"\")\\n';\n return code;\n}\n\nexport const system_print_end = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var end = generator.valueToCode(this, 'END', generator.ORDER_ATOMIC) || '\"\"';\n var code = \"print(\" + str + ',end =' + end + ')\\n';\n return code;\n}\n\nexport const system_print_many = function (_, generator) {\n var code = new Array(this.itemCount_);\n var default_value = '0';\n\n for (var n = 0; n < this.itemCount_; n++) {\n\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n\n var code = 'print(' + code.join(', ') + ')\\n';\n return code;\n}\n\nexport const serial_send_to_ai = function (_, generator) {\n generator.definitions_['import_uart_com'] = 'import uart_com';\n var dropdown_uart = this.getFieldValue('mode');\n var dropdown_stat = this.getFieldValue('STAT');\n var content = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC) || '0';\n var code = \"uart_com.send(uart\" + dropdown_uart + \", \" + content + \", repeat=\" + dropdown_stat + \")\\n\";\n return code;\n}\n\nexport const serial_read_from_ai = function (_, generator) {\n generator.definitions_['import_uart_com'] = 'import uart_com';\n var dropdown_uart = this.getFieldValue('mode');\n var code = \"uart_com.recv(uart\" + dropdown_uart + \")\";\n return [code, generator.ORDER_ATOMIC];\n}","import { Profile } from 'mixly';\n\nexport const system_run_in_background = function (_, generator) {\n var branch = generator.statementToCode(this, 'do');\n return 'control.inBackground(() => {\\n' + branch + '})\\n';\n}\n\nexport const system_reset = function () {\n return 'control.reset()\\n';\n}\n\nexport const system_wait = function (_, generator) {\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC) || Profile.default.serial;\n return 'control.waitMicros(' + data + ')\\n';\n}\n\nexport const system_raise_event = function (_, generator) {\n var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || Profile.default.serial;\n var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || Profile.default.serial;\n return 'control.raiseEvent(' + source + ', ' + value + ')\\n';\n}\n\nexport const system_on_event = function (_, generator) {\n var source = generator.valueToCode(this, 'system_event_bus_source', generator.ORDER_ATOMIC) || Profile.default.serial;\n var value = generator.valueToCode(this, 'system_event_bus_value', generator.ORDER_ATOMIC) || Profile.default.serial;\n var branch = generator.statementToCode(this, 'do');\n return 'control.onEvent(' + source + ', ' + value + ', () => {\\n' + branch + ')\\n';\n}\n\nexport const system_timestamp = function (_, generator) {\n return ['control.eventTimestamp()', generator.ORDER_ATOMIC];\n}\n\nexport const system_value = function (_, generator) {\n return ['control.eventValue()', generator.ORDER_ATOMIC];\n}\n\nexport const system_event_bus_source = function (_, generator) {\n return [this.getFieldValue('key'), generator.ORDER_ATOMIC];\n}\n\nexport const system_event_bus_value = function (_, generator) {\n return [this.getFieldValue('key'), generator.ORDER_ATOMIC];\n}\n\nexport const system_device_name = function (_, generator) {\n return ['control.deviceName()', generator.ORDER_ATOMIC];\n}\n\nexport const system_device_serial_number = function (_, generator) {\n return ['control.deviceSerialNumber()', generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const Panic_with_status_code = function (_, generator) {\n var status_code = generator.valueToCode(this, 'STATUS_CODE', generator.ORDER_ATOMIC) || '1000'\n var code = 'panic(' + status_code + ')\\n';\n return code;\n}\n\n//ok\nexport const controls_millis = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var dropdown_time = this.getFieldValue('Time');\n switch (dropdown_time) {\n case \"ms\":\n var code = 'time.ticks_ms()';\n return [code, generator.ORDER_ATOMIC];\n case \"us\":\n var code = 'time.ticks_us()';\n return [code, generator.ORDER_ATOMIC];\n }\n}\n\n//ok\nexport const controls_end_program = function () {\n return 'while True:\\n pass\\n';\n}\n\n//ok\nexport const reset = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n return 'reset()\\n';\n}\n\nexport const controls_uname = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n return 'os.uname()';\n}\n\nexport const controls_delay = function (_, generator) {\n // generator.definitions_.import_time = \"import time\";\n generator.definitions_['import_time'] = 'import time';\n var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'\n var dropdown_time = this.getFieldValue('Time');\n switch (dropdown_time) {\n case \"s\":\n var code = 'time.sleep(' + delay_time + ')\\n';\n return code;\n case \"ms\":\n var code = 'time.sleep_ms(' + delay_time + ')\\n';\n return code;\n case \"us\":\n var code = 'time.sleep_us(' + delay_time + ')\\n';\n return code;\n }\n}\n\nexport const controls_delay_new = function (_, generator) {\n // generator.definitions_.import_time = \"import time\";\n generator.definitions_['import_time'] = 'import time';\n var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'\n var dropdown_time = this.getFieldValue('Time');\n switch (dropdown_time) {\n case \"s\":\n var code = 'time.sleep(' + delay_time + ')\\n';\n return code;\n case \"ms\":\n var code = 'time.sleep_ms(' + delay_time + ')\\n';\n return code;\n case \"us\":\n var code = 'time.sleep_us(' + delay_time + ')\\n';\n return code;\n }\n}\n\nexport const timer = function (_, generator) {\n generator.definitions_['import_mixgo'] = 'import mixgo';\n var v = generator.valueToCode(this, \"VAR\", generator.ORDER_NONE) || \"None\";\n var period = generator.valueToCode(this, \"period\", generator.ORDER_NONE) || \"0\";\n var mode = generator.valueToCode(this, \"mode\", generator.ORDER_NONE) || \"None\";\n var callback = generator.valueToCode(this, \"callback\", generator.ORDER_NONE) || \"None\";\n // var callback = generator.valueToCode(this, \"callback\", generator.ORDER_NONE) || \"None\";\n var code = v + \".init(period = \" + period + \", mode = Timer.\" + mode + \", callback = \" + callback + \")\\n\";\n return code;\n}\n\nexport const system_timer = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var v = generator.valueToCode(this, \"VAR\", generator.ORDER_NONE) || \"None\";\n var period = generator.valueToCode(this, \"period\", generator.ORDER_NONE) || \"0\";\n var mode = this.getFieldValue('mode');\n //var branch = generator.statementToCode(this, 'callback') || generator.PASS;\n var callback = generator.valueToCode(this, \"callback\", generator.ORDER_NONE) || \"None\";\n //var code = v + \".init(period = \" + period + \", mode = machine.Timer.\" + mode + \", callback = \" + v + \"_callback_func)\\n\";\n //generator.setups_['timer_callback_func'] = 'def ' + v + '_callback_func(t):\\n' + branch + '\\n';\n var code = v + \".init(period = \" + period + \", mode = machine.Timer.\" + mode + \", callback = \" + callback + \")\\n\";\n return code;\n}\n\nexport const system_ticks_diff = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var end = generator.valueToCode(this, \"END\", generator.ORDER_NONE) || \"0\";\n var start = generator.valueToCode(this, \"START\", generator.ORDER_NONE) || \"0\";\n var code = \"time.ticks_diff(\" + end + \", \" + start + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const system_timer_init = function (_, generator) {\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n generator.definitions_['import_machine'] = 'import machine';\n var code = v + ' = machine.Timer(0)\\n';\n return code;\n}\n\nexport const system_wdt_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var period = generator.valueToCode(this, \"period\", generator.ORDER_NONE) || \"0\";\n var code = 'wdt = machine.WDT(timeout= ' + period + ')\\n';\n return code;\n}\n\nexport const system_wdt_feed = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var code = 'wdt.feed()\\n';\n return code;\n}\n\nexport const system_machine_reset = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var code = 'machine.reset()\\n';\n return code;\n}\n\nexport const system_bitbot_shutdown = function (_, generator) {\n generator.definitions_['import_bitbot_onboard_bot51'] = 'from bitbot import onboard_bot51';\n var code = 'onboard_bot51.shutdown()\\n';\n return code;\n}\n\nexport const Timer_init = system_timer_init;\nexport const timer2 = system_timer;\nexport const time_ticks_diff = system_ticks_diff;\nexport const base_delay = controls_delay;","export const WEATHER_NOW = function (_, generator) {\n generator.definitions_['import_seniverse_api'] = \"import seniverse_api\";\n var dropdown_mode = this.getFieldValue('mode');\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var code = 'seniverse_api.' + dropdown_mode + '(' + key + ',' + addr + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const WEATHER_DAILY = function (_, generator) {\n generator.definitions_['import_seniverse_api'] = \"import seniverse_api\";\n var dropdown_mode = this.getFieldValue('mode');\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n var code = 'seniverse_api.' + dropdown_mode + '(' + key + ',' + addr + ',' + day + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const WEATHER_HOUR = function (_, generator) {\n generator.definitions_['import_seniverse_api'] = \"import seniverse_api\";\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var hour = generator.valueToCode(this, 'hour', generator.ORDER_ATOMIC);\n var code = 'seniverse_api.weather_hourly(' + key + ',' + addr + ',' + hour + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const Weather_now = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var dropdown_mode = this.getFieldValue('mode');\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var code = dropdown_mode + '.request(' + key + ',' + addr + ')\\n';\n return code;\n};\n\nexport const Weather_now_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Weather_now.analysis()';\n }\n else {\n var code = 'Weather_now.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Air_now_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Air_now.analysis()';\n }\n else {\n var code = 'Air_now.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Weather_alarm_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Weather_alarm.analysis()';\n }\n else {\n var code = 'Weather_alarm.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Life_suggestion_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Life_suggestion.analysis()';\n }\n else {\n var code = 'Life_suggestion.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Tide_daily_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Tide_daily.analysis()';\n }\n else {\n var code = 'Tide_daily.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Location_search_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n if (content == 'none') {\n var code = 'Location_search.analysis()';\n }\n else {\n var code = 'Location_search.analysis(\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Weather_daily = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var dropdown_mode = this.getFieldValue('mode');\n var key = generator.valueToCode(this, 'key', generator.ORDER_ATOMIC);\n var addr = generator.valueToCode(this, 'addr', generator.ORDER_ATOMIC);\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n var code = dropdown_mode + '.request(' + key + ',' + addr + ',' + day + ')\\n';\n return code;\n};\n\nexport const Weather_daily_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n if (content == 'none') {\n var code = 'Weather_daily.analysis('+day+')';\n }\n else {\n var code = 'Weather_daily.analysis(' + day + ',\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Air_daily_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n if (content == 'none') {\n var code = 'Air_daily.analysis('+day+')';\n }\n else {\n var code = 'Air_daily.analysis(' + day + ',\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Geo_sun_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n if (content == 'none') {\n var code = 'Geo_sun.analysis('+day+')';\n }\n else {\n var code = 'Geo_sun.analysis(' + day + ',\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};\n\nexport const Geo_moon_content = function (_, generator) {\n generator.definitions_['import_seniverse_api*'] = \"from seniverse_api import *\";\n var content = this.getFieldValue('content');\n var day = generator.valueToCode(this, 'day', generator.ORDER_ATOMIC);\n if (content == 'none') {\n var code = 'Geo_moon.analysis('+day+')';\n }\n else {\n var code = 'Geo_moon.analysis(' + day + ',\"' + content + '\")';\n }\n return [code, generator.ORDER_ATOMIC];\n};","import { Profile } from 'mixly';\n\nconst pins = {};\n\npins[\"MixGo MINI\"] = {\n description: \"MicroPython[ESP32C3 MixGo MINI]\",\n digital_pin: Profile.generate(['0-10', '18']),\n input_pin: Profile.generate(['0-10', '18']),\n output_pin: Profile.generate(['0-10', '18']),\n pwm_input: Profile.generate(['0-10', '18'], 'pwm', 'pwm'),\n analog_input: Profile.generate(['0-4'], 'adc', 'adc'),\n pwm_output: Profile.generate(['0-10', '18'], 'pwm', 'pwm'),\n analog_output: Profile.generate(['0-4'], 'adc', 'adc'),\n espnow_channel: Profile.generate(['1-13']),\n haskylens_model: Profile.generate(['0-4']),\n digital: Profile.generate(['0-10', '18'], 'pin', 'pin'),\n pwm_pin: Profile.generate(['0-10', '18']),\n pwm: Profile.generate(['0-10', '18'], 'pwm', 'pwm'),\n analog_pin: Profile.generate(['0-4']),\n analog: Profile.generate(['0-4'], 'adc', 'adc'),\n button: [[\"B1\", \"B1key\"], [\"B2\", \"B2key\"], [\"A1\", \"A1key\"], [\"A2\", \"A2key\"], [\"A3\", \"A3key\"], [\"A4\", \"A4key\"]],\n buttonB: [[\"B1\", \"B1key\"], [\"B2\", \"B2key\"]],\n axis: Profile.generate(['0-4']),\n exlcdh: Profile.generate(['0-11']),\n exlcdv: Profile.generate(['0-7']),\n brightness: Profile.generate(['0-9']),\n tts_voice: Profile.generate(['0-16']),\n tts_builtin_music: Profile.generate(['0-47']),\n tts_bgmusic: Profile.generate(['0-15']),\n //builtinimg: [[\"HEART\", \"matrix.Image.HEART\"],[\"HEART_SMALL\", \"matrix.Image.HEART_SMALL\"],[\"HAPPY\", \"matrix.Image.HAPPY\"],[\"SAD\", \"matrix.Image.SAD\"],[\"SMILE\", \"matrix.Image.SMILE\"],[\"SILLY\", \"matrix.Image.SILLY\"],[\"FABULOUS\", \"matrix.Image.FABULOUS\"],[\"SURPRISED\", \"matrix.Image.SURPRISED\"],[\"ASLEEP\", \"matrix.Image.ASLEEP\"],[\"ANGRY\", \"matrix.Image.ANGRY\"],[\"CONFUSED\", \"matrix.Image.CONFUSED\"],[\"NO\", \"matrix.Image.NO\"],[\"YES\", \"matrix.Image.YES\"],[\"LEFT_ARROW\", \"matrix.Image.LEFT_ARROW\"],[\"RIGHT_ARROW\", \"matrix.Image.RIGHT_ARROW\"],[\"DRESS\", \"matrix.Image.DRESS\"],[\"TRANSFORMERS\", \"matrix.Image.TRANSFORMERS\"],[\"SCISSORS\", \"matrix.Image.SCISSORS\"],[\"EXIT\", \"matrix.Image.EXIT\"],[\"TREE\", \"matrix.Image.TREE\"],[\"PACMAN\", \"matrix.Image.PACMAN\"],[\"TARGET\", \"matrix.Image.TARGET\"],[\"TSHIRT\", \"matrix.Image.TSHIRT\"],[\"ROLLERSKATE\", \"matrix.Image.ROLLERSKATE\"],[\"DUCK\", \"matrix.Image.DUCK\"],[\"HOUSE\", \"matrix.Image.HOUSE\"],[\"TORTOISE\", \"matrix.Image.TORTOISE\"],[\"BUTTERFLY\", \"matrix.Image.BUTTERFLY\"],[\"STICKFIGURE\", \"matrix.Image.STICKFIGURE\"],[\"GHOST\", \"matrix.Image.GHOST\"],[\"PITCHFORK\", \"matrix.Image.PITCHFORK\"],[\"MUSIC_QUAVERS\", \"matrix.Image.MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"matrix.Image.MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"matrix.Image.MUSIC_CROTCHET\"],[\"COW\", \"matrix.Image.COW\"],[\"RABBIT\", \"matrix.Image.RABBIT\"],[\"SQUARE_SMALL\", \"matrix.Image.SQUARE_SMALL\"],[\"SQUARE\", \"matrix.Image.SQUARE\"],[\"DIAMOND_SMALL\", \"matrix.Image.DIAMOND_SMALL\"],[\"DIAMOND\", \"matrix.Image.DIAMOND\"],[\"CHESSBOARD\", \"matrix.Image.CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"matrix.Image.TRIANGLE_LEFT\"],[\"TRIANGLE\", \"matrix.Image.TRIANGLE\"],[\"SNAKE\", \"matrix.Image.SNAKE\"],[\"UMBRELLA\", \"matrix.Image.UMBRELLA\"],[\"SKULL\", \"matrix.Image.SKULL\"],[\"GIRAFFE\", \"matrix.Image.GIRAFFE\"],[\"SWORD\", \"matrix.Image.SWORD\"]],\n builtinimg: [[\"HEART\", \"onboard_matrix.HEART\"], [\"HEART_SMALL\", \"onboard_matrix.HEART_SMALL\"], [\"HAPPY\", \"onboard_matrix.HAPPY\"], [\"SAD\", \"onboard_matrix.SAD\"], [\"SMILE\", \"onboard_matrix.SMILE\"], [\"ANGRY\", \"onboard_matrix.ANGRY\"], [\"NO\", \"onboard_matrix.NO\"], [\"YES\", \"onboard_matrix.YES\"], [\"DOOR_OPEN\", \"onboard_matrix.DOOR_OPEN\"], [\"DOOR_OPENING\", \"onboard_matrix.DOOR_OPENING\"], [\"DOOR_CLOSE\", \"onboard_matrix.DOOR_CLOSE\"]],\n builtinimg_extern: [[\"HEART\", \"matrix32x12.Matrix.HEART\"], [\"HEART_SMALL\", \"matrix32x12.Matrix.HEART_SMALL\"], [\"HAPPY\", \"matrix32x12.Matrix.HAPPY\"], [\"SAD\", \"matrix32x12.Matrix.SAD\"], [\"SMILE\", \"matrix32x12.Matrix.SMILE\"], [\"SILLY\", \"matrix32x12.Matrix.SILLY\"], [\"FABULOUS\", \"matrix32x12.Matrix.FABULOUS\"], [\"SURPRISED\", \"matrix32x12.Matrix.SURPRISED\"], [\"ASLEEP\", \"matrix32x12.Matrix.ASLEEP\"], [\"ANGRY\", \"matrix32x12.Matrix.ANGRY\"], [\"CONFUSED\", \"matrix32x12.Matrix.CONFUSED\"], [\"NO\", \"matrix32x12.Matrix.NO\"], [\"YES\", \"matrix32x12.Matrix.YES\"], [\"LEFT_ARROW\", \"matrix32x12.Matrix.LEFT_ARROW\"], [\"RIGHT_ARROW\", \"matrix32x12.Matrix.RIGHT_ARROW\"], [\"DRESS\", \"matrix32x12.Matrix.DRESS\"], [\"TRANSFORMERS\", \"matrix32x12.Matrix.TRANSFORMERS\"], [\"SCISSORS\", \"matrix32x12.Matrix.SCISSORS\"], [\"EXIT\", \"matrix32x12.Matrix.EXIT\"], [\"TREE\", \"matrix32x12.Matrix.TREE\"], [\"PACMAN\", \"matrix32x12.Matrix.PACMAN\"], [\"TARGET\", \"matrix32x12.Matrix.TARGET\"], [\"TSHIRT\", \"matrix32x12.Matrix.TSHIRT\"], [\"ROLLERSKATE\", \"matrix32x12.Matrix.ROLLERSKATE\"], [\"DUCK\", \"matrix32x12.Matrix.DUCK\"], [\"HOUSE\", \"matrix32x12.Matrix.HOUSE\"], [\"TORTOISE\", \"matrix32x12.Matrix.TORTOISE\"], [\"BUTTERFLY\", \"matrix32x12.Matrix.BUTTERFLY\"], [\"STICKFIGURE\", \"matrix32x12.Matrix.STICKFIGURE\"], [\"GHOST\", \"matrix32x12.Matrix.GHOST\"], [\"PITCHFORK\", \"matrix32x12.Matrix.PITCHFORK\"], [\"onboard_music_QUAVERS\", \"matrix32x12.Matrix.onboard_music_QUAVERS\"], [\"onboard_music_QUAVER\", \"matrix32x12.Matrix.onboard_music_QUAVER\"], [\"onboard_music_CROTCHET\", \"matrix32x12.Matrix.onboard_music_CROTCHET\"], [\"COW\", \"matrix32x12.Matrix.COW\"], [\"RABBIT\", \"matrix32x12.Matrix.RABBIT\"], [\"SQUARE_SMALL\", \"matrix32x12.Matrix.SQUARE_SMALL\"], [\"SQUARE\", \"matrix32x12.Matrix.SQUARE\"], [\"DIAMOND_SMALL\", \"matrix32x12.Matrix.DIAMOND_SMALL\"], [\"DIAMOND\", \"matrix32x12.Matrix.DIAMOND\"], [\"CHESSBOARD\", \"matrix32x12.Matrix.CHESSBOARD\"], [\"TRIANGLE_LEFT\", \"matrix32x12.Matrix.TRIANGLE_LEFT\"], [\"TRIANGLE\", \"matrix32x12.Matrix.TRIANGLE\"], [\"SNAKE\", \"matrix32x12.Matrix.SNAKE\"], [\"UMBRELLA\", \"matrix32x12.Matrix.UMBRELLA\"], [\"SKULL\", \"matrix32x12.Matrix.SKULL\"], [\"GIRAFFE\", \"matrix32x12.Matrix.GIRAFFE\"], [\"SWORD\", \"matrix32x12.Matrix.SWORD\"]],\n imglist: [[\"ALL_CLOCKS\", \"matrix.Image.ALL_CLOCKS\"], [\"ALL_ARROWS\", \"matrix.Image.ALL_ARROWS\"]],\n playlist: [[\"DADADADUM\", \"onboard_music.DADADADUM\"], [\"BIRTHDAY\", \"onboard_music.BIRTHDAY\"], [\"BA_DING\", \"onboard_music.BA_DING\"], [\"JUMP_UP\", \"onboard_music.JUMP_UP\"], [\"JUMP_DOWN\", \"onboard_music.JUMP_DOWN\"], [\"POWER_UP\", \"onboard_music.POWER_UP\"], [\"POWER_DOWN\", \"onboard_music.POWER_DOWN\"]],\n playlist_extern: [[\"DADADADUM\", \"DADADADUM\"], [\"ENTERTAINER\", \"ENTERTAINER\"], [\"PRELUDE\", \"PRELUDE\"], [\"ODE\", \"ODE\"], [\"NYAN\", \"NYAN\"], [\"RINGTONE\", \"RINGTONE\"], [\"FUNK\", \"FUNK\"], [\"BLUES\", \"BLUES\"], [\"BIRTHDAY\", \"BIRTHDAY\"], [\"WEDDING\", \"WEDDING\"], [\"FUNERAL\", \"FUNERAL\"], [\"PUNCHLINE\", \"PUNCHLINE\"], [\"PYTHON\", \"PYTHON\"], [\"BADDY\", \"BADDY\"], [\"CHASE\", \"CHASE\"], [\"BA_DING\", \"BA_DING\"], [\"WAWAWAWAA\", \"WAWAWAWAA\"], [\"JUMP_UP\", \"JUMP_UP\"], [\"JUMP_DOWN\", \"JUMP_DOWN\"], [\"POWER_UP\", \"POWER_UP\"], [\"POWER_DOWN\", \"POWER_DOWN\"]],\n tone_notes: [\n [\"NOTE_C3\", \"131\"], [\"NOTE_D3\", \"147\"], [\"NOTE_E3\", \"165\"], [\"NOTE_F3\", \"175\"], [\"NOTE_G3\", \"196\"], [\"NOTE_A3\", \"220\"], [\"NOTE_B3\", \"247\"],\n [\"NOTE_C4\", \"262\"], [\"NOTE_D4\", \"294\"], [\"NOTE_E4\", \"330\"], [\"NOTE_F4\", \"349\"], [\"NOTE_G4\", \"392\"], [\"NOTE_A4\", \"440\"], [\"NOTE_B4\", \"494\"],\n [\"NOTE_C5\", \"523\"], [\"NOTE_D5\", \"587\"], [\"NOTE_E5\", \"659\"], [\"NOTE_F5\", \"698\"], [\"NOTE_G5\", \"784\"], [\"NOTE_A5\", \"880\"], [\"NOTE_B5\", \"988\"]\n ],\n serial_pin: [[\"pin0\", \"0\"], [\"pin1\", \"1\"], [\"pin2\", \"2\"], [\"pin8\", \"8\"], [\"pin12\", \"12\"], [\"pin13\", \"13\"], [\"pin14\", \"14\"], [\"pin15\", \"15\"], [\"pin16\", \"16\"]],\n radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],\n radio_datarate: [[\"1Mbit\", \"RATE_1MBIT\"], [\"250Kbit\", \"RATE_250KBIT\"], [\"2Mbit\", \"RATE_2MBIT\"]],\n one_more: [[\"ONE_SHOT\", \"ONE_SHOT\"], [\"PERIODIC\", \"PERIODIC\"]],\n digital_dot: [[\"0\", \"0\"], [\"1\", \"1\"], [\"2\", \"2\"]]\n};\n\npins[\"ESP32C2 Generic(2M)\"] = {\n description: \"MicroPython[ESP32C3 MixGo CC]\",\n digital_pin: Profile.generate(['0-11', '18-21']),\n input_pin: Profile.generate(['0-11', '18-21']),\n output_pin: Profile.generate(['0-11', '18-21']),\n pwm_input: Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'),\n analog_input: Profile.generate(['0-5'], 'adc', 'adc'),\n pwm_output: Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'),\n analog_output: Profile.generate(['0-5'], 'adc', 'adc'),\n espnow_channel: Profile.generate(['1-13']),\n haskylens_model: Profile.generate(['0-4']),\n digital: Profile.generate(['0-11', '18-21'], 'pin', 'pin'),\n pwm_pin: Profile.generate(['0-11', '18-21']),\n pwm: Profile.generate(['0-11', '18-21'], 'pwm', 'pwm'),\n analog_pin: Profile.generate(['0-5']),\n analog: Profile.generate(['0-5'], 'adc', 'adc'),\n button: [[\"B1\", \"B1key\"], [\"B2\", \"B2key\"], [\"A1\", \"A1key\"], [\"A2\", \"A2key\"], [\"A3\", \"A3key\"], [\"A4\", \"A4key\"]],\n buttonB: [[\"B1\", \"B1key\"], [\"B2\", \"B2key\"]],\n axis: Profile.generate(['0-4']),\n exlcdh: Profile.generate(['0-31']),\n exlcdv: Profile.generate(['0-11']),\n brightness: Profile.generate(['0-9']),\n tts_voice: Profile.generate(['0-16']),\n tts_builtin_music: Profile.generate(['0-47']),\n tts_bgmusic: Profile.generate(['0-15']),\n //builtinimg: [[\"HEART\", \"matrix.Image.HEART\"],[\"HEART_SMALL\", \"matrix.Image.HEART_SMALL\"],[\"HAPPY\", \"matrix.Image.HAPPY\"],[\"SAD\", \"matrix.Image.SAD\"],[\"SMILE\", \"matrix.Image.SMILE\"],[\"SILLY\", \"matrix.Image.SILLY\"],[\"FABULOUS\", \"matrix.Image.FABULOUS\"],[\"SURPRISED\", \"matrix.Image.SURPRISED\"],[\"ASLEEP\", \"matrix.Image.ASLEEP\"],[\"ANGRY\", \"matrix.Image.ANGRY\"],[\"CONFUSED\", \"matrix.Image.CONFUSED\"],[\"NO\", \"matrix.Image.NO\"],[\"YES\", \"matrix.Image.YES\"],[\"LEFT_ARROW\", \"matrix.Image.LEFT_ARROW\"],[\"RIGHT_ARROW\", \"matrix.Image.RIGHT_ARROW\"],[\"DRESS\", \"matrix.Image.DRESS\"],[\"TRANSFORMERS\", \"matrix.Image.TRANSFORMERS\"],[\"SCISSORS\", \"matrix.Image.SCISSORS\"],[\"EXIT\", \"matrix.Image.EXIT\"],[\"TREE\", \"matrix.Image.TREE\"],[\"PACMAN\", \"matrix.Image.PACMAN\"],[\"TARGET\", \"matrix.Image.TARGET\"],[\"TSHIRT\", \"matrix.Image.TSHIRT\"],[\"ROLLERSKATE\", \"matrix.Image.ROLLERSKATE\"],[\"DUCK\", \"matrix.Image.DUCK\"],[\"HOUSE\", \"matrix.Image.HOUSE\"],[\"TORTOISE\", \"matrix.Image.TORTOISE\"],[\"BUTTERFLY\", \"matrix.Image.BUTTERFLY\"],[\"STICKFIGURE\", \"matrix.Image.STICKFIGURE\"],[\"GHOST\", \"matrix.Image.GHOST\"],[\"PITCHFORK\", \"matrix.Image.PITCHFORK\"],[\"MUSIC_QUAVERS\", \"matrix.Image.MUSIC_QUAVERS\"],[\"MUSIC_QUAVER\", \"matrix.Image.MUSIC_QUAVER\"],[\"MUSIC_CROTCHET\", \"matrix.Image.MUSIC_CROTCHET\"],[\"COW\", \"matrix.Image.COW\"],[\"RABBIT\", \"matrix.Image.RABBIT\"],[\"SQUARE_SMALL\", \"matrix.Image.SQUARE_SMALL\"],[\"SQUARE\", \"matrix.Image.SQUARE\"],[\"DIAMOND_SMALL\", \"matrix.Image.DIAMOND_SMALL\"],[\"DIAMOND\", \"matrix.Image.DIAMOND\"],[\"CHESSBOARD\", \"matrix.Image.CHESSBOARD\"],[\"TRIANGLE_LEFT\", \"matrix.Image.TRIANGLE_LEFT\"],[\"TRIANGLE\", \"matrix.Image.TRIANGLE\"],[\"SNAKE\", \"matrix.Image.SNAKE\"],[\"UMBRELLA\", \"matrix.Image.UMBRELLA\"],[\"SKULL\", \"matrix.Image.SKULL\"],[\"GIRAFFE\", \"matrix.Image.GIRAFFE\"],[\"SWORD\", \"matrix.Image.SWORD\"]],\n builtinimg: [[\"HEART\", \"onboard_matrix.HEART\"], [\"HEART_SMALL\", \"onboard_matrix.HEART_SMALL\"], [\"HAPPY\", \"onboard_matrix.HAPPY\"], [\"SAD\", \"onboard_matrix.SAD\"], [\"SMILE\", \"onboard_matrix.SMILE\"], [\"SILLY\", \"onboard_matrix.SILLY\"], [\"FABULOUS\", \"onboard_matrix.FABULOUS\"], [\"SURPRISED\", \"onboard_matrix.SURPRISED\"], [\"ASLEEP\", \"onboard_matrix.ASLEEP\"], [\"ANGRY\", \"onboard_matrix.ANGRY\"], [\"CONFUSED\", \"onboard_matrix.CONFUSED\"], [\"NO\", \"onboard_matrix.NO\"], [\"YES\", \"onboard_matrix.YES\"]],\n builtinimg_extern: [[\"HEART\", \"matrix32x12.Matrix.HEART\"], [\"HEART_SMALL\", \"matrix32x12.Matrix.HEART_SMALL\"], [\"HAPPY\", \"matrix32x12.Matrix.HAPPY\"], [\"SAD\", \"matrix32x12.Matrix.SAD\"], [\"SMILE\", \"matrix32x12.Matrix.SMILE\"], [\"SILLY\", \"matrix32x12.Matrix.SILLY\"], [\"FABULOUS\", \"matrix32x12.Matrix.FABULOUS\"], [\"SURPRISED\", \"matrix32x12.Matrix.SURPRISED\"], [\"ASLEEP\", \"matrix32x12.Matrix.ASLEEP\"], [\"ANGRY\", \"matrix32x12.Matrix.ANGRY\"], [\"CONFUSED\", \"matrix32x12.Matrix.CONFUSED\"], [\"NO\", \"matrix32x12.Matrix.NO\"], [\"YES\", \"matrix32x12.Matrix.YES\"], [\"LEFT_ARROW\", \"matrix32x12.Matrix.LEFT_ARROW\"], [\"RIGHT_ARROW\", \"matrix32x12.Matrix.RIGHT_ARROW\"], [\"DRESS\", \"matrix32x12.Matrix.DRESS\"], [\"TRANSFORMERS\", \"matrix32x12.Matrix.TRANSFORMERS\"], [\"SCISSORS\", \"matrix32x12.Matrix.SCISSORS\"], [\"EXIT\", \"matrix32x12.Matrix.EXIT\"], [\"TREE\", \"matrix32x12.Matrix.TREE\"], [\"PACMAN\", \"matrix32x12.Matrix.PACMAN\"], [\"TARGET\", \"matrix32x12.Matrix.TARGET\"], [\"TSHIRT\", \"matrix32x12.Matrix.TSHIRT\"], [\"ROLLERSKATE\", \"matrix32x12.Matrix.ROLLERSKATE\"], [\"DUCK\", \"matrix32x12.Matrix.DUCK\"], [\"HOUSE\", \"matrix32x12.Matrix.HOUSE\"], [\"TORTOISE\", \"matrix32x12.Matrix.TORTOISE\"], [\"BUTTERFLY\", \"matrix32x12.Matrix.BUTTERFLY\"], [\"STICKFIGURE\", \"matrix32x12.Matrix.STICKFIGURE\"], [\"GHOST\", \"matrix32x12.Matrix.GHOST\"], [\"PITCHFORK\", \"matrix32x12.Matrix.PITCHFORK\"], [\"onboard_music_QUAVERS\", \"matrix32x12.Matrix.onboard_music_QUAVERS\"], [\"onboard_music_QUAVER\", \"matrix32x12.Matrix.onboard_music_QUAVER\"], [\"onboard_music_CROTCHET\", \"matrix32x12.Matrix.onboard_music_CROTCHET\"], [\"COW\", \"matrix32x12.Matrix.COW\"], [\"RABBIT\", \"matrix32x12.Matrix.RABBIT\"], [\"SQUARE_SMALL\", \"matrix32x12.Matrix.SQUARE_SMALL\"], [\"SQUARE\", \"matrix32x12.Matrix.SQUARE\"], [\"DIAMOND_SMALL\", \"matrix32x12.Matrix.DIAMOND_SMALL\"], [\"DIAMOND\", \"matrix32x12.Matrix.DIAMOND\"], [\"CHESSBOARD\", \"matrix32x12.Matrix.CHESSBOARD\"], [\"TRIANGLE_LEFT\", \"matrix32x12.Matrix.TRIANGLE_LEFT\"], [\"TRIANGLE\", \"matrix32x12.Matrix.TRIANGLE\"], [\"SNAKE\", \"matrix32x12.Matrix.SNAKE\"], [\"UMBRELLA\", \"matrix32x12.Matrix.UMBRELLA\"], [\"SKULL\", \"matrix32x12.Matrix.SKULL\"], [\"GIRAFFE\", \"matrix32x12.Matrix.GIRAFFE\"], [\"SWORD\", \"matrix32x12.Matrix.SWORD\"]],\n imglist: [[\"ALL_CLOCKS\", \"matrix.Image.ALL_CLOCKS\"], [\"ALL_ARROWS\", \"matrix.Image.ALL_ARROWS\"]],\n playlist: [[\"DADADADUM\", \"onboard_music.DADADADUM\"], [\"ENTERTAINER\", \"onboard_music.ENTERTAINER\"], [\"PRELUDE\", \"onboard_music.PRELUDE\"], [\"ODE\", \"onboard_music.ODE\"], [\"NYAN\", \"onboard_music.NYAN\"], [\"RINGTONE\", \"onboard_music.RINGTONE\"], [\"FUNK\", \"onboard_music.FUNK\"], [\"BLUES\", \"onboard_music.BLUES\"], [\"BIRTHDAY\", \"onboard_music.BIRTHDAY\"], [\"WEDDING\", \"onboard_music.WEDDING\"], [\"FUNERAL\", \"onboard_music.FUNERAL\"], [\"PUNCHLINE\", \"onboard_music.PUNCHLINE\"], [\"PYTHON\", \"onboard_music.PYTHON\"], [\"BADDY\", \"onboard_music.BADDY\"], [\"CHASE\", \"onboard_music.CHASE\"], [\"BA_DING\", \"onboard_music.BA_DING\"], [\"WAWAWAWAA\", \"onboard_music.WAWAWAWAA\"], [\"JUMP_UP\", \"onboard_music.JUMP_UP\"], [\"JUMP_DOWN\", \"onboard_music.JUMP_DOWN\"], [\"POWER_UP\", \"onboard_music.POWER_UP\"], [\"POWER_DOWN\", \"onboard_music.POWER_DOWN\"]],\n playlist_extern: [[\"DADADADUM\", \"DADADADUM\"], [\"ENTERTAINER\", \"ENTERTAINER\"], [\"PRELUDE\", \"PRELUDE\"], [\"ODE\", \"ODE\"], [\"NYAN\", \"NYAN\"], [\"RINGTONE\", \"RINGTONE\"], [\"FUNK\", \"FUNK\"], [\"BLUES\", \"BLUES\"], [\"BIRTHDAY\", \"BIRTHDAY\"], [\"WEDDING\", \"WEDDING\"], [\"FUNERAL\", \"FUNERAL\"], [\"PUNCHLINE\", \"PUNCHLINE\"], [\"PYTHON\", \"PYTHON\"], [\"BADDY\", \"BADDY\"], [\"CHASE\", \"CHASE\"], [\"BA_DING\", \"BA_DING\"], [\"WAWAWAWAA\", \"WAWAWAWAA\"], [\"JUMP_UP\", \"JUMP_UP\"], [\"JUMP_DOWN\", \"JUMP_DOWN\"], [\"POWER_UP\", \"POWER_UP\"], [\"POWER_DOWN\", \"POWER_DOWN\"]],\n tone_notes: [\n [\"NOTE_C3\", \"131\"], [\"NOTE_D3\", \"147\"], [\"NOTE_E3\", \"165\"], [\"NOTE_F3\", \"175\"], [\"NOTE_G3\", \"196\"], [\"NOTE_A3\", \"220\"], [\"NOTE_B3\", \"247\"],\n [\"NOTE_C4\", \"262\"], [\"NOTE_D4\", \"294\"], [\"NOTE_E4\", \"330\"], [\"NOTE_F4\", \"349\"], [\"NOTE_G4\", \"392\"], [\"NOTE_A4\", \"440\"], [\"NOTE_B4\", \"494\"],\n [\"NOTE_C5\", \"523\"], [\"NOTE_D5\", \"587\"], [\"NOTE_E5\", \"659\"], [\"NOTE_F5\", \"698\"], [\"NOTE_G5\", \"784\"], [\"NOTE_A5\", \"880\"], [\"NOTE_B5\", \"988\"]\n ],\n serial_pin: [[\"pin0\", \"0\"], [\"pin1\", \"1\"], [\"pin2\", \"2\"], [\"pin8\", \"8\"], [\"pin12\", \"12\"], [\"pin13\", \"13\"], [\"pin14\", \"14\"], [\"pin15\", \"15\"], [\"pin16\", \"16\"]],\n radio_power: [['0', '0'], ['1', '1'], ['2', '2'], ['3', '3'], ['4', '4'], ['5', '5'], ['6', '6'], ['7', '7']],\n radio_datarate: [[\"1Mbit\", \"RATE_1MBIT\"], [\"250Kbit\", \"RATE_250KBIT\"], [\"2Mbit\", \"RATE_2MBIT\"]],\n one_more: [[\"ONE_SHOT\", \"ONE_SHOT\"], [\"PERIODIC\", \"PERIODIC\"]],\n digital_dot: [[\"0\", \"0\"], [\"1\", \"1\"], [\"2\", \"2\"]],\n};\n\nexport default pins;","import * as Blockly from 'blockly/core';\n\nconst BASE_HUE = 20; //'#ae3838';//40;\n\nexport const inout_highlow = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_HIGH, \"HIGH\"],\n [Blockly.Msg.MIXLY_LOW, \"LOW\"]\n ]), 'BOOL')\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP);\n }\n};\n\nexport const inout_digital_write = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Digital_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"STAT\")\n .appendField(Blockly.Msg.MIXLY_STAT)\n .setCheck([Number, Boolean]);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP);\n }\n};\n\nexport const inout_digital_read = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_Digital_PINMODEIN)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)\n this.setInputsInline(true);\n this.setOutput(true, [Boolean, Number]);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP);\n }\n};\n\nexport const inout_analog_write = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"DAC\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_VALUE2)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP);\n }\n};\n\nexport const inout_analog_write_set = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_mSecond, \"period\"],\n [Blockly.Msg.MIXLY_uSecond, \"period_microseconds\"]\n ]), \"key\");\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_STAT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP);\n }\n};\n\nexport const inout_analog_atten = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_Analog_PINMODEIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_REF_VOLTAGE + Blockly.Msg.MIXLY_STAT)\n .appendField(new Blockly.FieldDropdown([\n [\"3.3V\", \"machine.ADC.ATTN_11DB\"],\n [\"2.2V\", \"machine.ADC.ATTN_6DB\"],\n [\"1.5V\", \"machine.ADC.ATTN_2_5DB\"],\n [\"1.2V\", \"machine.ADC.ATTN_0DB\"]\n ]), \"atten\");\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP);\n }\n};\n\n\nexport const inout_pin_pressed = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput('pin')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR);\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.MIXLY_IS_TOUCHED);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MACHINE_VALUE)\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP);\n }\n};\n\nexport const inout_pin_attachInterrupt = {\n init: function () {\n this.setColour(20);\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_ATTACHINTERRUPT_PIN)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RISING, \"machine.Pin.IRQ_RISING\"],\n [Blockly.Msg.MIXLY_FALLING, \"machine.Pin.IRQ_FALLING\"],\n [Blockly.Msg.MIXLY_CHANGE, \"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)\"]\n ]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP);\n }\n};\n\nexport const inout_digital_init = {\n init: function () {\n this.setColour(20);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('pin#'), 'PIN_OBJ');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n // .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE+Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_Digital_PINMODEOUT, \"machine.Pin.OUT\"],\n [Blockly.Msg.MIXLY_Digital_PINMODEIN, \"machine.Pin.IN\"],\n [Blockly.Msg.MIXLY_PINMODEPULLUP, \"machine.Pin.IN, machine.Pin.PULL_UP\"],\n [Blockly.Msg.MIXLY_PINMODEPULLDOWN, \"machine.Pin.IN, machine.Pin.PULL_DOWN\"]\n ]), \"MODE\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'pin#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_analog_write_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('dac#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(\"DAC\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('dac')\n // .appendField(new Blockly.FieldDropdown(profile.default.dac_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'dac#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_pin_pressed_init = {\n init: function () {\n this.setColour(BASE_HUE);\n // this.appendValueInput(\"PIN\", Number)\n // .appendField(Blockly.Msg.MIXLY_SETUP)\n // .appendField(\"PWM\"+Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n // .appendField('pwm')\n // .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n .appendField(new Blockly.FieldTextInput('tc#'), 'PIN_OBJ')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_AS)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_TOUCH_SENSOR)\n // .appendField('tc')\n // .appendField(new Blockly.FieldDropdown(profile.default.tc_pin),\"PIN\")\n this.appendValueInput(\"PIN\", Number)\n .appendField(Blockly.Msg.MIXLY_PIN)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('PIN_OBJ') == 'tc#' ? null : this.getFieldValue('PIN_OBJ')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('PIN_OBJ'))) {\n this.setTitleValue(newName, 'PIN_OBJ');\n }\n }\n};\n\nexport const inout_analog_write_set_freq = {\n init: function () {\n this.setColour(BASE_HUE);\n this.appendValueInput(\"PIN\", Number)\n .appendField(\"PWM\" + Blockly.Msg.MIXLY_Analog_PINMODEOUT)\n .setCheck(Number);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_FREQUENCY + Blockly.Msg.MIXLY_STAT)\n .setCheck(Number);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP);\n }\n};\n\nexport const inout_pinMode = inout_digital_init;\nexport const pin_pressed_init = inout_pin_pressed_init;\nexport const pin_pressed = inout_pin_pressed;\nexport const controls_pin_attachInterrupt = inout_pin_attachInterrupt;\n","import * as Blockly from 'blockly/core';\n\nconst MEGO_HUE = 100;\n\n// LED\nexport const me_go_light_number = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK + Blockly.Msg.COLOUR_RGB_GREEN + Blockly.Msg.MIXLY_EXTERN_LED, \"GLED[2]\"],\n [Blockly.Msg.MIXGO_LEFT_FRONT + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK + Blockly.Msg.COLOUR_RGB_RED + Blockly.Msg.MIXLY_EXTERN_LED, \"RLED[2]\"],\n [Blockly.Msg.ME_GO_LIGHT_HEADLIGHT, \"WLED\"]\n ]), 'op')\n this.setOutput(true);\n }\n};\n\nexport const me_go_led_bright = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_SETONOFF);\n }\n};\n\nexport const me_go_get_led_bright = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const me_go_get_led_state = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PULSEIN_STAT)\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_ESP32_LED_GETONOFF);\n }\n};\n\nexport const me_go_led_brightness = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETTING);\n this.appendValueInput('led')\n .appendField('ME GO')\n this.appendValueInput('bright')\n .appendField(Blockly.Msg.MIXLY_BRIGHTNESS)\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_SETTING + Blockly.Msg.MIXLY_BUILDIN_LED + Blockly.Msg.MIXLY_BRIGHTNESS + '(0-10)');\n }\n};\n\nexport const me_go_stepper_keep = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.blockpy_forward, \"F\"],\n [Blockly.Msg.blockpy_backward, \"B\"],\n [Blockly.Msg.blockpy_left, \"L\"],\n [Blockly.Msg.blockpy_right, \"R\"]\n ]), \"VAR\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const me_go_stepper_stop = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"VAR\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const me_go_dc_motor = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(\"ME GO\")\n .appendField(Blockly.Msg.MOTOR_DC)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLYCAR_WHEEL_LEFT, \"0\"],\n [Blockly.Msg.MIXLYCAR_WHEEL_RIGHT, \"1\"],\n [Blockly.Msg.ME_GO_MOTOR_EXTERN, \"2\"]\n ]), \"wheel\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_Direction)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.ROTATION_FORWARD, \"CW\"],\n [Blockly.Msg.ROTATION_BACKWARD, \"CCW\"],\n [Blockly.Msg.MOTOR_P, \"P\"],\n [Blockly.Msg.MOTOR_N, \"N\"]\n ]), \"direction\");\n this.appendValueInput('speed')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEPPER_SET_SPEED);\n this.appendDummyInput(\"\")\n .appendField(\"%\")\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n}\n\nexport const me_go_hall_attachInterrupt = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_ESP32_INTERRUPT)\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendValueInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const me_go_hall_initialize = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([['turns', \"turns\"], ['distance', \"distance\"], ['turns,distance', 'all']]), \"args\");\n this.appendValueInput('num')\n .setCheck(Number)\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n};\n\nexport const me_go_hall_data = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.ME_GO_HALL_SENSOR)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.TEXT_TRIM_LEFT, \"A\"], [Blockly.Msg.TEXT_TRIM_RIGHT, \"B\"]]), \"mode\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([['turns', \"turns\"], ['distance', \"distance\"], ['speed', 'speed']]), \"args\");\n this.setOutput(true);\n this.setInputsInline(true);\n }\n};\n\nexport const me_go_pin_near_line = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"[0]\"],\n [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"[3]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_LINE_SENSOR_VAL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const me_go_pin_near = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXGO_LEFT_FRONT, \"[0]\"],\n [Blockly.Msg.MIXGO_RIGHT_FRONT, \"[1]\"],\n [Blockly.Msg.MIXGO_LEFT_BACK, \"[3]\"],\n [Blockly.Msg.MIXGO_RIGHT_BACK, \"[2]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXGO_PROXIMITY_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ESP32_NEAR;\n return mode0 + mode1\n });\n }\n};\n\nexport const me_go_pin_near_state_change = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_ME_GO_CAR_SENSOR_ONBOARD_AUTO_CHANGE, \"AS\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY, \"LP\"],\n [Blockly.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY, \"OA\"],\n [Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_ONLY, \"LS\"],\n [Blockly.Msg.ME_GO_SENSOR_MODE_OFF, \"CL\"]\n ]), \"key\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n }\n};\n\nexport const sensor_mixgome_eulerangles = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_GET_GESTURE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.ME_GO_PITCH, '[0]'],\n [Blockly.Msg.ME_GO_ROLL, '[1]'],\n [Blockly.Msg.ME_GO_PITCH + ', ' + Blockly.Msg.ME_GO_ROLL, '']\n ]), 'angle');\n // this.appendDummyInput(\"\")\n // .appendField(Blockly.Msg.BOARD_DIRECTION)\n // .appendField(new Blockly.FieldDropdown([\n // [Blockly.Msg.OLED_VER,'True'],\n // [Blockly.Msg.OLED_HOR,'False'],\n // ]),'dir');\n this.appendDummyInput(\"\")\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const me_go_pin_light = {\n init: function () {\n this.setColour(MEGO_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.TEXT_TRIM_LEFT, \"[0]\"],\n [Blockly.Msg.MIXGO_LEFT_MID, \"[1]\"],\n [Blockly.Msg.MIXGO_RIGHT_MID, \"[2]\"],\n [Blockly.Msg.TEXT_TRIM_RIGHT, \"[3]\"],\n [Blockly.Msg.MIXLY_ALL, \"\"]\n ]), \"key\")\n .appendField(Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(function () {\n var mode0 = Blockly.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP;\n var mode1 = Blockly.Msg.MIXLY_ME_GO_CAR_LIGHT_SEEKING_SENSOR;\n return mode0 + mode1\n });\n }\n};","import * as Blockly from 'blockly/core';\nimport { Boards } from 'mixly';\n\nconst MEG1_HUE = 40;\n\nexport const mini_g2_aht11 = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput(\"\")\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_TEM_HUM + \" AHT21\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature\"],\n [Blockly.Msg.MIXLY_GETHUMIDITY, \"humidity\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('key');\n var TOOLTIPS = {\n \"temperature\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,\n \"relative_humidity\": Blockly.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP\n };\n return TOOLTIPS[mode]\n });\n }\n};\n\nexport const mini_g2_hp203 = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput(\"\")\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_Altitude + Blockly.Msg.MSG.catSensor + \" HP203X\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_GETPRESSURE, \"pressure()\"],\n [Blockly.Msg.MIXLY_GETTEMPERATUE, \"temperature()\"],\n [Blockly.Msg.MIXLY_GET_ALTITUDE, \"altitude()\"],\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const mini_g2_varistor = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const mini_g2_rfid_readid = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_RFID_READ_CARD_UID);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const mini_g2_rfid_readcontent = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(\"RFID\" + Blockly.Msg.MIXLY_RFID_READ_CARD);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};\n\nexport const mini_g2_rfid_write = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const mini_g2_rfid_write_outcome = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_RFID_WRITE);\n this.appendValueInput('SECTOR')\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX)\n this.appendValueInput('CONTENT')\n .appendField(Blockly.Msg.MIXLY_COMMUNICATION_WRITE_NUM)\n this.appendDummyInput()\n .appendField(Blockly.Msg.RETURN_SUCCESS_OR_NOT)\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const mini_g2_rfid_status = {\n init: function () {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n if (version == \"mixgo_me\") { var name = 'ME G1' }\n this.setColour(MEG1_HUE);\n this.appendDummyInput()\n .appendField(name)\n .appendField(\"RFID\");\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_RFID_SCAN_OK, \"True\"],\n [Blockly.Msg.MIXLY_RFID_SCAN_NOTAGERR, \"None\"],\n [Blockly.Msg.MIXLY_RFID_SCAN_ERROR, \"False\"]\n ]), \"key\");\n this.setOutput(true, Number);\n this.setInputsInline(true);\n }\n};","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\n\nconst PINS_HUE = 230;\n\nexport const pins_digital = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_digital_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_input_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.input_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_output_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.output_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const espnow_channel = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.espnow_channel), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const haskylens_model = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.haskylens_model), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pwm_input = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_input), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const analog_input = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_input), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pwm_output = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_output), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const analog_output = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_output), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const i2c_A_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.i2c_A_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const i2c_B_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.i2c_B_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\n\nexport const spi_A_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_A_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_B_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_B_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_C_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_C_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const spi_D_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.spi_D_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_analog = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_analog_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.analog_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_dac = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.dac), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_dac_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.dac_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_button = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.button), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_buttonB = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.buttonB), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_pwm = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_pwm_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.pwm_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_touch_pin = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.touch_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_touch = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.touch), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_serial = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.serial_pin), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_builtinimg = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.builtinimg), 'PIN');\n this.setOutput(true, \"esp32_image\");\n }\n};\n\nexport const pins_builtinimg_extern = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.builtinimg_extern), 'PIN');\n this.setOutput(true, \"esp32_image\");\n }\n};\n\nexport const pins_imglist = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.imglist), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_playlist = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.playlist), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_playlist_extern = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.playlist_extern), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_exlcdh = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.exlcdh), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_exlcdv = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.exlcdv), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_axis = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.axis), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_brightness = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.brightness), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_tts_voice = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.tts_voice), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_tts_builtin_music = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.tts_builtin_music), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_tts_bgmusic = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.tts_bgmusic), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_tone_notes = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.tone_notes), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_radio_power = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.radio_power), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_radio_datarate = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.radio_datarate), 'PIN');\n this.setOutput(true, Number);\n }\n};\n\nexport const pins_one_more = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.one_more), 'PIN');\n this.setOutput(true);\n }\n};\n\nexport const pins_digital_dot = {\n init: function () {\n this.setColour(PINS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(Profile.default.digital_dot), 'PIN');\n this.setOutput(true, Number);\n }\n};","import MicropythonESP32C2Pins from './blocks/esp32_profile';\nimport * as MicropythonESP32C2InoutBlocks from './blocks/inout';\nimport * as MicropythonESP32C2MiniG2Blocks from './blocks/mini_g2';\nimport * as MicropythonESP32C2MEGOBlocks from './blocks/me_go';\nimport * as MicropythonESP32C2PinsBlocks from './blocks/pins';\nimport * as MicropythonESP32C2InoutGenerators from './generators/inout';\nimport * as MicropythonESP32C2MiniG2Generators from './generators/mini_g2';\nimport * as MicropythonESP32C2MEGOGenerators from './generators/me_go';\nimport * as MicropythonESP32C2PinsGenerators from './generators/pins';\n\nexport {\n MicropythonESP32C2Pins,\n MicropythonESP32C2InoutBlocks,\n MicropythonESP32C2MiniG2Blocks,\n MicropythonESP32C2MEGOBlocks,\n MicropythonESP32C2PinsBlocks,\n MicropythonESP32C2InoutGenerators,\n MicropythonESP32C2MiniG2Generators,\n MicropythonESP32C2MEGOGenerators,\n MicropythonESP32C2PinsGenerators\n};","import * as Blockly from 'blockly/core';\n\n// ok\nexport const inout_highlow = function (_, generator) {\n // Boolean values HIGH and LOW.\n var code = (this.getFieldValue('BOOL') == 'HIGH') ? '1' : '0';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const inout_digital_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_stat = generator.valueToCode(this, 'STAT', generator.ORDER_ATOMIC);\n var code = \"\";\n code += dropdown_pin + '.value(' + dropdown_stat + ')\\n'\n return code;\n}\n\n// ok\nexport const inout_digital_read = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var code = \"\";\n code = dropdown_pin + '.value()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n//ok\nexport const inout_analog_write = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //var dropdown_stat = this.getFieldValue('STAT');\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n //generator.setups_['setup_output'+dropdown_pin] = 'pinMode('+dropdown_pin+', OUTPUT);';\n var code = dropdown_pin + '.write(' + value_num + ')\\n';\n return code;\n}\n\n//ok\nexport const inout_analog_write_set = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC);\n var key = this.getFieldValue('key');\n var code = dropdown_pin + '.set_analog_' + key + '(' + value_num + ')\\n';\n //var code = 'pin' + dropdown_pin + '.set_analog_period(' + value_num + ')\\n';\n return code;\n}\n\n//ok\nexport const inout_pin_pressed = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC);\n var code = pin + '.read()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const inout_pin_attachInterrupt = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('mode');\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'machine.Pin(' + dropdown_pin + ').irq' + '(handler = ' + atta + ', trigger = ' + dropdown_mode + ')\\n'\n //var funcName = 'attachInterrupt_func_' + dropdown_pin;\n //var branch = generator.statementToCode(this, 'DO') || generator.PASS;\n //var code2 = 'def' + ' ' + funcName + '(p):\\n' + branch + '\\n';\n //generator.setups_[funcName] = code2;\n return code;\n}\n\nexport const inout_digital_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'pin#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var dropdown_mode = this.getFieldValue('MODE');\n var varName = (pin_obj == 'pin#') ? 'pin' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.Pin(' + dropdown_pin + ', ' + dropdown_mode + ')\\n';\n return code;\n}\n\n//ok\nexport const inout_analog_write_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'dac#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'dac#') ? 'dac' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.DAC(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}\n\nexport const inout_analog_atten = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n //var dropdown_stat = this.getFieldValue('STAT');\n var value_atten = this.getFieldValue('atten')\n var code = dropdown_pin + '.atten(' + value_atten + ')\\n';\n return code;\n}\n\n//ok\nexport const inout_pin_pressed_init = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var pin_obj = this.getFieldValue('PIN_OBJ') || 'tc#';\n var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC);\n var varName = (pin_obj == 'tc#') ? 'tc' + dropdown_pin : generator.variableDB_.getName(pin_obj, Blockly.Variables.NAME_TYPE);\n var code = varName + ' = machine.TouchPad(machine.Pin(' + dropdown_pin + '))\\n';\n return code;\n}","export const me_go_light_number = function (_, generator) {\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var code = 'car.' + this.getFieldValue('op');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_led_bright = function (_, generator) {\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"car.setonoff(\" + op + \",\" + bright + \")\\n\";\n return code;\n}\n\nexport const me_go_get_led_bright = function (_, generator) {\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var code = \"car.getrightness(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_get_led_state = function (_, generator) {\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var code = \"car.getonoff(\" + op + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_led_brightness = function (_, generator) {\n var op = generator.valueToCode(this, 'led', generator.ORDER_ATOMIC);\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var flag = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC);\n var code = \"car.setbrightness(\" + op + \",\" + flag + \")\\n\";\n return code;\n}\n\nexport const me_go_stepper_keep = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ASSIGNMENT);\n var code = 'car.move(\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const me_go_stepper_stop = function (_, generator) {\n var v = this.getFieldValue('VAR');\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var code = 'car.move(\"' + v + '\")\\n';\n return code;\n}\n\nexport const me_go_dc_motor = function (_, generator) {\n var wheel = this.getFieldValue('wheel');\n generator.definitions_['import_me_go_car'] = 'from me_go import car';\n var v = this.getFieldValue('direction');\n if (wheel == 0) {\n if (v == 'CW') { v = 'CCW' }\n else if (v == 'CCW') { v = 'CW' }\n }\n var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC);\n var code = \"car.motor(car.MOTO[\" + wheel + '],\"' + v + '\",' + speed + \")\\n\";\n return code;\n}\n\nexport const me_go_hall_attachInterrupt = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n var atta = generator.valueToCode(this, 'DO', generator.ORDER_ATOMIC);\n var code = 'hall_' + dropdown_mode + '.irq_cb(' + atta + ')\\n'\n return code;\n}\n\nexport const me_go_hall_initialize = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n var args = this.getFieldValue('args');\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n var num = generator.valueToCode(this, 'num', generator.ORDER_ATOMIC);\n if (args == 'all') {\n var code = 'hall_' + dropdown_mode + '.initial(' + 'turns' + '=' + num + ',distance=' + num + ')\\n'\n return code;\n }\n var code = 'hall_' + dropdown_mode + '.initial(' + args + '=' + num + ')\\n'\n return code;\n}\n\nexport const me_go_hall_data = function (_, generator) {\n var dropdown_mode = this.getFieldValue('mode');\n var args = this.getFieldValue('args');\n generator.definitions_['import_me_go_hall_' + dropdown_mode] = 'from me_go import hall_' + dropdown_mode;\n var code = 'hall_' + dropdown_mode + '.' + args + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_pin_near_line = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n var code = 'car.patrol()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_pin_near = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n var code = 'car.obstacle()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_pin_near_state_change = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n var code = 'car.ir_mode(car.' + key + ')\\n';\n return code;\n}\n\nexport const sensor_mixgome_eulerangles = function (_, generator) {\n generator.definitions_['import_mixgo_me_onboard_mxc6655xa'] = \"from mixgo_me import onboard_mxc6655xa\";\n var angle = this.getFieldValue('angle');\n var code = 'onboard_mxc6655xa.eulerangles(upright=True)' + angle;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const me_go_pin_light = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_me_go_hall'] = 'from me_go import car';\n var code = 'car.light()' + key + '';\n return [code, generator.ORDER_ATOMIC];\n}","import { Boards } from 'mixly';\n\nexport const mini_g2_aht11 = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_ahtx0.' + key + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_hp203 = function (_, generator) {\n var key = this.getFieldValue('key');\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_hp203x.' + key;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_varistor = function (_, generator) {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.varistor()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_rfid_readid = function (_, generator) {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var version = Boards.getSelectedBoardKey().split(':')[2];\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';\n var code = 'ext_rfid.read_card(0, x=\"id\")';\n } else {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_rc522.read_card(0, x=\"id\")';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_rfid_readcontent = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';\n var code = 'ext_rfid.read_card(' + sector + ')';\n } else {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_rc522.read_card(' + sector + ')';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_rfid_write = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';\n var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')\\n';\n } else {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')\\n';\n }\n return code;\n}\n\nexport const mini_g2_rfid_write_outcome = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC);\n var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC);\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';\n var code = 'ext_rfid.write_card(' + cnt + ',' + sector + ')';\n } else {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_rc522.write_card(' + cnt + ',' + sector + ')';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const mini_g2_rfid_status = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2];\n var key = this.getFieldValue('key');\n if (version == \"mixgo_mini\") {\n generator.definitions_['import_mini_g2_ext_rfid'] = 'from mini_g2 import ext_rfid';\n var code = 'ext_rfid.scan_card()==' + key;\n } else {\n generator.definitions_['import_mini_g2'] = 'import mini_g2';\n var code = 'mini_g2.ext_rc522.scan_card()==' + key;\n }\n return [code, generator.ORDER_ATOMIC];\n}","export const pins_digital = function (_, generator) {\n var code = this.getFieldValue('PIN');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const pins_button = pins_digital;\nexport const pins_buttonB = pins_digital;\nexport const pins_digital_pin = pins_digital;\nexport const pins_input_pin = pins_digital;\nexport const pins_output_pin = pins_digital;\nexport const pins_pwm_input = pins_digital;\nexport const espnow_channel = pins_digital;\nexport const haskylens_model = pins_digital;\nexport const analog_input = pins_digital;\nexport const pwm_output = pins_digital;\nexport const analog_output = pins_digital;\nexport const i2c_A_pin = pins_digital;\nexport const i2c_B_pin = pins_digital;\nexport const spi_A_pin = pins_digital;\nexport const spi_B_pin = pins_digital;\nexport const spi_C_pin = pins_digital;\nexport const spi_D_pin = pins_digital;\nexport const pins_analog_pin = pins_digital;\nexport const pins_analog = pins_digital;\nexport const pins_pwm_pin = pins_digital;\nexport const pins_pwm = pins_digital;\nexport const pins_dac_pin = pins_digital;\nexport const pins_dac = pins_digital;\nexport const pins_touch_pin = pins_digital;\nexport const pins_touch = pins_digital;\nexport const pins_interrupt = pins_digital;\nexport const pins_serial = pins_digital;\nexport const pins_builtinimg = pins_digital;\nexport const pins_builtinimg_extern = pins_digital;\nexport const pins_imglist = pins_digital;\nexport const pins_playlist = pins_digital;\nexport const pins_playlist_extern = pins_digital;\nexport const pins_axis = pins_digital;\nexport const pins_exlcdh = pins_digital;\nexport const pins_exlcdv = pins_digital;\nexport const pins_brightness = pins_digital;\nexport const pins_tts_voice = pins_digital;\nexport const pins_tts_builtin_music = pins_digital;\nexport const pins_tts_bgmusic = pins_digital;\nexport const pins_tone_notes = pins_digital;\nexport const pins_radio_power = pins_digital;\nexport const pins_radio_datarate = pins_digital;\nexport const pins_one_more = pins_digital;\nexport const pins_digital_dot = pins_digital;","import * as Blockly from 'blockly/core';\n\nconst LOOPS_HUE = 120;\n\nexport const controls_main = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_NAME_MAIN);\n this.appendStatementInput('DO')\n .appendField('');\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_SETUP);\n }\n};\n\nexport const base_setup = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_SETUP);\n this.appendStatementInput('DO')\n .appendField('');\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_SETUP);\n }\n};\n\nexport const controls_delay = {\n init: function () {\n var UNIT = [\n [Blockly.Msg.MIXLY_mSecond, 'delay'],\n [Blockly.Msg.MIXLY_uSecond, 'delayMicroseconds']\n ];\n this.setColour(LOOPS_HUE);\n this.appendValueInput(\"DELAY_TIME\", Number)\n .appendField(Blockly.Msg.MIXLY_DELAY)\n .appendField(new Blockly.FieldDropdown(UNIT), 'UNIT')\n .setCheck(Number);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_CONTROL_DELAY);\n this.setHelpUrl(\"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#id9\");\n this.wiki = {\n 'zh-hans': {\n page: ['Arduino AVR', '控制', '延时']\n }\n };\n }\n};\n\nexport const controls_end_program = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_CONTROL_END_PROGRAM);\n this.setPreviousStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_CONTROL_END_TOOLTIP);\n }\n};\n\nexport const controls_if = {\n /**\n * Block for if/elseif/else condition.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.CONTROLS_IF_HELPURL);\n this.setColour(LOOPS_HUE);\n this.appendValueInput('IF0')\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);\n this.appendStatementInput('DO0')\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setHelpUrl(\"https://mixly.readthedocs.io/zh_CN/latest/arduino/03.Control.html#if\");\n this.setMutator(new Blockly.icons.MutatorIcon(['controls_if_elseif',\n 'controls_if_else'], this));\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n if (!thisBlock.elseifCount_ && !thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_1;\n } else if (!thisBlock.elseifCount_ && thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_2;\n } else if (thisBlock.elseifCount_ && !thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_3;\n } else if (thisBlock.elseifCount_ && thisBlock.elseCount_) {\n return Blockly.Msg.CONTROLS_IF_TOOLTIP_4;\n }\n return '';\n });\n this.elseifCount_ = 0;\n this.elseCount_ = 0;\n },\n /**\n * Create XML to represent the number of else-if and else inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n if (!this.elseifCount_ && !this.elseCount_) {\n return null;\n }\n var container = document.createElement('mutation');\n if (this.elseifCount_) {\n container.setAttribute('elseif', this.elseifCount_);\n }\n if (this.elseCount_) {\n container.setAttribute('else', 1);\n }\n return container;\n },\n /**\n * Parse XML to restore the else-if and else inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var containerBlock = this;\n var valueConnections = [];\n var statementConnections = [];\n // var elseStatementConnection = null;\n if (this.elseCount_) {\n // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection)\n // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection;\n this.removeInput('ELSE');\n }\n for (var i = this.elseifCount_; i > 0; i--) {\n if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection)\n valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection);\n else\n valueConnections[i] = null;\n this.removeInput('IF' + i);\n if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection)\n statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection);\n else\n statementConnections[i] = null;\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10);\n this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10);\n //this.compose(containerBlock);\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSEIF);\n this.appendStatementInput('DO' + i)\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_THEN);\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg.CONTROLS_IF_MSG_ELSE);\n }\n for (var i = valueConnections.length - 2; i > 0; i--) {\n if (valueConnections[i])\n valueConnections[i].reconnect(this, 'IF' + i);\n }\n for (var i = statementConnections.length - 2; i > 0; i--) {\n if (statementConnections[i])\n statementConnections[i].reconnect(this, 'DO' + i);\n }\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock = workspace.newBlock('controls_if_if');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 1; i <= this.elseifCount_; i++) {\n var elseifBlock = workspace.newBlock('controls_if_elseif');\n elseifBlock.initSvg();\n connection.connect(elseifBlock.previousConnection);\n connection = elseifBlock.nextConnection;\n }\n if (this.elseCount_) {\n var elseBlock = workspace.newBlock('controls_if_else');\n elseBlock.initSvg();\n connection.connect(elseBlock.previousConnection);\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n // Disconnect the else input blocks and remove the inputs.\n if (this.elseCount_) {\n this.removeInput('ELSE');\n }\n this.elseCount_ = 0;\n // Disconnect all the elseif input blocks and remove the inputs.\n for (var i = this.elseifCount_; i > 0; i--) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = 0;\n // Rebuild the block's optional inputs.\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_if_elseif':\n this.elseifCount_++;\n valueConnections.push(clauseBlock.valueConnection_);\n statementConnections.push(clauseBlock.statementConnection_);\n break;\n case 'controls_if_else':\n this.elseCount_++;\n elseStatementConnection = clauseBlock.statementConnection_;\n break;\n default:\n throw Error('Unknown block type: ' + clauseBlock.type);\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n\n this.updateShape_();\n // Reconnect any child blocks.\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 1;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_if_elseif':\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n clauseBlock.valueConnection_ =\n inputIf && inputIf.connection.targetConnection;\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n i++;\n break;\n case 'controls_if_else':\n var inputDo = this.getInput('ELSE');\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n break;\n default:\n throw 'Unknown block type.';\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Reconstructs the block with all child blocks attached.\n */\n rebuildShape_: function () {\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n\n if (this.getInput('ELSE')) {\n elseStatementConnection = this.getInput('ELSE').connection.targetConnection;\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n console.log(inputIf.connection.targetConnection);\n valueConnections.push(inputIf.connection.targetConnection);\n statementConnections.push(inputDo.connection.targetConnection);\n i++;\n }\n this.updateShape_();\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @this Blockly.Block\n * @private\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('ELSE')) {\n this.removeInput('ELSE');\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n i++;\n }\n // Rebuild block.\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Number, Boolean])\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_ELSEIF']);\n this.appendStatementInput('DO' + i)\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_THEN']);\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_ELSE']);\n }\n },\n /**\n * Reconnects child blocks.\n * @param {!Array} valueConnections List of value\n * connectsions for if input.\n * @param {!Array} statementConnections List of\n * statement connections for do input.\n * @param {?Blockly.RenderedConnection} elseStatementConnection Statement\n * connection for else input.\n */\n reconnectChildBlocks_: function (valueConnections, statementConnections,\n elseStatementConnection) {\n for (var i = 1; i <= this.elseifCount_; i++) {\n valueConnections[i] && valueConnections[i].reconnect(this, 'IF' + i);\n statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i);\n }\n elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE');\n }\n};\n\n\nexport const controls_range = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('FROM')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PYTHON_RANGE)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM);\n this.appendValueInput('TO')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO);\n this.appendValueInput('STEP')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.PYTHON_RANGE_STEP);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP);\n }\n};\n\n\nexport const controls_forEach = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('LIST')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.CONTROLS_FOREACH_INPUT_ITEM)\n // .appendField(new Blockly.FieldTextInput('i'), 'VAR');\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(function () {\n return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace('“%1”', '');\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const controls_whileUntil = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('BOOL')\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT)\n .appendField(new Blockly.FieldDropdown(this.OPERATORS), 'MODE')\n // this.appendDummyInput()\n // .appendField(Blockly.Msg.CONTROLS_WHILE_SHI);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT + Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('MODE');\n var TOOLTIPS = {\n 'WHILE': Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,\n 'UNTIL': Blockly.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL\n };\n return TOOLTIPS[op];\n });\n }\n};\n\nexport const controls_try_finally = {\n /**\n * Block for if/elseif/else condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_TRY);\n this.appendStatementInput('try');\n this.appendValueInput('IF1')\n .appendField(Blockly.Msg.MIXLY_PYTHON_EXCEPT);\n this.appendStatementInput('DO1')\n .appendField('');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['controls_except', 'controls_finally'], this));\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP);\n this.elseifCount_ = 1;\n this.elseCount_ = 0;\n },\n /**\n * Create XML to represent the number of else-if and else inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n if (!this.elseifCount_ && !this.elseCount_) {\n return null;\n }\n var container = document.createElement('mutation');\n if (this.elseifCount_) {\n container.setAttribute('elseif', this.elseifCount_);\n }\n if (this.elseCount_) {\n container.setAttribute('else', 1);\n }\n return container;\n },\n /**\n * Parse XML to restore the else-if and else inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var containerBlock = this;\n var valueConnections = [];\n var statementConnections = [];\n // var elseStatementConnection = null;\n if (this.elseCount_) {\n // if (containerBlock.getInputTargetBlock('ELSE') && containerBlock.getInputTargetBlock('ELSE').previousConnection)\n // elseStatementConnection = containerBlock.getInputTargetBlock('ELSE').previousConnection;\n this.removeInput('ELSE');\n }\n for (var i = this.elseifCount_; i > 0; i--) {\n if (containerBlock.getInputTargetBlock('IF' + i) && containerBlock.getInputTargetBlock('IF' + i).previousConnection)\n valueConnections[i] = (containerBlock.getInputTargetBlock('IF' + i).previousConnection);\n else\n valueConnections[i] = null;\n this.removeInput('IF' + i);\n if (containerBlock.getInputTargetBlock('DO' + i) && containerBlock.getInputTargetBlock('DO' + i).previousConnection)\n statementConnections[i] = (containerBlock.getInputTargetBlock('DO' + i).previousConnection);\n else\n statementConnections[i] = null;\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = parseInt(xmlElement.getAttribute('elseif'), 10);\n this.elseCount_ = parseInt(xmlElement.getAttribute('else'), 10);\n //this.compose(containerBlock);\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Boolean, Number])\n .appendField(Blockly.Msg.MIXLY_PYTHON_EXCEPT);\n this.appendStatementInput('DO' + i)\n .appendField(\"\");\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg.MIXLY_PYTHON_FINALLY);\n }\n for (var i = valueConnections.length - 2; i > 0; i--) {\n if (valueConnections[i])\n valueConnections[i].reconnect(this, 'IF' + i);\n }\n for (var i = statementConnections.length - 2; i > 0; i--) {\n if (statementConnections[i])\n statementConnections[i].reconnect(this, 'DO' + i);\n }\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock = workspace.newBlock('controls_try');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 1; i <= this.elseifCount_; i++) {\n var elseifBlock = workspace.newBlock('controls_except');\n elseifBlock.initSvg();\n connection.connect(elseifBlock.previousConnection);\n connection = elseifBlock.nextConnection;\n }\n if (this.elseCount_) {\n var elseBlock = workspace.newBlock('controls_finally');\n elseBlock.initSvg();\n connection.connect(elseBlock.previousConnection);\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n // Disconnect the else input blocks and remove the inputs.\n if (this.elseCount_) {\n this.removeInput('ELSE');\n }\n this.elseCount_ = 0;\n // Disconnect all the elseif input blocks and remove the inputs.\n for (var i = this.elseifCount_; i > 0; i--) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n }\n this.elseifCount_ = 0;\n // Rebuild the block's optional inputs.\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_except':\n this.elseifCount_++;\n valueConnections.push(clauseBlock.valueConnection_);\n statementConnections.push(clauseBlock.statementConnection_);\n break;\n case 'controls_finally':\n this.elseCount_++;\n elseStatementConnection = clauseBlock.statementConnection_;\n break;\n default:\n throw Error('Unknown block type: ' + clauseBlock.type);\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n\n this.updateShape_();\n // Reconnect any child blocks.\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var clauseBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 1;\n while (clauseBlock) {\n switch (clauseBlock.type) {\n case 'controls_except':\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n clauseBlock.valueConnection_ =\n inputIf && inputIf.connection.targetConnection;\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n i++;\n break;\n case 'controls_finally':\n var inputDo = this.getInput('ELSE');\n clauseBlock.statementConnection_ =\n inputDo && inputDo.connection.targetConnection;\n break;\n default:\n throw 'Unknown block type.';\n }\n clauseBlock = clauseBlock.nextConnection &&\n clauseBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Reconstructs the block with all child blocks attached.\n */\n rebuildShape_: function () {\n var valueConnections = [null];\n var statementConnections = [null];\n var elseStatementConnection = null;\n\n if (this.getInput('ELSE')) {\n elseStatementConnection = this.getInput('ELSE').connection.targetConnection;\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n var inputIf = this.getInput('IF' + i);\n var inputDo = this.getInput('DO' + i);\n console.log(inputIf.connection.targetConnection);\n valueConnections.push(inputIf.connection.targetConnection);\n statementConnections.push(inputDo.connection.targetConnection);\n i++;\n }\n this.updateShape_();\n this.reconnectChildBlocks_(valueConnections, statementConnections, elseStatementConnection);\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @this Blockly.Block\n * @private\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('ELSE')) {\n this.removeInput('ELSE');\n }\n var i = 1;\n while (this.getInput('IF' + i)) {\n this.removeInput('IF' + i);\n this.removeInput('DO' + i);\n i++;\n }\n // Rebuild block.\n for (var i = 1; i <= this.elseifCount_; i++) {\n this.appendValueInput('IF' + i)\n .setCheck([Number, Boolean])\n .appendField(Blockly.Msg.MIXLY_PYTHON_EXCEPT);\n this.appendStatementInput('DO' + i)\n .appendField('');\n }\n if (this.elseCount_) {\n this.appendStatementInput('ELSE')\n .appendField(Blockly.Msg.MIXLY_PYTHON_FINALLY);\n }\n },\n /**\n * Reconnects child blocks.\n * @param {!Array} valueConnections List of value\n * connectsions for if input.\n * @param {!Array} statementConnections List of\n * statement connections for do input.\n * @param {?Blockly.RenderedConnection} elseStatementConnection Statement\n * connection for else input.\n */\n reconnectChildBlocks_: function (valueConnections, statementConnections,\n elseStatementConnection) {\n for (var i = 1; i <= this.elseifCount_; i++) {\n valueConnections[i] && valueConnections[i].reconnect(this, 'IF' + i);\n statementConnections[i] && statementConnections[i].reconnect(this, 'DO' + i);\n }\n elseStatementConnection && elseStatementConnection.reconnect(this, 'ELSE');\n }\n};\n\nexport const controls_flow_statements = {\n init: function () {\n this.setColour(LOOPS_HUE);\n var dropdown = new Blockly.FieldDropdown(this.OPERATORS);\n this.appendDummyInput()\n .appendField(dropdown, 'FLOW')\n .appendField(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP);\n this.setPreviousStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('FLOW');\n var TOOLTIPS = {\n 'BREAK': Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,\n 'CONTINUE': Blockly.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE\n };\n return TOOLTIPS[op];\n });\n },\n onchange: function () {\n if (!this.workspace) {\n // Block has been deleted.\n return;\n }\n var legal = false;\n // Is the block nested in a control statement?\n var block = this;\n do {\n if (block.type == 'controls_repeat' ||\n block.type == 'controls_for' ||\n block.type == 'controls_forEach' ||\n block.type == 'controls_repeat_ext' ||\n block.type == 'controls_whileUntil' ||\n block.type == 'do_while') {\n legal = true;\n break;\n }\n block = block.getSurroundParent();\n } while (block);\n if (legal) {\n this.setWarningText(null);\n } else {\n this.setWarningText(Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING);\n }\n }\n};\n\n\nexport const controls_for = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_WITH)\n .appendField(new Blockly.FieldTextInput('i'), 'VAR');\n this.appendValueInput('FROM')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM);\n this.appendValueInput('TO')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO);\n this.appendValueInput('STEP')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEP);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n return Blockly.Msg.CONTROLS_FOR_TOOLTIP.replace('%1',\n thisBlock.getFieldValue('VAR'));\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const controls_for_range = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_WITH)\n .appendField(new Blockly.FieldTextInput('i'), 'VAR');\n this.appendValueInput('FROM')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM);\n this.appendValueInput('TO')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_TO);\n this.appendValueInput('STEP')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.MIXLY_STEP);\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_DO);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n return Blockly.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace('%1',\n thisBlock.getFieldValue('VAR'));\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\n\ncontrols_whileUntil.OPERATORS = [\n [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, 'WHILE'],\n [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, 'UNTIL']\n];\n\n\n\ncontrols_flow_statements.OPERATORS = [\n [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK, 'BREAK'],\n [Blockly.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE, 'CONTINUE']\n];\n\n\n\nexport const controls_if_if = {\n /**\n * Mutator block for if container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_IF_TITLE_IF);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.CONTROLS_IF_IF_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const controls_if_elseif = {\n /**\n * Mutator bolck for else-if condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSEIF_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const controls_if_else = {\n /**\n * Mutator block for else condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_IF_ELSE_TITLE_ELSE);\n this.setPreviousStatement(true);\n this.setTooltip(Blockly.Msg.CONTROLS_IF_ELSE_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\n\n\nexport const controls_try = {\n /**\n * Mutator block for if container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField('try');\n this.appendStatementInput('STACK');\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.contextMenu = false;\n }\n};\n\nexport const controls_except = {\n /**\n * Mutator bolck for else-if condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_EXCEPT);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.contextMenu = false;\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP);\n }\n};\n\nexport const controls_finally = {\n /**\n * Mutator block for else condition.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_FINALLY);\n this.setPreviousStatement(true);\n this.contextMenu = false;\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP);\n }\n};\n\n\n\nexport const controls_repeat_ext = {\n /**\n * Block for repeat n times (external number).\n * @this Blockly.Block\n */\n init: function () {\n this.jsonInit({\n \"message0\": Blockly.Msg.CONTROLS_REPEAT_TITLE,\n \"args0\": [\n {\n \"type\": \"input_value\",\n \"name\": \"TIMES\",\n // \"check\": \"Number\"\n }\n ],\n \"previousStatement\": null,\n \"nextStatement\": null,\n \"colour\": LOOPS_HUE,\n \"tooltip\": Blockly.Msg.CONTROLS_REPEAT_TOOLTIP,\n \"helpUrl\": Blockly.Msg.CONTROLS_REPEAT_HELPURL\n });\n this.appendStatementInput('DO');\n }\n};\n\n\n\nexport const controls_lambda = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('BOOL')\n .appendField('lambda')\n //.appendField(new Blockly.FieldDropdown(this.OPERATORS), 'MODE');\n this.appendStatementInput('DO')\n .appendField(Blockly.Msg.MIXLY_STAT);\n this.setOutput(true);\n // this.setNextStatement(true);\n }\n};\n\nexport const controls_pass = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_PASS);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP);\n }\n};\n\nexport const controls_thread = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START)\n this.appendValueInput('callback')\n .appendField(Blockly.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE)\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_PARAMS);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP);\n }\n};\n\n//do-while循环\nexport const do_while = {\n init: function () {\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_REPEAT_TITLE_REPEAT + Blockly.Msg.MIXLY_DO);\n this.appendStatementInput(\"input_data\")\n .setCheck(null)\n this.appendValueInput(\"select_data\")\n .setCheck(null)\n .appendField(Blockly.Msg.CONTROLS_OPERATOR_UNTIL)\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE, \"true\"], [Blockly.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL, \"false\"]]), \"type\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setColour(LOOPS_HUE);\n this.setTooltip(\"do-while loop\");\n this.setHelpUrl(\"\");\n }\n};\n\nexport const garbage_collection = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_OP_GARBAGE_COLLECT);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n\nexport const get_mem_alloc = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_MEM_ALLOC);\n this.setOutput(true)\n }\n};\n\nexport const get_mem_free = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_MEM_FREE);\n this.setOutput(true)\n }\n};\n\nexport const get_unique_identifier = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_DEVICE + 'ID');\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_GET_UNIQUE_IDEN);\n }\n};\n\n// export const base_type = controls_type;\n// export const controls_TypeLists = controls_typeLists;\n\nexport const datetime_fromtimestamp = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_RTC_TIMESTAMP);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TIMESTAMP_TO_DATA);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n }\n};\n\n\nexport const gene_unique_identifier = {\n init: function () {\n this.setColour(LOOPS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_GET_UNIQUE_IDEN);\n this.setOutput(true)\n }\n};","/**\n * @license\n * Visual Blocks Editor\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Dictionary blocks for Blockly.\n * @author acbart@vt.edu (Austin Cory Bart)\n */\nimport * as Blockly from 'blockly/core';\n\nconst DICTS_HUE = 345;\n\nexport const dicts_create_with = {\n\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('mydict'), 'VAR')\n .appendField(new Blockly.FieldLabel(Blockly.Msg.DICTS_CREATE_WITH_INPUT_WITH), 'TIP')\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['dicts_create_with_item'], this));\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_TOOLTIP);\n },\n\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('dicts_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('dicts_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n }\n\n var keyNames = [];\n for (var i = 0; this.getInput('ADD' + i); i++) {\n //this.getInput('VALUE' + i).removeField(\"KEY\"+i);\n keyNames.push(this.getFieldValue(\"KEY\" + i))\n this.removeInput('ADD' + i);\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.getField('TIP').setValue(Blockly.Msg.DICTS_CREATE_EMPTY_TITLE);\n } else {\n this.getField('TIP').setValue(Blockly.Msg.DICTS_CREATE_WITH_INPUT_WITH);\n for (var i = 0; i < this.itemCount_; i++) {\n this.appendValueInput('ADD' + i)\n .setCheck(null)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\n new Blockly.FieldTextInput(\n keyNames.length > i\n ? keyNames[i]\n : (i == 0 ? '\"key\"' : '\"key' + (i + 1) + '\"')),\n 'KEY' + i)\n .appendField(\":\")\n }\n }\n }, getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\n\n\nexport const dicts_create_with_container = {\n\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const dicts_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const dicts_keys = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.DICT_KEYS);\n this.setTooltip(Blockly.Msg.DICTS_KEYS_TOOLTIP);\n this.setOutput(true, 'List');\n }\n};\n\nexport const dicts_get = {\n init: function () {\n this.setColour(DICTS_HUE);\n // this.appendDummyInput(\"\")\n\n // .appendField(Blockly.Msg.DICTS_GET_FROM_DICTS)\n\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.DICTS_GET_IN)\n this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n .appendField(Blockly.Msg.DICTS_ADD_VALUE);\n\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.DICTS_GET_TOOLTIP);\n }\n};\n\nexport const dicts_get_default = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.DICTS_GET_IN)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.DICTS_ADD_VALUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.DICTS_DEFAULT_VALUE);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.DICTS_GET_DEFAULT_TOOLTIP);\n }\n};\n\nexport const dicts_add_or_change = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.DICTS_ADD)\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n this.appendDummyInput()\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.DICTS_ADD_VALUE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP);\n }\n};\n\n\nexport const dicts_delete = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.DICTS_DELETE_IN)\n this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n .appendField(Blockly.Msg.DICTS_DELETE_VALUE);\n\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_DELETE_TOOLTIP);\n }\n};\n\n\nexport const dicts_update = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT2')\n .setCheck('Dict')\n .appendField(Blockly.Msg.MAKE_DICT)\n this.appendValueInput('DICT')\n .setCheck('Dict')\n .appendField(Blockly.Msg.DICT_UPDATE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MID);\n this.setTooltip(Blockly.Msg.DICTS_UPDATE_TOOLTIP);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const dicts_clear = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.DICT_CLEAR);\n this.setTooltip(Blockly.Msg.DICTS_CLEAR_TOOLTIP);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const dicts_items = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n\n .appendField(Blockly.Msg.DICT_ITEMS);\n this.setTooltip(Blockly.Msg.DICTS_ITEMS_TOOLTIP);\n this.setOutput(true, 'List');\n }\n};\n\nexport const dicts_values = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n\n .appendField(Blockly.Msg.DICT_VALUES);\n this.setTooltip(Blockly.Msg.DICTS_VALUES_TOOLTIP);\n this.setOutput(true, 'List');\n }\n};\n\nexport const dicts_length = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LENGTH)\n\n this.setTooltip(Blockly.Msg.DICT_LENGTH_TOOLTIP);\n this.setOutput(true, Number);\n }\n};\n\nexport const dicts_deldict = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n\n .appendField(Blockly.Msg.DICT_DELDICT);\n this.setTooltip(Blockly.Msg.DICTS_DEL_TOOLTIP);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const dicts_add_change_del = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n\n this['MODE'] = [\n [Blockly.Msg.DICTS_ADD_OR_CHANGE, 'INSERT'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_DELETE_VAR, 'DELETE']\n ];\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput('AT2')\n this.appendValueInput('KEY')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n .appendField(Blockly.Msg.DICTS_ADD_VALUE);\n this.updateAt_(true);\n this.setInputsInline(true);\n this.setOutput(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var b = this;\n this.setTooltip(function () {\n var e = b.getFieldValue(\"WHERE\"),\n d = \"\";\n switch (e) {\n case \"INSERT\":\n d = Blockly.Msg.DICTS_ADD_TOOLTIP;\n break;\n case \"DELETE\":\n d = Blockly.Msg.DICTS_DELETE_TOOLTIP;\n break;\n }\n //if (\"FROM_START\" == e || \"FROM_END\" == e) d += \" \" + Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace(\"%1\", ONE_BASED_INDEXING ? \"#1\": \"#0\");\n return d\n })\n\n },\n /**\n * Create XML to represent whether there are 'AT' inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n var isAt = this.getInput('AT2').type == Blockly.INPUT_VALUE;\n container.setAttribute('at2', isAt);\n return container;\n },\n /**\n * Parse XML to restore the 'AT' inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var isAt = (xmlElement.getAttribute('at2') == 'true');\n this.updateAt_(isAt);\n },\n /**\n * Create or delete an input for a numeric index.\n * This block has two such inputs, independant of each other.\n * @param {number} n Specify first or second input (1 or 2).\n * @param {boolean} isAt True if the input should exist.\n * @private\n * @this Blockly.Block\n */\n updateAt_: function (isAt) {\n // Create or delete an input for the numeric index.\n // Destroy old 'AT' and 'ORDINAL' inputs.\n this.removeInput('AT2');\n this.removeInput('ORDINAL', true);\n // Create either a value 'AT' input or a dummy input.\n if (isAt) {\n this.appendValueInput('AT2').setCheck(Number);\n } else {\n this.appendDummyInput('AT2');\n }\n var menu = new Blockly.FieldDropdown(this['MODE'],\n function (value) {\n var newAt = (value == 'INSERT');\n // The 'isAt' variable is available due to this function being a\n // closure.\n if (newAt != isAt) {\n var block = this.sourceBlock_;\n block.updateAt_(newAt);\n // This menu has been destroyed and replaced.\n // Update the replacement.\n block.setFieldValue(value, 'WHERE');\n return null;\n }\n return undefined;\n });\n\n this.getInput('AT2')\n .appendField(menu, 'WHERE');\n\n // this.moveInputBefore('AT2','LIST');\n }\n};\n\nexport const dicts_pop = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_DICT_POP)\n this.appendValueInput('KEY')\n this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n .appendField(Blockly.Msg.DICTS_ADD_VALUE);\n this.setTooltip(Blockly.Msg.DICT_POP_TOOLTIP);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const dicts_setdefault = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict');\n this.appendValueInput('KEY')\n .appendField(Blockly.Msg.DICTS_SET_DEFAULT)\n this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('\"key\"'), 'KEY')\n .appendField(Blockly.Msg.DICTS_DEFAULT_VALUE);\n this.appendValueInput('VAR')\n\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.DICTS_SETDEFAULT_TOOLTIP);\n }\n};\n\nexport const dicts_create_with_noreturn = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendDummyInput(\"\")\n // .appendField(new Blockly.FieldTextInput('mydict'), 'VAR')\n .appendField(new Blockly.FieldLabel(Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT), 'TIP')\n .appendField(' ')\n this.itemCount_ = 3;\n this.updateShape_();\n this.setOutput(true, \"Dict\")\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setMutator(new Blockly.icons.MutatorIcon(['dicts_create_with_item'], this));\n this.setTooltip(Blockly.Msg.DICTS_CREATE_WITH_TOOLTIP);\n },\n\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('dicts_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('dicts_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n }\n\n var keyNames = [];\n for (var i = 0; this.getInput('ADD' + i); i++) {\n //this.getInput('VALUE' + i).removeField(\"KEY\"+i);\n keyNames.push(this.getFieldValue(\"KEY\" + i))\n this.removeInput('ADD' + i);\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.getField('TIP').setValue(Blockly.Msg.LOGIC_NULL + Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT);\n } else {\n this.getField('TIP').setValue(Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT);\n for (var i = 0; i < this.itemCount_; i++) {\n this.appendValueInput('ADD' + i)\n .setCheck(null)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(\n new Blockly.FieldTextInput(\n keyNames.length > i\n ? keyNames[i]\n : (i == 0 ? '\"key\"' : '\"key' + (i + 1) + '\"')),\n 'KEY' + i)\n .appendField(\":\")\n }\n\n }\n }, getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const dicts_todict = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TODICT);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TODICT);\n }\n};\n\nexport const dicts_to_json = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TO_JSON);\n this.setTooltip(Blockly.Msg.MIXLY_TO_JSON_TOOLTIP);\n this.setOutput(true);\n }\n};\n\nexport const json_to_dicts = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('VAR');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_CONVERT_TO_JSON);\n this.setTooltip(Blockly.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP);\n this.setOutput(true);\n }\n};\n\nexport const dicts_to_to ={\n init:function(){\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT')\n .setCheck('Dict');\n this.appendValueInput('VAR1')\n .appendField('key1');\n this.appendValueInput('VAR2')\n .appendField('index');\n this.appendValueInput('VAR3')\n .appendField('key2');\n this.appendValueInput('VAR4')\n .appendField('key3');\n this.setInputsInline(true)\n this.setTooltip(Blockly.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP);\n this.setOutput(true);\n }\n}\n\nexport const dicts_to_json2 = {\n init: function () {\n this.setColour(DICTS_HUE);\n this.appendValueInput('DICT');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_TO_JSON);\n this.setTooltip(Blockly.Msg.MIXLY_TO_JSON_TOOLTIP);\n this.setOutput(true);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst HTML_HUE = '#1ec1e4';\n\nexport const html_document = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_DOCUMENT);\n this.appendStatementInput('HEAD')\n .appendField(Blockly.Msg.HTML_HEAD);\n this.appendStatementInput('BODY')\n .appendField(Blockly.Msg.HTML_BODY);\n this.setOutput(true);\n }\n};\n\nexport const html_title = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_LEVEL)\n .appendField(new Blockly.FieldDropdown([[\"1\", \"1\"], [\"2\", \"2\"], [\"3\", \"3\"], [\"4\", \"4\"], [\"5\", \"5\"], [\"6\", \"6\"]]), 'LEVEL');\n this.appendStatementInput('DO')\n .appendField('');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_head_body = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_HEAD, \"head\"],\n [Blockly.Msg.HTML_BODY, \"body\"]\n ]), 'LEVEL');\n this.appendStatementInput('DO')\n .appendField('');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_content = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_P, \"p\"],\n [Blockly.Msg.HTML_SPAN, \"span\"],\n [Blockly.Msg.HTML_FORM, \"form\"],\n [Blockly.Msg.HTML_TABLE, \"table\"],\n [Blockly.Msg.HTML_LINE, \"tr\"],\n [Blockly.Msg.HTML_CELL, \"td\"],\n [Blockly.Msg.HTML_OL, \"ol\"],\n [Blockly.Msg.HTML_UL, \"ul\"],\n [Blockly.Msg.HTML_LI, \"li\"]\n ]), 'LEVEL')\n // this.appendValueInput('style')\n // .appendField(Blockly.Msg.MIXLY_AIP_ATTR)\n // .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendStatementInput('DO')\n .appendField('');\n this.setInputsInline(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_content_more = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField('<')\n .appendField(new Blockly.FieldTextInput('tag'), \"LEVEL\")\n .appendField('>')\n this.appendValueInput('style')\n .appendField(Blockly.Msg.MIXLY_AIP_ATTR)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.appendStatementInput('DO')\n .appendField('');\n this.setInputsInline(false);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_style = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_STYLE)\n this.appendStatementInput('STYLE');\n this.setOutput(true);\n }\n};\n\nexport const html_form = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_FORM_CONTENT)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_TEXT, \"text\"],\n [Blockly.Msg.HTML_EMAIL, \"email\"],\n [Blockly.Msg.HTML_NUMBER, \"number\"],\n [Blockly.Msg.HTML_PASSWORD, \"password\"],\n [Blockly.Msg.HTML_CHECKBOX, \"checkbox\"],\n [Blockly.Msg.HTML_RADIOBUTTON, \"radiobutton\"],\n [Blockly.Msg.HTML_BUTTON, \"button\"],\n [Blockly.Msg.HTML_COLOUR, \"colour\"],\n [Blockly.Msg.HTML_DATE, \"date\"],\n [Blockly.Msg.HTML_LOCALTIME, \"local time\"],\n [Blockly.Msg.HTML_FILE, \"file\"],\n [Blockly.Msg.HTML_HIDDEN, \"hidden\"],\n [Blockly.Msg.HTML_IMAGE, \"image\"],\n [Blockly.Msg.HTML_MONTH, \"month\"],\n [Blockly.Msg.HTML_RANGE, \"range\"],\n [Blockly.Msg.HTML_RESET, \"reset\"],\n [Blockly.Msg.HTML_SEARCH, \"search\"],\n [Blockly.Msg.HTML_SUBMIT, \"submit\"],\n [Blockly.Msg.HTML_TELEPHONENUMBER, \"telephone number\"],\n [Blockly.Msg.HTML_TIME, \"time\"],\n [Blockly.Msg.HTML_URL, \"url\"],\n [Blockly.Msg.HTML_WEEK, \"week\"]\n ]), 'LEVEL')\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_NAME)\n .appendField(new Blockly.FieldTextInput('car'), \"NAME\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_VALUE)\n .appendField(new Blockly.FieldTextInput('go'), \"VALUE\")\n this.appendValueInput('style')\n .appendField(Blockly.Msg.MIXLY_AIP_ATTR)\n .setAlign(Blockly.inputs.Align.RIGHT);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_style_content = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput('property'), \"KEY\")\n .appendField(':')\n .appendField(new Blockly.FieldTextInput('value'), \"VALUE\")\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_style_color = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput('property'), \"KEY\")\n .appendField(':')\n .appendField(new Blockly.FieldColour(\"#ff0000\"), \"RGB_LED_COLOR\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const html_text = {\n init: function () {\n this.setColour(HTML_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.HTML_TEXT)\n .appendField(new Blockly.FieldTextInput('text'), \"TEXT\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst LISTS_HUE = 260; //'#70b234'//260;\n\nexport const lists_get_index = {\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);\n this.setColour(LISTS_HUE);\n this.appendValueInput(\"LIST\")\n this.appendValueInput(\"AT\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_FROM_START)\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM);\n }\n}\n\n\nexport const lists_get_sublist = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(LISTS_HUE);\n this.appendValueInput('LIST')\n this.appendDummyInput('')\n this.appendValueInput('AT1')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendValueInput('AT2')\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL + \" \" + Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL);\n this.setInputsInline(true);\n this.setOutput(true, 'List');\n this.setTooltip(Blockly.Msg.PYTHON_LISTS_GET_SUBLIST_TOOLTIP);\n }\n}\n\nexport const lists_2d_get_data_with_col_row = {\n init: function () {\n this.appendValueInput(\"LIST\")\n .setCheck(null);\n this.appendValueInput(\"row\")\n .setCheck(null)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.DATAFRAME_RAW);\n this.appendValueInput(\"col\")\n .setCheck(null)\n .appendField(Blockly.Msg.DATAFRAME_COLUMN);\n this.setInputsInline(true);\n this.setOutput(true, null);\n this.setColour(LISTS_HUE);\n this.setTooltip(\"\");\n this.setHelpUrl(\"\");\n }\n};\n\nexport const lists_2d_get_col_row_data = {\n init: function () {\n this.appendValueInput(\"LIST\")\n .setCheck(null);\n this.appendValueInput(\"row_start\")\n .setCheck(null)\n .appendField(Blockly.Msg.MIXLY_GET + \" \" + Blockly.Msg.DATAFRAME_RAW + \" [\");\n this.appendValueInput(\"row_end\")\n .setCheck(null)\n .appendField(\",\");\n this.appendValueInput(\"col_start\")\n .setCheck(null)\n .appendField(\") \" + Blockly.Msg.DATAFRAME_COLUMN + \" [\");\n this.appendValueInput(\"col_end\")\n .setCheck(null)\n .appendField(\",\");\n this.appendDummyInput()\n .appendField(\") \" + Blockly.Msg.DICTS_ADD_VALUE);\n this.setInputsInline(true);\n this.setOutput(true, 'List');\n this.setColour(LISTS_HUE);\n this.setTooltip(\"\");\n this.setHelpUrl(\"\");\n }\n};\n\nexport const lists_create_with = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput(\"\")\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE')\n // .appendField(' ')\n .appendField(new Blockly.FieldTextInput('mylist'), 'VAR')\n .appendField('[')\n //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE')\n .appendField(']');\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['lists_create_with_item'], this));\n this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('lists_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('lists_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.LISTS_CREATE_PYTHON_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.blockpy_LISTS_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\n\nexport const lists_create_with_text = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput(\"\")\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array']]), 'TYPE')\n // .appendField(' ')\n // .appendField(Blockly.Msg.blockpy_MIXLY_SPLITBYDOU)\n .appendField(new Blockly.FieldTextInput('mylist'), 'VAR')\n //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE')\n // .appendField(Blockly.Msg.MIXLY_MAKELISTFROM)\n // .appendField(this.newQuote_(true))\n .appendField(' = [')\n .appendField(new Blockly.FieldTextInput('0,0,0'), 'TEXT')\n .appendField(']');\n // .appendField(this.newQuote_(false))\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LISTS_CREATE_WITH_TEXT2);\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n}\n\n\nexport const lists_create_with_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const lists_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TITLE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\n\nexport const lists_set_index = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('LIST');\n this.appendValueInput('AT')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_LIST_ASSIGN_AT);\n this.appendValueInput('TO')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIST_VALUE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.LANG_LISTS_SET_INDEX_TOOLTIP);\n }\n};\n\nexport const lists_append_extend = {\n init: function () {\n this.setColour(LISTS_HUE);\n this['TYPE'] = [\n [Blockly.Msg.MIXLY_blockpy_set_add, 'append'],\n [Blockly.Msg.MIXLY_MICROBIT_LIST_EXTEND, 'extend']\n ];\n\n this.appendValueInput('LIST')\n .setCheck('List')\n this.appendValueInput('DATA')\n .appendField(new Blockly.FieldDropdown(this['TYPE']), 'OP')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_LIST_A_ITEM)\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIST_TO_END);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'append': Blockly.Msg.MIXLY_TOOLTIP_LIST_APPEND,\n 'extend': Blockly.Msg.LISTS_EXTEND_TOOLTIP\n\n };\n return TOOLTIPS[mode];\n });\n }\n\n};\n\nexport const lists_get_random_item = {\n /**\n * Block for get a random item from list.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput(\"LIST\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_RANDOM)\n this.setTooltip(Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM);\n this.setOutput(true);\n }\n};\n\nexport const lists_get_random_sublist = {\n /**\n * Block for get a random item from list.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput(\"LIST\");\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_MICROBIT_RANDOM)\n this.appendDummyInput()\n .appendField(Blockly.Msg.LANG_LISTS_GET_INDEX2 + Blockly.Msg.LISTS_GET_RANDOM_SUBLIST)\n this.setTooltip(Blockly.Msg.LISTS_GET_RANDOM_SUBLIST_TOOLTIP);\n this.setOutput(true, 'List');\n }\n};\n\nexport const lists_insert_value = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('LIST');\n this.appendValueInput('AT')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIST_INSERT_AT);\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIST_VALUE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.LANG_LISTS_SET_INDEX_TOOLTIP);\n this.setTooltip(Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_INSERT);\n }\n};\n\nexport const lists_reverse = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n .setCheck('List') //this.appendDummyInput(\"\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_LIST_REVERSE)\n //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR');\n this.setTooltip(Blockly.Msg.LANG_LISTS_CLEAR_TOOLTIP);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\nexport const lists_clear = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_CLEAR)\n //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR');\n this.setTooltip(Blockly.Msg.LANG_LISTS_REVERSE_TOOLTIP);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\n\nexport const lists_remove_at = {\n init: function () {\n this.setColour(LISTS_HUE);\n this['TYPE'] = [\n [Blockly.Msg.SERIES_INDEX, 'del'],\n [Blockly.Msg.MIXLY_MICROBIT_JS_I2C_VALUE, 'remove']\n ];\n this.appendValueInput('LIST')\n .setCheck('List')\n this.appendValueInput('DATA')\n .appendField(Blockly.Msg.MIXLY_MIXPY_LISTS_REMOVE)\n .appendField(new Blockly.FieldDropdown(this['TYPE']), 'OP')\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'del': Blockly.Msg.LISTS_SET_INDEX_TOOLTIP_DELETE,\n 'remove': Blockly.Msg.MIXLY_TOOLTIP_LIST_REMOVE\n };\n return TOOLTIPS[mode];\n });\n }\n};\nexport const lists_pop = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('LIST');\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_LIST_POP);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM);\n }\n};\n\nexport const lists_find = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_LIST_INDEX, 'INDEX'],\n [Blockly.Msg.MIXLY_LIST_COUNT, 'COUNT']\n ];\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n .setCheck('List')\n this.appendValueInput('data')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.HTML_VALUE)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DE)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR')\n this.setInputsInline(true);\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'INDEX': Blockly.Msg.MIXLY_TOOLTIP_LIST_FIND_INDEX,\n 'COUNT': Blockly.Msg.MIXLY_TOOLTIP_LIST_FIND_COUNT\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\nexport const list_trig = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_LIST_LEN, 'LEN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_SUM, 'SUM'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MAX, 'MAX'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MIN, 'MIN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE, 'AVERAGE'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN, 'MEDIAN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MODE, 'MODE'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV, 'STD_DEV'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(LISTS_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('data')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'LEN': Blockly.Msg.LISTS_LENGTH_TOOLTIP,\n 'SUM': Blockly.Msg.MATH_ONLIST_TOOLTIP_SUM,\n 'MAX': Blockly.Msg.MATH_ONLIST_TOOLTIP_MAX,\n 'MIN': Blockly.Msg.MATH_ONLIST_TOOLTIP_MIN,\n 'AVERAGE': Blockly.Msg.MATH_ONLIST_TOOLTIP_AVERAGE,\n 'MEDIAN': Blockly.Msg.MATH_ONLIST_TOOLTIP_MEDIAN,\n 'MODE': Blockly.Msg.MATH_ONLIST_TOOLTIP_MODE,\n 'STD_DEV': Blockly.Msg.MATH_ONLIST_TOOLTIP_STD_DEV\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const lists_sort = {\n /**\n * Block for sorting a list.\n * @this Blockly.Block\n */\n init: function () {\n this.jsonInit({\n \"args0\": [\n {\n \"type\": \"input_value\",\n \"name\": \"LIST\",\n \"check\": \"List\"\n },\n {\n \"type\": \"field_dropdown\",\n \"name\": \"TYPE\",\n \"options\": [\n [Blockly.Msg.LISTS_SORT_TYPE_NUMERIC, \"NUMERIC\"],\n [Blockly.Msg.LISTS_SORT_TYPE_TEXT, \"TEXT\"],\n [Blockly.Msg.LISTS_SORT_TYPE_IGNORECASE, \"IGNORE_CASE\"]\n ]\n },\n {\n \"type\": \"field_dropdown\",\n \"name\": \"DIRECTION\",\n \"options\": [\n [Blockly.Msg.LISTS_SORT_ORDER_ASCENDING, \"1\"],\n [Blockly.Msg.LISTS_SORT_ORDER_DESCENDING, \"-1\"]\n ]\n },\n ],\n \"message0\": Blockly.Msg.LISTS_SORT_TITLE,\n \"inputsInline\": true,\n \"output\": \"List\",\n \"colour\": LISTS_HUE,\n \"tooltip\": Blockly.Msg.LISTS_SORT_TOOLTIP,\n \"helpUrl\": Blockly.Msg.LISTS_SORT_HELPURL\n });\n }\n};\n\nexport const lists_change_to = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple'],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set'],\n [Blockly.Msg.LISTS_CREATE_WITH_CONTAINER_TITLE_ADD, 'array']\n ];\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"List\")\n // .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.A_TO_B)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'tuple': Blockly.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_TUPLE,\n 'set': Blockly.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_SET,\n 'array': Blockly.Msg.MIXLY_TOOLTIP_CONVERT_LIST_TO_ARRAY\n };\n return TOOLTIPS[mode];\n });\n\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const list_many_input = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput(\"\")\n .appendField('[')\n .appendField(new Blockly.FieldTextInput('0,0,0'), \"CONTENT\")\n .appendField(']');\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const lists_create_with_noreturn = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, \"List\")\n this.setMutator(new Blockly.icons.MutatorIcon(['lists_create_with_item'], this));\n this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('lists_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('lists_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.LISTS_CREATE_PYTHON_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.blockpy_LISTS_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n}\n\nexport const lists_change_to_general = {\n init: function () {\n var OPERATORS =\n [\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple'],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set']\n ];\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.A_TO_B)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const lists_del_general = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('TUP')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.OBJECT_DELETE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const list_tolist = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TOLIST);\n this.setOutput(true, 'List');\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOLIST);\n }\n};\n\nexport const lists_create_with2 = lists_create_with\nexport const lists_create_with_text2 = lists_create_with_text\nexport const lists_getIndex3 = lists_get_index\nexport const lists_getSublist3 = lists_get_sublist\nexport const lists_setIndex3 = lists_set_index\nexport const lists_insert_value2 = lists_insert_value\nexport const lists_remove_at2 = lists_remove_at\nexport const list_tolist2 = list_tolist;\n\n\nexport const ENUMERATE ={\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_TO_INDEX_SEQUENCE);\n // this.appendValueInput('VAR_N')\n // .appendField(Blockly.Msg.MIXLY_INDEX+Blockly.Msg.MIXLY_STARTSWITH);\n this.setInputsInline(true);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP);\n }\n};\n\nexport const enumerate = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendValueInput('LIST');\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.MIXLY_TO_INDEX_SEQUENCE)\n .appendField(Blockly.Msg.MIXLY_INDEX+Blockly.Msg.MIXLY_STARTSWITH);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOTO_INDEX_SEQUENC_TOOLTIP);\n }\n};\n\nexport const content_in_lists = {\n init: function () {\n this.setColour(LISTS_HUE);\n this.appendValueInput(\"CON\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_MIXGO_MUSIC_SHOW_IN);\n this.appendValueInput(\"LIST\")\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MID);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n}","import * as Blockly from 'blockly/core';\n\nconst LOGIC_HUE = 210;\n\nexport const logic_compare = {\n /**\n * Block for comparison operator.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = Blockly.RTL ? [\n ['=', 'EQ'],\n ['\\u2260', 'NEQ'],\n ['>', 'LT'],\n ['\\u2265', 'LTE'],\n ['<', 'GT'],\n ['\\u2264', 'GTE']\n ] : [\n ['=', 'EQ'],\n ['\\u2260', 'NEQ'],\n ['<', 'LT'],\n ['\\u2264', 'LTE'],\n ['>', 'GT'],\n ['\\u2265', 'GTE']\n ];\n //this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true, Boolean);\n this.appendValueInput('A');\n this.appendValueInput('B')\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'EQ': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_EQ,\n 'NEQ': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,\n 'LT': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LT,\n 'LTE': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_LTE,\n 'GT': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GT,\n 'GTE': Blockly.Msg.LOGIC_COMPARE_TOOLTIP_GTE\n };\n return TOOLTIPS[op];\n });\n this.prevBlocks_ = [null, null];\n },\n /**\n * Called whenever anything on the workspace changes.\n * Prevent mismatched types from being compared.\n * @this Blockly.Block\n */\n /*onchange: function(e) {\n var blockA = this.getInputTargetBlock('A');\n var blockB = this.getInputTargetBlock('B');\n // Disconnect blocks that existed prior to this change if they don't match.\n if (blockA && blockB &&\n !blockA.outputConnection.checkType_(blockB.outputConnection)) {\n // Mismatch between two inputs. Disconnect previous and bump it away.\n // Ensure that any disconnections are grouped with the causing event.\n Blockly.Events.setGroup(e.group);\n for (var i = 0; i < this.prevBlocks_.length; i++) {\n var block = this.prevBlocks_[i];\n if (block === blockA || block === blockB) {\n block.unplug();\n block.bumpNeighbours_();\n }\n }\n Blockly.Events.setGroup(false);\n }\n this.prevBlocks_[0] = blockA;\n this.prevBlocks_[1] = blockB;\n }*/\n};\n\nexport const logic_compare_continous = {\n\n init: function () {\n var OPERATORS1 = Blockly.RTL ? [\n ['>', 'LT'],\n ['\\u2265', 'LTE'],\n ['<', 'GT'],\n ['\\u2264', 'GTE']\n ] : [\n ['<', 'LT'],\n ['\\u2264', 'LTE'],\n ['>', 'GT'],\n ['\\u2265', 'GTE']\n ];\n var OPERATORS2 = Blockly.RTL ? [\n ['>', 'LT'],\n ['\\u2265', 'LTE'],\n ['<', 'GT'],\n ['\\u2264', 'GTE']\n ] : [\n ['<', 'LT'],\n ['\\u2264', 'LTE'],\n ['>', 'GT'],\n ['\\u2265', 'GTE']\n ];\n //this.setHelpUrl(Blockly.Msg.LOGIC_COMPARE_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true, Boolean);\n this.appendValueInput('A');\n this.appendValueInput('B')\n .appendField(new Blockly.FieldDropdown(OPERATORS1), 'OP1');\n this.appendValueInput('C')\n .appendField(new Blockly.FieldDropdown(OPERATORS2), 'OP2');\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP);\n\n }\n};\n\nexport const logic_operation = {\n /**\n * Block for logical operations: 'and', 'or'.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.LOGIC_OPERATION_AND, 'AND'],\n [Blockly.Msg.LOGIC_OPERATION_OR, 'OR'],\n [Blockly.Msg.LOGIC_OPERATION_NOR, 'NOR'],\n [Blockly.Msg.LOGIC_OPERATION_XOR, 'XOR']\n ];\n //this.setHelpUrl(Blockly.Msg.LOGIC_OPERATION_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true, Boolean);\n this.appendValueInput('A')\n .setCheck([Boolean, Number]);\n this.appendValueInput('B')\n .setCheck([Boolean, Number])\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var op = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'AND': Blockly.Msg.LOGIC_OPERATION_TOOLTIP_AND,\n 'OR': Blockly.Msg.LOGIC_OPERATION_TOOLTIP_OR,\n 'NOR': Blockly.Msg.LOGIC_OPERATION_TOOLTIP_NOR,\n 'XOR': Blockly.Msg.LOGIC_OPERATION_TOOLTIP_XOR\n };\n return TOOLTIPS[op];\n });\n }\n};\n\nexport const logic_negate = {\n /**\n * Block for negation.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.LOGIC_NEGATE_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true, Boolean);\n this.appendValueInput('BOOL')\n .setCheck([Number, Boolean])\n .appendField(Blockly.Msg.LOGIC_NEGATE_TITLE);\n //this.interpolateMsg(Blockly.Msg.LOGIC_NEGATE_TITLE,\n // ['BOOL', Boolean, Blockly.inputs.Align.RIGHT],\n // Blockly.inputs.Align.RIGHT);\n this.setTooltip(Blockly.Msg.LOGIC_NEGATE_TOOLTIP);\n }\n};\n\nexport const logic_boolean = {\n /**\n * Block for boolean data type: true and false.\n * @this Blockly.Block\n */\n init: function () {\n var BOOLEANS = [\n [Blockly.Msg.LOGIC_BOOLEAN_TRUE, 'TRUE'],\n [Blockly.Msg.LOGIC_BOOLEAN_FALSE, 'FALSE']\n ];\n //this.setHelpUrl(Blockly.Msg.LOGIC_BOOLEAN_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true, Boolean);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown(BOOLEANS), 'BOOL');\n this.setTooltip(Blockly.Msg.LOGIC_BOOLEAN_TOOLTIP);\n }\n};\n\nexport const logic_null = {\n /**\n * Block for null data type.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.LOGIC_NULL_HELPURL);\n this.setColour(LOGIC_HUE);\n this.setOutput(true);\n this.appendDummyInput()\n .appendField(Blockly.Msg.LOGIC_NULL);\n this.setTooltip(Blockly.Msg.LOGIC_NULL_TOOLTIP);\n }\n};\n\nexport const logic_true_or_false = {\n init: function () {\n this.setColour(LOGIC_HUE);\n this.appendValueInput('A');\n this.appendValueInput('B')\n .appendField(Blockly.Msg.LOGIC_TERNARY_IF_TRUE);\n this.appendValueInput('C')\n .appendField(Blockly.Msg.LOGIC_TERNARY_IF_FALSE);\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE);\n }\n};\n\nexport const logic_is_in = {\n init: function () {\n var BOOLEANS = [\n [Blockly.Msg.TEXT_APPEND_TO, 'in'],\n [Blockly.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN, 'not in']\n ];\n this.setColour(LOGIC_HUE);\n this.appendValueInput('A');\n this.appendValueInput('B')\n .setCheck([String, 'List'])\n //.appendField(Blockly.Msg.TEXT_APPEND_TO)\n .appendField(new Blockly.FieldDropdown(BOOLEANS), 'BOOL');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MICROBIT_LOGIC_IS_IN);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.IN);\n }\n};\n\nexport const logic_is = {\n init: function () {\n var BOOLEANS = [\n [Blockly.Msg.MIXLY_PYTHON_LOGIC_IS, 'is'],\n [Blockly.Msg.MIXLY_PYTHON_LOGIC_IS_NOT, 'is not']\n ];\n this.setColour(LOGIC_HUE);\n this.appendValueInput('A');\n this.appendValueInput('B')\n .appendField(new Blockly.FieldDropdown(BOOLEANS), 'BOOL');\n //.appendField(Blockly.Msg.MIXLY_PYTHON_LOGIC_IS);\n this.setOutput(true, Boolean);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP);\n }\n};\n\nexport const logic_tobool = {\n init: function () {\n this.setColour(LOGIC_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TOBOOL);\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst MATH_HUE = 230; //'#e49f16';\n\nBlockly.FieldTextInput.math_number_validator = function (text) {\n //return window.isNaN(text) ? null : String(text);\n // var pattern = /^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\\.[a-fA-F0-9]+)?$/;\n // return pattern.test(text) ? String(text) : null;//校验,二 八 十 十六进制匹配\n return String(text);//不再校验\n};\n\nBlockly.FieldTextInput.math_number_validator_include_blank = function (text) {\n if (text === \"\") {\n return \"\";\n }\n var pattern = /^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\\.[a-fA-F0-9]+)?$/;\n return pattern.test(text) ? String(text) : null;//校验,二 八 十 十六进制匹配\n};\n\nexport const math_number = {\n /**\n * Block for numeric value.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(MATH_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput('0',\n Blockly.FieldTextInput.math_number_validator), 'NUM');\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MATH_NUMBER_TOOLTIP);\n }\n};\n\nexport const math_constant = {\n init: function () {\n this.setColour(MATH_HUE);\n var constant =\n [['π', 'pi'], ['e', 'e']];\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT)\n .appendField(new Blockly.FieldDropdown(constant), 'CONSTANT')\n\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('CONSTANT');\n var TOOLTIPS = {\n 'pi': Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,\n 'e': Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP\n };\n return TOOLTIPS[mode];\n });\n\n }\n};\n\nexport const math_constant_mp = {\n init: function () {\n this.setColour(MATH_HUE);\n var constant =\n [['π', 'pi'], ['e', 'e']];\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT)\n .appendField(new Blockly.FieldDropdown(constant), 'CONSTANT')\n\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('CONSTANT');\n var TOOLTIPS = {\n 'pi': Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,\n 'e': Blockly.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP\n };\n return TOOLTIPS[mode];\n });\n\n }\n};\n\nexport const math_arithmetic = {\n /**\n * Block for basic arithmetic operator.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = [\n ['+', 'ADD'],\n ['-', 'MINUS'],\n ['×', 'MULTIPLY'],\n ['÷', 'DIVIDE'],\n ['%', 'QUYU'],\n ['//', 'ZHENGCHU'],\n ['**', 'POWER']\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_ARITHMETIC_HELPURL);\n this.setColour(MATH_HUE);\n this.setOutput(true);\n this.appendValueInput('A')\n this.appendValueInput('B')\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'ADD': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,\n 'MINUS': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,\n 'MULTIPLY': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,\n 'DIVIDE': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,\n 'QUYU': Blockly.Msg.MATH_MODULO_TOOLTIP,\n 'ZHENGCHU': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,\n 'POWER': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const math_selfcalcu = {\n /**\n * Block for basic arithmetic operator.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = [\n ['+=', 'ADD'],\n ['-=', 'MINUS'],\n ['×=', 'MULTIPLY'],\n ['÷=', 'DIVIDE'],\n ['%=', 'QUYU'],\n ['//=', 'ZHENGCHU'],\n ['**=', 'POWER']\n ];\n\n this.setColour(MATH_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendValueInput('A')\n this.appendValueInput('B')\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'ADD': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,\n 'MINUS': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,\n 'MULTIPLY': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,\n 'DIVIDE': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,\n 'QUYU': Blockly.Msg.MATH_MODULO_TOOLTIP,\n 'ZHENGCHU': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,\n 'POWER': Blockly.Msg.MATH_ARITHMETIC_TOOLTIP_POWER\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const math_bit = {\n init: function () {\n var OPERATORS = [\n ['&', '&'],\n ['|', '|'],\n ['>>', '>>'],\n ['<<', '<<']\n ];\n this.setColour(MATH_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('A')\n .setCheck(Number);\n this.appendValueInput('B')\n .setCheck(Number)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n this.setTooltip(\"位运算\");\n }\n};\n\nexport const math_trig = {\n /**\n * Block for trigonometry operators.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = [\n ['sin', 'SIN'],\n ['cos', 'COS'],\n ['tan', 'TAN'],\n ['asin', 'ASIN'],\n ['acos', 'ACOS'],\n ['atan', 'ATAN'],\n ['-', '-'],\n ['ln', 'LN'],\n ['log10', 'LOG10'],\n ['e^', 'EXP'],\n ['10^', 'POW10']\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(MATH_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('NUM')\n .setCheck(Number)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'SIN': Blockly.Msg.MATH_TRIG_TOOLTIP_SIN,\n 'COS': Blockly.Msg.MATH_TRIG_TOOLTIP_COS,\n 'TAN': Blockly.Msg.MATH_TRIG_TOOLTIP_TAN,\n 'ASIN': Blockly.Msg.MATH_TRIG_TOOLTIP_ASIN,\n 'ACOS': Blockly.Msg.MATH_TRIG_TOOLTIP_ACOS,\n 'ATAN': Blockly.Msg.MATH_TRIG_TOOLTIP_ATAN,\n 'LN': Blockly.Msg.MATH_SINGLE_TOOLTIP_LN\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const math_dec = {\n /**\n * Block for trigonometry operators.\n * @this Blockly.Block\n */\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MATH_BIN, 'bin'],\n [Blockly.Msg.MATH_OCT, 'oct'],\n [Blockly.Msg.MATH_HEX, 'hex'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(MATH_HUE);\n this.setOutput(true, String);\n this.appendValueInput('NUM')\n .setCheck(Number)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'bin': Blockly.Msg.MATH_DEC_TOOLTIP_BIN,\n 'oct': Blockly.Msg.MATH_DEC_TOOLTIP_OCT,\n 'hex': Blockly.Msg.MATH_DEC_TOOLTIP_HEX,\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\n//取整等\nexport const math_to_int = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.LANG_MATH_TO_ROUND, 'round'],\n [Blockly.Msg.LANG_MATH_TO_CEIL, 'ceil'],\n [Blockly.Msg.LANG_MATH_TO_FLOOR, 'floor'],\n [Blockly.Msg.MATH_ABS, 'fabs'],\n // [Blockly.Msg.MATH_SQ, 'pow'],\n [Blockly.Msg.MATH_SQRT, 'sqrt']\n ];\n this.setColour(MATH_HUE);\n this.appendValueInput('A')\n .setCheck(Number)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'sqrt': Blockly.Msg.MATH_SINGLE_TOOLTIP_ROOT,\n 'fabs': Blockly.Msg.MATH_SINGLE_TOOLTIP_ABS,\n 'sq': Blockly.Msg.MATH_SINGLE_TOOLTIP_SQ,\n 'round': Blockly.Msg.MATH_SINGLE_TOOLTIP_ROUND,\n 'ceil': Blockly.Msg.MATH_SINGLE_TOOLTIP_CEIL,\n 'floor': Blockly.Msg.MATH_SINGLE_TOOLTIP_FLOOR\n };\n return TOOLTIPS[mode];\n });\n }\n};\n//最大最小值\nexport const math_max_min = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_MAX, 'max'],\n [Blockly.Msg.MIXLY_MIN, 'min'],\n ];\n\n this.setColour(MATH_HUE);\n this.appendValueInput('A')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP')\n .appendField('(');\n this.appendValueInput('B')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(',');\n this.appendDummyInput('')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(')');\n this.setInputsInline(true);\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'max': Blockly.Msg.MIXLY_TOOLTIP_MATH_MAX,\n 'min': Blockly.Msg.MIXLY_TOOLTIP_MATH_MIN\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const math_number_base_conversion = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MATH_TWO, 'two'],\n [Blockly.Msg.MATH_EIGHT, 'eight'],\n [Blockly.Msg.MATH_TEN, 'ten'],\n [Blockly.Msg.MATH_SIXTEEN, 'sixteen']\n ];\n this.setColour(MATH_HUE);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MATH_BA)\n this.appendValueInput(\"NUM\")\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP')\n .appendField(Blockly.Msg.MATH_JinZhi)\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MATH_ZHW)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP2')\n .appendField(Blockly.Msg.MATH_JinZhi);\n this.setFieldValue('ten', 'OP2')\n // this.setPreviousStatement(true, null);\n // this.setNextStatement(true, null);\n this.setOutput(true)\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'two': Blockly.Msg.MATH_Before_two,\n 'eight': Blockly.Msg.MATH_Before_eight,\n 'ten': Blockly.Msg.MATH_Before_ten,\n 'sixteen': Blockly.Msg.MATH_Before_sixteen,\n };\n var mode2 = thisBlock.getFieldValue('OP2');\n var TOOLTIPS2 = {\n 'two': Blockly.Msg.MATH_Behind_two,\n 'eight': Blockly.Msg.MATH_Behind_eight,\n 'ten': Blockly.Msg.MATH_Behind_ten,\n 'sixteen': Blockly.Msg.MATH_Behind_sixteen,\n };\n return TOOLTIPS[mode] + TOOLTIPS2[mode2];\n });\n }\n};\n\n\nexport const math_random = {\n init: function () {\n var INT_FLOAT = [[Blockly.Msg.LANG_MATH_INT, 'int'], [Blockly.Msg.LANG_MATH_FLOAT, 'float']];\n this.setColour(MATH_HUE);\n this.setOutput(true, Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_RANDOM)\n .appendField(new Blockly.FieldDropdown(INT_FLOAT), 'TYPE');\n this.appendValueInput('FROM')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_CONTROLS_FOR_INPUT_FROM);\n this.appendValueInput('TO')\n .setCheck(Number)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg.LANG_MATH_RANDOM_INT_INPUT_TO);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('TYPE');\n var TOOLTIPS = {\n 'int': Blockly.Msg.LANG_MATH_INT,\n 'float': Blockly.Msg.LANG_MATH_FLOAT_RANDOM\n };\n return Blockly.Msg.MATH_RANDOM_INT_TOOLTIP + TOOLTIPS[mode];\n });\n }\n};\n\n\nexport const math_constrain = {\n /**\n * Block for constraining a number between two limits.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(MATH_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('VALUE')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN);\n this.appendValueInput('LOW')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW);\n this.appendValueInput('HIGH')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MATH_CONSTRAIN_TOOLTIP);\n }\n};\n\nexport const math_map = {\n init: function () {\n this.setColour(MATH_HUE);\n this.appendValueInput(\"NUM\", Number)\n .appendField(Blockly.Msg.MIXLY_MAP)\n .setCheck(Number);\n this.appendValueInput(\"fromLow\", Number)\n .appendField(Blockly.Msg.MIXLY_MAP_FROM)\n .setCheck(Number);\n this.appendValueInput(\"fromHigh\", Number)\n .appendField(\",\")\n .setCheck(Number);\n this.appendValueInput(\"toLow\", Number)\n .appendField(Blockly.Msg.MIXLY_MAP_TO)\n .setCheck(Number);\n this.appendValueInput(\"toHigh\", Number)\n .appendField(\",\")\n .setCheck(Number);\n this.appendDummyInput(\"\")\n .appendField(\"]\");\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_MATH_MAP);\n }\n};\n\nexport const math_indexer_number = {\n /**\n * Block for numeric value.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(MATH_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput('0', Blockly.FieldTextInput.math_number_validator_include_blank), 'NUM');\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MATH_NUMBER_TOOLTIP);\n }\n};\n\nexport const math_random_seed = {\n init: function () {\n this.setColour(MATH_HUE);\n this.appendValueInput('NUM')\n .setCheck(Number)\n .appendField(Blockly.Msg.LANG_MATH_RANDOM_SEED);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED);\n }\n};\n\nexport const math_round = {\n\n init: function () {\n this.setColour(MATH_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('VALUE')\n .setCheck(Number)\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MATH_ROUND)\n .appendField(Blockly.Msg.TEXT_KEEP);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_DECIMAL);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MATH_ROUND_NEW_TOOLTIP);\n }\n};\n\nexport const text_to_number = {\n init: function () {\n var TO_INT_FLOAT =\n [[Blockly.Msg.MIXLY_TO_INT, 'int'], [Blockly.Msg.MIXLY_TO_FLOAT, 'float'], [Blockly.Msg.MIXLY_TO_BITES, 'b'], [Blockly.Msg.LANG_MATH_BYTE + Blockly.Msg.MIXLY_TO_INT, 'bti']];\n this.setColour(MATH_HUE);\n this.appendValueInput('VAR')\n .appendField(new Blockly.FieldDropdown(TO_INT_FLOAT), 'TOWHAT');\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('TOWHAT');\n var TOOLTIPS = {\n 'int': Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,\n 'float': Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,\n 'b': Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const text_to_number_skulpt = {\n init: function () {\n var TO_INT_FLOAT =\n [[Blockly.Msg.MIXLY_TO_INT, 'int'], [Blockly.Msg.MIXLY_TO_FLOAT, 'float']];\n this.setColour(MATH_HUE);\n this.appendValueInput('VAR')\n .appendField(new Blockly.FieldDropdown(TO_INT_FLOAT), 'TOWHAT');\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('TOWHAT');\n var TOOLTIPS = {\n 'int': Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOINT,\n 'float': Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const base_map = math_map\n\nexport const turn_to_int = {\n init: function () {\n this.setColour(MATH_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.LANG_MATH_BYTE + Blockly.Msg.MIXLY_TO_HEX);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)\n }\n};\n\nexport const generate_cartesian_product = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(MATH_HUE);\n this.itemCount_ = 1;\n this.setMutator(new Blockly.icons.MutatorIcon(['lists_create_with_item'], this));\n this.appendDummyInput('DUMMY')\n .appendField(Blockly.Msg.MIXLY_PRODUCT + Blockly.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT);\n this.appendValueInput('REPEAT')\n .appendField(Blockly.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT);\n this.appendDummyInput()\n .appendField(Blockly.Msg.CONTROLS_REPEAT_TITLE_TIMES);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP);\n this.updateShape_();\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('lists_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('lists_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput(`ADD${i}`).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput(`ADD${i}`);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n let i = 0;\n while (this.getInput(`ADD${i}`)) {\n this.removeInput(`ADD${i}`);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.MIXLY_EMPTY_REMINDER);\n } else {\n for (let i = 0; i < this.itemCount_; i++) {\n this.appendValueInput(`ADD${i}`);\n this.moveInputBefore(`ADD${i}`, 'REPEAT');\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n}","/**\n * @license\n * Copyright 2012 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * @fileoverview Procedure blocks for Blockly.\n * @author fraser@google.com (Neil Fraser)\n */\nimport * as Blockly from 'blockly/core';\nimport Procedures from '../others/procedures';\n\nexport const procedures_defnoreturn = {\n /**\n * Block for defining a procedure with no return value.\n * @this {Blockly.Block}\n */\n init: function () {\n var initName = Procedures.findLegalName('', this);\n var nameField = new Blockly.FieldTextInput(initName,\n Procedures.rename);\n nameField.setSpellcheck(false);\n this.appendDummyInput()\n // .appendField(Blockly.Msg['PROCEDURES_DEFNORETURN_TITLE'])\n .appendField(nameField, 'NAME')\n .appendField('', 'PARAMS');\n this.setMutator(new Blockly.icons.MutatorIcon(['procedures_mutatorarg'], this));\n if ((this.workspace.options.comments ||\n (this.workspace.options.parentWorkspace &&\n this.workspace.options.parentWorkspace.options.comments)) &&\n Blockly.Msg['PROCEDURES_DEFNORETURN_COMMENT']) {\n this.setCommentText(Blockly.Msg['PROCEDURES_DEFNORETURN_COMMENT']);\n }\n this.setStyle('procedure_blocks');\n this.setTooltip(Blockly.Msg['PROCEDURES_DEFNORETURN_TOOLTIP']);\n this.setHelpUrl(Blockly.Msg['PROCEDURES_DEFNORETURN_HELPURL']);\n this.arguments_ = [];\n this.argumentVarModels_ = [];\n this.setStatements_(true);\n this.statementConnection_ = null;\n },\n /**\n * Add or remove the statement block from this function definition.\n * @param {boolean} hasStatements True if a statement block is needed.\n * @this {Blockly.Block}\n */\n setStatements_: function (hasStatements) {\n if (this.hasStatements_ === hasStatements) {\n return;\n }\n if (hasStatements) {\n this.appendStatementInput('STACK')\n .appendField(Blockly.Msg['PROCEDURES_DEFNORETURN_DO']);\n if (this.getInput('RETURN')) {\n this.moveInputBefore('STACK', 'RETURN');\n }\n } else {\n this.removeInput('STACK', true);\n }\n this.hasStatements_ = hasStatements;\n },\n /**\n * Update the display of parameters for this procedure definition block.\n * @private\n * @this {Blockly.Block}\n */\n updateParams_: function () {\n\n // Merge the arguments into a human-readable list.\n var paramString = '';\n if (this.arguments_.length) {\n paramString = Blockly.Msg['PROCEDURES_BEFORE_PARAMS'] +\n ' ' + this.arguments_.join(', ');\n }\n // The params field is deterministic based on the mutation,\n // no need to fire a change event.\n Blockly.Events.disable();\n try {\n this.setFieldValue(paramString, 'PARAMS');\n } finally {\n Blockly.Events.enable();\n }\n },\n /**\n * Create XML to represent the argument inputs.\n * @param {boolean=} opt_paramIds If true include the IDs of the parameter\n * quarks. Used by Procedures.mutateCallers for reconnection.\n * @return {!Element} XML storage element.\n * @this {Blockly.Block}\n */\n mutationToDom: function (opt_paramIds) {\n var container = Blockly.utils.xml.createElement('mutation');\n if (opt_paramIds) {\n container.setAttribute('name', this.getFieldValue('NAME'));\n }\n for (var i = 0; i < this.argumentVarModels_.length; i++) {\n var parameter = Blockly.utils.xml.createElement('arg');\n var argModel = this.argumentVarModels_[i];\n parameter.setAttribute('name', argModel.name);\n parameter.setAttribute('varid', argModel.getId());\n if (opt_paramIds && this.paramIds_) {\n parameter.setAttribute('paramId', this.paramIds_[i]);\n }\n container.appendChild(parameter);\n }\n\n // Save whether the statement input is visible.\n if (!this.hasStatements_) {\n container.setAttribute('statements', 'false');\n }\n return container;\n },\n /**\n * Parse XML to restore the argument inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this {Blockly.Block}\n */\n domToMutation: function (xmlElement) {\n this.arguments_ = [];\n this.argumentVarModels_ = [];\n for (var i = 0, childNode; (childNode = xmlElement.childNodes[i]); i++) {\n if (childNode.nodeName.toLowerCase() == 'arg') {\n var varName = childNode.getAttribute('name');\n var varId = childNode.getAttribute('varid') || childNode.getAttribute('varId');\n this.arguments_.push(varName);\n var variable = Blockly.Variables.getOrCreateVariablePackage(\n this.workspace, varId, varName, '');\n if (variable != null) {\n this.argumentVarModels_.push(variable);\n } else {\n console.log('Failed to create a variable with name ' + varName + ', ignoring.');\n }\n }\n }\n this.updateParams_();\n Procedures.mutateCallers(this);\n\n // Show or hide the statement input.\n this.setStatements_(xmlElement.getAttribute('statements') !== 'false');\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this {Blockly.Block}\n */\n decompose: function (workspace) {\n /*\n * Creates the following XML:\n * \n * \n * \n * arg1_name\n * etc...\n * \n * \n * \n */\n\n var containerBlockNode = Blockly.utils.xml.createElement('block');\n containerBlockNode.setAttribute('type', 'procedures_mutatorcontainer');\n var statementNode = Blockly.utils.xml.createElement('statement');\n statementNode.setAttribute('name', 'STACK');\n containerBlockNode.appendChild(statementNode);\n\n var node = statementNode;\n for (var i = 0; i < this.arguments_.length; i++) {\n var argBlockNode = Blockly.utils.xml.createElement('block');\n argBlockNode.setAttribute('type', 'procedures_mutatorarg');\n var fieldNode = Blockly.utils.xml.createElement('field');\n fieldNode.setAttribute('name', 'NAME');\n var argumentName = Blockly.utils.xml.createTextNode(this.arguments_[i]);\n fieldNode.appendChild(argumentName);\n argBlockNode.appendChild(fieldNode);\n var nextNode = Blockly.utils.xml.createElement('next');\n argBlockNode.appendChild(nextNode);\n\n node.appendChild(argBlockNode);\n node = nextNode;\n }\n\n var containerBlock = Blockly.Xml.domToBlock(containerBlockNode, workspace);\n\n if (this.type == 'procedures_defreturn') {\n containerBlock.setFieldValue(this.hasStatements_, 'STATEMENTS');\n } else {\n containerBlock.removeInput('STATEMENT_INPUT');\n }\n\n // Initialize procedure's callers with blank IDs.\n Procedures.mutateCallers(this);\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this {Blockly.Block}\n */\n compose: function (containerBlock) {\n // Parameter list.\n this.arguments_ = [];\n this.paramIds_ = [];\n this.argumentVarModels_ = [];\n var paramBlock = containerBlock.getInputTargetBlock('STACK');\n while (paramBlock && !paramBlock.isInsertionMarker()) {\n var varName = paramBlock.getFieldValue('NAME');\n this.arguments_.push(varName);\n var variable = this.workspace.getVariable(varName, '');\n this.argumentVarModels_.push(variable);\n\n this.paramIds_.push(paramBlock.id);\n paramBlock = paramBlock.nextConnection &&\n paramBlock.nextConnection.targetBlock();\n }\n this.updateParams_();\n Procedures.mutateCallers(this);\n\n // Show/hide the statement input.\n var hasStatements = containerBlock.getFieldValue('STATEMENTS');\n if (hasStatements !== null) {\n hasStatements = hasStatements == 'TRUE';\n if (this.hasStatements_ != hasStatements) {\n if (hasStatements) {\n this.setStatements_(true);\n // Restore the stack, if one was saved.\n this.statementConnection_ && this.statementConnection_.reconnect(this, 'STACK');\n this.statementConnection_ = null;\n } else {\n // Save the stack, then disconnect it.\n var stackConnection = this.getInput('STACK').connection;\n this.statementConnection_ = stackConnection.targetConnection;\n if (this.statementConnection_) {\n var stackBlock = stackConnection.targetBlock();\n stackBlock.unplug();\n stackBlock.bumpNeighbours();\n }\n this.setStatements_(false);\n }\n }\n }\n },\n /**\n * Return the signature of this procedure definition.\n * @return {!Array} Tuple containing three elements:\n * - the name of the defined procedure,\n * - a list of all its arguments,\n * - that it DOES NOT have a return value.\n * @this {Blockly.Block}\n */\n getProcedureDef: function () {\n return [this.getFieldValue('NAME'), this.arguments_, false];\n },\n /**\n * Return all variables referenced by this block.\n * @return {!Array} List of variable names.\n * @this {Blockly.Block}\n */\n getVars: function () {\n return this.arguments_;\n },\n /**\n * Return all variables referenced by this block.\n * @return {!Array} List of variable models.\n * @this {Blockly.Block}\n */\n getVarModels: function () {\n return this.argumentVarModels_;\n },\n /**\n * Notification that a variable is renaming.\n * If the ID matches one of this block's variables, rename it.\n * @param {string} oldId ID of variable to rename.\n * @param {string} newId ID of new variable. May be the same as oldId, but\n * with an updated name. Guaranteed to be the same type as the old\n * variable.\n * @override\n * @this {Blockly.Block}\n */\n renameVarById: function (oldId, newId) {\n var oldVariable = this.workspace.getVariableById(oldId);\n if (oldVariable.type != '') {\n // Procedure arguments always have the empty type.\n return;\n }\n var oldName = oldVariable.name;\n var newVar = this.workspace.getVariableById(newId);\n\n var change = false;\n for (var i = 0; i < this.argumentVarModels_.length; i++) {\n if (this.argumentVarModels_[i].getId() == oldId) {\n this.arguments_[i] = newVar.name;\n this.argumentVarModels_[i] = newVar;\n change = true;\n }\n }\n if (change) {\n this.displayRenamedVar_(oldName, newVar.name);\n Procedures.mutateCallers(this);\n }\n },\n /**\n * Notification that a variable is renaming but keeping the same ID. If the\n * variable is in use on this block, rerender to show the new name.\n * @param {!Blockly.VariableModel} variable The variable being renamed.\n * @package\n * @override\n * @this {Blockly.Block}\n */\n updateVarName: function (variable) {\n var newName = variable.name;\n var change = false;\n for (var i = 0; i < this.argumentVarModels_.length; i++) {\n if (this.argumentVarModels_[i].getId() == variable.getId()) {\n var oldName = this.arguments_[i];\n this.arguments_[i] = newName;\n change = true;\n }\n }\n if (change) {\n this.displayRenamedVar_(oldName, newName);\n Procedures.mutateCallers(this);\n }\n },\n /**\n * Update the display to reflect a newly renamed argument.\n * @param {string} oldName The old display name of the argument.\n * @param {string} newName The new display name of the argument.\n * @private\n * @this {Blockly.Block}\n */\n displayRenamedVar_: function (oldName, newName) {\n this.updateParams_();\n const mutator = this.getIcon(Blockly.icons.MutatorIcon.TYPE);\n // Update the mutator's variables if the mutator is open.\n if (mutator && mutator.bubbleIsVisible()) {\n var blocks = mutator.getWorkspace().getAllBlocks(false);\n for (var i = 0, block; (block = blocks[i]); i++) {\n if (block.type == 'procedures_mutatorarg' &&\n Blockly.Names.equals(oldName, block.getFieldValue('NAME'))) {\n block.setFieldValue(newName, 'NAME');\n }\n }\n }\n },\n /**\n * Add custom menu options to this block's context menu.\n * @param {!Array} options List of menu options to add to.\n * @this {Blockly.Block}\n */\n customContextMenu: function (options) {\n if (this.isInFlyout) {\n return;\n }\n // Add option to create caller.\n var option = { enabled: true };\n var name = this.getFieldValue('NAME');\n option.text = Blockly.Msg['PROCEDURES_CREATE_DO'].replace('%1', name);\n var xmlMutation = Blockly.utils.xml.createElement('mutation');\n xmlMutation.setAttribute('name', name);\n for (var i = 0; i < this.arguments_.length; i++) {\n var xmlArg = Blockly.utils.xml.createElement('arg');\n xmlArg.setAttribute('name', this.arguments_[i]);\n xmlMutation.appendChild(xmlArg);\n }\n var xmlBlock = Blockly.utils.xml.createElement('block');\n xmlBlock.setAttribute('type', this.callType_);\n xmlBlock.appendChild(xmlMutation);\n option.callback = Blockly.ContextMenu.callbackFactory(this, xmlBlock);\n options.push(option);\n\n // Add options to create getters for each parameter.\n if (!this.isCollapsed()) {\n for (var i = 0; i < this.argumentVarModels_.length; i++) {\n var argOption = { enabled: true };\n var argVar = this.argumentVarModels_[i];\n argOption.text = Blockly.Msg['VARIABLES_SET_CREATE_GET']\n .replace('%1', argVar.name);\n\n var argXmlField = Blockly.Variables.generateVariableFieldDom(argVar);\n var argXmlBlock = Blockly.utils.xml.createElement('block');\n argXmlBlock.setAttribute('type', 'variables_get');\n argXmlBlock.appendChild(argXmlField);\n argOption.callback =\n Blockly.ContextMenu.callbackFactory(this, argXmlBlock);\n options.push(argOption);\n }\n }\n },\n callType_: 'procedures_callnoreturn'\n};\n\nexport const procedures_defreturn = {\n /**\n * Block for defining a procedure with a return value.\n * @this {Blockly.Block}\n */\n init: function () {\n var initName = Procedures.findLegalName('', this);\n var nameField = new Blockly.FieldTextInput(initName,\n Procedures.rename);\n nameField.setSpellcheck(false);\n this.appendDummyInput()\n // .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_TITLE'])\n .appendField(nameField, 'NAME')\n .appendField('', 'PARAMS');\n this.appendValueInput('RETURN')\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN']);\n this.setMutator(new Blockly.icons.MutatorIcon(['procedures_mutatorarg'], this));\n if ((this.workspace.options.comments ||\n (this.workspace.options.parentWorkspace &&\n this.workspace.options.parentWorkspace.options.comments)) &&\n Blockly.Msg['PROCEDURES_DEFRETURN_COMMENT']) {\n this.setCommentText(Blockly.Msg['PROCEDURES_DEFRETURN_COMMENT']);\n }\n this.setStyle('procedure_blocks');\n this.setTooltip(Blockly.Msg['PROCEDURES_DEFRETURN_TOOLTIP']);\n this.setHelpUrl(Blockly.Msg['PROCEDURES_DEFRETURN_HELPURL']);\n this.arguments_ = [];\n this.argumentVarModels_ = [];\n this.setStatements_(true);\n this.statementConnection_ = null;\n },\n setStatements_: procedures_defnoreturn.setStatements_,\n updateParams_: procedures_defnoreturn.updateParams_,\n mutationToDom: procedures_defnoreturn.mutationToDom,\n domToMutation: procedures_defnoreturn.domToMutation,\n decompose: procedures_defnoreturn.decompose,\n compose: procedures_defnoreturn.compose,\n /**\n * Return the signature of this procedure definition.\n * @return {!Array} Tuple containing three elements:\n * - the name of the defined procedure,\n * - a list of all its arguments,\n * - that it DOES have a return value.\n * @this {Blockly.Block}\n */\n getProcedureDef: function () {\n return [this.getFieldValue('NAME'), this.arguments_, true];\n },\n getVars: procedures_defnoreturn.getVars,\n getVarModels: procedures_defnoreturn.getVarModels,\n renameVarById: procedures_defnoreturn.renameVarById,\n updateVarName: procedures_defnoreturn.updateVarName,\n displayRenamedVar_: procedures_defnoreturn.displayRenamedVar_,\n customContextMenu: procedures_defnoreturn.customContextMenu,\n callType_: 'procedures_callreturn'\n};\n\nexport const procedures_mutatorcontainer = {\n /**\n * Mutator block for procedure container.\n * @this {Blockly.Block}\n */\n init: function () {\n this.appendDummyInput()\n .appendField(Blockly.Msg['PROCEDURES_MUTATORCONTAINER_TITLE']);\n this.appendStatementInput('STACK');\n this.appendDummyInput('STATEMENT_INPUT')\n .appendField(Blockly.Msg['PROCEDURES_ALLOW_STATEMENTS'])\n .appendField(new Blockly.FieldCheckbox('TRUE'), 'STATEMENTS');\n this.setStyle('procedure_blocks');\n this.setTooltip(Blockly.Msg['PROCEDURES_MUTATORCONTAINER_TOOLTIP']);\n this.contextMenu = false;\n },\n};\n\nexport const procedures_mutatorarg = {\n /**\n * Mutator block for procedure argument.\n * @this {Blockly.Block}\n */\n init: function () {\n var field = new Blockly.FieldTextInput(\n Procedures.DEFAULT_ARG, this.validator_);\n // Hack: override showEditor to do just a little bit more work.\n // We don't have a good place to hook into the start of a text edit.\n field.oldShowEditorFn_ = field.showEditor_;\n var newShowEditorFn = function () {\n this.createdVariables_ = [];\n this.oldShowEditorFn_();\n };\n field.showEditor_ = newShowEditorFn;\n\n this.appendDummyInput()\n .appendField(Blockly.Msg.PROCEDURES_BEFORE_PARAMS)\n .appendField(field, 'NAME');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setStyle('procedure_blocks');\n this.setTooltip(Blockly.Msg['PROCEDURES_MUTATORARG_TOOLTIP']);\n this.contextMenu = false;\n\n // Create the default variable when we drag the block in from the flyout.\n // Have to do this after installing the field on the block.\n field.onFinishEditing_ = this.deleteIntermediateVars_;\n // Create an empty list so onFinishEditing_ has something to look at, even\n // though the editor was never opened.\n field.createdVariables_ = [];\n field.onFinishEditing_('x');\n },\n /**\n * Obtain a valid name for the procedure argument. Create a variable if\n * necessary.\n * Merge runs of whitespace. Strip leading and trailing whitespace.\n * Beyond this, all names are legal.\n * @param {string} varName User-supplied name.\n * @return {?string} Valid name, or null if a name was not specified.\n * @private\n * @this Blockly.FieldTextInput\n */\n validator_: function (varName) {\n var sourceBlock = this.getSourceBlock();\n\n var outerWs = sourceBlock.workspace.getRootWorkspace();\n varName = varName.replace(/[\\s\\xa0]+/g, ' ').replace(/^ | $/g, '');\n if (!varName) {\n return null;\n }\n\n // Prevents duplicate parameter names in functions\n var workspace = sourceBlock.workspace.targetWorkspace ||\n sourceBlock.workspace;\n var blocks = workspace.getAllBlocks(false);\n var caselessName = varName.toLowerCase();\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i].id == this.getSourceBlock().id) {\n continue;\n }\n // Other blocks values may not be set yet when this is loaded.\n var otherVar = blocks[i].getFieldValue('NAME');\n if (otherVar && otherVar.toLowerCase() == caselessName) {\n return null;\n }\n }\n\n // Don't create variables for arg blocks that\n // only exist in the mutator's flyout.\n if (sourceBlock.isInFlyout) {\n return varName;\n }\n\n var model = outerWs.getVariable(varName, '');\n if (model && model.name != varName) {\n // Rename the variable (case change)\n outerWs.renameVariableById(model.getId(), varName);\n }\n if (!model) {\n model = outerWs.createVariable(varName, '');\n if (model && this.createdVariables_) {\n this.createdVariables_.push(model);\n }\n }\n return varName;\n },\n\n /**\n * Called when focusing away from the text field.\n * Deletes all variables that were created as the user typed their intended\n * variable name.\n * @param {string} newText The new variable name.\n * @private\n * @this Blockly.FieldTextInput\n */\n deleteIntermediateVars_: function (newText) {\n var outerWs = this.getSourceBlock().workspace.getRootWorkspace();\n if (!outerWs) {\n return;\n }\n for (var i = 0; i < this.createdVariables_.length; i++) {\n var model = this.createdVariables_[i];\n if (model.name != newText) {\n outerWs.deleteVariableById(model.getId());\n }\n }\n }\n};\n\nexport const procedures_callnoreturn = {\n /**\n * Block for calling a procedure with no return value.\n * @this {Blockly.Block}\n */\n init: function () {\n this.appendDummyInput('TOPROW')\n .appendField('', 'NAME');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setStyle('procedure_blocks');\n // Tooltip is set in renameProcedure.\n this.setHelpUrl(Blockly.Msg['PROCEDURES_CALLNORETURN_HELPURL']);\n this.arguments_ = [];\n this.argumentVarModels_ = [];\n this.quarkConnections_ = {};\n this.quarkIds_ = null;\n this.previousEnabledState_ = true;\n },\n\n /**\n * Returns the name of the procedure this block calls.\n * @return {string} Procedure name.\n * @this {Blockly.Block}\n */\n getProcedureCall: function () {\n // The NAME field is guaranteed to exist, null will never be returned.\n return /** @type {string} */ (this.getFieldValue('NAME'));\n },\n /**\n * Notification that a procedure is renaming.\n * If the name matches this block's procedure, rename it.\n * @param {string} oldName Previous name of procedure.\n * @param {string} newName Renamed procedure.\n * @this {Blockly.Block}\n */\n renameProcedure: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getProcedureCall())) {\n this.setFieldValue(newName, 'NAME');\n var baseMsg = this.outputConnection ?\n Blockly.Msg['PROCEDURES_CALLRETURN_TOOLTIP'] :\n Blockly.Msg['PROCEDURES_CALLNORETURN_TOOLTIP'];\n this.setTooltip(baseMsg.replace('%1', newName));\n }\n },\n /**\n * Notification that the procedure's parameters have changed.\n * @param {!Array} paramNames New param names, e.g. ['x', 'y', 'z'].\n * @param {!Array} paramIds IDs of params (consistent for each\n * parameter through the life of a mutator, regardless of param renaming),\n * e.g. ['piua', 'f8b_', 'oi.o'].\n * @private\n * @this {Blockly.Block}\n */\n setProcedureParameters_: function (paramNames, paramIds) {\n // Data structures:\n // this.arguments = ['x', 'y']\n // Existing param names.\n // this.quarkConnections_ {piua: null, f8b_: Blockly.Connection}\n // Look-up of paramIds to connections plugged into the call block.\n // this.quarkIds_ = ['piua', 'f8b_']\n // Existing param IDs.\n // Note that quarkConnections_ may include IDs that no longer exist, but\n // which might reappear if a param is reattached in the mutator.\n var defBlock = Procedures.getDefinition(this.getProcedureCall(),\n this.workspace);\n const mutatorIcon = defBlock && defBlock.getIcon(Blockly.icons.MutatorIcon.TYPE);\n const mutatorOpen =\n mutatorIcon && mutatorIcon.bubbleIsVisible();\n if (!mutatorOpen) {\n this.quarkConnections_ = {};\n this.quarkIds_ = null;\n }\n if (!paramIds) {\n // Reset the quarks (a mutator is about to open).\n return;\n }\n // Test arguments (arrays of strings) for changes. '\\n' is not a valid\n // argument name character, so it is a valid delimiter here.\n if (paramNames.join('\\n') == this.arguments_.join('\\n')) {\n // No change.\n this.quarkIds_ = paramIds;\n return;\n }\n if (paramIds.length != paramNames.length) {\n throw Error('paramNames and paramIds must be the same length.');\n }\n this.setCollapsed(false);\n if (!this.quarkIds_) {\n // Initialize tracking for this block.\n this.quarkConnections_ = {};\n this.quarkIds_ = [];\n }\n // Switch off rendering while the block is rebuilt.\n var savedRendered = this.rendered;\n this.rendered = false;\n // Update the quarkConnections_ with existing connections.\n for (var i = 0; i < this.arguments_.length; i++) {\n var input = this.getInput('ARG' + i);\n if (input) {\n var connection = input.connection.targetConnection;\n this.quarkConnections_[this.quarkIds_[i]] = connection;\n if (mutatorOpen && connection &&\n paramIds.indexOf(this.quarkIds_[i]) == -1) {\n // This connection should no longer be attached to this block.\n connection.disconnect();\n connection.getSourceBlock().bumpNeighbours();\n }\n }\n }\n // Rebuild the block's arguments.\n this.arguments_ = [].concat(paramNames);\n // And rebuild the argument model list.\n this.argumentVarModels_ = [];\n for (var i = 0; i < this.arguments_.length; i++) {\n var variable = Blockly.Variables.getOrCreateVariablePackage(\n this.workspace, null, this.arguments_[i], '');\n this.argumentVarModels_.push(variable);\n }\n\n this.updateShape_();\n this.quarkIds_ = paramIds;\n // Reconnect any child blocks.\n if (this.quarkIds_) {\n for (var i = 0; i < this.arguments_.length; i++) {\n var quarkId = this.quarkIds_[i];\n if (quarkId in this.quarkConnections_) {\n var connection = this.quarkConnections_[quarkId];\n if (connection && !connection.reconnect(this, 'ARG' + i)) {\n // Block no longer exists or has been attached elsewhere.\n delete this.quarkConnections_[quarkId];\n }\n }\n }\n }\n // Restore rendering and show the changes.\n this.rendered = savedRendered;\n if (this.rendered) {\n this.render();\n }\n },\n /**\n * Modify this block to have the correct number of arguments.\n * @private\n * @this {Blockly.Block}\n */\n updateShape_: function () {\n for (var i = 0; i < this.arguments_.length; i++) {\n var field = this.getField('ARGNAME' + i);\n if (field) {\n // Ensure argument name is up to date.\n // The argument name field is deterministic based on the mutation,\n // no need to fire a change event.\n Blockly.Events.disable();\n try {\n field.setValue(this.arguments_[i]);\n } finally {\n Blockly.Events.enable();\n }\n } else {\n // Add new input.\n field = new Blockly.FieldLabel(this.arguments_[i]);\n var input = this.appendValueInput('ARG' + i)\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField(field, 'ARGNAME' + i);\n input.init();\n }\n }\n // Remove deleted inputs.\n while (this.getInput('ARG' + i)) {\n this.removeInput('ARG' + i);\n i++;\n }\n // Add 'with:' if there are parameters, remove otherwise.\n var topRow = this.getInput('TOPROW');\n if (topRow) {\n if (this.arguments_.length) {\n if (!this.getField('WITH')) {\n topRow.appendField(Blockly.Msg['PROCEDURES_CALL_BEFORE_PARAMS'], 'WITH');\n topRow.init();\n }\n } else {\n if (this.getField('WITH')) {\n topRow.removeField('WITH');\n }\n }\n }\n },\n /**\n * Create XML to represent the (non-editable) name and arguments.\n * @return {!Element} XML storage element.\n * @this {Blockly.Block}\n */\n mutationToDom: function () {\n var container = Blockly.utils.xml.createElement('mutation');\n container.setAttribute('name', this.getProcedureCall());\n for (var i = 0; i < this.arguments_.length; i++) {\n var parameter = Blockly.utils.xml.createElement('arg');\n parameter.setAttribute('name', this.arguments_[i]);\n container.appendChild(parameter);\n }\n return container;\n },\n /**\n * Parse XML to restore the (non-editable) name and parameters.\n * @param {!Element} xmlElement XML storage element.\n * @this {Blockly.Block}\n */\n domToMutation: function (xmlElement) {\n var name = xmlElement.getAttribute('name');\n this.renameProcedure(this.getProcedureCall(), name);\n var args = [];\n var paramIds = [];\n for (var i = 0, childNode; (childNode = xmlElement.childNodes[i]); i++) {\n if (childNode.nodeName.toLowerCase() == 'arg') {\n args.push(childNode.getAttribute('name'));\n paramIds.push(childNode.getAttribute('paramId'));\n }\n }\n this.setProcedureParameters_(args, paramIds);\n },\n /**\n * Return all variables referenced by this block.\n * @return {!Array} List of variable names.\n * @this {Blockly.Block}\n */\n getVars: function () {\n return this.arguments_;\n },\n /**\n * Return all variables referenced by this block.\n * @return {!Array} List of variable models.\n * @this {Blockly.Block}\n */\n getVarModels: function () {\n return this.argumentVarModels_;\n },\n /**\n * Procedure calls cannot exist without the corresponding procedure\n * definition. Enforce this link whenever an event is fired.\n * @param {!Blockly.Events.Abstract} event Change event.\n * @this {Blockly.Block}\n */\n onchange: function (event) {\n if (!this.workspace || this.workspace.isFlyout) {\n // Block is deleted or is in a flyout.\n return;\n }\n if (!event.recordUndo) {\n // Events not generated by user. Skip handling.\n return;\n }\n if (event.type == Blockly.Events.BLOCK_CREATE &&\n event.ids.indexOf(this.id) != -1) {\n // Look for the case where a procedure call was created (usually through\n // paste) and there is no matching definition. In this case, create\n // an empty definition block with the correct signature.\n var name = this.getProcedureCall();\n var def = Procedures.getDefinition(name, this.workspace);\n if (def && (def.type != this.defType_)) {\n // The signatures don't match.\n def = null;\n }\n if (!def) {\n Blockly.Events.setGroup(event.group);\n /**\n * Create matching definition block.\n * \n * \n * \n * \n * \n * test\n * \n * \n */\n var xml = Blockly.utils.xml.createElement('xml');\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', this.defType_);\n var xy = this.getRelativeToSurfaceXY();\n var x = xy.x + Blockly.SNAP_RADIUS * (this.RTL ? -1 : 1);\n var y = xy.y + Blockly.SNAP_RADIUS * 2;\n block.setAttribute('x', x);\n block.setAttribute('y', y);\n var mutation = this.mutationToDom();\n block.appendChild(mutation);\n var field = Blockly.utils.xml.createElement('field');\n field.setAttribute('name', 'NAME');\n var callName = this.getProcedureCall();\n if (!callName) {\n // Rename if name is empty string.\n callName = Procedures.findLegalName('', this);\n this.renameProcedure('', callName);\n }\n field.appendChild(Blockly.utils.xml.createTextNode(callName));\n block.appendChild(field);\n xml.appendChild(block);\n Blockly.Xml.domToWorkspace(xml, this.workspace);\n Blockly.Events.setGroup(false);\n } else {\n if (JSON.stringify(def.getVars()) != JSON.stringify(this.arguments_)) {\n let paramNames = def.arguments_;\n let paramIds = [];\n for (var i = 0; i < this.arguments_.length; i++) {\n var input = this.getInput('ARG' + i);\n if (!input) {\n continue;\n }\n var connection = input.connection.targetConnection;\n if (!connection) {\n paramIds.push(null);\n continue;\n }\n paramIds.push(connection.sourceBlock_.id);\n }\n this.setProcedureParameters_(paramNames, paramIds);\n }\n }\n } else if (event.type == Blockly.Events.BLOCK_DELETE) {\n // Look for the case where a procedure definition has been deleted,\n // leaving this block (a procedure call) orphaned. In this case, delete\n // the orphan.\n var name = this.getProcedureCall();\n var def = Procedures.getDefinition(name, this.workspace);\n if (!def) {\n Blockly.Events.setGroup(event.group);\n this.dispose(true);\n Blockly.Events.setGroup(false);\n }\n } else if (event.type == Blockly.Events.CHANGE && event.element == 'disabled') {\n var name = this.getProcedureCall();\n var def = Procedures.getDefinition(name, this.workspace);\n if (def && def.id == event.blockId) {\n // in most cases the old group should be ''\n var oldGroup = Blockly.Events.getGroup();\n if (oldGroup) {\n // This should only be possible programmatically and may indicate a problem\n // with event grouping. If you see this message please investigate. If the\n // use ends up being valid we may need to reorder events in the undo stack.\n console.log('Saw an existing group while responding to a definition change');\n }\n Blockly.Events.setGroup(event.group);\n if (event.newValue) {\n this.previousEnabledState_ = this.isEnabled();\n this.setEnabled(false);\n } else {\n this.setEnabled(this.previousEnabledState_);\n }\n Blockly.Events.setGroup(oldGroup);\n }\n }\n },\n /**\n * Add menu option to find the definition block for this call.\n * @param {!Array} options List of menu options to add to.\n * @this {Blockly.Block}\n */\n customContextMenu: function (options) {\n if (!this.workspace.isMovable()) {\n // If we center on the block and the workspace isn't movable we could\n // loose blocks at the edges of the workspace.\n return;\n }\n\n var option = { enabled: true };\n option.text = Blockly.Msg['PROCEDURES_HIGHLIGHT_DEF'];\n var name = this.getProcedureCall();\n var workspace = this.workspace;\n option.callback = function () {\n var def = Procedures.getDefinition(name, workspace);\n if (def) {\n workspace.centerOnBlock(def.id);\n def.select();\n }\n };\n options.push(option);\n },\n defType_: 'procedures_defnoreturn'\n};\n\nexport const procedures_callreturn = {\n /**\n * Block for calling a procedure with a return value.\n * @this {Blockly.Block}\n */\n init: function () {\n this.appendDummyInput('TOPROW')\n .appendField('', 'NAME');\n this.setOutput(true);\n this.setStyle('procedure_blocks');\n // Tooltip is set in domToMutation.\n this.setHelpUrl(Blockly.Msg['PROCEDURES_CALLRETURN_HELPURL']);\n this.arguments_ = [];\n this.argumentVarModels_ = [];\n this.quarkConnections_ = {};\n this.quarkIds_ = null;\n this.previousEnabledState_ = true;\n },\n\n getProcedureCall: procedures_callnoreturn.getProcedureCall,\n renameProcedure: procedures_callnoreturn.renameProcedure,\n setProcedureParameters_:\n procedures_callnoreturn.setProcedureParameters_,\n updateShape_: procedures_callnoreturn.updateShape_,\n mutationToDom: procedures_callnoreturn.mutationToDom,\n domToMutation: procedures_callnoreturn.domToMutation,\n getVars: procedures_callnoreturn.getVars,\n getVarModels: procedures_callnoreturn.getVarModels,\n onchange: procedures_callnoreturn.onchange,\n customContextMenu:\n procedures_callnoreturn.customContextMenu,\n defType_: 'procedures_defreturn'\n};\n\nexport const procedures_ifreturn = {\n /**\n * Block for conditionally returning a value from a procedure.\n * @this {Blockly.Block}\n */\n init: function () {\n this.appendValueInput('CONDITION')\n .setCheck('Boolean')\n .appendField(Blockly.Msg['CONTROLS_IF_MSG_IF']);\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN']);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setStyle('procedure_blocks');\n this.setTooltip(Blockly.Msg['PROCEDURES_IFRETURN_TOOLTIP']);\n this.setHelpUrl(Blockly.Msg['PROCEDURES_IFRETURN_HELPURL']);\n this.hasReturnValue_ = true;\n },\n /**\n * Create XML to represent whether this block has a return value.\n * @return {!Element} XML storage element.\n * @this {Blockly.Block}\n */\n mutationToDom: function () {\n var container = Blockly.utils.xml.createElement('mutation');\n container.setAttribute('value', Number(this.hasReturnValue_));\n return container;\n },\n /**\n * Parse XML to restore whether this block has a return value.\n * @param {!Element} xmlElement XML storage element.\n * @this {Blockly.Block}\n */\n domToMutation: function (xmlElement) {\n var value = xmlElement.getAttribute('value');\n this.hasReturnValue_ = (value == 1);\n if (!this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendDummyInput('VALUE')\n .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN']);\n }\n },\n /**\n * Called whenever anything on the workspace changes.\n * Add warning if this flow block is not nested inside a loop.\n * @param {!Blockly.Events.Abstract} _e Change event.\n * @this {Blockly.Block}\n */\n onchange: function () {\n if (!this.workspace.isDragging || this.workspace.isDragging()) {\n return; // Don't change state at the start of a drag.\n }\n var legal = false;\n // Is the block nested in a procedure?\n var block = this;\n do {\n if (this.FUNCTION_TYPES.indexOf(block.type) != -1) {\n legal = true;\n break;\n }\n block = block.getSurroundParent();\n } while (block);\n if (legal) {\n // If needed, toggle whether this block has a return value.\n if (block.type == 'procedures_defnoreturn' && this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendDummyInput('VALUE')\n .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN']);\n this.hasReturnValue_ = false;\n } else if (block.type == 'procedures_defreturn' &&\n !this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg['PROCEDURES_DEFRETURN_RETURN']);\n this.hasReturnValue_ = true;\n }\n this.setWarningText(null);\n if (!this.isInFlyout) {\n this.setEnabled(true);\n }\n } else {\n this.setWarningText(Blockly.Msg['PROCEDURES_IFRETURN_WARNING']);\n if (!this.isInFlyout && !this.getInheritedDisabled()) {\n this.setEnabled(false);\n }\n }\n },\n /**\n * List of block types that are functions and thus do not need warnings.\n * To add a new function type add this to your code:\n * procedures_ifreturn.FUNCTION_TYPES.push('custom_func');\n */\n FUNCTION_TYPES: ['procedures_defnoreturn', 'procedures_defreturn']\n};\n\nexport const procedures_return = {\n /**\n * Block for conditionally returning a value from a procedure.\n * @this Blockly.Block\n */\n init: function () {\n this.setStyle('procedure_blocks');\n // this.appendValueInput('CONDITION')\n // .setCheck(Boolean)\n // .appendField(Blockly.Msg.CONTROLS_IF_MSG_IF);\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_IFRETURN_TOOLTIP);\n this.hasReturnValue_ = true;\n },\n /**\n * Create XML to represent whether this block has a return value.\n * @return {!Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('value', Number(this.hasReturnValue_));\n return container;\n },\n /**\n * Parse XML to restore whether this block has a return value.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var value = xmlElement.getAttribute('value');\n this.hasReturnValue_ = (value == 1);\n if (!this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendDummyInput('VALUE')\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);\n }\n },\n /**\n * Called whenever anything on the workspace changes.\n * Add warning if this flow block is not nested inside a loop.\n * @param {!Blockly.Events.Abstract} e Change event.\n * @this Blockly.Block\n */\n onchange: function () {\n var legal = false;\n // Is the block nested in a procedure?\n var block = this;\n do {\n if (this.FUNCTION_TYPES.indexOf(block.type) != -1) {\n legal = true;\n break;\n }\n block = block.getSurroundParent();\n } while (block);\n if (legal) {\n // If needed, toggle whether this block has a return value.\n if (block.type == 'procedures_defnoreturn' && this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendDummyInput('VALUE')\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);\n this.hasReturnValue_ = false;\n } else if (block.type == 'procedures_defreturn' &&\n !this.hasReturnValue_) {\n this.removeInput('VALUE');\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN);\n this.hasReturnValue_ = true;\n }\n this.setWarningText(null);\n } else {\n this.setWarningText(Blockly.Msg.PROCEDURES_IFRETURN_WARNING);\n }\n },\n /**\n * List of block types that are functions and thus do not need warnings.\n * To add a new function type add this to your code:\n * procedures_ifreturn.FUNCTION_TYPES.push('custom_func');\n */\n FUNCTION_TYPES: ['procedures_defnoreturn', 'procedures_defreturn', 'method_procedures_defnoreturn', 'method_procedures_defreturn']\n};","import * as Blockly from 'blockly/core';\n\nconst SET_HUE = 100;\n\nexport const set_create_with = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE')\n // .appendField(' ')\n .appendField(new Blockly.FieldTextInput('s1'), 'VAR')\n\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['set_create_with_item'], this));\n this.setTooltip(Blockly.Msg.blockpy_SET_CREATE_WITH_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('set_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('set_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.blockpy_SET_CREATE_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.blockpy_SET_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const set_create_with_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(SET_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const set_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(SET_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.blockpy_SET_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const set_length = {\n\n init: function () {\n this.setColour(SET_HUE);\n this.appendValueInput('SET');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LENGTH);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.SET_LENGTH_TOOLTIP);\n this.setOutput(true, Number);\n }\n};\n\nexport const set_pop = {\n init: function () {\n this.setColour(SET_HUE);\n this.appendValueInput('SET')\n .setCheck('Set')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_SET_GET_AND_REMOVE_LAST);\n this.setTooltip(Blockly.Msg.SET_POP_TOOLTIP);\n this.setInputsInline(true);\n this.setOutput(true);\n }\n};\n\nexport const set_clear = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(SET_HUE);\n this.appendValueInput('SET')\n .setCheck('Set')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.SET_CLEAR);\n\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n }\n};\n\nexport const set_operate = {\n init: function () {\n\n\n this.appendValueInput('SET1')\n .setCheck('Set')\n var operate = [\n [Blockly.Msg.blockpy_set_union, 'union'],\n [Blockly.Msg.blockpy_set_intersection, 'intersection'],\n [Blockly.Msg.blockpy_set_difference, 'difference']\n ];\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_and_set)\n this.appendValueInput('SET2')\n .setCheck('Set')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_get_operate)\n .appendField(new Blockly.FieldDropdown(operate), 'OPERATE')\n\n this.setInputsInline(true);\n this.setOutput(true, \"set\");\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OPERATE');\n var TOOLTIPS = {\n 'union': Blockly.Msg.MIXLY_TOOLTIP_SET_UNION,\n 'intersection': Blockly.Msg.MIXLY_TOOLTIP_SET_INTERSECTION,\n 'difference': Blockly.Msg.MIXLY_TOOLTIP_SET_DIFFERENCE\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const set_operate_update = {\n init: function () {\n\n this.appendValueInput('SET1')\n .setCheck('Set')\n var operate_update = [\n [Blockly.Msg.blockpy_set_union, 'update'],\n [Blockly.Msg.blockpy_set_intersection, 'intersection_update'],\n [Blockly.Msg.blockpy_set_difference, 'difference_update']\n ];\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_and_set)\n this.appendValueInput('SET2')\n .setCheck('Set')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_get_operate)\n .appendField(new Blockly.FieldDropdown(operate_update), 'OPERATE')\n\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_update)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OPERATE');\n var TOOLTIPS = {\n 'update': Blockly.Msg.MIXLY_TOOLTIP_SET_UPDATE,\n 'intersection_update': Blockly.Msg.MIXLY_TOOLTIP_SET_INTERSECTION_UPDATE,\n 'difference_update': Blockly.Msg.MIXLY_TOOLTIP_SET_DIFFERENCE_UPDATE\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const set_add_discard = {\n init: function () {\n this.appendValueInput('SET')\n .setCheck('Set')\n var changenum =\n [[Blockly.Msg.MIXLY_blockpy_set_add, 'add'], [Blockly.Msg.MIXLY_blockpy_set_discard, 'discard']];\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldDropdown(changenum), 'OPERATE')\n this.appendValueInput('data')\n .appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME)\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OPERATE');\n var TOOLTIPS = {\n 'add': Blockly.Msg.SET_ADD_TOOLTIP,\n 'discard': Blockly.Msg.SET_DISCARD_TOOLTIP,\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const set_sub = {\n init: function () {\n\n this.appendValueInput('SET1')\n .setCheck('Set')\n var sub_super = [\n [Blockly.Msg.blockpy_set_sub, 'issubset'],\n [Blockly.Msg.blockpy_set_super, 'issuperset']\n ];\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_is_set)\n this.appendValueInput('SET2')\n .setCheck('Set')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.blockpy_set_of)\n .appendField(new Blockly.FieldDropdown(sub_super), 'OPERATE')\n\n\n this.setInputsInline(true);\n this.setOutput(true, Boolean);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OPERATE');\n var TOOLTIPS = {\n 'issubset': Blockly.Msg.MIXLY_TOOLTIP_SET_SUB,\n 'issuperset': Blockly.Msg.MIXLY_TOOLTIP_SET_SUPER\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const set_update = {\n init: function () {\n this.appendValueInput('SET')\n .setCheck('Set')\n this.setColour(SET_HUE);\n this.appendValueInput('VAR')\n .setCheck([String, 'List'])\n .appendField(Blockly.Msg.blockpy_set_add_update);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.SET_UPDATE_TOOLTIP);\n }\n};\n\n// export const set_change_to = {\n// init: function() {\n// var OPERATORS =\n// [[Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'],\n// [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, 'tuple']\n// ];\n// this.setColour(SET_HUE);\n// this.appendValueInput('VAR')\n// .setCheck(\"Set\")\n// // .appendField(Blockly.Msg.blockpy_USE_LIST);\n// this.appendDummyInput(\"\")\n// .appendField(Blockly.Msg.A_TO_B)\n// .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n// this.setInputsInline(true);\n// this.setOutput(true);\n// var thisBlock = this;\n// this.setTooltip(function() {\n// var mode = thisBlock.getFieldValue('OP');\n// var TOOLTIPS = {\n// 'list': Blockly.Msg.SET_TO_LISTS,\n// 'tuple': Blockly.Msg.SET_TO_TUPLE,\n// };\n// return TOOLTIPS[mode];\n// });\n// }\n// };\n\nexport const set_create_with_text_return = {\n init: function () {\n this.setColour(SET_HUE);\n this.appendDummyInput(\"\")\n .appendField('{')\n .appendField(new Blockly.FieldTextInput('0,0,0'), 'TEXT')\n .appendField('}');\n // .appendField(this.newQuote_(false))\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXPY_TOOLTIP_SET_CREATE_WITH_TEXT);\n }\n}\n\nexport const set_toset = {\n init: function () {\n this.setColour(SET_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TOSET);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOSET);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst STORAGE_HUE = 0; //'#5d69c5'//0;\n\nexport const storage_open_file_with_os = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput('fn')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS + \"(For Windows)\");\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n }\n}\n\nexport const storage_fileopen = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILENAME\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);\n //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb']\n ]), 'MODE');\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_AS);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_USE;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE;\n var mode3 = Blockly.Msg.MIXLY_BELONG;\n var TOOLTIPS = {\n 'r': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,\n 'w': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,\n 'rb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,\n 'wb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE\n };\n return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2;\n });\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\n\nexport const storage_fileopen_new = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILENAME\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);\n //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb']\n ]), 'MODE');\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_USE;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE;\n var mode3 = Blockly.Msg.MIXLY_BELONG;\n var mode4 = Blockly.Msg.PY_STORAGE_FILE_OBJECT;\n var TOOLTIPS = {\n 'r': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,\n 'w': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,\n 'rb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,\n 'wb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE\n };\n return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2 + mode4;\n });\n }\n};\n\nexport const storage_fileopen_new_encoding = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILENAME\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);\n //.appendField(new Blockly.FieldTextInput('filename.txt'), 'FILENAME');\n var code =\n [['ANSI', 'ANSI'], ['gbk', 'gbk'], ['utf-8', 'utf-8']];\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ, 'r'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE, 'w'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ, 'rb'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE, 'wb']\n ]), 'MODE');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXPY_TEXT_ENCODE)\n .appendField(new Blockly.FieldDropdown(code), 'CODE')\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_USE;\n var mode1 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE;\n var mode3 = Blockly.Msg.MIXLY_BELONG;\n var mode4 = Blockly.Msg.PY_STORAGE_FILE_OBJECT;\n var TOOLTIPS = {\n 'r': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,\n 'w': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,\n 'rb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,\n 'wb': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE\n };\n return mode0 + TOOLTIPS[mode] + mode3 + mode1 + mode2 + mode4;\n });\n }\n};\n\nexport const storage_file_write = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput('data')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE);\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE);\n // .appendField(new Blockly.FieldTextInput('f'), 'FILE');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE);\n }\n}\n\nexport const storage_get_contents_without_para = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck('Variable')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL, 'read'], [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE, 'readline'], [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES, 'readlines']]), 'MODE');\n this.setInputsInline(true);\n this.setPreviousStatement(false); //in front of the block has something\n this.setNextStatement(false); //beyond the ... has something\n this.setOutput(true, String);\n }\n};\n\nexport const storage_get_contents = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck('Variable')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE, 'read'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE, 'readline'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE, 'readlines']\n ]), 'MODE');\n this.appendValueInput(\"SIZE\")\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER);\n this.setInputsInline(true);\n this.setPreviousStatement(false); //in front of the block has something\n this.setNextStatement(false); //beyond the ... has something\n this.setOutput(true, String);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;\n var TOOLTIPS = {\n 'read': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,\n 'readline': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,\n 'readlines': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE\n };\n return mode0 + TOOLTIPS[mode] + 'x' + mode2;\n });\n }\n};\n\nexport const storage_get_a_line = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE);\n this.setNextStatement(true);\n this.appendValueInput(\"SIZE\")\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MICROBIT_PYTHON_TYPE);\n }\n};\n\nexport const storage_can_write_ornot = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.HTML_FILE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, Boolean);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1);\n }\n};\n\nexport const storage_get_filename = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME);\n }\n};\n\nexport const storage_close_file = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setOutput(false);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE);\n }\n};\n\nexport const storage_list_all_files = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, 'List');\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES);\n }\n};\nBlockly.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE\nexport const storage_delete_file = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE, 'remove'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS, 'removedirs']\n ]), 'MODE');\n this.appendValueInput(\"FILE\")\n .setCheck(String);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setOutput(false);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE);\n }\n};\n\nexport const storage_get_file_size = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE);\n }\n};\n\nexport const storage_file_tell = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL);\n }\n};\n\nexport const storage_file_seek = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck('Variable')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START, 'start'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT, 'current'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END, 'end']\n ]), 'MODE');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET);\n this.appendValueInput(\"SIZE\")\n .setCheck(Number);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER);\n this.setInputsInline(true);\n this.setPreviousStatement(true); //in front of the block has something\n this.setNextStatement(true); //beyond the ... has something\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;\n var mode3 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;\n var TOOLTIPS = {\n 'start': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,\n 'current': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,\n 'end': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END\n };\n return mode0 + \" \" + TOOLTIPS[mode] + mode3 + 'x' + mode2;\n });\n }\n};\n\nexport const storage_get_current_dir = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR);\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, 'List');\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR);\n }\n};\n\nexport const storage_make_dir = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"PATH\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_ESP32_SET);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR, 'mkdir'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS, 'makedirs']\n ]), 'MODE');\n this.setInputsInline(true);\n this.setPreviousStatement(true); //in front of the block has something\n this.setNextStatement(true); //beyond the ... has something\n this.setOutput(false);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH;\n var mode2 = Blockly.Msg.MIXLY_ESP32_SET;\n var TOOLTIPS = {\n 'mkdir': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,\n 'makedirs': Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS\n };\n return mode0 + 'x' + mode2 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const storage_rename = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME);\n this.appendValueInput(\"NEWFILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_AS);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setOutput(false);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME);\n }\n};\n\nexport const storage_change_dir = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setOutput(false);\n this.setTooltip(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR);\n }\n};\n\nexport const storage_is_file = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput(\"FILE\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT);\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.HTML_FILE, 'isfile'],\n [Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR, 'isdir']\n ]), 'MODE');\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, Boolean);\n let thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('MODE');\n var mode0 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH;\n var mode2 = Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT;\n var TOOLTIPS = {\n 'isfile': Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,\n 'isdir': Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS\n };\n return mode0 + 'x' + mode2 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const sdcard_use_spi_init = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput('SPISUB')\n .appendField(Blockly.Msg.CONTROLS_FOR_INPUT_WITH + \"SPI\")\n .setCheck(\"var\");\n this.appendValueInput('PINSUB')\n .appendField(\"CS\")\n this.appendValueInput('SUB')\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE)\n .setCheck(\"var\");\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .appendField(Blockly.Msg.MIXLY_SD_CARD);\n this.setInputsInline(true);\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n }\n};\n\nexport const sdcard_mount = {\n init: function () {\n this.setColour(STORAGE_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_SD_CARD);\n this.appendValueInput(\"DIR\")\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_SDCARD_MOUNT);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setInputsInline(true);\n this.setTooltip();\n }\n}","import * as Blockly from 'blockly/core';\n\nconst TEXTS_HUE = 160//'#9ec440'//160;\n\nexport const text = {\n /**\n * Block for text value.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendDummyInput()\n .appendField(this.newQuote_(true))\n .appendField(new Blockly.FieldTextInput(''), 'TEXT')\n .appendField(this.newQuote_(false));\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.TEXT_TEXT_TOOLTIP);\n },\n /**\n * Create an image of an open or closed quote.\n * @param {boolean} open True if open quote, false if closed.\n * @return {!Blockly.FieldImage} The field image of the quote.\n * @private\n */\n newQuote_: function (open) {\n if (open == this.RTL) {\n var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==';\n } else {\n var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC';\n }\n return new Blockly.FieldImage(file, 12, 12, '\"');\n }\n};\n\nexport const text_textarea = {\n /**\n * Block for text value.\n * @this Blockly.Block\n */\n init: function () {\n //this.setHelpUrl(Blockly.Msg.TEXT_TEXT_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendDummyInput()\n .appendField(this.newQuote_(true))\n .appendField(new Blockly.FieldMultilineInput('Hello\\nMixly'), 'VALUE')\n // .appendField(new Blockly.FieldTextInput(''), 'TEXT')\n .appendField(this.newQuote_(false));\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.TEXT_LINES_TOOLTIP);\n },\n /**\n * Create an image of an open or closed quote.\n * @param {boolean} open True if open quote, false if closed.\n * @return {!Blockly.FieldImage} The field image of the quote.\n * @private\n */\n newQuote_: function (open) {\n if (open == this.RTL) {\n var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==';\n } else {\n var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC';\n }\n return new Blockly.FieldImage(file, 12, 12, '\"');\n }\n};\n\nBlockly.FieldTextInput.char_validator = function (text) {\n if (text.length > 1) {\n if (text.charAt(0) === \"\\\\\") {\n var charAtOne = text.charAt(1);\n if (charAtOne === \"0\" ||\n charAtOne === \"b\" ||\n charAtOne === \"f\" ||\n charAtOne === \"n\" ||\n charAtOne === \"r\" ||\n charAtOne === \"t\" ||\n charAtOne === \"\\\\\" ||\n charAtOne === \"'\") {\n return String(text).substring(0, 2);\n } else if (charAtOne === \"x\" && text.charAt(2) === \"0\" && text.charAt(3) === \"B\") {\n return String(text).substring(0, 4);\n }\n }\n }\n return String(text).substring(0, 1);\n};\n\nexport const text_char = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendDummyInput()\n .appendField(this.newQuote_(true))\n .appendField(new Blockly.FieldTextInput('', Blockly.FieldTextInput.char_validator), 'TEXT')\n .appendField(this.newQuote_(false));\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.TEXT_CHAR_TOOLTIP);\n },\n newQuote_: function (open) {\n if (open == true) {\n var file = '../../media/quote2.png';\n } else {\n var file = '../../media/quote3.png';\n }\n return new Blockly.FieldImage(file, 7, 12, '\"');\n }\n};\n\n\nexport const text_join = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput('A')\n .setCheck([String, Number]);\n this.appendValueInput('B')\n .setCheck([String, Number])\n .appendField(Blockly.Msg.MIXLY_TEXT_JOIN);\n this.setInputsInline(true);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_JOIN);\n }\n};\n\nexport const ascii_to_char = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n .setCheck(Number)\n .appendField(Blockly.Msg.MIXLY_TOCHAR);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR);\n }\n};\n\nexport const char_to_ascii = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_TOASCII);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_TOASCII);\n }\n};\n\nexport const number_to_text = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TOSTRING);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT);\n }\n};\n\nexport const text_length = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_LENGTH);\n this.setOutput(true, Number);\n this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_TEXT_LENGTH);\n }\n}\n\n\n\nexport const text_char_at2 = {\n init: function () {\n this.WHERE_OPTIONS = [\n [Blockly.Msg.LISTS_GET_INDEX_FROM_START, \"FROM_START\"],\n [Blockly.Msg.LISTS_GET_INDEX_FROM_END, \"FROM_END\"],\n [Blockly.Msg.TEXT_GET_INDEX_RANDOM + 1 + Blockly.Msg.TEXT_CHARAT2, \"RANDOM\"]\n ];\n this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String)\n // .appendField(Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST)\n this.appendValueInput(\"AT\")\n .setCheck(Number)\n this.appendDummyInput()\n //.appendField(Blockly.Msg.MIXLY_MID)\n .appendField(Blockly.Msg.LISTS_GET_INDEX_GET, \"MODE\");\n // .appendField(\"\", \"SPACE\");\n Blockly.Msg.LISTS_GET_INDEX_TAIL && this.appendDummyInput(\"TAIL\").appendField(Blockly.Msg.LISTS_GET_INDEX_TAIL);\n // this.appendDummyInput().appendField(Blockly.Msg.MIXLY_DE);\n this.setInputsInline(!0);\n this.setOutput(!0);\n this.updateAt_(!0);\n var b = this;\n this.setTooltip(function () {\n var a = b.getFieldValue(\"MODE\"),\n e = b.getFieldValue(\"WHERE\"),\n d = \"\";\n switch (a + \" \" + e) {\n case \"GET FROM_START\":\n case \"GET FROM_END\":\n d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;\n break;\n case \"GET RANDOM\":\n d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;\n break;\n case \"GET_REMOVE FROM_START\":\n case \"GET_REMOVE FROM_END\":\n d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;\n break;\n case \"GET_REMOVE RANDOM\":\n d = Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM;\n break;\n }\n if (\"FROM_START\" == e || \"FROM_END\" == e) d += \" \" + Blockly.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace(\"%1\", Blockly.Msg.ONE_BASED_INDEXING ? \"#1\" : \"#0\");\n return d\n })\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('WHERE');\n var TOOLTIPS = {\n 'FROM_START': Blockly.Msg.LISTS_GET_INDEX_FROM_START,\n 'FROM_END': Blockly.Msg.LISTS_GET_INDEX_FROM_END,\n 'RANDOM': Blockly.Msg.TEXT_GET_INDEX_RANDOM\n };\n return Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING + TOOLTIPS[mode] + 'n' + Blockly.Msg.TEXT_CHARAT2;\n });\n },\n mutationToDom: function () {\n var a = document.createElement(\"mutation\");\n a.setAttribute(\"statement\", !this.outputConnection);\n var b = this.getInput(\"AT\").type == Blockly.INPUT_VALUE;\n a.setAttribute(\"at\", b);\n return a\n },\n domToMutation: function (a) {\n var b = \"true\" == a.getAttribute(\"statement\");\n this.updateStatement_(b);\n a = \"false\" != a.getAttribute(\"at\");\n this.updateAt_(a)\n },\n updateStatement_: function (a) {\n a != !this.outputConnection && (this.unplug(!0, !0), a ? (this.setOutput(!1), this.setPreviousStatement(!0), this.setNextStatement(!0)) : (this.setPreviousStatement(!1), this.setNextStatement(!1), this.setOutput(!0)))\n },\n updateAt_: function (a) {\n this.removeInput(\"AT\");\n this.removeInput(\"ORDINAL\", !0);\n a ? (this.appendValueInput(\"AT\").setCheck(Number), Blockly.Msg.TEXT_CHARAT2 && this.appendDummyInput(\"ORDINAL\").appendField(Blockly.Msg.TEXT_CHARAT2)) : this.appendDummyInput(\"AT\");\n var b = new Blockly.FieldDropdown(this.WHERE_OPTIONS,\n function (b) {\n var e = \"FROM_START\" == b || \"FROM_END\" == b;\n if (e != a) {\n var d = this.sourceBlock_;\n d.updateAt_(e);\n d.setFieldValue(b, \"WHERE\");\n return null\n }\n });\n this.getInput(\"AT\").appendField(b, \"WHERE\");\n Blockly.Msg.LISTS_GET_INDEX_TAIL && this.moveInputBefore(\"TAIL\", null)\n }\n};\n\n\nexport const text_char_at = {\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String);\n this.appendValueInput(\"AT\")\n .setCheck(Number)\n .appendField(Blockly.Msg.LISTS_GET_INDEX_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT2);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.PROCEDURES_DEFRETURN_RETURN + Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING + Blockly.Msg.LISTS_GET_INDEX_FROM_START + 'n' + Blockly.Msg.TEXT_CHARAT2);\n }\n}\n\n\nexport const text_random_char = {\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_INDEX_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_RANDOM_CHAR);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.TEXT_RANDOM_CHAR_TOOLTIP);\n }\n}\n\n\nexport const text_substring2 = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n this['WHERE_OPTIONS_1'] = [\n [Blockly.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'],\n [Blockly.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'],\n [Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST']\n ];\n this['WHERE_OPTIONS_2'] = [\n [Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'],\n [Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'],\n [Blockly.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST']\n ];\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String)\n //.appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL)\n // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) {\n // this.appendDummyInput('TAIL')\n // .appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);\n // }\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendDummyInput('AT1');\n this.appendDummyInput('AT2');\n this.setInputsInline(true);\n this.setOutput(true, 'List');\n this.updateAt_(1, true);\n this.updateAt_(2, true);\n this.setTooltip(Blockly.Msg._GET_TEXT_SUBLIST_TOOLTIP);\n },\n /**\n * Create XML to represent whether there are 'AT' inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n var isAt1 = this.getInput('AT1').type == Blockly.INPUT_VALUE;\n container.setAttribute('at1', isAt1);\n var isAt2 = this.getInput('AT2').type == Blockly.INPUT_VALUE;\n container.setAttribute('at2', isAt2);\n return container;\n },\n /**\n * Parse XML to restore the 'AT' inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var isAt1 = (xmlElement.getAttribute('at1') == 'true');\n var isAt2 = (xmlElement.getAttribute('at2') == 'true');\n this.updateAt_(1, isAt1);\n this.updateAt_(2, isAt2);\n },\n /**\n * Create or delete an input for a numeric index.\n * This block has two such inputs, independant of each other.\n * @param {number} n Specify first or second input (1 or 2).\n * @param {boolean} isAt True if the input should exist.\n * @private\n * @this Blockly.Block\n */\n updateAt_: function (n, isAt) {\n // Create or delete an input for the numeric index.\n // Destroy old 'AT' and 'ORDINAL' inputs.\n this.removeInput('AT' + n);\n this.removeInput('ORDINAL' + n, true);\n // Create either a value 'AT' input or a dummy input.\n if (isAt) {\n this.appendValueInput('AT' + n).setCheck(Number);\n if (Blockly.Msg.TEXT_CHARAT2) {\n this.appendDummyInput('ORDINAL' + n)\n .appendField(Blockly.Msg.TEXT_CHARAT2);\n }\n } else {\n this.appendDummyInput('AT' + n);\n }\n var menu = new Blockly.FieldDropdown(this['WHERE_OPTIONS_' + n],\n function (value) {\n var newAt = (value == 'FROM_START') || (value == 'FROM_END');\n // The 'isAt' variable is available due to this function being a\n // closure.\n if (newAt != isAt) {\n var block = this.sourceBlock_;\n block.updateAt_(n, newAt);\n // This menu has been destroyed and replaced.\n // Update the replacement.\n block.setFieldValue(value, 'WHERE' + n);\n return null;\n }\n return undefined;\n });\n this.getInput('AT' + n)\n .appendField(menu, 'WHERE' + n);\n if (n == 1) {\n this.moveInputBefore('AT1', 'AT2');\n if (this.getInput('ORDINAL1')) {\n this.moveInputBefore('ORDINAL1', 'AT2');\n }\n }\n // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) {\n // this.moveInputBefore('TAIL', null);\n // }\n }\n};\n\nexport const text_substring = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String)\n this.appendValueInput('AT1')\n .appendField(Blockly.Msg.LISTS_GET_INDEX_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendValueInput('AT2')\n .appendField(Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT2);\n this.setInputsInline(true);\n this.setOutput(true, ['List', String]);\n this.setTooltip(Blockly.Msg._GET_TEXT_SUBLIST_TOOLTIP);\n }\n}\n\nexport const text_equals_starts_ends = {\n init: function () {\n var TEXT_DOWHAT = [\n [Blockly.Msg.MIXLY_EQUALS, '==='],\n [Blockly.Msg.MIXLY_STARTSWITH, 'startswith'],\n [Blockly.Msg.MIXLY_ENDSWITH, 'endswith']\n ];\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"STR1\")\n .setCheck(String);\n this.appendValueInput(\"STR2\")\n .appendField(new Blockly.FieldDropdown(TEXT_DOWHAT), 'DOWHAT')\n .setCheck(String);\n this.setOutput(true, [Boolean, Number]);\n this.setInputsInline(true);\n }\n}\n\nexport const text_compare_to = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"STR1\")\n .setCheck(String);\n this.appendValueInput(\"STR2\")\n .appendField(Blockly.Msg.MIXLY_COMPARETO)\n .setCheck(String);\n this.setOutput(true, Number);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXLY_COMPARETO_HELP);\n }\n}\n\nexport const text_capital = {\n init: function () {\n var TEXT_CAPITAL = [\n [Blockly.Msg.TEXT_UPPER, 'upper'],\n [Blockly.Msg.TEXT_TITLE, 'title'],\n [Blockly.Msg.TEXT_CAPITALIZE, 'capitalize'],\n [Blockly.Msg.TEXT_SWAPCASE, 'swapcase'],\n [Blockly.Msg.TEXT_LOWER, 'lower']\n ];\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown(TEXT_CAPITAL), 'CAPITAL')\n .setCheck(String);\n this.setOutput(true, String);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('CAPITAL');\n var TOOLTIPS = {\n 'upper': Blockly.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,\n 'title': Blockly.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,\n 'swapcase': Blockly.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,\n 'capitalize': Blockly.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,\n 'lower': Blockly.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP\n };\n return TOOLTIPS[mode];\n });\n }\n}\n\nexport const text_center = {\n init: function () {\n var TEXT_CENTER = [\n [Blockly.Msg.TEXT_LJUST, 'ljust'],\n [Blockly.Msg.TEXT_CENTER, 'center'],\n [Blockly.Msg.TEXT_RJUST, 'rjust']\n ];\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(new Blockly.FieldDropdown(TEXT_CENTER), 'CENTER')\n .setCheck(String);\n this.appendValueInput(\"WID\")\n .appendField(Blockly.Msg.MIXLY_WIDTH)\n .setCheck(Number);\n this.appendValueInput(\"Symbol\")\n .appendField(Blockly.Msg.MIXLY_RECT_Fill)\n .setCheck(String);\n this.setInputsInline(true);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP);\n }\n}\n\nexport const text_find = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .setCheck(String);\n this.appendValueInput(\"STR\")\n .appendField(Blockly.Msg.MIXLY_MID + Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER)\n .setCheck(String);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_LIST_INDEX);\n this.setInputsInline(true);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP);\n }\n}\n\nexport const text_join_seq = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR)\n .setCheck(String);\n this.appendValueInput('LIST')\n .appendField(Blockly.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ)\n .setCheck('List', 'Tuple', 'Set', 'Dict');\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR);\n this.setInputsInline(true);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP);\n }\n}\n\nexport const text_replace = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\")\n .setCheck(String);\n this.appendValueInput(\"STR1\")\n .appendField(Blockly.Msg.MIXLY_MIXPY_REPLACE)\n .setCheck(String);\n this.appendValueInput(\"STR2\")\n .appendField(Blockly.Msg.LISTS_SET_INDEX_INPUT_TO)\n .setCheck(String);\n this.setInputsInline(true);\n this.setOutput(true, String);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP);\n }\n}\n\nexport const text_split = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput(\"VAR\");\n this.appendValueInput(\"VAL\")\n .appendField(Blockly.Msg.LIST_SPLIT_AS);\n this.appendDummyInput('')\n .appendField(Blockly.Msg.LIST_SPLIT);\n this.setOutput(true, \"List\");\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP);\n this.setInputsInline(true);\n }\n}\n\nexport const text_strip = {\n init: function () {\n var STRIP =\n [[Blockly.Msg.TEXT_TRIM_BOTH, 'strip'], [Blockly.Msg.TEXT_TRIM_LEFT, 'lstrip'], [Blockly.Msg.TEXT_TRIM_RIGHT, 'rstrip']];\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n this.appendDummyInput('')\n .appendField(Blockly.Msg.TEXT_STRIM);\n this.appendDummyInput('')\n .appendField(new Blockly.FieldDropdown(STRIP), 'TOWHAT');\n this.appendDummyInput('')\n .appendField(Blockly.Msg.TEXT_BLANK);\n this.setOutput(true, String);\n this.setInputsInline(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('TOWHAT');\n var TOOLTIPS = {\n 'strip': Blockly.Msg.TEXT_TRIM_BOTH_TOOLTIP,\n 'lstrip': Blockly.Msg.TEXT_TRIM_LEFT_TOOLTIP,\n 'rstrip': Blockly.Msg.TEXT_TRIM_RIGHT_TOOLTIP\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const text_format = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_FORMAT)\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE')\n // .appendField(' ')\n this.appendDummyInput(\"\")\n .appendField(new Blockly.FieldTextInput('str'), 'VAR');\n this.itemCount_ = 1;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['text_create_with_item'], this));\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('text_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('text_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField();\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.PROCEDURES_BEFORE_PARAMS);\n }\n }\n }\n },\n getVars: function () {\n if (this.getFieldValue('VAR') != null) {\n if ((this.getFieldValue('VAR').indexOf(\"'\") == -1) && (this.getFieldValue('VAR').indexOf('\"') == -1)) {\n return [this.getFieldValue('VAR')];\n }\n return [];\n }\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n\n }\n};\n\nexport const text_create_with_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.PROCEDURES_MUTATORCONTAINER_TITLE);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const text_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const text_substring3 = text_substring\nexport const text_compareTo = text_compare_to\nexport const text_char_at3 = text_char_at\n\nexport const text_format_noreturn = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROPYTHON_FORMAT)\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE')\n // .appendField(' ')\n this.appendValueInput(\"VAR\")\n .setCheck(String);\n this.itemCount_ = 1;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setInputsInline(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['text_create_with_item'], this));\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('text_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('text_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField();\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.PROCEDURES_BEFORE_PARAMS);\n }\n }\n }\n }\n};\n\n\n\nexport const text_encode = {\n init: function () {\n this.setColour(TEXTS_HUE);\n var encode_decode =\n [[Blockly.Msg.MIXPY_TEXT_ENCODE, 'encode'], [Blockly.Msg.MIXPY_TEXT_DECODE, 'decode']];\n var code =\n [['ASCII', 'ASCII'], ['gb2312', 'gb2312'], ['gbk', 'gbk'], ['utf-8', 'utf-8'], ['utf-16', 'utf-16'], ['utf-32', 'utf-32']];\n this.appendDummyInput()\n .appendField(new Blockly.FieldDropdown(code), 'CODE')\n .appendField(' ')\n this.appendValueInput(\"VAR\")\n .appendField(new Blockly.FieldDropdown(encode_decode), 'DIR')\n .appendField(Blockly.Msg.LANG_MATH_STRING);\n this.setOutput(true, String);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXPY_TEXT_ENCODE_DECODE_TOOLTIP);\n\n }\n};\n\n\nexport const text_eval = {\n init: function () {\n\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_PYTHON_TEXT_EVAL);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_TEXT_EVAL_RESULT);\n this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TEXT_EVAL_TOOLTIP);\n }\n};\n\nexport const os_system = {\n init: function () {\n this.setColour(TEXTS_HUE);\n this.appendValueInput('VAR')\n .setCheck(String)\n .appendField(Blockly.Msg.MIXLY_PYTHON_OS_SYSTEM);\n this.setInputsInline(true);\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_OS_SYSTEM_TOOLTIP);\n }\n};","import * as Blockly from 'blockly/core';\n\nconst TUPLE_HUE = 195; //'#5ec73d'//195;\n\nexport const tuple_create_with = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput(\"\")\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array'], [Blockly.Msg.LANG_MATH_STRING, 'Array'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'Array']]), 'TYPE')\n // .appendField(' ')\n .appendField(new Blockly.FieldTextInput('mytup'), 'VAR');\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['tuple_create_with_item'], this));\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('tuple_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('tuple_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.TUPLE_CREATE_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.TUPLE_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const tuple_create_with_container = {\n /**\n * Mutator block for list container.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TUPLE_CREATE_WITH_CONTAINER_TITLE_ADD);\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const tuple_create_with_item = {\n /**\n * Mutator bolck for adding items.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.blockpy_SET_VARIABLES_NAME);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const tuple_create_with_text2 = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput(\"\")\n //don't need to specify the data type in Python\n // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'Array']]), 'TYPE')\n // .appendField(' ')\n // .appendField(Blockly.Msg.blockpy_MIXLY_TUPLE_CREATE)\n .appendField(new Blockly.FieldTextInput('mytup'), 'VAR')\n //.appendField(new Blockly.FieldTextInput('3',Blockly.FieldTextInput.math_number_validator), 'SIZE')\n // .appendField(Blockly.Msg.MIXLY_MAKELISTFROM)\n // .appendField(this.newQuote_(true))\n .appendField(' = (')\n .appendField(new Blockly.FieldTextInput('0,0,0'), 'TEXT')\n .appendField(')');\n // .appendField(this.newQuote_(false))\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXPY_TOOLTIP_TUPLE_CREATE_WITH_TEXT);\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n // newQuote_: function(open) {\n // if (open == this.RTL) {\n // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==';\n // } else {\n // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC';\n // }\n // return new Blockly.FieldImage(file, 12, 12, '\"');\n // }\n}\n\nexport const tuple_create_with_text_return = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput(\"\")\n .appendField('(')\n .appendField(new Blockly.FieldTextInput('0,0,0'), 'TEXT')\n .appendField(')');\n // .appendField(this.newQuote_(false))\n this.setOutput(true);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.MIXPY_TOOLTIP_TUPLE_CREATE_WITH_TEXT);\n // },\n // getVars: function() {\n // return [this.getFieldValue('VAR')];\n // },\n // renameVar: function(oldName, newName) {\n // if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n // this.setTitleValue(newName, 'VAR');\n // }\n }\n // newQuote_: function(open) {\n // if (open == this.RTL) {\n // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAqUlEQVQI1z3KvUpCcRiA8ef9E4JNHhI0aFEacm1o0BsI0Slx8wa8gLauoDnoBhq7DcfWhggONDmJJgqCPA7neJ7p934EOOKOnM8Q7PDElo/4x4lFb2DmuUjcUzS3URnGib9qaPNbuXvBO3sGPHJDRG6fGVdMSeWDP2q99FQdFrz26Gu5Tq7dFMzUvbXy8KXeAj57cOklgA+u1B5AoslLtGIHQMaCVnwDnADZIFIrXsoXrgAAAABJRU5ErkJggg==';\n // } else {\n // var file = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAKCAQAAAAqJXdxAAAAn0lEQVQI1z3OMa5BURSF4f/cQhAKjUQhuQmFNwGJEUi0RKN5rU7FHKhpjEH3TEMtkdBSCY1EIv8r7nFX9e29V7EBAOvu7RPjwmWGH/VuF8CyN9/OAdvqIXYLvtRaNjx9mMTDyo+NjAN1HNcl9ZQ5oQMM3dgDUqDo1l8DzvwmtZN7mnD+PkmLa+4mhrxVA9fRowBWmVBhFy5gYEjKMfz9AylsaRRgGzvZAAAAAElFTkSuQmCC';\n // }\n // return new Blockly.FieldImage(file, 12, 12, '\"');\n // }\n}\n\nexport const tuple_getIndex = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.setOutput(true);\n this.appendValueInput('TUP')\n .setCheck('Tuple')\n this.appendValueInput('AT')\n .setCheck(Number)\n\n .appendField(Blockly.Msg.LANG_LISTS_GET_INDEX1);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.LANG_LISTS_GET_INDEX2);\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.TUPLE_GET_INDEX_TOOLTIP);\n }\n};\n\nexport const tuple_length = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendValueInput('TUP');\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_LENGTH);\n\n this.setTooltip(Blockly.Msg.TUPLE_LENGTH_TOOLTIP);\n this.setOutput(true, Number);\n }\n};\n\nexport const tuple_del = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendValueInput('TUP')\n .setCheck('Tuple')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TUPLE_DEL);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.TUPLE_DEL_TOOLTIP);\n }\n};\n\nexport const tuple_join = {\n /**\n * Block for list length.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendValueInput('TUP1')\n .setCheck('Tuple')\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.TUPLE_JOIN)\n this.appendValueInput('TUP2')\n .setCheck('Tuple')\n this.setInputsInline(true);\n this.setTooltip(Blockly.Msg.TUPLE_JOIN_TOOLTIP);\n this.setOutput(true, \"Tuple\");\n }\n};\n\n\nexport const tuple_max = {\n init: function () {\n this.appendValueInput('TUP')\n .setCheck('Tuple')\n var max_min =\n [[Blockly.Msg.blockpy_TUPLE_MAX, 'max'], [Blockly.Msg.blockpy_TUPLE_MIN, 'min'], [Blockly.Msg.MATH_ONLIST_OPERATOR_SUM, 'sum']];\n this.setColour(TUPLE_HUE);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET)\n .appendField(new Blockly.FieldDropdown(max_min), 'DIR')\n\n\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('DIR');\n var TOOLTIPS = {\n 'max': Blockly.Msg.MIXLY_TOOLTIP_TUPLE_MAX,\n 'min': Blockly.Msg.MIXLY_TOOLTIP_TUPLE_MIN,\n 'sum': Blockly.Msg.MIXLY_TOOLTIP_TUPLE_SUM\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const tuple_change_to = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, 'list'],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, 'set']\n ];\n this.setColour(TUPLE_HUE);\n this.appendValueInput('VAR')\n .setCheck(\"Tuple\")\n // .appendField(Blockly.Msg.blockpy_USE_LIST);\n this.appendDummyInput(\"\")\n .appendField(Blockly.Msg.A_TO_B)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'list': Blockly.Msg.TUPLE_TO_LISTS,\n 'set': Blockly.Msg.TUPLE_TO_SET,\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const tuple_find = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_LIST_INDEX, 'INDEX'],\n [Blockly.Msg.MIXLY_LIST_COUNT, 'COUNT']\n ];\n this.setColour(TUPLE_HUE);\n this.appendValueInput('VAR')\n .setCheck('List')\n this.appendValueInput('data')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(Blockly.Msg.HTML_VALUE)\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_DE)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n //.appendField(new Blockly.FieldTextInput('mylist'), 'VAR')\n this.setInputsInline(true);\n this.setOutput(true, Number);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'INDEX': Blockly.Msg.MIXLY_TOOLTIP_TUPLE_FIND_INDEX,\n 'COUNT': Blockly.Msg.MIXLY_TOOLTIP_TUPLE_FIND_COUNT\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const tuple_trig = {\n init: function () {\n var OPERATORS = [\n [Blockly.Msg.MIXLY_LIST_LEN, 'LEN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_SUM, 'SUM'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MAX, 'MAX'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MIN, 'MIN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_AVERAGE, 'AVERAGE'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MEDIAN, 'MEDIAN'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_MODE, 'MODE'],\n [Blockly.Msg.MATH_ONLIST_OPERATOR_STD_DEV, 'STD_DEV'],\n ];\n //this.setHelpUrl(Blockly.Msg.MATH_TRIG_HELPURL);\n this.setColour(TUPLE_HUE);\n this.setOutput(true, Number);\n this.appendValueInput('data')\n .setCheck('List')\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET)\n .appendField(new Blockly.FieldDropdown(OPERATORS), 'OP');\n this.setInputsInline(true);\n // Assign 'this' to a variable for use in the tooltip closure below.\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('OP');\n var TOOLTIPS = {\n 'LEN': Blockly.Msg.TUPLE_LENGTH_TOOLTIP,\n 'SUM': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_SUM,\n 'MAX': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MAX,\n 'MIN': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MIN,\n 'AVERAGE': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_AVERAGE,\n 'MEDIAN': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MEDIAN,\n 'MODE': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_MODE,\n 'STD_DEV': Blockly.Msg.MATH_ONLIST_TOOLTIP_TUPLE_STD_DEV\n\n };\n return TOOLTIPS[mode];\n });\n }\n};\n\nexport const tuple_getSublist = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n this['WHERE_OPTIONS_1'] = [\n [Blockly.Msg.LISTS_GET_INDEX_FROM_START, 'FROM_START'],\n [Blockly.Msg.LISTS_GET_INDEX_FROM_END, 'FROM_END'],\n [Blockly.Msg.LISTS_GET_SUBLIST_START_FIRST, 'FIRST']\n ];\n this['WHERE_OPTIONS_2'] = [\n [Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START, 'FROM_START'],\n [Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_END, 'FROM_END'],\n [Blockly.Msg.LISTS_GET_SUBLIST_END_LAST, 'LAST']\n ];\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(TUPLE_HUE);\n this.appendValueInput('LIST')\n .setCheck('List')\n //.appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL)\n // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) {\n // this.appendDummyInput('TAIL')\n // .appendField(Blockly.Msg.LISTS_GET_SUBLIST_TAIL);\n // }\n this.appendDummyInput('')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET);\n this.appendDummyInput('AT1');\n this.appendDummyInput('AT2');\n this.setInputsInline(true);\n this.setOutput(true, 'List');\n this.updateAt_(1, true);\n this.updateAt_(2, true);\n this.setTooltip(Blockly.Msg.PYTHON_TUPLE_GET_SUBLIST_TOOLTIP);\n },\n /**\n * Create XML to represent whether there are 'AT' inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n var isAt1 = this.getInput('AT1').type == Blockly.INPUT_VALUE;\n container.setAttribute('at1', isAt1);\n var isAt2 = this.getInput('AT2').type == Blockly.INPUT_VALUE;\n container.setAttribute('at2', isAt2);\n return container;\n },\n /**\n * Parse XML to restore the 'AT' inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n var isAt1 = (xmlElement.getAttribute('at1') == 'true');\n var isAt2 = (xmlElement.getAttribute('at2') == 'true');\n this.updateAt_(1, isAt1);\n this.updateAt_(2, isAt2);\n },\n /**\n * Create or delete an input for a numeric index.\n * This block has two such inputs, independant of each other.\n * @param {number} n Specify first or second input (1 or 2).\n * @param {boolean} isAt True if the input should exist.\n * @private\n * @this Blockly.Block\n */\n updateAt_: function (n, isAt) {\n // Create or delete an input for the numeric index.\n // Destroy old 'AT' and 'ORDINAL' inputs.\n this.removeInput('AT' + n);\n this.removeInput('ORDINAL' + n, true);\n // Create either a value 'AT' input or a dummy input.\n if (isAt) {\n this.appendValueInput('AT' + n).setCheck(Number);\n if (Blockly.Msg.TEXT_CHARAT_TAIL) {\n this.appendDummyInput('ORDINAL' + n)\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL);\n }\n } else {\n this.appendDummyInput('AT' + n);\n }\n var menu = new Blockly.FieldDropdown(this['WHERE_OPTIONS_' + n],\n function (value) {\n var newAt = (value == 'FROM_START') || (value == 'FROM_END');\n // The 'isAt' variable is available due to this function being a\n // closure.\n if (newAt != isAt) {\n var block = this.sourceBlock_;\n block.updateAt_(n, newAt);\n // This menu has been destroyed and replaced.\n // Update the replacement.\n block.setFieldValue(value, 'WHERE' + n);\n return null;\n }\n return undefined;\n });\n this.getInput('AT' + n)\n .appendField(menu, 'WHERE' + n);\n if (n == 1) {\n this.moveInputBefore('AT1', 'AT2');\n if (this.getInput('ORDINAL1')) {\n this.moveInputBefore('ORDINAL1', 'AT2');\n }\n }\n // if (Blockly.Msg.LISTS_GET_SUBLIST_TAIL) {\n // this.moveInputBefore('TAIL', null);\n // }\n }\n};\n\nexport const tuple_create_with_noreturn = {\n /**\n * Block for creating a list with any number of elements of any type.\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(TUPLE_HUE);\n this.itemCount_ = 3;\n this.updateShape_();\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, \"Tuple\")\n this.setMutator(new Blockly.icons.MutatorIcon(['tuple_create_with_item'], this));\n this.setTooltip(Blockly.Msg.TUPLE_CREATE_WITH_TOOLTIP);\n },\n /**\n * Create XML to represent list inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('tuple_create_with_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('tuple_create_with_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.TUPLE_CREATE_EMPTY_TITLE);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.TUPLE_CREATE_WITH_INPUT_WITH);\n }\n }\n }\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Blockly.Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setTitleValue(newName, 'VAR');\n }\n }\n};\n\nexport const tuple_get_sublist = {\n /**\n * Block for getting sublist.\n * @this Blockly.Block\n */\n init: function () {\n this.setHelpUrl(Blockly.Msg.LISTS_GET_SUBLIST_HELPURL);\n this.setColour(TUPLE_HUE);\n this.appendValueInput('LIST')\n this.appendDummyInput('')\n this.appendValueInput('AT1')\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_FROM_START);\n this.appendValueInput('AT2')\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL + \" \" + Blockly.Msg.LISTS_GET_SUBLIST_END_FROM_START);\n this.appendDummyInput()\n .appendField(Blockly.Msg.TEXT_CHARAT_TAIL);\n this.setInputsInline(true);\n this.setOutput(true, 'Tuple');\n this.setTooltip(Blockly.Msg.PYTHON_TUPLE_GET_SUBLIST_TOOLTIP);\n }\n}\n\nexport const tuple_get_random_item = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendValueInput(\"TUP\");\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + \" \" + Blockly.Msg.LISTS_GET_INDEX_RANDOM)\n this.setTooltip(Blockly.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM);\n this.setOutput(true);\n }\n};\n\nexport const tuple_totuple = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_TOTUPLE);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_TOOLTIP_TOTUPLE);\n }\n};\n\nexport const tuple_input = {\n init: function () {\n this.setColour(TUPLE_HUE);\n this.appendDummyInput(\"\")\n .appendField('(')\n .appendField(new Blockly.FieldTextInput('0,0,0'),\"CONTENT\")\n .appendField(')');\n this.setOutput(true);\n }\n};","/**\n * @license\n * Visual Blocks Editor\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Utility blocks for Blockly.\n * @author acbart@vt.edu (Austin Cory Bart)\n */\nimport * as Blockly from 'blockly/core';\n\nconst UTILITY_HUE = 160;\n\nexport const raw_table = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendDummyInput()\n .appendField('Tabular Abstraction:');\n this.appendDummyInput()\n .appendField(new Blockly.FieldTable(''), 'TEXT');\n }\n};\n\nexport const raw_block = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendDummyInput()\n .appendField('Code Block:');\n this.appendDummyInput()\n .appendField(new Blockly.FieldMultilineInput(''), 'TEXT');\n }\n};\n\nexport const raw_expression = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendField('Code Expression:');\n this.appendDummyInput()\n .appendField(new Blockly.FieldMultilineInput(''), 'TEXT');\n this.setOutput(true);\n }\n};\n\nexport const raw_empty = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.appendValueInput('VALUE')\n .appendField('');\n this.setInputsInline(false);\n }\n};\n\nexport const text_comment = {\n // Text value.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendTitle('Comment:')\n .appendTitle(new Blockly.FieldTextInput(''), 'TEXT');\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('This comment will be ignored by Python');\n }\n};\n\nexport const type_check = {\n // Set element at index.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendValueInput('VALUE')\n .appendField(Blockly.Msg.TYPE_CHECK);\n this.setInputsInline(false);\n this.setOutput(true, 'Type');\n //this.setPreviousStatement(true);\n //this.setNextStatement(true);\n }\n};\n\n\nexport const text_print_multiple = {\n /**\n * Block for printing multiple things (including nothing)\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(UTILITY_HUE);\n this.itemCount_ = 1;\n this.updateShape_();\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setMutator(new Blockly.icons.MutatorIcon(['text_print_multiple_item'], this));\n this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);\n },\n /**\n * Create XML to represent print inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock = Blockly.Block.obtain(workspace,\n 'text_print_multiple_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var x = 0; x < this.itemCount_; x++) {\n var itemBlock = workspace.newBlock('text_print_multiple_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('PRINT' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n // Store a pointer to any connected child blocks.\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var x = 0;\n while (itemBlock) {\n var input = this.getInput('PRINT' + x);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n x++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('PRINT' + i)) {\n this.removeInput('PRINT' + i);\n i++;\n }\n }\n\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(\"print\");\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('PRINT' + i);\n if (i == 0) {\n input.appendField(\"print\");\n }\n }\n }\n }\n};\n\nexport const text_print_multiple_container = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendField('print');\n this.appendStatementInput('STACK');\n this.setTooltip('');\n this.contextMenu = false;\n }\n};\nexport const text_print_multiple_item = {\n // Add items.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendField('item');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n this.contextMenu = false;\n }\n};\n\nexport const function_call = {\n /**\n * Block for printing multiple things (including nothing)\n * @this Blockly.Block\n */\n init: function () {\n this.setColour(UTILITY_HUE);\n this.itemCount_ = 1;\n this.hasReturn_ = false;\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput(\"str\"), 'NAME');\n this.updateShape_();\n this.setMutator(new Blockly.icons.MutatorIcon(['function_call_item'], this));\n this.setTooltip(\"Can be used to call any function\");\n },\n /**\n * Create XML to represent print inputs.\n * @return {Element} XML storage element.\n * @this Blockly.Block\n */\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n container.setAttribute('hasReturn', this.hasReturn_ ? \"TRUE\" : \"FALSE\");\n return container;\n },\n /**\n * Parse XML to restore the list inputs.\n * @param {!Element} xmlElement XML storage element.\n * @this Blockly.Block\n */\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.hasReturn_ = xmlElement.getAttribute('hasReturn') === \"TRUE\";\n this.updateShape_();\n },\n /**\n * Populate the mutator's dialog with this block's components.\n * @param {!Blockly.Workspace} workspace Mutator's workspace.\n * @return {!Blockly.Block} Root block in mutator.\n * @this Blockly.Block\n */\n decompose: function (workspace) {\n var containerBlock = Blockly.Block.obtain(workspace,\n 'function_call_container');\n containerBlock.initSvg();\n\n containerBlock.setFieldValue(this.hasStatements_ ? 'TRUE' : 'FALSE',\n 'RETURN');\n\n var connection = containerBlock.getInput('STACK').connection;\n for (var x = 0; x < this.itemCount_; x++) {\n var itemBlock = workspace.newBlock('function_call_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n /**\n * Notification that the procedure's return state has changed.\n * @param {boolean} returnState New return state\n * @this Blockly.Block\n */\n setReturn: function (returnState) {\n this.unplug(true, true);\n this.setOutput(returnState);\n this.setPreviousStatement(!returnState);\n this.setNextStatement(!returnState);\n if (this.rendered) {\n this.render();\n }\n },\n /**\n * Reconfigure this block based on the mutator dialog's components.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n\n this.hasReturn_ = containerBlock.getFieldValue(\"RETURN\") === \"TRUE\";\n\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ARGUMENT' + i).connection.connect(connections[i]);\n }\n }\n },\n /**\n * Store pointers to any connected child blocks.\n * @param {!Blockly.Block} containerBlock Root block in mutator.\n * @this Blockly.Block\n */\n saveConnections: function (containerBlock) {\n // Store a pointer to any connected child blocks.\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var x = 0;\n while (itemBlock) {\n var input = this.getInput('ARGUMENT' + x);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n x++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n /**\n * Modify this block to have the correct number of inputs.\n * @private\n * @this Blockly.Block\n */\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ARGUMENT' + i)) {\n this.removeInput('ARGUMENT' + i);\n i++;\n }\n }\n\n // Rebuild block.\n for (var i = 0; i < this.itemCount_; i++) {\n this.appendValueInput('ARGUMENT' + i);\n }\n\n // Set whether returns anything\n this.setReturn(this.hasReturn_);\n }\n};\n\nexport const function_call_container = {\n // Container.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendField('Arguments');\n this.appendStatementInput('STACK');\n this.appendDummyInput()\n .setAlign(Blockly.inputs.Align.RIGHT)\n .appendField('has return')\n .appendField(new Blockly.FieldCheckbox('TRUE'),\n 'RETURN');\n this.setTooltip('');\n this.contextMenu = false;\n }\n};\nexport const function_call_item = {\n // Add items.\n init: function () {\n this.setColour(UTILITY_HUE);\n this.appendDummyInput()\n .appendField('argument');\n this.setInputsInline(true);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip('');\n this.contextMenu = false;\n }\n};\n\nexport const attribute_access = {\n init: function () {\n this.appendValueInput(\"MODULE\")\n .setCheck(null);\n this.appendValueInput(\"NAME\")\n .setCheck(null)\n .appendField(\".\");\n this.setInputsInline(true);\n this.setOutput(true, null);\n this.setColour(230);\n this.setTooltip('');\n this.setHelpUrl('');\n }\n};\n","import * as Blockly from 'blockly/core';\nimport Names from '../others/names';\n\nconst VARIABLES_HUE = 330//'#af5180'//330;\n\n// ************************************************************************\n// THIS SECTION IS INSERTED INTO BLOCKLY BY BLOCKLYDUINO.\n// export const variables_declare = {\n// // Variable setter.\n// init: function() {\n// this.setColour(VARIABLES_HUE);\n// this.appendValueInput('VALUE', null)\n// .appendField(Blockly.Msg.MIXLY_DECLARE)\n// .appendField(new Blockly.FieldTextInput(''), 'VAR')\n// //.appendField(Blockly.Msg.MIXLY_AS)\n// //.appendField(new Blockly.FieldDropdown([[Blockly.Msg.MIXLY_NUMBER, 'number'], [Blockly.Msg.LANG_MATH_STRING, 'string'], [Blockly.Msg.LANG_MATH_BOOLEAN, 'boolean']]), 'TYPE')\n// \t .appendField(Blockly.Msg.MIXLY_VALUE);\n// this.setPreviousStatement(true);\n// this.setNextStatement(true);\n// this.setTooltip(Blockly.Msg.MIXLY_TOOLTIP_VARIABLES_DECLARE);\n// },\n// getVars: function() {\n// return [this.getFieldValue('VAR')];\n// },\n// renameVar: function(oldName, newName) {\n// if (Names.equals(oldName, this.getFieldValue('VAR'))) {\n// this.setTitleValue(newName, 'VAR');\n// }\n// }\n// };\n// ************************************************************************\n\nexport const variables_get = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendDummyInput()\n .appendField(new Blockly.FieldTextInput(''), 'VAR')\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.VARIABLES_GET_TOOLTIP);\n },\n getVars: function () {\n return [this.getFieldValue('VAR')];\n },\n renameVar: function (oldName, newName) {\n if (Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setFieldValue(newName, 'VAR');\n }\n }/*,\n onchange: function() {\n\t var varName = Blockly.Arduino.variableDB_.getName(this.getFieldValue('VAR'),Blockly.Variables.NAME_TYPE);\n\t if(Blockly.Arduino.definitions_['var_declare'+varName]){\n\t\t this.setWarningText(null);\n\t }else{\n\t\t this.setWarningText(Blockly.Msg.MIXLY_WARNING_NOT_DECLARE);\n\t }\n }*/\n};\n\n// export const variables_set = {\n// init: function() {\n// this.setColour(VARIABLES_HUE);\n// this.appendValueInput('VALUE')\n// .appendField(new Blockly.FieldTextInput(''), 'VAR')\n// \t\t.appendField(Blockly.Msg.MIXLY_VALUE2);\n// this.setPreviousStatement(true);\n// this.setNextStatement(true);\n// this.setTooltip(Blockly.Msg.VARIABLES_SET_TOOLTIP);\n// },\n// getVars: function() {\n// return [this.getFieldValue('VAR')];\n// },\n// renameVar: function(oldName, newName) {\n// if (Names.equals(oldName, this.getFieldValue('VAR'))) {\n// this.setFieldValue(newName, 'VAR');\n// }\n// }/*,\n// onchange: function() {\n// \t var varName = Blockly.Arduino.variableDB_.getName(this.getFieldValue('VAR'),Blockly.Variables.NAME_TYPE);\n// \t if(Blockly.Arduino.definitions_['var_declare'+varName]){\n// \t\t this.setWarningText(null);\n// \t }else{\n// \t\t this.setWarningText(Blockly.Msg.MIXLY_WARNING_NOT_DECLARE);\n// \t }\n// }*/\n// };\nexport const variables_set = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendValueInput('VALUE')\n .appendField(new Blockly.FieldTextInput(''), 'VAR')\n .appendField(Blockly.Msg.MIXLY_VALUE2);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.VARIABLES_SET_TOOLTIP);\n },\n getVars: function () {\n var varValue = this.getFieldValue('VAR');\n if (varValue == null) {\n return [];\n }\n return varValue.split(\",\");\n },\n renameVar: function (oldName, newName) {\n if (Names.equals(oldName, this.getFieldValue('VAR'))) {\n this.setFieldValue(newName, 'VAR');\n }\n }\n};\n/**\n * Block for basic data type change.\n * @this Blockly.Block\n */\nexport const variables_change = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n var DATATYPES =\n [\n [Blockly.Msg.LANG_MATH_INT, \"int\"],\n [Blockly.Msg.LANG_MATH_FLOAT, \"float\"],\n [Blockly.Msg.LANG_MATH_BOOLEAN, \"bool\"],\n // [Blockly.Msg.MIXLY_MICROPYTHON_TYPE_COMPLEX, \"complex\"],\n [Blockly.Msg.LANG_MATH_STRING, \"str\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, \"list\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, \"tuple\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT, \"dict\"],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, \"set\"],\n [Blockly.Msg.LANG_MATH_BYTE, \"bytes\"]\n ];\n this.appendValueInput('MYVALUE')\n .appendField(new Blockly.FieldDropdown(DATATYPES), 'OP');\n // Assign 'this' to a variable for use in the tooltip closure below.\n this.setOutput(true);\n // this.setInputsInline(true);\n\n }\n};\n\n\nexport const variables_global = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendValueInput(\"VAR\")\n .appendField(Blockly.Msg.MIXLY_PYTHON_GLOBAL)\n .setCheck(\"var\");\n this.setPreviousStatement(true, null);\n this.setNextStatement(true, null);\n this.setTooltip(Blockly.Msg.TEXT_PRINT_TOOLTIP);\n }\n};\n\n\nexport const controls_type = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendValueInput(\"DATA\")\n .appendField(Blockly.Msg.MICROBIT_PYTHON_TYPE);\n // this.setInputsInline(true);\n this.setOutput(true);\n this.setTooltip(Blockly.Msg.MICROBIT_PYTHON_TYPE);\n }\n};\n\n\nexport const controls_typeLists = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_CONTORL_GET_TYPE)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.LANG_MATH_INT, \"int\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_FLOAT, \"float\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING, \"str\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST, \"list\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE, \"tuple\"],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT, \"dict\"],\n [Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD, \"set\"],\n [Blockly.Msg.LANG_MATH_BYTE, \"bytes\"],\n // [Blockly.Msg.MIXLY_MICROBIT_IMAGE,\"image\"],\n [Blockly.Msg.LOGIC_NULL, \"type(None)\"]]), \"type\");\n //整数、浮点数、字符串、列表、元组、字典、集合、图像不太对, unfinished\n this.setInputsInline(true);\n this.setOutput(true);\n var thisBlock = this;\n this.setTooltip(function () {\n var mode = thisBlock.getFieldValue('type');\n var mode0 = Blockly.Msg.MICROBIT_controls_TypeLists;\n var TOOLTIPS = {\n 'int': Blockly.Msg.LANG_MATH_INT,\n 'float': Blockly.Msg.MIXLY_MICROBIT_TYPE_FLOAT,\n 'str': Blockly.Msg.MIXLY_MICROBIT_TYPE_STRING,\n 'list': Blockly.Msg.MIXLY_MICROBIT_TYPE_LIST,\n 'tuple': Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE,\n 'dict': Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT,\n 'set': Blockly.Msg.blockpy_SET_CREATE_WITH_CONTAINER_TITLE_ADD,\n 'image': Blockly.Msg.MIXLY_MICROBIT_IMAGE,\n 'bytes': Blockly.Msg.LANG_MATH_BYTE,\n 'NoneType': Blockly.Msg.LOGIC_NULL\n };\n return mode0 + TOOLTIPS[mode];\n });\n }\n};\n\nexport const lists_zip = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n\n this.itemCount_ = 2;\n this.updateShape_();\n this.setInputsInline(true);\n this.setPreviousStatement(false);\n this.setNextStatement(false);\n this.setOutput(true, \"List\")\n this.setMutator(new Blockly.icons.MutatorIcon(['lists_zip_item'], this));\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_TOOLTIP);\n },\n\n mutationToDom: function () {\n var container = document.createElement('mutation');\n container.setAttribute('items', this.itemCount_);\n return container;\n },\n\n domToMutation: function (xmlElement) {\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\n this.updateShape_();\n },\n\n decompose: function (workspace) {\n var containerBlock =\n workspace.newBlock('lists_zip_container');\n containerBlock.initSvg();\n var connection = containerBlock.getInput('STACK').connection;\n for (var i = 0; i < this.itemCount_; i++) {\n var itemBlock = workspace.newBlock('lists_zip_item');\n itemBlock.initSvg();\n connection.connect(itemBlock.previousConnection);\n connection = itemBlock.nextConnection;\n }\n return containerBlock;\n },\n\n compose: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n // Count number of inputs.\n var connections = [];\n var i = 0;\n while (itemBlock) {\n connections[i] = itemBlock.valueConnection_;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n i++;\n }\n this.itemCount_ = i;\n this.updateShape_();\n // Reconnect any child blocks.\n for (var i = 0; i < this.itemCount_; i++) {\n if (connections[i]) {\n this.getInput('ADD' + i).connection.connect(connections[i]);\n }\n }\n },\n\n saveConnections: function (containerBlock) {\n var itemBlock = containerBlock.getInputTargetBlock('STACK');\n var i = 0;\n while (itemBlock) {\n var input = this.getInput('ADD' + i);\n itemBlock.valueConnection_ = input && input.connection.targetConnection;\n i++;\n itemBlock = itemBlock.nextConnection &&\n itemBlock.nextConnection.targetBlock();\n }\n },\n\n updateShape_: function () {\n // Delete everything.\n if (this.getInput('EMPTY')) {\n this.removeInput('EMPTY');\n } else {\n var i = 0;\n while (this.getInput('ADD' + i)) {\n this.removeInput('ADD' + i);\n i++;\n }\n }\n // Rebuild block.\n if (this.itemCount_ == 0) {\n this.appendDummyInput('EMPTY')\n .appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);\n } else {\n for (var i = 0; i < this.itemCount_; i++) {\n var input = this.appendValueInput('ADD' + i);\n if (i == 0) {\n input.appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP);\n }\n }\n }\n }\n};\nexport const lists_zip_container = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP)\n .appendField('[]');\n this.appendStatementInput('STACK');\n this.setTooltip(Blockly.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_CONTAINER_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const lists_zip_item = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendDummyInput()\n .appendField(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM);\n this.setPreviousStatement(true);\n this.setNextStatement(true);\n this.setTooltip(Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM_TOOLTIP);\n this.contextMenu = false;\n }\n};\n\nexport const unpack_iterable_object = {\n init: function () {\n this.setColour(VARIABLES_HUE);\n this.appendValueInput('VAR')\n .appendField(Blockly.Msg.MIXLY_VARIABLE_UNPACK)\n .appendField(new Blockly.FieldDropdown([\n [Blockly.Msg.MIXLY_PYTHON_LISTS_ZIP_ITEM, '*'],\n [Blockly.Msg.MIXLY_MICROBIT_TYPE_DICT, '**']\n ]), 'TYPE');\n this.setTooltip('');\n this.setOutput(true);\n }\n};","import * as PythonVariablesBlocks from './blocks/variables';\nimport * as PythonControlBlocks from './blocks/control';\nimport * as PythonMathBlocks from './blocks/math';\nimport * as PythonTextBlocks from './blocks/text';\nimport * as PythonListsBlocks from './blocks/lists';\nimport * as PythonDictsBlocks from './blocks/dicts';\nimport * as PythonLogicBlocks from './blocks/logic';\nimport * as PythonStorageBlocks from './blocks/storage';\nimport * as PythonProceduresBlocks from './blocks/procedures';\nimport * as PythonTupleBlocks from './blocks/tuple';\nimport * as PythonSetBlocks from './blocks/set';\nimport * as PythonHtmlBlocks from './blocks/html';\nimport * as PythonUtilityBlocks from './blocks/utility';\n\nimport * as PythonVariablesGenerators from './generators/variables';\nimport * as PythonControlGenerators from './generators/control';\nimport * as PythonMathGenerators from './generators/math';\nimport * as PythonTextGenerators from './generators/text';\nimport * as PythonListsGenerators from './generators/lists';\nimport * as PythonDictsGenerators from './generators/dicts';\nimport * as PythonLogicGenerators from './generators/logic';\nimport * as PythonStorageGenerators from './generators/storage';\nimport * as PythonProceduresGenerators from './generators/procedures';\nimport * as PythonTupleGenerators from './generators/tuple';\nimport * as PythonSetGenerators from './generators/set';\nimport * as PythonHtmlGenerators from './generators/html';\nimport * as PythonUtilityGenerators from './generators/utility';\n\nimport Names from './others/names';\nimport Procedures from './others/procedures';\nimport Variables from './others/variables';\nimport { Python } from './python_generator';\n\nexport {\n PythonVariablesBlocks,\n PythonControlBlocks,\n PythonMathBlocks,\n PythonTextBlocks,\n PythonListsBlocks,\n PythonDictsBlocks,\n PythonLogicBlocks,\n PythonStorageBlocks,\n PythonProceduresBlocks,\n PythonTupleBlocks,\n PythonSetBlocks,\n PythonHtmlBlocks,\n PythonUtilityBlocks,\n PythonVariablesGenerators,\n PythonControlGenerators,\n PythonMathGenerators,\n PythonTextGenerators,\n PythonListsGenerators,\n PythonDictsGenerators,\n PythonLogicGenerators,\n PythonStorageGenerators,\n PythonProceduresGenerators,\n PythonTupleGenerators,\n PythonSetGenerators,\n PythonHtmlGenerators,\n PythonUtilityGenerators,\n Names,\n Procedures,\n Variables,\n Python\n};","import * as Blockly from 'blockly/core';\nimport { Boards } from 'mixly';\n\nexport const controls_main = function (a, generator) {\n var d = generator.statementToCode(a, \"DO\"),\n d = generator.addLoopTrap(d, a.id) || generator.PASS;\n return \"if __name__ == '__main__':\\n\" + d;\n}\n\nexport const base_setup = function (_, generator) {\n var branch = generator.statementToCode(this, 'DO');\n branch = branch.replace(/(^\\s*)|(\\s*$)/g, \"\").replace(/\\n {4}/g, '\\n');//去除两端空格\n if (branch.endsWith('\\n')) {\n generator.setups_['setup_setup'] = branch;\n }\n else {\n generator.setups_['setup_setup'] = branch + '\\n';\n }\n return '';\n}\n\n// ok\nexport const controls_if = function (a, generator) {\n var b = 0,\n c = \"\",\n d,\n e;\n do\n e = generator.valueToCode(a, \"IF\" + b, generator.ORDER_NONE) || \"False\", d = generator.statementToCode(a, \"DO\" + b) || generator.PASS, c += (0 == b ? \"if \" : \"elif \") + e + \":\\n\" + d, ++b;\n while (a.getInput(\"IF\" + b));\n a.getInput(\"ELSE\") && (d = generator.statementToCode(a, \"ELSE\") || generator.PASS, c += \"else:\\n\" + d);\n return c\n}\n\nexport const controls_try_finally = function (_, generator) {\n var n = 1;\n var argument = generator.valueToCode(this, 'IF' + n,\n generator.ORDER_NONE) || 'null';\n var branch = '';\n var t = generator.statementToCode(this, 'try') || ' pass\\n';\n var code = 'try:\\n' + t;\n for (n = 1; n <= this.elseifCount_; n++) {\n argument = generator.valueToCode(this, 'IF' + n,\n generator.ORDER_NONE) || '';\n if (argument !== '')\n argument = ' ' + argument\n branch = generator.statementToCode(this, 'DO' + n) || ' pass\\n';\n code += 'except' + argument + ': \\n' + branch;\n }\n if (this.elseCount_) {\n branch = generator.statementToCode(this, 'ELSE') || ' pass\\n';\n code += 'finally:\\n' + branch;\n }\n // code += '}';\n return code;\n}\n\n// ok\nexport const controls_for = function (a, generator) {\n var b = generator.variableDB_.getName(a.getFieldValue(\"VAR\"), Blockly.Variables.NAME_TYPE),\n //var b = generator.valueToCode(a, \"VAR\", generator.ORDER_MEMBER) || \"''\",\n c = generator.valueToCode(a, \"FROM\", generator.ORDER_NONE) || \"0\",\n d = generator.valueToCode(a, \"TO\", generator.ORDER_NONE) || \"0\",\n e = generator.valueToCode(a, \"STEP\", generator.ORDER_NONE) || \"1\",\n f = generator.statementToCode(a, \"DO\"),\n f = generator.addLoopTrap(f, a.id) || generator.PASS,\n g = \"\",\n h = function (_, generator) {\n return generator.provideFunction_(\"upRange\",\n [\"def \" + generator.FUNCTION_NAME_PLACEHOLDER_ + \"(start, stop, step):\", \" while start <= stop:\", \" yield start\", \" start += abs(step)\"])\n },\n k = function (_, generator) {\n return generator.provideFunction_(\"downRange\", [\"def \" + generator.FUNCTION_NAME_PLACEHOLDER_ + \"(start, stop, step):\", \" while start >= stop:\", \" yield start\", \" start -= abs(step)\"])\n }\n a = function (a, b, c) {\n return \"(\" + a + \" <= \" + b + \") and \" + h() + \"(\" + a + \", \" + b + \", \" + c + \") or \" + k() + \"(\" + a + \", \" + b + \", \" + c + \")\"\n }\n if (Blockly.isNumber(c) && Blockly.isNumber(d) &&\n Blockly.isNumber(e))\n c = parseFloat(c), d = parseFloat(d), e = Math.abs(parseFloat(e)), 0 === c % 1 && 0 === d % 1 && 0 === e % 1 ? (c <= d ? (d++, a = 0 == c && 1 == e ? d : c + \", \" + d, 1 != e && (a += \", \" + e)) : (d--, a = c + \", \" + d + \", -\" + e), a = \"range(\" + a + \")\") : (a = c < d ? h() : k(), a += \"(\" + c + \", \" + d + \", \" + e + \")\");\n else {\n var l = function (a, c) {\n if (Blockly.isNumber(a))\n a = parseFloat(a);\n else {\n var d = generator.variableDB_.getDistinctName(b + c, Blockly.Variables.NAME_TYPE);\n g += d + \" = \" + a + \"\\n\";\n a = d\n }\n return a\n },\n c = l(c, \"_start\"),\n d = l(d, \"_end\");\n l(e, \"_inc\");\n a = \"number\" == typeof c && \"number\" == typeof d ? c < d ? h(c, d, e) : k(c, d, e) : a(c, d, e)\n }\n return g += \"for \" + b + \" in \" + a + \":\\n\" + f\n}\n\nexport const controls_for_range = function (block, generator) {\n var iter = generator.variableDB_.getName(block.getFieldValue(\"VAR\"), Blockly.Variables.NAME_TYPE),\n from = generator.valueToCode(block, \"FROM\", generator.ORDER_NONE) || \"0\",\n end = generator.valueToCode(block, \"TO\", generator.ORDER_NONE) || \"0\",\n step = generator.valueToCode(block, \"STEP\", generator.ORDER_NONE) || \"1\",\n dostatement = generator.statementToCode(block, \"DO\"),\n pass = generator.addLoopTrap(dostatement, block.id) || generator.PASS;\n generator.setups_[\"mixly_range\"] = \"def mixly_range(start, stop, step):\\n\" +\n \" for i in range(start, stop + 1, step):\\n\" +\n \" yield i\\n\\n\";\n return \"for \" + iter + \" in mixly_range(\" + from + \", \" + end + \", \" + step + \"):\\n\" + pass;\n}\n\nexport const controls_whileUntil = function (a, generator) {\n var b = \"UNTIL\" == a.getFieldValue(\"MODE\"),\n c = generator.valueToCode(a, \"BOOL\", generator.ORDER_NONE) || \"False\",\n d = generator.statementToCode(a, \"DO\"),\n d = generator.addLoopTrap(d, a.id) || generator.PASS;\n b && (c = \"not \" + c);\n return \"while \" + c + \":\\n\" + d\n}\n\n// export const controls_flow_statements = function (_, generator) {\n// // Flow statements: continue, break.\n// switch (this.getFieldValue('FLOW')) {\n// case 'BREAK':\n// return 'break;\\n';\n// case 'CONTINUE':\n// return 'continue;\\n';\n// }\n// throw 'Unknown flow statement.';\n// }\n\n//ok\nexport const controls_flow_statements = function (a) {\n switch (a.getFieldValue(\"FLOW\")) {\n case \"BREAK\":\n return \"break\\n\";\n case \"CONTINUE\":\n return \"continue\\n\"\n }\n throw \"Unknown flow statement.\";\n}\n\n// ok\nexport const controls_delay = function (_, generator) {\n var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'\n var code = 'sleep(' + delay_time + ')\\n';\n return code;\n}\n\n// ok\nexport const Panic_with_status_code = function (_, generator) {\n var status_code = generator.valueToCode(this, 'STATUS_CODE', generator.ORDER_ATOMIC) || '1000'\n var code = 'panic(' + status_code + ')\\n';\n return code;\n}\n\n// ok\nexport const controls_millis = function (_, generator) {\n generator.definitions_.import_time = \"import time\";\n var code = 'time.time()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const reset = function (_, generator) {\n generator.definitions_['import_microbit'] = 'from microbit import *'\n return 'reset()\\n';\n}\nexport const controls_interrupts = function () {\n return 'interrupts();\\n';\n}\n\nexport const controls_nointerrupts = function () {\n return 'noInterrupts();\\n';\n}\n\n\nexport const controls_forEach = function (block, generator) {\n // For each loop.\n var variable0 = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\\'\\'';\n var argument0 = generator.valueToCode(block, 'LIST',\n generator.ORDER_RELATIONAL) || '[]';\n var branch = generator.statementToCode(block, 'DO');\n branch = generator.addLoopTrap(branch, block.id) ||\n generator.PASS;\n var code = 'for ' + variable0 + ' in ' + argument0 + ':\\n' + branch;\n return code;\n}\n\nexport const controls_range = function (_, generator) {\n var from = generator.valueToCode(this, \"FROM\", generator.ORDER_NONE) || \"0\";\n var end = generator.valueToCode(this, \"TO\", generator.ORDER_NONE) || \"0\";\n var step = generator.valueToCode(this, \"STEP\", generator.ORDER_NONE) || \"1\";\n var code = \"range(\" + from + \", \" + end + \", \" + step + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const controls_lambda = function (a, generator) {\n var c = generator.valueToCode(a, \"BOOL\", generator.ORDER_NONE) || \"None\",\n d = generator.statementToCode(a, \"DO\") || \"pass\";\n var code = \"lambda \" + c + \": \" + d;\n code = code.replace('\\n', '').replace(' ', '')\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const time_sleep = function (_, generator) {\n generator.definitions_['import_time'] = 'import time';\n var delay_time = generator.valueToCode(this, 'DELAY_TIME', generator.ORDER_ATOMIC) || '1000'\n var code = 'time.sleep(' + delay_time + ')\\n';\n return code;\n}\n\nexport const controls_pass = function () {\n return 'pass\\n';\n}\n\nexport const controls_thread = function (_, generator) {\n generator.definitions_['import__thread'] = 'import _thread';\n var v = generator.valueToCode(this, \"VAR\", generator.ORDER_NONE) || \"None\";\n var callback = generator.variableDB_.getName(\n generator.valueToCode(this, \"callback\", generator.ORDER_NONE) || \"None\",\n Blockly.Procedures.NAME_TYPE\n );\n var code = \"_thread.start_new_thread(\" + callback + \", \" + v + \")\\n\";\n return code;\n}\n\n// do-while循环\nexport const do_while = function (_, generator) {\n var value_select_data = generator.valueToCode(this, 'select_data', generator.ORDER_NONE) || \"False\";\n var statements_input_data = generator.statementToCode(this, 'input_data')\n var dropdown_type = this.getFieldValue('type');\n if (dropdown_type == 'true') {\n statements_input_data = statements_input_data + ' if (' + value_select_data + '):\\n' + ' break\\n';\n }\n else {\n statements_input_data = statements_input_data + ' if not (' + value_select_data + '):\\n' + ' break\\n';\n }\n statements_input_data = generator.addLoopTrap(statements_input_data, this.id) || generator.PASS;\n //var dropdown_type = this.getFieldValue('type');\n var code = 'while True:\\n' + statements_input_data;\n return code;\n}\n\n// export const base_type = controls_type;\n// export const controls_TypeLists = controls_typeLists;\n\nexport const controls_repeat_ext = function (a, generator) {\n var times = generator.valueToCode(this, 'TIMES', generator.ORDER_ATOMIC);\n var d = generator.statementToCode(a, \"DO\"),\n d = generator.addLoopTrap(d, a.id) || generator.PASS;\n return 'for _my_variable in range(' + times + '):\\n' + d;\n}\n\n\nexport const garbage_collection = function (_, generator) {\n generator.definitions_['import_gc'] = 'import gc';\n var code = 'gc.collect()\\n'\n return code;\n}\n\nexport const get_mem_alloc = function (_, generator) {\n generator.definitions_['import_gc'] = 'import gc';\n var code = 'gc.mem_alloc()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const get_mem_free = function (_, generator) {\n generator.definitions_['import_gc'] = 'import gc';\n var code = 'gc.mem_free()';\n return [code, generator.ORDER_ATOMIC]\n}\n\nexport const get_unique_identifier = function (_, generator) {\n generator.definitions_['import_machine'] = 'import machine';\n var code = 'machine.unique_id()';\n return [code, generator.ORDER_ATOMIC];\n}\n\n// ok\nexport const controls_repeat = controls_repeat_ext;\n\nexport const datetime_fromtimestamp = function(_,generator){\n generator.definitions_['import_datatime'] = 'import datatime';\n var ts = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = 'datatime.datatime.fromtimestamp(' + ts + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const gene_unique_identifier = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n generator.definitions_['import_' + version + 'uuid'] = 'from ' + version + ' import uuid';\n var code = 'uuid()';\n return [code, generator.ORDER_ATOMIC]\n}","/**\n * @license\n * Visual Blocks Language\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Generating Python for dictionary blocks.\n * @author acbart@vt.edu (Austin Cory Bart)\n */\nimport * as Blockly from 'blockly/core';\nimport { Boards } from 'mixly';\n\nexport const dicts_create_with = function (_, generator) {\n // Create a list with any number of elements of any type.\n //var dropdown_type = this.getFieldValue('TYPE');\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n var keyName = this.getFieldValue('KEY' + n);\n code[n] = keyName + \":\" + (generator.valueToCode(this, 'ADD' + n, generator.ORDER_NONE) || default_value);\n }\n var code = varName + '= ' + '{' + code.join(', ') + '}\\n';\n //var code =''+varName+'['+size+\"]\"+'='+ '{' + code.join(', ') + '}\\n';\n //generator.setups_['setup_lists'+varName] = code;\n return code;\n}\n\nexport const dicts_keys = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.keys()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_get = function (_, generator) {\n var version = Boards.getSelectedBoardKey().split(':')[2]\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n if (version=='educore'){\n var code = varName+'.get('+text+')';\n }else{\n var code = varName + \"[\" + text + \"]\";\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_get_default = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n // var text=this.getFieldValue('KEY');\n var code = varName + \".get(\" + text + ',' + argument + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_add_or_change = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict';\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + \"[\" + text + \"] = \" + argument + '\\n';\n return code;\n}\n\nexport const dicts_delete = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict';\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n var code = \"del \" + varName + \"[\" + text + \"]\\n\";\n return code;\n}\n\nexport const dicts_update = function (_, generator) {\n var varName2 = generator.valueToCode(this, 'DICT2', generator.ORDER_ASSIGNMENT) || '0';\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.update(' + varName2 + ')\\n';\n return code;\n}\n\nexport const dicts_clear = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.clear()\\n';\n return code;\n}\n\nexport const dicts_items = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.items()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_values = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.values()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_length = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'len(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_deldict = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'del ' + varName + '\\n';\n return code;\n}\n\nexport const dicts_add_change_del = function (block, generator) {\n var dict = generator.valueToCode(block, 'DICT',\n generator.ORDER_MEMBER) || '[]';\n var mode = block.getFieldValue('WHERE');\n var KEY = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n\n switch (mode) {\n case 'INSERT':\n //var at2 = block.getFieldValue('AT2');\n var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ASSIGNMENT) || '0';\n var code = dict + \"[\" + KEY + \"] = \" + at2 + '\\n'\n break;\n case 'DELETE':\n var code = 'del ' + dict + \"[\" + KEY + \"]\\n\"\n break;\n default:\n throw 'Unhandled option (lists_setIndex2)';\n }\n return code;\n}\n\nexport const dicts_pop = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n var code = varName + \".pop(\" + text + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_setdefault = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || 'mydict';\n var text = generator.valueToCode(this, 'KEY', generator.ORDER_ASSIGNMENT);\n // var text=this.getFieldValue('KEY');\n var argument = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + \".setdefault\" + \"(\" + text + \",\" + argument + \")\\n\";\n return code;\n}\n\nexport const dicts_create_with_noreturn = function (_, generator) {\n // Create a list with any number of elements of any type.\n // var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n // Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var code = new Array(this.itemCount_);\n var default_value = '0';\n\n for (var n = 0; n < this.itemCount_; n++) {\n var keyName = this.getFieldValue('KEY' + n);\n code[n] = keyName + \":\" + (generator.valueToCode(this, 'ADD' + n, generator.ORDER_NONE) || default_value);\n }\n // if (this.itemCount_!=1){\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\\n';}\n // else {\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\\n';}\n if (this.itemCount_ != 1) {\n var code = '{' + code.join(', ') + '}';\n }\n else {\n var code = '{' + code.join(', ') + ',}';\n }\n\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_todict = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['dict(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const dicts_to_json = function (_, generator) {\n generator.definitions_['import_json'] = 'import json';\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'json.dumps(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const json_to_dicts = function (_, generator) {\n generator.definitions_['import_json'] = 'import json';\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || 'null';\n var code = 'json.loads(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_to_to = function (_, generator) {\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var R = generator.valueToCode(this, 'VAR1', generator.ORDER_ASSIGNMENT) || 'null';\n var I = generator.valueToCode(this, 'VAR2', generator.ORDER_ASSIGNMENT) || 'null';\n var L = generator.valueToCode(this, 'VAR3', generator.ORDER_ASSIGNMENT) || 'null';\n var N = generator.valueToCode(this, 'VAR4', generator.ORDER_ASSIGNMENT) || 'null';\n var code = varName + '['+R+']'+'['+I+']'+'['+L+']'+'['+N+']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const dicts_to_json2 = function (_, generator) {\n generator.definitions_['import_json'] = 'import json';\n generator.definitions_['import_ujson'] = 'import ujson';\n var varName = generator.valueToCode(this, 'DICT', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'ujson.loads(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}","export const html_document = function (_, generator) {\n var head = generator.statementToCode(this, 'HEAD');\n var body = generator.statementToCode(this, 'BODY');\n var code = \"'''\\n\\n\\n\" + '\\t\\n' + head + \"\\n\\n\" + body + \"\\n\\n'''\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const html_title = function (_, generator) {\n var t = generator.statementToCode(this, 'DO');\n var l = this.getFieldValue('LEVEL');\n var code = \"\\n\" + t + \"\\n\";\n return code;\n}\n\nexport const html_head_body = function (_, generator) {\n var t = generator.statementToCode(this, 'DO');\n var l = this.getFieldValue('LEVEL');\n if (l == 'head') {\n var code = \"<\" + l + '>\\n\\t\\n' + t + \"\\n\";\n }\n else {\n var code = \"<\" + l + \">\\n\" + t + \"\\n\";\n }\n return code;\n}\n\nexport const html_content = function (_, generator) {\n var t = generator.statementToCode(this, 'DO');\n // var s = generator.valueToCode(this, 'style');\n var l = this.getFieldValue('LEVEL');\n // var code = \"<\" + l + \" \" + s + \" >\\n\" + t + \"\\n\";\n var code = \"<\" + l + \">\\n\" + t + \"\\n\";\n return code;\n}\n\nexport const html_content_more = function (_, generator) {\n var t = generator.statementToCode(this, 'DO');\n var s = generator.valueToCode(this, 'style');\n var l = this.getFieldValue('LEVEL');\n var code = \"<\" + l + \" \" + s + \" >\\n\" + t + \"\\n\";\n return code;\n}\n\nexport const html_style = function (_, generator) {\n var style = generator.statementToCode(this, 'STYLE');\n var code = 'style=\"' + style + '\"';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const html_form = function (_, generator) {\n var tag = this.getFieldValue('LEVEL');\n var name = this.getFieldValue('NAME');\n var value = this.getFieldValue('VALUE');\n var s = generator.valueToCode(this, 'style') || \"\";\n var code = '';\n return code;\n}\n\nexport const html_style_content = function () {\n var key = this.getFieldValue('KEY');\n var value = this.getFieldValue('VALUE');\n var code = key + ':' + value + \";\";\n return code;\n}\n\nexport const html_text = function () {\n var text = this.getFieldValue('TEXT');\n var code = text + \"\\n\";\n return code;\n}","import * as Blockly from 'blockly/core';\n\nexport const lists_get_sublist = function (_, generator) {\n // Get sublist.\n var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ADDITIVE);\n var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ADDITIVE);\n var code = list + '[' + at1 + ' : ' + at2 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_2d_get_data_with_col_row = function (_, generator) {\n var value_LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC) || 'mylist';\n var value_row = generator.valueToCode(this, 'row', generator.ORDER_ATOMIC) || 0;\n var value_col = generator.valueToCode(this, 'col', generator.ORDER_ATOMIC) || 0;\n var code = value_LIST + '[' + value_row + ',' + value_col + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_2d_get_col_row_data = function (_, generator) {\n var value_LIST = generator.valueToCode(this, 'LIST', generator.ORDER_ATOMIC) || 'mylist';\n var value_row_start = generator.valueToCode(this, 'row_start', generator.ORDER_ATOMIC) || 0;\n var value_row_end = generator.valueToCode(this, 'row_end', generator.ORDER_ATOMIC) || 1;\n var value_col_start = generator.valueToCode(this, 'col_start', generator.ORDER_ATOMIC) || 0;\n var value_col_end = generator.valueToCode(this, 'col_end', generator.ORDER_ATOMIC) || 1;\n var code = value_LIST + '[' + value_row_start + ' : ' + value_row_end + ',' + value_col_start + ' : ' + value_col_end + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_create_with = function (_, generator) {\n // Create a list with any number of elements of any type.\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n //generator.setups_['var_declare'+varName] = varName+' = '+ '[' + code.join(', ') + ']\\n';\n var code = varName + ' = ' + '[' + code.join(', ') + ']\\n';\n return code;\n}\n\nexport const lists_create_with_text = function (_, generator) {\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var text = this.getFieldValue('TEXT');\n // generator.setups_['var_declare'+varName] = varName+' = '+ '[' + text + ']\\n';\n var code = varName + ' = ' + '[' + text + ']\\n';\n return code;\n}\n\nexport const lists_get_index = function (_, generator) {\n // Indexing into a list is the same as indexing into a string.\n var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var argument0 = generator.valueToCode(this, 'AT', generator.ORDER_ADDITIVE) || 0;\n var code = list + '[' + argument0 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_set_index = function (_, generator) {\n // Set element at index.\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var argument0 = generator.valueToCode(this, 'AT',\n generator.ORDER_ADDITIVE) || '0';\n var argument2 = generator.valueToCode(this, 'TO',\n generator.ORDER_ASSIGNMENT) || '0';\n // Blockly uses one-based indicies.\n return varName + '[' + argument0 + '] = ' + argument2 + '\\n';\n}\n\nexport const lists_append_extend = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0';\n var argument = generator.valueToCode(this, 'DATA', generator.ORDER_ASSIGNMENT) || '0';\n var op = this.getFieldValue('OP');\n var code = varName + '.' + op + '(' + argument + ')\\n';\n return code;\n}\n\nexport const lists_get_random_item = function (_, generator) {\n generator.definitions_['import_random'] = 'import random';\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var code = 'random.choice(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_get_random_sublist = function (_, generator) {\n generator.definitions_['import_random'] = 'import random';\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var VALUE = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'random.sample(' + varName + ',' + VALUE + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_insert_value = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0';\n var at = generator.valueToCode(this, 'AT', generator.ORDER_ADDITIVE) || '0';\n var VALUE = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.insert(' + at + ', ' + VALUE + ')\\n';\n return code;\n}\n\nexport const lists_reverse = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.reverse()\\n';\n return code;\n}\nexport const lists_clear = function (_, generator) {\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.clear()\\n';\n return code;\n}\n\nexport const lists_find = function (_, generator) {\n var op = this.getFieldValue('OP');\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';\n if (op == 'INDEX')\n var code = varName + '.index(' + argument + ')';\n else if (op == 'COUNT')\n var code = varName + '.count(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_remove_at = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0';\n var argument = generator.valueToCode(this, 'DATA', generator.ORDER_ASSIGNMENT) || '0';\n var op = this.getFieldValue('OP');\n var code = \"\";\n if (op == \"del\") {\n code = 'del ' + varName + '[' + argument + ']\\n';\n } else {\n code = varName + '.remove' + '(' + argument + ')\\n';\n }\n return code;\n}\n\nexport const lists_pop = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var argument = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.pop(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const list_trig = function (a, generator) {\n var b = a.getFieldValue(\"OP\"), c;\n generator.definitions_['import_math'] = \"import math\";\n a = generator.valueToCode(a, 'data', generator.ORDER_NONE)\n switch (b) {\n case \"LEN\":\n c = \"len(\" + a + \")\";\n break;\n case \"SUM\":\n c = \"sum(\" + a + \")\";\n break;\n case \"MIN\":\n c = \"min(\" + a + \")\";\n break;\n case \"MAX\":\n c = \"max(\" + a + \")\";\n break;\n case 'AVERAGE':\n generator.definitions_['import_mixpy_math_mean'] = \"from mixpy import math_mean\";\n c = 'math_mean(' + a + ')';\n break;\n case 'MEDIAN':\n generator.definitions_['import_mixpy_math_median'] = \"from mixpy import math_median\";\n c = 'math_median(' + a + ')';\n break;\n case 'MODE':\n generator.definitions_['import_mixpy_math_modes'] = \"from mixpy import math_modes\";\n c = 'math_modes(' + a + ')';\n break;\n case 'STD_DEV':\n generator.definitions_['import_mixpy_math_standard_deviation'] = \"from mixpy import math_standard_deviation\";\n c = 'math_standard_deviation(' + a + ')';\n break;\n default:\n throw 'Unknown operator: ' + b;\n }\n if (c)\n return [c, generator.ORDER_ATOMIC];\n\n}\n\nexport const lists_sort = function (block, generator) {\n // Block for sorting a list.\n generator.definitions_['import_mixpy_lists_sort'] = \"from mixpy import lists_sort\";\n var list = (generator.valueToCode(block, 'LIST',\n generator.ORDER_NONE) || '[]');\n var type = block.getFieldValue('TYPE');\n var reverse = block.getFieldValue('DIRECTION') === '1' ? 'False' : 'True';\n var code = 'lists_sort(' + list + ', \"' + type + '\", ' + reverse + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_change_to = function (_, generator) {\n var op = this.getFieldValue('OP');\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = '';\n if (op == 'array') {\n generator.definitions_['import_numpy'] = 'import numpy';\n code = 'numpy.array(' + varName + ')';\n }\n else {\n code = op + '(' + varName + ')';\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const list_many_input = function (_, generator) {\n var text = this.getFieldValue('CONTENT');\n var code = '[' + text + ']'\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_create_with_noreturn = function (_, generator) {\n // Create a list with any number of elements of any type.\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = '[' + code.join(', ') + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const lists_change_to_general = lists_change_to;\n\nexport const lists_del_general = function (_, generator) {\n var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'del ' + varName + '\\n';\n return code;\n}\n\nexport const lists_create_with2 = lists_create_with\nexport const lists_create_with_text2 = lists_create_with_text\nexport const lists_getIndex3 = lists_get_index\nexport const lists_getSublist3 = lists_get_sublist\nexport const lists_setIndex3 = lists_set_index\nexport const lists_insert_value2 = lists_insert_value\nexport const lists_remove_at2 = lists_remove_at\n\nexport const list_tolist = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['list(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const list_tolist2 = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return [str + '.tolist()', generator.ORDER_ATOMIC];\n}\n\nexport const enumerate = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var argument = generator.valueToCode(this, 'VALUE', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'enumerate(' +varName+',start='+ argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const content_in_lists = function (_, generator) {\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || 'mylist';\n var con = generator.valueToCode(this, 'CON', generator.ORDER_ASSIGNMENT) || '0';\n var code = con +' in '+varName;\n return [code, generator.ORDER_ATOMIC];\n}","export const logic_compare = function (_, generator) {\n // Comparison operator.\n var mode = this.getFieldValue('OP');\n var operator = logic_compare.OPERATORS[mode];\n var order = (operator == '==' || operator == '!=') ?\n generator.ORDER_EQUALITY : generator.ORDER_RELATIONAL;\n var argument0 = generator.valueToCode(this, 'A', order) || '0';\n var argument1 = generator.valueToCode(this, 'B', order) || '0';\n var code = argument0 + ' ' + operator + ' ' + argument1;\n return [code, order];\n}\n\nexport const logic_compare_continous = function (_, generator) {\n // Comparison operator.\n var mode1 = this.getFieldValue('OP1');\n var operator1 = logic_compare.OPERATORS[mode1];\n var mode2 = this.getFieldValue('OP2');\n var operator2 = logic_compare.OPERATORS[mode2];\n var argument0 = generator.valueToCode(this, 'A', generator.ORDER_RELATIONAL) || '0';\n var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0';\n var argument2 = generator.valueToCode(this, 'C', generator.ORDER_RELATIONAL) || '0';\n var code = argument0 + ' ' + operator1 + ' ' + argument1 + ' ' + operator2 + ' ' + argument2;\n return [code, generator.ORDER_RELATIONAL];\n}\n\nlogic_compare.OPERATORS = {\n EQ: '==',\n NEQ: '!=',\n LT: '<',\n LTE: '<=',\n GT: '>',\n GTE: '>='\n};\n\nexport const logic_operation = function (_, generator) {\n // Operations 'and', 'or'.\n var operator = this.getFieldValue('OP');\n var order = (operator == '&&') ? generator.ORDER_LOGICAL_AND :\n generator.ORDER_LOGICAL_OR;\n var argument0 = generator.valueToCode(this, 'A', order) || 'False';\n var argument1 = generator.valueToCode(this, 'B', order) || 'False';\n if (operator == 'AND') {\n var code = argument0 + ' and ' + argument1;\n } else if (operator == 'OR') {\n var code = argument0 + ' or ' + argument1;\n } else if (operator == 'NOR') {\n // var code = '('+argument0+' and '+argument1+' ) or ((not '+argument0+') and (not '+argument1+'))';\n var code = 'not(' + argument0 + '^' + argument1 + ')';\n } else {\n // var code = '((not '+argument0+') and '+argument1+' ) or ( '+argument0+' and (not '+argument1+'))';\n var code = argument0 + '^' + argument1;\n }\n return [code, order];\n}\n\nexport const logic_negate = function (_, generator) {\n // Negation.\n var order = generator.ORDER_UNARY_PREFIX;\n var argument0 = generator.valueToCode(this, 'BOOL', order) || 'False';\n var code = 'not ' + argument0;\n return [code, order];\n}\n\nexport const logic_boolean = function (_, generator) {\n // Boolean values true and false.\n var code = (this.getFieldValue('BOOL') == 'TRUE') ? 'True' : 'False';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const logic_null = function (_, generator) {\n var code = 'None';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const logic_true_or_false = function (_, generator) {\n var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || 'False';\n var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || 'False';\n var c = generator.valueToCode(this, 'C', generator.ORDER_ATOMIC) || 'False';\n var code = '(' + b + ' if ' + a + ' else ' + c + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const logic_is_in = function (_, generator) {\n var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\\'\\'';\n var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\\'\\'';\n var bool = this.getFieldValue('BOOL');\n var code = a + ' ' + bool + ' ' + b;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const logic_is = function (_, generator) {\n var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC) || '\\'\\'';\n var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC) || '\\'\\'';\n var bool = this.getFieldValue('BOOL');\n var code = a + ' ' + bool + ' ' + b;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const logic_tobool = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['bool(' + str + ')', generator.ORDER_ATOMIC];\n}","// export const math_number = function() {\n// // Numeric value.\n// var code = (this.getFieldValue('NUM'));\n// // -4.abs() returns -4 in Dart due to strange order of operation choices.\n// // -4 is actually an operator and a number. Reflect this in the order.\n// var order = code < 0 ?\n// generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;\n// return [code, order];\n// }\n\n// generator.math = {}\n// generator.addReservedWords(\"math,random,Number\");\n\nexport const math_number = function (_, generator) {\n // a = parseFloat(a.getFieldValue(\"NUM\"));\n // var b;\n // Infinity == a ? (a = 'float(\"inf\")', b = generator.ORDER_FUNCTION_CALL) : -Infinity == a ? (a = '-float(\"inf\")', b = generator.ORDER_UNARY_SIGN) : b = 0 > a ? generator.ORDER_UNARY_SIGN : generator.ORDER_ATOMIC;\n // return [a, b]\n\n var code = this.getFieldValue('NUM');\n // -4.abs() returns -4 in Dart due to strange order of operation choices.\n // -4 is actually an operator and a number. Reflect this in the order.\n var order = code < 0 ?\n generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;\n return [code, order];\n}\n\nexport const math_constant = function (_, generator) {\n generator.definitions_.import_math = \"import math\";\n var name = this.getFieldValue('CONSTANT');\n var code = 'math.' + name;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const math_constant_mp = function (_, generator) {\n generator.definitions_.import_math = \"import math\";\n var name = this.getFieldValue('CONSTANT');\n var code = 'math.' + name;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const math_bit = function (_, generator) {\n var operator = this.getFieldValue('OP');\n var order = generator.ORDER_ATOMIC;\n var argument0 = generator.valueToCode(this, 'A', order) || '0';\n var argument1 = generator.valueToCode(this, 'B', order) || '0';\n var code = '(' + argument0 + operator + argument1 + ')';\n return [code, order];\n}\n\nexport const math_arithmetic = function (a, generator) {\n var b = {\n ADD: [\" + \", generator.ORDER_ADDITIVE],\n MINUS: [\" - \", generator.ORDER_ADDITIVE],\n MULTIPLY: [\" * \", generator.ORDER_MULTIPLICATIVE],\n DIVIDE: [\" / \", generator.ORDER_MULTIPLICATIVE],\n QUYU: [' % ', generator.ORDER_MULTIPLICATIVE],//增加取余操作\n ZHENGCHU: [' // ', generator.ORDER_MULTIPLICATIVE],//增加整除操作\n POWER: [\" ** \", generator.ORDER_EXPONENTIATION]\n }[a.getFieldValue(\"OP\")];\n var c = b[0],\n b = b[1],\n d = generator.valueToCode(a, \"A\", b) || \"0\";\n a = generator.valueToCode(a, \"B\", b) || \"0\";\n return [d + c + a, b]\n}\n\nexport const math_selfcalcu = function (_, generator) {\n var argument0 = generator.valueToCode(this, 'A', generator.ORDER_RELATIONAL) || '0';\n var argument1 = generator.valueToCode(this, 'B', generator.ORDER_RELATIONAL) || '0';\n var operator = this.getFieldValue('OP');\n switch (operator) {\n case 'ADD': var op = '+='; break;\n case 'MINUS': var op = '-='; break;\n case 'MULTIPLY': var op = '*='; break;\n case 'DIVIDE': var op = '/='; break;\n case 'QUYU': var op = '%='; break;\n case 'ZHENGCHU': var op = '//='; break;\n case 'POWER': var op = '**='; break;\n }\n var code = argument0 + ' ' + op + ' ' + argument1 + '\\n';\n return code;\n}\n\nexport const math_single = function (a, generator) {\n var b = a.getFieldValue(\"OP\"),\n c;\n if (\"NEG\" == b)\n return c = generator.valueToCode(a, \"NUM\", generator.ORDER_UNARY_SIGN) || \"0\", [\"-\" + c, generator.ORDER_UNARY_SIGN];\n generator.definitions_['import_math'] = \"import math\";\n a = \"SIN\" == b || \"COS\" == b || \"TAN\" == b ? generator.valueToCode(a, \"NUM\", generator.ORDER_MULTIPLICATIVE) || \"0\" : generator.valueToCode(a, \"NUM\", generator.ORDER_NONE) || \"0\";\n switch (b) {\n case \"ABS\":\n c = \"math.fabs(\" + a + \")\";\n break;\n case \"ROOT\":\n c = \"math.sqrt(\" +\n a + \")\";\n break;\n case \"LN\":\n c = \"math.log(\" + a + \")\";\n break;\n case \"LOG10\":\n c = \"math.log10(\" + a + \")\";\n break;\n case \"EXP\":\n c = \"math.exp(\" + a + \")\";\n break;\n case \"POW10\":\n c = \"math.pow(10,\" + a + \")\";\n break;\n case \"ROUND\":\n c = \"round(\" + a + \")\";\n break;\n case \"ROUNDUP\":\n c = \"math.ceil(\" + a + \")\";\n break;\n case \"ROUNDDOWN\":\n c = \"math.floor(\" + a + \")\";\n break;\n case \"SIN\":\n c = \"math.sin(\" + a + \")\";\n break;\n case \"COS\":\n c = \"math.cos(\" + a + \")\";\n break;\n case \"TAN\":\n c = \"math.tan(\" + a + \")\";\n break;\n case \"++\":\n c = \"++(\" + a + \")\";\n break;\n case \"--\":\n c = \"--(\" + a + \")\";\n break;\n case \"-\":\n c = \"-(\" + a + \")\";\n break;\n default:\n }\n if (c)\n return [c, generator.ORDER_EXPONENTIATION];\n switch (b) {\n case \"ASIN\":\n c = \"math.degrees(math.asin(\" + a + \"))\";\n break;\n case \"ACOS\":\n c = \"math.degrees(math.acos(\" + a + \"))\";\n break;\n case \"ATAN\":\n c = \"math.degrees(math.atan(\" + a + \"))\";\n break;\n }\n return [c, generator.ORDER_MULTIPLICATIVE]\n}\n\nexport const math_trig = math_single;\n\nexport const math_dec = function (_, generator) {\n var argument0 = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';\n var operator = this.getFieldValue('OP');\n var code = operator + '(' + argument0 + ')';\n return [code, generator.ORDER_ATOMIC];\n\n}\n\nexport const math_to_int = function (_, generator) {\n var argument0 = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0';\n var operator = this.getFieldValue('OP');\n var code = \"\";\n if (operator === \"round\") {\n code = operator + '(' + argument0 + ')';\n } else {\n code = \"math.\" + operator + '(' + argument0 + ')';\n generator.definitions_.import_math = \"import math\";\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const math_max_min = function (_, generator) {\n var a = generator.valueToCode(this, 'A', generator.ORDER_NONE) || '0';\n var b = generator.valueToCode(this, 'B', generator.ORDER_NONE) || '0';\n var operator = this.getFieldValue('OP');\n var code = operator + '(' + a + ', ' + b + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const math_random = function (_, generator) {\n generator.definitions_.import_random = \"import random\";\n // Random integer between [X] and [Y].\n var type = this.getFieldValue('TYPE');\n var argument0 = generator.valueToCode(this, 'FROM',\n generator.ORDER_NONE) || '0';\n var argument1 = generator.valueToCode(this, 'TO',\n generator.ORDER_NONE) || '0';\n if (type == 'int') {\n var code = 'random.randint(' + argument0 + ', ' + argument1 + ')';\n } else if (type == 'float') {\n var code = 'random.uniform(' + argument0 + ', ' + argument1 + ')';\n }\n return [code, generator.ORDER_UNARY_POSTFIX];\n}\n\nexport const math_map = function (_, generator) {\n var value_num = generator.valueToCode(this, 'NUM', generator.ORDER_NONE);\n var value_fl = generator.valueToCode(this, 'fromLow', generator.ORDER_ATOMIC);\n var value_fh = generator.valueToCode(this, 'fromHigh', generator.ORDER_ATOMIC);\n var value_tl = generator.valueToCode(this, 'toLow', generator.ORDER_ATOMIC);\n var value_th = generator.valueToCode(this, 'toHigh', generator.ORDER_ATOMIC);\n generator.definitions_['import_mixpy_math_map'] = \"from mixpy import math_map\";\n var code = 'math_map(' + value_num + ', ' + value_fl + ', ' + value_fh + ', ' + value_tl + ', ' + value_th + ')';\n return [code, generator.ORDER_NONE];\n}\n\nexport const math_constrain = function (_, generator) {\n // Constrain a number between two limits.\n var argument0 = generator.valueToCode(this, 'VALUE',\n generator.ORDER_NONE) || '0';\n var argument1 = generator.valueToCode(this, 'LOW',\n generator.ORDER_NONE) || '0';\n var argument2 = generator.valueToCode(this, 'HIGH',\n generator.ORDER_NONE) || '0';\n var code = 'min(max(' + argument0 + ', ' + argument1 + '), ' + argument2 + ')';\n return [code, generator.ORDER_UNARY_POSTFIX];\n}\n\nexport const math_number_base_conversion = function (a, generator) {\n var c1 = a.getFieldValue(\"OP\");\n var d = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';\n var c2 = a.getFieldValue(\"OP2\");\n generator.definitions_['import_math'] = \"import math\";\n var param1 = \"\";\n var param2 = \"10\";\n if (c1 == \"two\") {\n param2 = '2';\n } else if (c1 == \"eight\") {\n param2 = '8'\n } else if (c1 == \"ten\") {\n param2 = '10'\n } else if (c1 == \"sixteen\") {\n param2 = '16'\n }\n\n if (c2 == \"two\") {\n param1 = 'bin';\n } else if (c2 == \"eight\") {\n param1 = 'oct'\n } else if (c2 == \"ten\") {\n param1 = ''\n } else if (c2 == \"sixteen\") {\n param1 = 'hex'\n }\n if (param1 == \"\") {\n var code = \"int(str(\" + d + \"), \" + param2 + \")\";\n } else {\n var code = param1 + \"(int(str(\" + d + \"), \" + param2 + \"))\";\n\n }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const math_random_seed = function (_, generator) {\n // Random integer between [X] and [Y].\n generator.definitions_.import_random = \"import random\";\n var a = generator.valueToCode(this, 'NUM', generator.ORDER_NONE) || '0';\n var code = 'random.seed(' + a + ');' + '\\n';\n return code;\n}\n\nexport const math_indexer_number = function (_, generator) {\n var code = this.getFieldValue('NUM');\n // -4.abs() returns -4 in Dart due to strange order of operation choices.\n // -4 is actually an operator and a number. Reflect this in the order.\n var order = code < 0 ?\n generator.ORDER_UNARY_PREFIX : generator.ORDER_ATOMIC;\n return [code, order];\n}\n\nexport const math_round = function (_, generator) {\n var argument0 = generator.valueToCode(this, 'VALUE',\n generator.ORDER_NONE) || '0';\n var argument1 = generator.valueToCode(this, 'VAR',\n generator.ORDER_NONE) || '0';\n\n var code = 'round(' + argument0 + ', ' + argument1 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_to_number = function (_, generator) {\n var towhat = this.getFieldValue('TOWHAT');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (towhat == 'b') return ['' + str + '.encode(\"utf-8\")', generator.ORDER_ATOMIC];\n else if (towhat == 'bti') return ['int.from_bytes(' + str + ',\"big\")', generator.ORDER_ATOMIC];\n return [towhat + \"(\" + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_to_number_skulpt = function (_, generator) {\n var towhat = this.getFieldValue('TOWHAT');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n if (towhat == 'b') return ['' + str + '.encode(\"utf-8\")', generator.ORDER_ATOMIC];\n return [towhat + \"(\" + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const base_map = math_map;\n\nexport const turn_to_int = function (_, generator) {\n generator.definitions_.import_hexlify = \"from ubinascii import hexlify\";\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return [\"hexlify(\" + str + ').decode()', generator.ORDER_ATOMIC];\n}\n\nexport const generate_cartesian_product = function (_, generator) {\n generator.definitions_.import_itertools = 'import itertools';\n let re = generator.valueToCode(this, 'REPEAT', generator.ORDER_ATOMIC);\n let items = new Array(this.itemCount_);\n for (let n = 0; n < this.itemCount_; n++) {\n items[n] = generator.valueToCode(this, `ADD${n}`, generator.ORDER_NONE) || '0';\n }\n let code = '';\n if (this.itemCount_) {\n code = `itertools.product(${items.join(', ')}, repeat=${re})`;\n }\n return [code, generator.ORDER_ATOMIC];\n}","import * as Blockly from 'blockly/core';\n\nexport const procedures_defreturn = function (_, generator) {\n // Define a procedure with a return value.\n var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'),\n Blockly.Procedures.NAME_TYPE);\n var branch = (this.getInput('STACK') && generator.statementToCode(this, 'STACK')) ?? ' pass\\n';\n if (generator.INFINITE_LOOP_TRAP) {\n branch = generator.INFINITE_LOOP_TRAP.replace(/%1/g,\n '\\'' + this.id + '\\'') + branch;\n }\n var returnValue = generator.valueToCode(this, 'RETURN',\n generator.ORDER_NONE) || '';\n //var type=this.getFieldValue('TYPE');\n if (returnValue) {\n returnValue = ' return ' + returnValue + '\\n';\n }\n //var returnType = returnValue ? type : 'void';\n var args = [];\n for (var x = 0; x < this.arguments_.length; x++) {\n var varName = generator.variableDB_.getName(this.arguments_[x], Blockly.Variables.NAME_TYPE);\n args[x] = varName;\n }\n var code = 'def ' + funcName + '(' + args.join(', ') + '):\\n' +\n branch + returnValue + '\\n';\n code = generator.scrub_(this, code);\n generator.setups_[funcName] = code;\n return null;\n}\n\nexport const procedures_defnoreturn = function (_, generator) {\n // Define a procedure with a return value.\n var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'),\n Blockly.Procedures.NAME_TYPE);\n var branch = (this.getInput('STACK') && generator.statementToCode(this, 'STACK')) ?? ' pass\\n';\n if (generator.INFINITE_LOOP_TRAP) {\n branch = generator.INFINITE_LOOP_TRAP.replace(/%1/g,\n '\\'' + this.id + '\\'') + branch;\n }\n //var returnType = returnValue ? type : 'void';\n var args = [];\n for (var x = 0; x < this.arguments_.length; x++) {\n var varName = generator.variableDB_.getName(this.arguments_[x], Blockly.Variables.NAME_TYPE);\n args[x] = varName;\n }\n var code = 'def ' + funcName + '(' + args.join(', ') + '):\\n' +\n branch + '\\n';\n code = generator.scrub_(this, code);\n generator.setups_[funcName] = code;\n return null;\n}\n\nexport const procedures_callreturn = function (_, generator) {\n // Call a procedure with a return value.\n var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'),\n Blockly.Procedures.NAME_TYPE);\n var args = [];\n for (var x = 0; x < this.arguments_.length; x++) {\n args[x] = generator.valueToCode(this, 'ARG' + x,\n generator.ORDER_NONE) || 'null';\n }\n var code = funcName + '(' + args.join(', ') + ')';\n return [code, generator.ORDER_UNARY_POSTFIX];\n}\n\nexport const procedures_callnoreturn = function (_, generator) {\n // Call a procedure with no return value.\n var funcName = generator.variableDB_.getName(this.getFieldValue('NAME'),\n Blockly.Procedures.NAME_TYPE);\n var args = [];\n for (var x = 0; x < this.arguments_.length; x++) {\n args[x] = generator.valueToCode(this, 'ARG' + x,\n generator.ORDER_NONE) || 'null';\n }\n var code = funcName + '(' + args.join(', ') + ')\\n';\n return code;\n}\n\nexport const procedures_ifreturn = function (_, generator) {\n // Conditionally return value from a procedure.\n var condition = generator.valueToCode(this, 'CONDITION',\n generator.ORDER_NONE) || 'False';\n var code = 'if (' + condition + ') :\\n';\n if (this.hasReturnValue_) {\n var value = generator.valueToCode(this, 'VALUE',\n generator.ORDER_NONE) || 'None';\n code += ' return ' + value;\n } else {\n code += ' return None';\n }\n code += '\\n';\n return code;\n}\n\nexport const procedures_return = function (_, generator) {\n // Conditionally return value from a procedure.\n var code = \"\"\n if (this.hasReturnValue_) {\n var value = generator.valueToCode(this, 'VALUE',\n generator.ORDER_NONE) || 'None';\n code += 'return ' + value;\n } else {\n code += 'return None';\n }\n code += '\\n';\n return code;\n}","import * as Blockly from 'blockly/core';\n\nexport const set_create_with = function (_, generator) {\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n //generator.definitions_['var_declare'+varName] = varName+'= '+ '{' + code.join(', ') + '}\\n';\n code = varName + '= ' + '{' + code.join(', ') + '}\\n';\n if (this.itemCount_ == 0) { code = varName + ' = ' + 'set()\\n' }\n return code;\n}\n\nexport const set_length = function (_, generator) {\n var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'len(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_pop = function (_, generator) {\n var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.pop()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_clear = function (_, generator) {\n var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + '.clear()\\n';\n return code;\n}\n\nexport const set_operate = function (_, generator) {\n var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0';\n var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0';\n var operate = this.getFieldValue('OPERATE');\n //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = vars1 + \".\" + operate + \"(\" + vars2 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_operate_update = function (_, generator) {\n var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0';\n var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0';\n var operate = this.getFieldValue('OPERATE');\n //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = vars1 + \".\" + operate + \"(\" + vars2 + ')\\n';\n return code;\n}\n\nexport const set_add_discard = function (_, generator) {\n var vars1 = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0';\n var operate = this.getFieldValue('OPERATE');\n var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';\n var code = vars1 + \".\" + operate + \"(\" + argument + ')\\n';\n return code;\n}\n\nexport const set_sub = function (_, generator) {\n var vars1 = generator.valueToCode(this, 'SET1', generator.ORDER_ASSIGNMENT) || '0';\n var vars2 = generator.valueToCode(this, 'SET2', generator.ORDER_ASSIGNMENT) || '0';\n var operate = this.getFieldValue('OPERATE');\n //var num = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = vars1 + \".\" + operate + \"(\" + vars2 + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_update = function (_, generator) {\n var varName = generator.valueToCode(this, 'SET', generator.ORDER_ASSIGNMENT) || '0';\n var color = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n //var color = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName + \".\" + 'update' + '(' + color + ')\\n';\n return code;\n}\n\n// export const set_change_to = function(){\n// var op = this.getFieldValue('OP');\n// var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n// var code = op + '(' + varName + ')\\n';\n// return [code, generator.ORDER_ATOMIC];\n// }\n\nexport const set_create_with_text_return = function (_, generator) {\n var text = this.getFieldValue('TEXT');\n var code = '{' + text + '}';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const set_toset = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['set(' + str + ')', generator.ORDER_ATOMIC];\n}","export const storage_open_file_with_os = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var fn = generator.valueToCode(this, 'fn', generator.ORDER_ATOMIC);\n return \"os.startfile(\" + fn + \")\\n\";\n}\n\nexport const storage_fileopen = function (_, generator) {\n // For each loop.\n var variable0 = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('MODE');\n var code = variable0 + ' = open(' + fn + ', \\'' + mode + '\\')\\n';\n return code;\n}\n\nexport const storage_fileopen_new = function (_, generator) { // For each loop.\n var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('MODE');\n var code = 'open(' + fn + ', \\'' + mode + '\\')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_fileopen_new_encoding = function (_, generator) { // For each loop.\n var fn = generator.valueToCode(this, 'FILENAME', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('MODE');\n var encode = this.getFieldValue('CODE');\n var code = 'open(' + fn + ', \\'' + mode + '\\', encoding=\"' + encode + '\")';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_file_write = function (_, generator) {\n var data = generator.valueToCode(this, 'data', generator.ORDER_ATOMIC);\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n return file + \".write(\" + data + \")\\n\";\n}\n\nexport const storage_get_contents_without_para = function (_, generator) {\n var mode = this.getFieldValue('MODE');\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = file + '.' + mode + '()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_get_contents = function (_, generator) {\n var mode = this.getFieldValue('MODE');\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC);\n var code = file + '.' + mode + '(' + size + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_get_a_line = function (_, generator) {\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC);\n var code = file + \".readline(\" + size + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_can_write_ornot = function (_, generator) {\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = file + \".writable()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_get_filename = function (_, generator) {\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = file + \".name()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_close_file = function (_, generator) {\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = file + \".close()\\n\";\n return code;\n}\n\nexport const storage_list_all_files = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var code = 'os.listdir()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_delete_file = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var mode = this.getFieldValue('MODE');\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = \"os.\" + mode + \"(\" + file + \")\\n\";\n return code;\n}\n\nexport const storage_get_file_size = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = \"os.path.getsize(\" + file + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_file_tell = function (_, generator) {\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = file + \".tell()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_file_seek = function (_, generator) {\n var mode = this.getFieldValue('MODE');\n var mode_num = 0;\n if (mode == 'start') {\n mode_num = 0;\n }\n else if (mode == 'current') {\n mode_num = 1;\n }\n else {\n mode_num = 2;\n }\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var size = generator.valueToCode(this, 'SIZE', generator.ORDER_ATOMIC);\n var code = file + '.seek(' + size + ',' + mode_num + ')\\n';\n return code;\n}\n\nexport const storage_change_dir = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var code = \"os.chdir(\" + file + \")\\n\";\n return code;\n}\n\nexport const storage_get_current_dir = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var code = 'os.getcwd()';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const storage_make_dir = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var mode = this.getFieldValue('MODE');\n var path = generator.valueToCode(this, 'PATH', generator.ORDER_ATOMIC);\n var code = 'os.' + mode + '(' + path + ')\\n';\n return code;\n}\n\nexport const storage_rename = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var file1 = generator.valueToCode(this, 'NEWFILE', generator.ORDER_ATOMIC);\n var code = \"os.rename(\" + file + \",\" + file1 + \")\\n\";\n return code;\n}\n\nexport const storage_is_file = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var file = generator.valueToCode(this, 'FILE', generator.ORDER_ATOMIC);\n var mode = this.getFieldValue('MODE');\n var code = \"os.\" + mode + \"(\" + file + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const sdcard_use_spi_init = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n generator.definitions_['import_sdcard'] = 'import sdcard';\n var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC);\n var sv = generator.valueToCode(this, 'SPISUB', generator.ORDER_ATOMIC);\n var pv = generator.valueToCode(this, 'PINSUB', generator.ORDER_ATOMIC);\n var code = v + ' = sdcard.SDCard(' + sv + ',' + pv + ')\\n';\n return code;\n}\n\nexport const sdcard_mount = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n generator.definitions_['import_sdcard'] = 'import sdcard';\n var sd = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var dir = generator.valueToCode(this, 'DIR', generator.ORDER_ATOMIC);\n return \"os.mount(\" + sd + ',' + dir + \")\\n\";\n}","import * as Blockly from 'blockly/core';\n\nexport const text = function (_, generator) {\n // Text value.\n //var code = 'String('+generator.quote_(this.getFieldValue('TEXT'))+')';\n var code = generator.quote_(this.getFieldValue('TEXT'));\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_textarea = function (_, generator) {\n // Text value.\n //var code = 'String('+generator.quote_(this.getFieldValue('TEXT'))+')';\n var code = '\"\"\"' + (this.getFieldValue('VALUE')) + '\"\"\"';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_char = function (_, generator) {\n var code = '\\'' + this.getFieldValue('TEXT') + '\\'';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_join = function (_, generator) {\n // Text value.\n var a = generator.valueToCode(this, 'A', generator.ORDER_ATOMIC);\n var b = generator.valueToCode(this, 'B', generator.ORDER_ATOMIC);\n return [a + ' + ' + b, generator.ORDER_ADDITIVE];\n}\n\nexport const ascii_to_char = function (_, generator) {\n var asciivalue = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['chr(' + asciivalue + ')', generator.ORDER_ATOMIC];\n}\n\nexport const char_to_ascii = function (_, generator) {\n var charvalue = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || 'a';\n return ['ord(' + charvalue + ')', generator.ORDER_ATOMIC];\n}\n\nexport const number_to_text = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0';\n return ['str(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_length = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n return ['len(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_char_at2 = function (a, generator) {\n var c = a.getFieldValue(\"WHERE\") || \"FROM_START\",\n str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n switch (c) {\n case \"FROM_START\":\n a = generator.getAdjustedInt(a, \"AT\");\n return [str + \"[\" + a + \"]\", generator.ORDER_ATOMIC];\n case \"FROM_END\":\n a = generator.getAdjustedInt(a, \"AT\", 1, !0);\n return [str + \"[\" + a + \"]\", generator.ORDER_ATOMIC];\n case \"RANDOM\":\n generator.definitions_.import_random = \"import random\";\n return [\"random.choice(\" + str + \")\", generator.ORDER_FUNCTION_CALL];\n }\n throw \"Unhandled combination (lists_getIndex).\";\n}\n\nexport const text_char_at = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var at = generator.valueToCode(this, 'AT', generator.ORDER_ATOMIC) || 0;\n return [str + \"[\" + at + \"]\", generator.ORDER_ATOMIC];\n}\n\nexport const text_random_char = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n generator.definitions_.import_random = \"import random\";\n return [\"random.choice(\" + str + \")\", generator.ORDER_FUNCTION_CALL];\n}\n\nexport const text_equals_starts_ends = function (_, generator) {\n var str1 = (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '\"\"');\n var str2 = (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '\"\"');\n var dowhat = this.getFieldValue('DOWHAT');\n if (dowhat === '===')\n return [str1 + ' == ' + str2, generator.ORDER_ATOMIC];\n return [str1 + '.' + dowhat + '(' + str2 + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_compare_to = function (_, generator) {\n var str1 = (generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC) || '\"\"');\n var str2 = (generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC) || '\"\"');\n return ['cmp(' + str1 + ',' + str2 + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_substring2 = function (block, generator) {\n // Get sublist.\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var where1 = block.getFieldValue('WHERE1');\n var where2 = block.getFieldValue('WHERE2');\n switch (where1) {\n case 'FROM_START':\n var at1 = generator.getAdjustedInt(block, 'AT1');\n if (at1 == '0') {\n at1 = '';\n }\n break;\n case 'FROM_END':\n var at1 = generator.getAdjustedInt(block, 'AT1', 0, true);\n break;\n case 'FIRST':\n var at1 = '0';\n break;\n default:\n throw 'Unhandled option (lists_getSublist)';\n }\n switch (where2) {\n case 'FROM_START':\n var at2 = generator.getAdjustedInt(block, 'AT2');\n break;\n case 'FROM_END':\n var at2 = generator.getAdjustedInt(block, 'AT2', 0, true);\n // Ensure that if the result calculated is 0 that sub-sequence will\n // include all elements as expected.\n if (!Blockly.isNumber(String(at2))) {\n generator.definitions_['import_sys'] = 'import sys';\n at2 += ' or sys.maxsize';\n } else if (at2 == '0') {\n at2 = '';\n }\n break;\n case 'LAST':\n var at2 = '-1';\n break;\n default:\n throw 'Unhandled option (lists_getSublist)';\n }\n var code = str + '[' + at1 + ' : ' + at2 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_substring = function (_, generator) {\n // Get sublist.\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ATOMIC);\n var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ATOMIC);\n var code = str + '[' + at1 + ' : ' + at2 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_capital = function (_, generator) {\n var capital = this.getFieldValue('CAPITAL');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n return ['' + str + '.' + capital + '()', generator.ORDER_ATOMIC];\n}\n\nexport const text_center = function (_, generator) {\n var center = this.getFieldValue('CENTER');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var width = generator.valueToCode(this, 'WID', generator.ORDER_ATOMIC);\n var symbol = generator.valueToCode(this, 'Symbol', generator.ORDER_ATOMIC);\n return ['' + str + '.' + center + '(' + width + ',' + symbol + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_find = function (_, generator) {\n var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var str = generator.valueToCode(this, 'STR', generator.ORDER_ATOMIC);\n return ['' + sentence + '.find(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_join_seq = function (_, generator) {\n var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var varName = generator.valueToCode(this, 'LIST', generator.ORDER_ASSIGNMENT) || '0';\n return [sentence + '.join(' + varName + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_replace = function (_, generator) {\n var sentence = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var str1 = generator.valueToCode(this, 'STR1', generator.ORDER_ATOMIC);\n var str2 = generator.valueToCode(this, 'STR2', generator.ORDER_ATOMIC);\n return ['' + sentence + '.replace(' + str1 + ',' + str2 + ')', generator.ORDER_ATOMIC];\n}\n\nexport const text_split = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n var argument = generator.valueToCode(this, 'VAL', generator.ORDER_ATOMIC) || '\"\"';\n var code = str + \".split(\" + argument + \")\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_strip = function (_, generator) {\n var towhat = this.getFieldValue('TOWHAT');\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = str + \".\" + towhat + \"()\";\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_format = function (_, generator) {\n // Create a list with any number of elements of any type.\n var s = this.getFieldValue('VAR');\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = s + '.format(' + code.join(', ') + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_format_noreturn = function (_, generator) {\n // Create a list with any number of elements of any type.\n var s = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = s + '.format(' + code.join(', ') + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const text_substring3 = text_substring\nexport const text_compareTo = text_compare_to\nexport const text_char_at3 = text_char_at\n\nexport const text_encode = function (_, generator) {\n var code = this.getFieldValue('DIR');\n var varName = this.getFieldValue('CODE')\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '\"\"';\n return [str + '.' + code + '(\"' + varName + '\")', generator.ORDER_ATOMIC];\n}\n\nexport const text_eval = function (_, generator) {\n var codestr = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"eval\" + '(' + codestr + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const os_system = function (_, generator) {\n generator.definitions_['import_os'] = 'import os';\n var codestr = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC);\n var code = \"os.system\" + '(' + codestr + ')\\n';\n return code;\n}","import * as Blockly from 'blockly/core';\n\nexport const tuple_create_with = function (_, generator) {\n // Create a list with any number of elements of any type.\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var code = new Array(this.itemCount_);\n var default_value = '0';\n for (var n = 0; n < this.itemCount_; n++) {\n\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n // if (this.itemCount_!=1){\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\\n';}\n // else {\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\\n';}\n if (this.itemCount_ != 1) {\n var code = varName + '= ' + '(' + code.join(', ') + ')\\n';\n }\n else {\n var code = varName + '= ' + '(' + code.join(', ') + ',)\\n';\n }\n return code;\n}\n\nexport const tuple_create_with_text2 = function (_, generator) {\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n //var size=window.parseFloat(this.getFieldValue('SIZE'));\n var text = this.getFieldValue('TEXT');\n //generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + text + ')\\n';\n var code = varName + '= ' + '(' + text + ')\\n';\n return code;\n}\n\nexport const tuple_create_with_text_return = function (_, generator) {\n var text = this.getFieldValue('TEXT');\n var code = '(' + text + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_getIndex = function (_, generator) {\n // Indexing into a list is the same as indexing into a string.\n var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0';\n var argument0 = generator.valueToCode(this, 'AT',\n generator.ORDER_ADDITIVE) || '1';\n if (argument0.match(/^\\d+$/)) {\n // If the index is a naked number, decrement it right now.\n argument0 = parseInt(argument0, 10);\n }\n // else {\n // If the index is dynamic, decrement it in code.\n // argument0;\n // }\n var code = varName + '[' + argument0 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_length = function (_, generator) {\n var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'len(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_del = function (_, generator) {\n var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0';\n var code = 'del ' + varName + '\\n';\n return code;\n}\n\nexport const tuple_join = function (_, generator) {\n var varName1 = generator.valueToCode(this, 'TUP1', generator.ORDER_ASSIGNMENT) || '0';\n var varName2 = generator.valueToCode(this, 'TUP2', generator.ORDER_ASSIGNMENT) || '0';\n var code = varName1 + \" + \" + varName2;\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_max = function (_, generator) {\n var varname = generator.valueToCode(this, 'TUP', generator.ORDER_ASSIGNMENT) || '0';\n var maxmin = this.getFieldValue('DIR');\n var code = maxmin + \"(\" + varname + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_change_to = function (_, generator) {\n var op = this.getFieldValue('OP');\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var code = op + '(' + varName + ')\\n';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_find = function (_, generator) {\n var op = this.getFieldValue('OP');\n var varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '0';\n var argument = generator.valueToCode(this, 'data', generator.ORDER_ASSIGNMENT) || '0';\n if (op == 'INDEX')\n var code = varName + '.index(' + argument + ')';\n else if (op == 'COUNT')\n var code = varName + '.count(' + argument + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_trig = function (a, generator) {\n var b = a.getFieldValue(\"OP\"), c;\n generator.definitions_['import_math'] = \"import math\";\n a = generator.valueToCode(a, 'data', generator.ORDER_NONE)\n switch (b) {\n case \"LEN\":\n c = \"len(\" + a + \")\";\n break;\n case \"SUM\":\n c = \"sum(\" + a + \")\";\n break;\n case \"MIN\":\n c = \"min(\" + a + \")\";\n break;\n case \"MAX\":\n c = \"max(\" + a + \")\";\n break;\n case 'AVERAGE':\n // generator.definitions_['from_numbers_import_Number'] =\n // 'from numbers import Number';\n var functionName = generator.provideFunction_(\n 'math_mean',\n // This operation excludes null and values that aren't int or float:',\n // math_mean([null, null, \"aString\", 1, 9]) == 5.0.',\n ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',\n ' localList = [e for e in myList if type(e) == int or type(e) == float]',\n ' if not localList: return',\n ' return float(sum(localList)) / len(localList)']);\n c = functionName + '(' + a + ')';\n break;\n case 'MEDIAN':\n // generator.definitions_['from_numbers_import_Number'] =\n // 'from numbers import Numberd';\n var functionName = generator.provideFunction_(\n 'math_median',\n // This operation excludes null values:\n // math_median([null, null, 1, 3]) == 2.0.\n ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(myList):',\n ' localList = sorted([e for e in myList if type(e) == int or type(e) == float])',\n ' if not localList: return',\n ' if len(localList) % 2 == 0:',\n ' return (localList[len(localList) // 2 - 1] + ' +\n 'localList[len(localList) // 2]) / 2.0',\n ' else:',\n ' return localList[(len(localList) - 1) // 2]']);\n c = functionName + '(' + a + ')';\n break;\n case 'MODE':\n var functionName = generator.provideFunction_(\n 'math_modes',\n // As a list of numbers can contain more than one mode,\n // the returned result is provided as an array.\n // Mode of [3, 'x', 'x', 1, 1, 2, '3'] -> ['x', 1].\n ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(some_list):',\n ' modes = []',\n ' # Using a lists of [item, count] to keep count rather than dict',\n ' # to avoid \"unhashable\" errors when the counted item is ' +\n 'itself a list or dict.',\n ' counts = []',\n ' maxCount = 1',\n ' for item in some_list:',\n ' found = False',\n ' for count in counts:',\n ' if count[0] == item:',\n ' count[1] += 1',\n ' maxCount = max(maxCount, count[1])',\n ' found = True',\n ' if not found:',\n ' counts.append([item, 1])',\n ' for counted_item, item_count in counts:',\n ' if item_count == maxCount:',\n ' modes.append(counted_item)',\n ' return modes']);\n c = functionName + '(' + a + ')';\n break;\n case 'STD_DEV':\n generator.definitions_['import_math'] = 'import math';\n var functionName = generator.provideFunction_(\n 'math_standard_deviation',\n ['def ' + generator.FUNCTION_NAME_PLACEHOLDER_ + '(numbers):',\n ' n = len(numbers)',\n ' if n == 0: return',\n ' mean = float(sum(numbers)) / n',\n ' variance = sum((x - mean) ** 2 for x in numbers) / n',\n ' return math.sqrt(variance)']);\n c = functionName + '(' + a + ')';\n break;\n default:\n throw 'Unknown operator: ' + b;\n }\n if (c)\n return [c, generator.ORDER_FUNCTION_CALL];\n\n}\n\nexport const tuple_getSublist = function (block, generator) {\n // Get sublist.\n var list = generator.valueToCode(block, 'LIST',\n generator.ORDER_MEMBER) || '[]';\n var where1 = block.getFieldValue('WHERE1');\n var where2 = block.getFieldValue('WHERE2');\n switch (where1) {\n case 'FROM_START':\n var at1 = generator.getAdjustedInt(block, 'AT1');\n if (at1 == '0') {\n at1 = '';\n }\n break;\n case 'FROM_END':\n var at1 = generator.getAdjustedInt(block, 'AT1', 1, true);\n break;\n case 'FIRST':\n var at1 = '0';\n break;\n default:\n throw 'Unhandled option (lists_getSublist)';\n }\n switch (where2) {\n case 'FROM_START':\n var at2 = generator.getAdjustedInt(block, 'AT2', 1);\n at2 = at2 - 1;\n break;\n case 'FROM_END':\n var at2 = generator.getAdjustedInt(block, 'AT2', 1, true);\n // Ensure that if the result calculated is 0 that sub-sequence will\n // include all elements as expected.\n if (!Blockly.isNumber(String(at2))) {\n generator.definitions_['import_sys'] = 'import sys';\n at2 += ' or sys.maxsize';\n } else if (at2 == '0') {\n at2 = '';\n }\n break;\n case 'LAST':\n var at2 = '-1';\n break;\n default:\n throw 'Unhandled option (lists_getSublist)';\n }\n var code = list + '[' + at1 + ' : ' + at2 + ']';\n return [code, generator.ORDER_MEMBER];\n}\n\nexport const tuple_create_with_noreturn = function (_, generator) {\n // Create a list with any number of elements of any type.\n var code = new Array(this.itemCount_);\n var default_value = '0';\n\n\n for (var n = 0; n < this.itemCount_; n++) {\n\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n // if (this.itemCount_!=1){\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ')\\n';}\n // else {\n // generator.definitions_['var_declare'+varName] = varName+'= '+ '(' + code.join(', ') + ',)\\n';}\n if (this.itemCount_ != 1) {\n var code = '(' + code.join(', ') + ')';\n }\n else {\n var code = '(' + code.join(', ') + ',)';\n }\n\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_get_sublist = function (_, generator) {\n // Get sublist.\n var list = generator.valueToCode(this, 'LIST', generator.ORDER_ADDITIVE) || '0';\n var at1 = generator.valueToCode(this, 'AT1', generator.ORDER_ADDITIVE) || '0';\n var at2 = generator.valueToCode(this, 'AT2', generator.ORDER_ADDITIVE) || '0';\n var code = list + '[' + at1 + ' : ' + at2 + ']';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_get_random_item = function (_, generator) {\n generator.definitions_['import_random'] = 'import random';\n var varName = generator.valueToCode(this, 'TUP', generator.ORDER_ADDITIVE) || 'mytup';\n var code = 'random.choice(' + varName + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const tuple_totuple = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || '0'\n return ['tuple(' + str + ')', generator.ORDER_ATOMIC];\n}\n\nexport const tuple_input = function (_, generator) {\n var text = generator.getFieldValue('CONTENT');\n var code = '(' + text + ')';\n return [code, generator.ORDER_ATOMIC];\n}","/**\n * @license\n * Visual Blocks Language\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Generating Python for utility blocks.\n * @author acbart@vt.edu (Austin Cory Bart)\n */\n\nexport const raw_block = function (block) {\n var code = block.getFieldValue('TEXT') + \"\\n\";\n return code;\n}\n\nexport const raw_expression = function (block, generator) {\n var code = block.getFieldValue('TEXT');\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const raw_empty = function (block, generator) {\n var code = generator.valueToCode(block, 'VALUE',\n generator.ORDER_ATOMIC) || '';\n return code + \"\\n\";\n}\n\nexport const raw_table = function () {\n //var code = block.getFieldValue('TEXT')+\"\\n\";\n return '';//code;\n}\n\nexport const type_check = function (block, generator) {\n var value = generator.valueToCode(block, 'VALUE',\n generator.ORDER_MEMBER) || '___';\n var code = 'type(' + value + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const function_call = function (block, generator) {\n var name = block.getFieldValue('NAME');\n var hasReturn = block.hasReturn_;\n var args = new Array(block.itemCount_);\n for (var n = 0; n < block.itemCount_; n++) {\n args[n] = generator.valueToCode(block, 'ARGUMENT' + n,\n generator.ORDER_NONE) || '___';\n }\n var code = name + '(' + args.join(', ') + ')';\n if (hasReturn) {\n return [code, generator.ORDER_ATOMIC];\n }\n return code + '\\n';\n}\n\nexport const attribute_access = function (block, generator) {\n var value_module = generator.valueToCode(block, 'MODULE', generator.ORDER_ATOMIC);\n var value_name = generator.valueToCode(block, 'NAME', generator.ORDER_ATOMIC);\n //去除掉两端的括号,如(val()) --> val()\n value_name = value_name.substring(1, value_name.length - 1);\n // TODO: Assemble JavaScript into code variable.\n var code = value_module + '.' + value_name;\n // TODO: Change ORDER_NONE to the correct strength.\n return [code, generator.ORDER_NONE];\n}","import * as Blockly from 'blockly/core';\n\nexport const variables_get = function (_, generator) {\n // Variable getter.\n var code = generator.variableDB_.getName(this.getFieldValue('VAR'),\n Blockly.Variables.NAME_TYPE);\n return [code, generator.ORDER_ATOMIC];\n}\n\n// export const variables_declare = function() {\n// var dropdown_type = this.getFieldValue('TYPE');\n// var argument0;\n// //TODO: settype to variable\n// argument0 = generator.valueToCode(this, 'VALUE',generator.ORDER_ASSIGNMENT) || 'None';\n// var varName = generator.variableDB_.getName(this.getFieldValue('VAR'),\n// Blockly.Variables.NAME_TYPE);\n\n// if (dropdown_type === 'number')\n// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = 0;';\n// else if(dropdown_type === 'string')\n// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = \\'\\';';\n// else if(dropdown_type === 'boolean')\n// generator.definitions_['var_declare' + varName] = 'let ' + ' ' + varName + ' = true;';\n// else if(dropdown_type.startsWith('Array'))\n// generator.definitions_['var_declare' + varName] = 'let ' + varName + ':' + dropdown_type + ' = [];';\n\n// if(generator.setups_['var_declare' + varName] === undefined) {\n// generator.setups_['var_declare' + varName] = varName + ' = ' + argument0 + '\\n';\n// }else {\n// }\n// return '';\n// }\n\nexport const variables_set = function (_, generator) {\n // Variable setter.\n if (this.getFieldValue('VAR') == \"\") {\n return \" = None\\n\";\n }\n var argument0 = generator.valueToCode(this, 'VALUE',\n generator.ORDER_ASSIGNMENT) || 'None';\n var varName = generator.variableDB_.getName(this.getFieldValue('VAR'), Blockly.Variables.NAME_TYPE);\n return varName + ' = ' + argument0 + '\\n';\n}\n\nexport const variables_change = function (_, generator) {\n // Variable setter.\n var operator = this.getFieldValue('OP');\n var varName = generator.valueToCode(this, 'MYVALUE', generator.ORDER_ATOMIC) || 'None';\n if (operator == 'bytes') { var code = operator + '(' + varName + ',\"UTF-8\")'; }\n else { var code = operator + '(' + varName + ')'; }\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const variables_global = function (_, generator) {\n var str = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC) || 'None';\n var code = \"global \" + str + '\\n';\n return code;\n}\n\n// ok\nexport const controls_type = function (_, generator) {\n var data = generator.valueToCode(this, 'DATA', generator.ORDER_ATOMIC) || 'None'\n var code = 'type(' + data + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const controls_typeLists = function (_, generator) {\n //generator.definitions_['import_microbit_*'] = 'from microbit import *';\n var type = this.getFieldValue('type');\n // generator.definitions_['func_type' + type] = code;\n return [type, generator.ORDER_ATOMIC];\n}\n\nexport const lists_zip = function (_, generator) {\n var code = new Array(this.itemCount_);\n var default_value = '[]';\n for (var n = 0; n < this.itemCount_; n++) {\n code[n] = generator.valueToCode(this, 'ADD' + n,\n generator.ORDER_NONE) || default_value;\n }\n var code = 'zip(' + code.join(', ') + ')';\n return [code, generator.ORDER_ATOMIC];\n}\n\nexport const unpack_iterable_object = function (_, generator) {\n const varName = generator.valueToCode(this, 'VAR', generator.ORDER_ASSIGNMENT) || '[]';\n const type = this.getFieldValue('TYPE');\n const code = `${type}(${varName})`;\n return [code, generator.ORDER_ATOMIC];\n}","/**\n * @license\n * Visual Blocks Editor\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Utility functions for handling variables and procedure names.\n * @author fraser@google.com (Neil Fraser)\n */\nimport Variables from './variables';\n\n/**\n * Class for a database of entity names (variables, functions, etc).\n * @param {string} reservedWords A comma-separated string of words that are\n * illegal for use as names in a language (e.g. 'new,if,this,...').\n * @param {string=} opt_variablePrefix Some languages need a '$' or a namespace\n * before all variable names.\n * @constructor\n */\nclass Names {\n constructor(reservedWords, opt_variablePrefix) {\n this.variablePrefix_ = opt_variablePrefix || '';\n this.reservedDict_ = Object.create(null);\n if (reservedWords) {\n var splitWords = reservedWords.split(',');\n for (var i = 0; i < splitWords.length; i++) {\n this.reservedDict_[splitWords[i]] = true;\n }\n }\n this.reset();\n }\n /**\n * Do the given two entity names refer to the same entity?\n * Blockly names are case-insensitive.\n * @param {string} name1 First name.\n * @param {string} name2 Second name.\n * @return {boolean} True if names are the same.\n */\n static equals(name1, name2) {\n return name1.toLowerCase() == name2.toLowerCase();\n }\n /**\n * When JavaScript (or most other languages) is generated, variable 'foo' and\n * procedure 'foo' would collide. However, Blockly has no such problems since\n * variable get 'foo' and procedure call 'foo' are unambiguous.\n * Therefore, Blockly keeps a separate type name to disambiguate.\n * getName('foo', 'variable') -> 'foo'\n * getName('foo', 'procedure') -> 'foo2'\n */\n /**\n * Empty the database and start from scratch. The reserved words are kept.\n */\n reset() {\n this.db_ = Object.create(null);\n this.dbReverse_ = Object.create(null);\n this.variableMap_ = null;\n }\n /**\n * Set the variable map that maps from variable name to variable object.\n * @param {!Blockly.VariableMap} map The map to track.\n * @package\n */\n setVariableMap(map) {\n this.variableMap_ = map;\n }\n /**\n * Get the name for a user-defined variable, based on its ID.\n * This should only be used for variables of type Variables.NAME_TYPE.\n * @param {string} id The ID to look up in the variable map.\n * @return {?string} The name of the referenced variable, or null if there was\n * no variable map or the variable was not found in the map.\n * @private\n */\n getNameForUserVariable_(id) {\n if (!this.variableMap_) {\n /*\n console.log('Deprecated call to Names.prototype.getName without ' +\n 'defining a variable map. To fix, add the folowing code in your ' +\n 'generator\\'s init() function:\\n' +\n 'Blockly.YourGeneratorName.variableDB_.setVariableMap(' +\n 'workspace.getVariableMap());');\n */\n return null;\n }\n var variable = this.variableMap_.getVariableById(id);\n if (variable) {\n return variable.name;\n }\n return null;\n }\n /**\n * Convert a Blockly entity name to a legal exportable entity name.\n * @param {string} name The Blockly entity name (no constraints).\n * @param {string} type The type of entity in Blockly\n * ('VARIABLE', 'PROCEDURE', 'BUILTIN', etc...).\n * @return {string} An entity name that is legal in the exported language.\n */\n getName(name, type) {\n if (type == Variables.NAME_TYPE) {\n var varName = this.getNameForUserVariable_(name);\n if (varName) {\n name = varName;\n }\n }\n var normalized = name.toLowerCase() + '_' + type;\n\n var isVarType = type == Variables.NAME_TYPE ||\n type == Names.DEVELOPER_VARIABLE_TYPE;\n\n var prefix = isVarType ? this.variablePrefix_ : '';\n if (normalized in this.db_) {\n return prefix + this.db_[normalized];\n }\n var safeName = this.getDistinctName(name, type);\n this.db_[normalized] = safeName.substr(prefix.length);\n return safeName;\n }\n /**\n * Convert a Blockly entity name to a legal exportable entity name.\n * Ensure that this is a new name not overlapping any previously defined name.\n * Also check against list of reserved words for the current language and\n * ensure name doesn't collide.\n * @param {string} name The Blockly entity name (no constraints).\n * @param {string} type The type of entity in Blockly\n * ('VARIABLE', 'PROCEDURE', 'BUILTIN', etc...).\n * @return {string} An entity name that is legal in the exported language.\n */\n getDistinctName(name, type) {\n var safeName = this.safeName_(name);\n var i = '';\n while (this.dbReverse_[safeName + i] ||\n (safeName + i) in this.reservedDict_) {\n // Collision with existing name. Create a unique name.\n i = i ? i + 1 : 2;\n }\n safeName += i;\n this.dbReverse_[safeName] = true;\n var isVarType = type == Variables.NAME_TYPE ||\n type == Names.DEVELOPER_VARIABLE_TYPE;\n var prefix = isVarType ? this.variablePrefix_ : '';\n return prefix + safeName;\n }\n /**\n * Given a proposed entity name, generate a name that conforms to the\n * [_A-Za-z][_A-Za-z0-9]* format that most languages consider legal for\n * variables.\n * @param {string} name Potentially illegal entity name.\n * @return {string} Safe entity name.\n * @private\n */\n safeName_(name) {\n if (!name) {\n name = 'unnamed';\n } else {\n // Unfortunately names in non-latin characters will look like\n // _E9_9F_B3_E4_B9_90 which is pretty meaningless.\n // https://github.com/google/blockly/issues/1654\n name = encodeURI(name.replace(/ /g, '_')).replace(/[^,\\w]/g, '_');\n // Most languages don't allow names with leading numbers.\n if ('0123456789'.indexOf(name[0]) != -1) {\n name = 'my_' + name;\n }\n }\n return name;\n }\n}\n\n/**\n * Constant to separate developer variable names from user-defined variable\n * names when running generators.\n * A developer variable will be declared as a global in the generated code, but\n * will never be shown to the user in the workspace or stored in the variable\n * map.\n */\nNames.DEVELOPER_VARIABLE_TYPE = 'DEVELOPER_VARIABLE';\n\nexport default Names;","/**\n * @license\n * Copyright 2012 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Utility functions for handling procedures.\n * @author fraser@google.com (Neil Fraser)\n */\nimport * as Blockly from 'blockly/core';\n\nconst Procedures = {};\n\n/**\n * Constant to separate procedure names from variables and generated functions\n * when running generators.\n * @deprecated Use Blockly.PROCEDURE_CATEGORY_NAME\n */\nProcedures.NAME_TYPE = Blockly.PROCEDURE_CATEGORY_NAME;\n\n/**\n * Find all user-created procedure definitions in a workspace.\n * @param {!Blockly.Workspace} root Root workspace.\n * @return {!Array.>} Pair of arrays, the\n * first contains procedures without return variables, the second with.\n * Each procedure is defined by a three-element list of name, parameter\n * list, and return value boolean.\n */\nProcedures.allProcedures = function (root) {\n var blocks = root.getAllBlocks(false);\n var proceduresReturn = [];\n var proceduresNoReturn = [];\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i].getProcedureDef) {\n var tuple = blocks[i].getProcedureDef();\n if (tuple) {\n if (tuple[2]) {\n proceduresReturn.push(tuple);\n } else {\n proceduresNoReturn.push(tuple);\n }\n }\n }\n }\n proceduresNoReturn.sort(Procedures.procTupleComparator_);\n proceduresReturn.sort(Procedures.procTupleComparator_);\n return [proceduresNoReturn, proceduresReturn];\n};\n\n/**\n * Comparison function for case-insensitive sorting of the first element of\n * a tuple.\n * @param {!Array} ta First tuple.\n * @param {!Array} tb Second tuple.\n * @return {number} -1, 0, or 1 to signify greater than, equality, or less than.\n * @private\n */\nProcedures.procTupleComparator_ = function (ta, tb) {\n return ta[0].toLowerCase().localeCompare(tb[0].toLowerCase());\n};\n\n/**\n * Ensure two identically-named procedures don't exist.\n * Take the proposed procedure name, and return a legal name i.e. one that\n * is not empty and doesn't collide with other procedures.\n * @param {string} name Proposed procedure name.\n * @param {!Blockly.Block} block Block to disambiguate.\n * @return {string} Non-colliding name.\n */\nProcedures.findLegalName = function (name, block) {\n if (block.isInFlyout) {\n // Flyouts can have multiple procedures called 'do something'.\n return name;\n }\n name = name || Blockly.Msg['UNNAMED_KEY'] || 'unnamed';\n while (!Procedures.isLegalName_(name, block.workspace, block)) {\n // Collision with another procedure.\n var r = name.match(/^(.*?)(\\d+)$/);\n if (!r) {\n name += '2';\n } else {\n name = r[1] + (parseInt(r[2], 10) + 1);\n }\n }\n return name;\n};\n\n/**\n * Does this procedure have a legal name? Illegal names include names of\n * procedures already defined.\n * @param {string} name The questionable name.\n * @param {!Blockly.Workspace} workspace The workspace to scan for collisions.\n * @param {Blockly.Block=} opt_exclude Optional block to exclude from\n * comparisons (one doesn't want to collide with oneself).\n * @return {boolean} True if the name is legal.\n * @private\n */\nProcedures.isLegalName_ = function (name, workspace, opt_exclude) {\n return !Procedures.isNameUsed(name, workspace, opt_exclude);\n};\n\n/**\n * Return if the given name is already a procedure name.\n * @param {string} name The questionable name.\n * @param {!Blockly.Workspace} workspace The workspace to scan for collisions.\n * @param {Blockly.Block=} opt_exclude Optional block to exclude from\n * comparisons (one doesn't want to collide with oneself).\n * @return {boolean} True if the name is used, otherwise return false.\n */\nProcedures.isNameUsed = function (name, workspace, opt_exclude) {\n var blocks = workspace.getAllBlocks(false);\n // Iterate through every block and check the name.\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i] == opt_exclude) {\n continue;\n }\n if (blocks[i].getProcedureDef) {\n var procName = blocks[i].getProcedureDef();\n if (Blockly.Names.equals(procName[0], name)) {\n return true;\n }\n }\n }\n return false;\n};\n\n/**\n * Rename a procedure. Called by the editable field.\n * @param {string} name The proposed new name.\n * @return {string} The accepted name.\n * @this {Blockly.Field}\n */\nProcedures.rename = function (name) {\n // Strip leading and trailing whitespace. Beyond this, all names are legal.\n name = name.trim();\n\n var legalName = Procedures.findLegalName(name, this.getSourceBlock());\n var oldName = this.getValue();\n if (oldName != name && oldName != legalName) {\n // Rename any callers.\n var blocks = this.getSourceBlock().workspace.getAllBlocks(false);\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i].renameProcedure) {\n blocks[i].renameProcedure(oldName, legalName);\n }\n }\n }\n return legalName;\n};\n\n/**\n * Construct the blocks required by the flyout for the procedure category.\n * @param {!Blockly.Workspace} workspace The workspace containing procedures.\n * @return {!Array.} Array of XML block elements.\n */\nProcedures.flyoutCategory = function (workspace) {\n var xmlList = [];\n if (Blockly.Blocks['procedures_defnoreturn']) {\n // \n // do something\n // \n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'procedures_defnoreturn');\n block.setAttribute('gap', 16);\n var nameField = Blockly.utils.xml.createElement('field');\n nameField.setAttribute('name', 'NAME');\n nameField.appendChild(Blockly.utils.xml.createTextNode(\n Blockly.Msg['PROCEDURES_DEFNORETURN_PROCEDURE']));\n block.appendChild(nameField);\n xmlList.push(block);\n }\n if (Blockly.Blocks['procedures_defreturn']) {\n // \n // do something\n // \n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'procedures_defreturn');\n block.setAttribute('gap', 16);\n var nameField = Blockly.utils.xml.createElement('field');\n nameField.setAttribute('name', 'NAME');\n nameField.appendChild(Blockly.utils.xml.createTextNode(\n Blockly.Msg['PROCEDURES_DEFRETURN_PROCEDURE']));\n block.appendChild(nameField);\n xmlList.push(block);\n }\n if (Blockly.Blocks['procedures_return']) {\n // \n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'procedures_return');\n block.setAttribute('gap', 16);\n xmlList.push(block);\n }\n if (Blockly.Blocks['procedures_ifreturn']) {\n // \n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'procedures_ifreturn');\n block.setAttribute('gap', 16);\n xmlList.push(block);\n }\n if (xmlList.length) {\n // Add slightly larger gap between system blocks and user calls.\n xmlList[xmlList.length - 1].setAttribute('gap', 24);\n }\n\n function populateProcedures(procedureList, templateName) {\n for (var i = 0; i < procedureList.length; i++) {\n var name = procedureList[i][0];\n var args = procedureList[i][1];\n // \n // \n // \n // \n // \n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', templateName);\n block.setAttribute('gap', 16);\n var mutation = Blockly.utils.xml.createElement('mutation');\n mutation.setAttribute('name', name);\n block.appendChild(mutation);\n for (var j = 0; j < args.length; j++) {\n var arg = Blockly.utils.xml.createElement('arg');\n arg.setAttribute('name', args[j]);\n mutation.appendChild(arg);\n }\n xmlList.push(block);\n }\n }\n\n var tuple = Procedures.allProcedures(workspace);\n populateProcedures(tuple[0], 'procedures_callnoreturn');\n populateProcedures(tuple[1], 'procedures_callreturn');\n return xmlList;\n};\n\n/**\n * Find all the callers of a named procedure.\n * @param {string} name Name of procedure.\n * @param {!Blockly.Workspace} workspace The workspace to find callers in.\n * @return {!Array.} Array of caller blocks.\n */\nProcedures.getCallers = function (name, workspace) {\n var callers = [];\n var blocks = workspace.getAllBlocks(false);\n // Iterate through every block and check the name.\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i].getProcedureCall) {\n var procName = blocks[i].getProcedureCall();\n // Procedure name may be null if the block is only half-built.\n if (procName && Blockly.Names.equals(procName, name)) {\n callers.push(blocks[i]);\n }\n }\n }\n return callers;\n};\n\n/**\n * When a procedure definition changes its parameters, find and edit all its\n * callers.\n * @param {!Blockly.Block} defBlock Procedure definition block.\n */\nProcedures.mutateCallers = function (defBlock) {\n const oldRecordUndo = Blockly.Events.getRecordUndo();\n const procedureBlock = defBlock;\n const name = procedureBlock.getProcedureDef()[0];\n const xmlElement = defBlock.mutationToDom(true);\n const callers = Blockly.Procedures.getCallers(name, defBlock.workspace);\n for (let i = 0, caller; (caller = callers[i]); i++) {\n const oldMutationDom = caller.mutationToDom();\n const oldMutation = oldMutationDom && Blockly.utils.xml.domToText(oldMutationDom);\n if (caller.domToMutation) {\n caller.domToMutation(xmlElement);\n }\n const newMutationDom = caller.mutationToDom();\n const newMutation = newMutationDom && Blockly.utils.xml.domToText(newMutationDom);\n if (oldMutation !== newMutation) {\n // Fire a mutation on every caller block. But don't record this as an\n // undo action since it is deterministically tied to the procedure's\n // definition mutation.\n Blockly.Events.setRecordUndo(false);\n Blockly.Events.fire(\n new (Blockly.Events.get(Blockly.Events.BLOCK_CHANGE))(\n caller,\n 'mutation',\n null,\n oldMutation,\n newMutation,\n ),\n );\n Blockly.Events.setRecordUndo(oldRecordUndo);\n }\n }\n};\n\n/**\n * Find the definition block for the named procedure.\n * @param {string} name Name of procedure.\n * @param {!Blockly.Workspace} workspace The workspace to search.\n * @return {Blockly.Block} The procedure definition block, or null not found.\n */\nProcedures.getDefinition = function (name, workspace) {\n // Assume that a procedure definition is a top block.\n var blocks = workspace.getTopBlocks(false);\n for (var i = 0; i < blocks.length; i++) {\n if (blocks[i].getProcedureDef) {\n var tuple = blocks[i].getProcedureDef();\n if (tuple && Blockly.Names.equals(tuple[0], name)) {\n return blocks[i];\n }\n }\n }\n return null;\n};\n\nexport default Procedures;","/**\n * @license\n * Visual Blocks Editor\n *\n * Copyright 2012 Google Inc.\n * https://developers.google.com/blockly/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * @fileoverview Utility functions for handling variables.\n * @author fraser@google.com (Neil Fraser)\n */\n\nimport * as Blockly from 'blockly/core';\n\nconst Variables = {};\n\n/**\n * Category to separate variable names from procedures and generated functions.\n */\nVariables.NAME_TYPE = 'VARIABLE';\n\n/**\n * Find all user-created variables.\n * @param {!Blockly.Block|!Blockly.Workspace} root Root block or workspace.\n * @return {!Array.} Array of variable names.\n */\nVariables.allVariables = function (root) {\n var blocks;\n if (root.getDescendants) {\n // Root is Block.\n blocks = root.getDescendants();\n } else if (root.getAllBlocks) {\n // Root is Workspace.\n blocks = root.getAllBlocks();\n } else {\n throw 'Not Block or Workspace: ' + root;\n }\n var variableHash = Object.create(null);\n // Iterate through every block and add each variable to the hash.\n for (var x = 0; x < blocks.length; x++) {\n var blockVariables = blocks[x].getVars();\n for (var y = 0; y < blockVariables.length; y++) {\n var varName = blockVariables[y];\n // Variable name may be null if the block is only half-built.\n if (varName) {\n variableHash[varName.toLowerCase()] = varName;\n }\n }\n }\n // Flatten the hash into a list.\n var variableList = [];\n for (var name in variableHash) {\n variableList.push(variableHash[name]);\n }\n return variableList;\n};\n\n/**\n * Find all instances of the specified variable and rename them.\n * @param {string} oldName Variable to rename.\n * @param {string} newName New variable name.\n * @param {!Blockly.Workspace} workspace Workspace rename variables in.\n */\nVariables.renameVariable = function (oldName, newName, workspace) {\n Blockly.Events.setGroup(true);\n var blocks = workspace.getAllBlocks();\n // Iterate through every block.\n for (var i = 0; i < blocks.length; i++) {\n blocks[i].renameVar(oldName, newName);\n }\n Blockly.Events.setGroup(false);\n};\n\n/**\n * Construct the blocks required by the flyout for the variable category.\n * @param {!Blockly.Workspace} workspace The workspace contianing variables.\n * @return {!Array.} Array of XML block elements.\n */\nVariables.flyoutCategory = function (workspace) {\n var variableList = Variables.allVariables(workspace);\n //variableList.sort(goog.string.caseInsensitiveCompare);\n // In addition to the user's variables, we also want to display the default\n // variable name at the top. We also don't want this duplicated if the\n // user has created a variable of the same name.\n // alert(variableList)\n // goog.array.remove(variableList, Blockly.Msg.VARIABLES_DEFAULT_NAME);\n // variableList.unshift(Blockly.Msg.VARIABLES_DEFAULT_NAME);\n\n var xmlList = [];\n\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_global');\n xmlList.push(block);\n\n if (Blockly.Blocks['variables_set']) {\n //增加variables_declare模块\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_set');\n xmlList.push(block);\n }//change tyep\n /*\n if (Blockly.Blocks['variables_change']) {\n //增加variables_declare模块\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_change');\n xmlList.push(block);\n }*/\n if (Blockly.Blocks['variables_change']) {\n //增加variables_declare模块\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_change');\n xmlList.push(block);\n }\n if (Blockly.Blocks['controls_type']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'controls_type');\n xmlList.push(block);\n }\n if (Blockly.Blocks['controls_typeLists']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'controls_typeLists');\n xmlList.push(block);\n }\n if (Blockly.Blocks['lists_zip']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'lists_zip');\n block.setAttribute('inline', 'false');\n var mutation = Blockly.utils.xml.createElement('mutation');\n mutation.setAttribute('items', 2);\n block.appendChild(mutation);\n for (let i = 0; i < 2; i++) {\n let add = Blockly.utils.xml.createElement('value');\n add.setAttribute('name', `ADD${i}`);\n // let childBlock = Blockly.utils.xml.createElement('block');\n // childBlock.setAttribute('type', 'list_many_input');\n // let field = Blockly.utils.xml.createElement('field');\n // let value = Blockly.utils.xml.createTextNode('0,1,2,3');\n // field.setAttribute('name', 'CONTENT');\n // field.appendChild(value);\n // childBlock.appendChild(field);\n // add.appendChild(childBlock);\n block.appendChild(add);\n }\n xmlList.push(block);\n }\n if (Blockly.Blocks['unpack_iterable_object']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'unpack_iterable_object');\n xmlList.push(block);\n }\n for (var i = 0; i < variableList.length; i++) {\n // alert(variableList)\n // if(i==0&& !(Blockly.Python.setups_['variables_set'+''])){\n // \tcontinue;\n // }\n if (Blockly.Blocks['variables_set']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_set');\n if (Blockly.Blocks['variables_get']) {\n block.setAttribute('gap', 8);\n }\n var field = Blockly.utils.xml.createElement('field', null, variableList[i]);\n field.setAttribute('name', 'VAR');\n var name = Blockly.utils.xml.createTextNode(variableList[i]);\n field.appendChild(name);\n block.appendChild(field);\n xmlList.push(block);\n }\n if (Blockly.Blocks['variables_get']) {\n var block = Blockly.utils.xml.createElement('block');\n block.setAttribute('type', 'variables_get');\n if (Blockly.Blocks['variables_set']) {\n block.setAttribute('gap', 24);\n }\n var field = Blockly.utils.xml.createElement('field', null, variableList[i]);\n field.setAttribute('name', 'VAR');\n var name = Blockly.utils.xml.createTextNode(variableList[i]);\n field.appendChild(name);\n block.appendChild(field);\n xmlList.push(block);\n }\n }\n return xmlList;\n};\n\n/**\n* Return a new variable name that is not yet being used. This will try to\n* generate single letter variable names in the range 'i' to 'z' to start with.\n* If no unique name is located it will try 'i' to 'z', 'a' to 'h',\n* then 'i2' to 'z2' etc. Skip 'l'.\n * @param {!Blockly.Workspace} workspace The workspace to be unique in.\n* @return {string} New variable name.\n*/\nVariables.generateUniqueName = function (workspace) {\n var variableList = Variables.allVariables(workspace);\n var newName = '';\n if (variableList.length) {\n var nameSuffix = 1;\n var letters = 'ijkmnopqrstuvwxyzabcdefgh'; // No 'l'.\n var letterIndex = 0;\n var potName = letters.charAt(letterIndex);\n while (!newName) {\n var inUse = false;\n for (var i = 0; i < variableList.length; i++) {\n if (variableList[i].toLowerCase() == potName) {\n // This potential name is already used.\n inUse = true;\n break;\n }\n }\n if (inUse) {\n // Try the next potential name.\n letterIndex++;\n if (letterIndex == letters.length) {\n // Reached the end of the character sequence so back to 'i'.\n // a new suffix.\n letterIndex = 0;\n nameSuffix++;\n }\n potName = letters.charAt(letterIndex);\n if (nameSuffix > 1) {\n potName += nameSuffix;\n }\n } else {\n // We can use the current potential name.\n newName = potName;\n }\n }\n } else {\n newName = 'i';\n }\n return newName;\n};\n\nexport default Variables;","/*\nOverrides for generic Python code generation.\n*/\nimport * as Blockly from 'blockly/core';\nimport Names from './others/names';\n\n/**\n * Python code generator.\n * @type {!Blockly.Generator}\n */\nexport const Python = new Blockly.Generator('Python');\nPython.INDENT = \" \";\n\n/**\n * List of illegal variable names.\n * This is not intended to be a security feature. Blockly is 100% client-side,\n * so bypassing this list is trivial. This is intended to prevent users from\n * accidentally clobbering a built-in object or function.\n * @private\n */\nPython.addReservedWords(\n // import keyword\n // print(','.join(sorted(keyword.kwlist)))\n // https://docs.python.org/3/reference/lexical_analysis.html#keywords\n // https://docs.python.org/2/reference/lexical_analysis.html#keywords\n 'False,None,True,and,as,assert,break,class,continue,def,del,elif,else,' +\n 'except,exec,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,' +\n 'or,pass,print,raise,return,try,while,with,yield,' +\n // https://docs.python.org/3/library/constants.html\n // https://docs.python.org/2/library/constants.html\n 'NotImplemented,Ellipsis,__debug__,quit,exit,copyright,license,credits,' +\n // >>> print(','.join(sorted(dir(__builtins__))))\n // https://docs.python.org/3/library/functions.html\n // https://docs.python.org/2/library/functions.html\n 'ArithmeticError,AssertionError,AttributeError,BaseException,' +\n 'BlockingIOError,BrokenPipeError,BufferError,BytesWarning,' +\n 'ChildProcessError,ConnectionAbortedError,ConnectionError,' +\n 'ConnectionRefusedError,ConnectionResetError,DeprecationWarning,EOFError,' +\n 'Ellipsis,EnvironmentError,Exception,FileExistsError,FileNotFoundError,' +\n 'FloatingPointError,FutureWarning,GeneratorExit,IOError,ImportError,' +\n 'ImportWarning,IndentationError,IndexError,InterruptedError,' +\n 'IsADirectoryError,KeyError,KeyboardInterrupt,LookupError,MemoryError,' +\n 'ModuleNotFoundError,NameError,NotADirectoryError,NotImplemented,' +\n 'NotImplementedError,OSError,OverflowError,PendingDeprecationWarning,' +\n 'PermissionError,ProcessLookupError,RecursionError,ReferenceError,' +\n 'ResourceWarning,RuntimeError,RuntimeWarning,StandardError,' +\n 'StopAsyncIteration,StopIteration,SyntaxError,SyntaxWarning,SystemError,' +\n 'SystemExit,TabError,TimeoutError,TypeError,UnboundLocalError,' +\n 'UnicodeDecodeError,UnicodeEncodeError,UnicodeError,' +\n 'UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,' +\n 'ZeroDivisionError,_,__build_class__,__debug__,__doc__,__import__,' +\n '__loader__,__name__,__package__,__spec__,abs,all,any,apply,ascii,' +\n 'basestring,bin,bool,buffer,bytearray,bytes,callable,chr,classmethod,cmp,' +\n 'coerce,compile,complex,copyright,credits,delattr,dict,dir,divmod,' +\n 'enumerate,eval,exec,execfile,exit,file,filter,float,format,frozenset,' +\n 'getattr,globals,hasattr,hash,help,hex,id,input,int,intern,isinstance,' +\n 'issubclass,iter,len,license,list,locals,long,map,max,memoryview,min,' +\n 'next,object,oct,open,ord,pow,print,property,quit,range,raw_input,reduce,' +\n 'reload,repr,reversed,round,set,setattr,slice,sorted,staticmethod,str,' +\n 'sum,super,tuple,type,unichr,unicode,vars,xrange,zip'\n);\n\n/**\n * Order of operation ENUMs.\n * http://docs.python.org/reference/expressions.html#summary\n */\nPython.ORDER_ATOMIC = 0; // 0 \"\" ...\nPython.ORDER_COLLECTION = 1; // tuples, lists, dictionaries\nPython.ORDER_STRING_CONVERSION = 1; // `expression...`\nPython.ORDER_UNARY_POSTFIX = 1; // expr++ expr-- () [] .\nPython.ORDER_UNARY_PREFIX = 2; // -expr !expr ~expr ++expr --expr\nPython.ORDER_MEMBER = 2.1; // . []\nPython.ORDER_FUNCTION_CALL = 2.2; // ()\nPython.ORDER_EXPONENTIATION = 3; // **\nPython.ORDER_UNARY_SIGN = 4; // + -\nPython.ORDER_BITWISE_NOT = 4; // ~\nPython.ORDER_MULTIPLICATIVE = 5; // * / // %\nPython.ORDER_ADDITIVE = 6; // + -\nPython.ORDER_BITWISE_SHIFT = 7; // << >>\nPython.ORDER_BITWISE_AND = 8; // &\nPython.ORDER_BITWISE_XOR = 9; // ^\nPython.ORDER_BITWISE_OR = 10; // |\nPython.ORDER_RELATIONAL = 11; // in, not in, is, is not,\n// <, <=, >, >=, <>, !=, ==\nPython.ORDER_EQUALITY = 11; // == != === !==\nPython.ORDER_LOGICAL_NOT = 12; // not\nPython.ORDER_LOGICAL_AND = 13; // and\nPython.ORDER_LOGICAL_OR = 14; // or\nPython.ORDER_ASSIGNMENT = 14; // = *= /= ~/= %= += -= <<= >>= &= ^= |=\nPython.ORDER_CONDITIONAL = 15; // if else\nPython.ORDER_LAMBDA = 16; // lambda\nPython.ORDER_NONE = 99; // (...)\n\n/**\n * List of outer-inner pairings that do NOT require parentheses.\n * @type {!Array.>}\n */\nPython.ORDER_OVERRIDES = [\n // (foo()).bar -> foo().bar\n // (foo())[0] -> foo()[0]\n [Python.ORDER_FUNCTION_CALL, Python.ORDER_MEMBER],\n // (foo())() -> foo()()\n [Python.ORDER_FUNCTION_CALL, Python.ORDER_FUNCTION_CALL],\n // (foo.bar).baz -> foo.bar.baz\n // (foo.bar)[0] -> foo.bar[0]\n // (foo[0]).bar -> foo[0].bar\n // (foo[0])[1] -> foo[0][1]\n [Python.ORDER_MEMBER, Python.ORDER_MEMBER],\n // (foo.bar)() -> foo.bar()\n // (foo[0])() -> foo[0]()\n [Python.ORDER_MEMBER, Python.ORDER_FUNCTION_CALL],\n\n // not (not foo) -> not not foo\n // [Python.ORDER_LOGICAL_NOT, Python.ORDER_LOGICAL_NOT],\n // a and (b and c) -> a and b and c\n // [Python.ORDER_LOGICAL_AND, Python.ORDER_LOGICAL_AND],\n // a or (b or c) -> a or b or c\n // [Python.ORDER_LOGICAL_OR, Python.ORDER_LOGICAL_OR]\n];\n\nPython.init = function () {\n /**\n * Empty loops or conditionals are not allowed in Python.\n */\n Python.PASS = this.INDENT + 'pass\\n';\n // Create a dictionary of definitions to be printed before the code.\n Python.definitions_ = Object.create(null);\n // Create a dictionary mapping desired function names in definitions_\n // to actual function names (to avoid collisions with user functions).\n Python.functionNames_ = Object.create(null);\n Python.setups_ = Object.create(null);\n Python.loops_ = Object.create(null);\n Python.codeEnd_ = Object.create(null);\n\n if (!Python.variableDB_) {\n Python.variableDB_ = new Names(Python.RESERVED_WORDS_);\n } else {\n Python.variableDB_.reset();\n }\n}\n\nPython.finish = function (code) {\n // Convert the definitions dictionary into a list.\n if (code !== \"\") {\n code = code.replace(/\\n/g, '\\n');\n code = code.replace(/\\n\\s+$/, '\\n');\n }\n var imports = [];\n var definitions_var = []; //变量定义\n var definitions_fun = []; //函数定义\n for (var name in this.definitions_) {\n var def = this.definitions_[name];\n if (name.indexOf('import') === 0) {\n imports.push(def);\n } else if (name.indexOf('var_declare') === 0) {\n definitions_var.push(def);\n } else {\n definitions_fun.push(def);\n }\n }\n if (imports.length) {\n imports.push('\\n\\n');\n }\n if (definitions_var.length) {\n definitions_var.push('\\n\\n');\n }\n if (definitions_fun.length) {\n definitions_fun.push('\\n\\n');\n }\n var functions = [];\n for (var name in Python.functions_) {\n functions.push(Python.functions_[name]);\n }\n if (functions.length) {\n functions.push('\\n\\n');\n }\n var setups = [];\n for (var name in Python.setups_) {\n setups.push(Python.setups_[name]);\n }\n if (setups.length) {\n setups.push('\\n\\n');\n }\n var loops = [];\n for (var name in Python.loops_) {\n loops.push(Python.loops_[name]);\n }\n var codeEnd = [];\n for (var name in Python.codeEnd_) {\n codeEnd.push(Python.codeEnd_[name]);\n }\n if (codeEnd.length !== 0) {\n codeEnd.push('\\n');\n }\n if (loops.length > 0) {\n return imports.join('\\n') + definitions_var.join('\\n') + definitions_fun.join('\\n')\n + functions.join('\\n') + setups.join('') + code + 'while True:\\n' + loops.join('') + codeEnd.join('\\n');\n }\n return imports.join('\\n') + definitions_var.join('\\n') + definitions_fun.join('\\n')\n + functions.join('\\n') + setups.join('') + code + codeEnd.join('\\n');\n}\n\n\n/**\n * Naked values are top-level blocks with outputs that aren't plugged into\n * anything.\n * @param {string} line Line of generated code.\n * @return {string} Legal line of code.\n */\nPython.scrubNakedValue = function (line) {\n return line + '\\n';\n}\n\n/**\n * Encode a string as a properly escaped Python string, complete with quotes.\n * @param {string} string Text to encode.\n * @return {string} Python string.\n * @private\n */\nPython.quote_ = function (string) {\n // Can't use goog.string.quote since % must also be escaped.\n string = string.replace(/\\\\/g, '\\\\\\\\')\n .replace(/\\n/g, '\\\\\\n');\n\n // Follow the CPython behaviour of repr() for a non-byte string.\n var quote = '\\'';\n if (string.indexOf('\\'') !== -1) {\n if (string.indexOf('\"') === -1) {\n quote = '\"';\n } else {\n string = string.replace(/'/g, '\\\\\\'');\n }\n }\n return quote + string + quote;\n}\n\n/**\n * Encode a string as a properly escaped multiline Python string, complete\n * with quotes.\n * @param {string} string Text to encode.\n * @return {string} Python string.\n * @private\n */\nPython.multiline_quote_ = function (string) {\n // Can't use goog.string.quote since % must also be escaped.\n string = string.replace(/'''/g, '\\\\\\'\\\\\\'\\\\\\'');\n return '\\'\\'\\'' + string + '\\'\\'\\'';\n}\n\n/**\n * Common tasks for generating Python from blocks.\n * Handles comments for the specified block and any connected value blocks.\n * Calls any statements following this block.\n * @param {!Blockly.Block} block The current block.\n * @param {string} code The Python code created for this block.\n * @param {boolean=} opt_thisOnly True to generate code for only this statement.\n * @return {string} Python code with comments and subsequent blocks added.\n * @private\n */\nPython.scrub_ = function (block, code, opt_thisOnly) {\n var commentCode = '';\n // Only collect comments for blocks that aren't inline.\n if (!block.outputConnection || !block.outputConnection.targetConnection) {\n // Collect comment for this block.\n var comment = block.getCommentText();\n if (comment) {\n comment = Blockly.utils.string.wrap(comment,\n Python.COMMENT_WRAP - 3);\n commentCode += Python.prefixLines(comment + '\\n', '# ');\n }\n // Collect comments for all value arguments.\n // Don't collect comments for nested statements.\n for (var i = 0; i < block.inputList.length; i++) {\n if (block.inputList[i].type == Blockly.INPUT_VALUE) {\n var childBlock = block.inputList[i].connection.targetBlock();\n if (childBlock) {\n var comment = Python.allNestedComments(childBlock);\n if (comment) {\n commentCode += Python.prefixLines(comment, '# ');\n }\n }\n }\n }\n }\n var nextBlock = block.nextConnection && block.nextConnection.targetBlock();\n var nextCode = opt_thisOnly ? '' : Python.blockToCode(nextBlock);\n return commentCode + code + nextCode;\n}\n\n/**\n * Gets a property and adjusts the value, taking into account indexing, and\n * casts to an integer.\n * @param {!Blockly.Block} block The block.\n * @param {string} atId The property ID of the element to get.\n * @param {number=} opt_delta Value to add.\n * @param {boolean=} opt_negate Whether to negate the value.\n * @return {string|number}\n */\nPython.getAdjustedInt = function (block, atId, opt_delta, opt_negate) {\n var delta = opt_delta || 0;\n if (block.workspace.options.oneBasedIndex) {\n delta--;\n }\n var defaultAtIndex = block.workspace.options.oneBasedIndex ? '1' : '0';\n var atOrder = delta ? Python.ORDER_ADDITIVE :\n Python.ORDER_NONE;\n var at = Python.valueToCode(block, atId, atOrder) || defaultAtIndex;\n\n if (Blockly.isNumber(at)) {\n // If the index is a naked number, adjust it right now.\n at = parseInt(at, 10) + delta;\n if (opt_negate) {\n at = -at;\n }\n } else {\n // If the index is dynamic, adjust it in code.\n if (delta > 0) {\n at = 'int(' + at + ' + ' + delta + ')';\n } else if (delta < 0) {\n at = 'int(' + at + ' - ' + -delta + ')';\n } else {\n at = 'int(' + at + ')';\n }\n if (opt_negate) {\n at = '-' + at;\n }\n }\n return at;\n}","// extracted by mini-css-extract-plugin\nexport {};","module.exports = Blockly;","module.exports = Mixly;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import * as Blockly from 'blockly/core';\nimport { Profile } from 'mixly';\n\nimport {\n PythonVariablesBlocks,\n PythonControlBlocks,\n PythonMathBlocks,\n PythonTextBlocks,\n PythonListsBlocks,\n PythonDictsBlocks,\n PythonLogicBlocks,\n PythonStorageBlocks,\n PythonProceduresBlocks,\n PythonTupleBlocks,\n PythonSetBlocks,\n PythonHtmlBlocks,\n PythonUtilityBlocks,\n PythonVariablesGenerators,\n PythonControlGenerators,\n PythonMathGenerators,\n PythonTextGenerators,\n PythonListsGenerators,\n PythonDictsGenerators,\n PythonLogicGenerators,\n PythonStorageGenerators,\n PythonProceduresGenerators,\n PythonTupleGenerators,\n PythonSetGenerators,\n PythonHtmlGenerators,\n PythonUtilityGenerators,\n Procedures,\n Variables,\n Python\n} from '@mixly/python';\n\nimport {\n MicroPythonActuatorExternBlocks,\n MicroPythonActuatorOnBoardBlocks,\n MicroPythonAISensorBlocks,\n MicroPythonAIBlocks,\n MicroPythonBlynkBlocks,\n MicroPythonCCG1Blocks,\n MicroPythonCEGOBlocks,\n MicroPythonCommunicateBlocks,\n MicroPythonDisplayExternBlocks,\n MicroPythonDisplayOnBoardBlocks,\n MicroPythonFactoryBlocks,\n MicroPythonInputBlocks,\n MicroPythonIotBlocks,\n MicroPythonNetworkBlocks,\n MicroPythonSensorExternBlocks,\n MicroPythonSensorOnBoardBlocks,\n MicroPythonSerialBlocks,\n MicroPythonSystemBlocks,\n MicroPythonWeatherBlocks,\n MicroPythonActuatorExternGenerators,\n MicroPythonActuatorOnBoardGenerators,\n MicroPythonAISensorGenerators,\n MicroPythonAIGenerators,\n MicroPythonBlynkGenerators,\n MicroPythonCCG1Generators,\n MicroPythonCEGOGenerators,\n MicroPythonCommunicateGenerators,\n MicroPythonDisplayExternGenerators,\n MicroPythonDisplayOnBoardGenerators,\n MicroPythonFactoryGenerators,\n MicroPythonInputGenerators,\n MicroPythonIotGenerators,\n MicroPythonNetworkGenerators,\n MicroPythonSensorExternGenerators,\n MicroPythonSensorOnBoardGenerators,\n MicroPythonSerialGenerators,\n MicroPythonSystemGenerators,\n MicroPythonWeatherGenerators\n} from '@mixly/micropython';\n\nimport {\n MicropythonESP32C2Pins,\n MicropythonESP32C2InoutBlocks,\n MicropythonESP32C2MiniG2Blocks,\n MicropythonESP32C2MEGOBlocks,\n MicropythonESP32C2PinsBlocks,\n MicropythonESP32C2InoutGenerators,\n MicropythonESP32C2MiniG2Generators,\n MicropythonESP32C2MEGOGenerators,\n MicropythonESP32C2PinsGenerators\n} from './';\n\nimport './css/color_esp32c3_mixgocc.css';\n\nObject.assign(Blockly.Variables, Variables);\nObject.assign(Blockly.Procedures, Procedures);\nBlockly.Python = Python;\nBlockly.generator = Python;\n\nProfile.default = {};\nObject.assign(Profile, MicropythonESP32C2Pins);\nObject.assign(Profile.default, MicropythonESP32C2Pins['MixGo CC']);\n\nObject.assign(\n Blockly.Blocks,\n PythonVariablesBlocks,\n PythonControlBlocks,\n PythonMathBlocks,\n PythonTextBlocks,\n PythonListsBlocks,\n PythonDictsBlocks,\n PythonLogicBlocks,\n PythonStorageBlocks,\n PythonProceduresBlocks,\n PythonTupleBlocks,\n PythonSetBlocks,\n PythonHtmlBlocks,\n PythonUtilityBlocks,\n MicroPythonInputBlocks,\n MicroPythonSystemBlocks,\n MicroPythonSerialBlocks,\n MicroPythonCommunicateBlocks,\n MicroPythonIotBlocks,\n MicroPythonWeatherBlocks,\n MicroPythonAISensorBlocks,\n MicroPythonSensorOnBoardBlocks,\n MicroPythonSensorExternBlocks,\n MicroPythonNetworkBlocks,\n MicroPythonAIBlocks,\n MicroPythonActuatorOnBoardBlocks,\n MicroPythonActuatorExternBlocks,\n MicroPythonDisplayOnBoardBlocks,\n MicroPythonDisplayExternBlocks,\n MicroPythonFactoryBlocks,\n MicroPythonBlynkBlocks,\n MicroPythonCCG1Blocks,\n MicroPythonCEGOBlocks,\n MicropythonESP32C2InoutBlocks,\n MicropythonESP32C2MiniG2Blocks,\n MicropythonESP32C2MEGOBlocks,\n MicropythonESP32C2PinsBlocks\n);\n\nObject.assign(\n Blockly.Python.forBlock,\n PythonVariablesGenerators,\n PythonControlGenerators,\n PythonMathGenerators,\n PythonTextGenerators,\n PythonListsGenerators,\n PythonDictsGenerators,\n PythonLogicGenerators,\n PythonStorageGenerators,\n PythonProceduresGenerators,\n PythonTupleGenerators,\n PythonSetGenerators,\n PythonHtmlGenerators,\n PythonUtilityGenerators,\n MicroPythonInputGenerators,\n MicroPythonSystemGenerators,\n MicroPythonSerialGenerators,\n MicroPythonCommunicateGenerators,\n MicroPythonIotGenerators,\n MicroPythonWeatherGenerators,\n MicroPythonAISensorGenerators,\n MicroPythonSensorOnBoardGenerators,\n MicroPythonSensorExternGenerators,\n MicroPythonNetworkGenerators,\n MicroPythonAIGenerators,\n MicroPythonActuatorOnBoardGenerators,\n MicroPythonActuatorExternGenerators,\n MicroPythonDisplayOnBoardGenerators,\n MicroPythonDisplayExternGenerators,\n MicroPythonFactoryGenerators,\n MicroPythonBlynkGenerators,\n MicroPythonCCG1Generators,\n MicroPythonCEGOGenerators,\n MicropythonESP32C2InoutGenerators,\n MicropythonESP32C2MiniG2Generators,\n MicropythonESP32C2MEGOGenerators,\n MicropythonESP32C2PinsGenerators\n);"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/styles/main.2265d699.css.map b/boards/default/micropython_esp32c2/styles/main.2265d699.css.map deleted file mode 100644 index 1df534bd..00000000 --- a/boards/default/micropython_esp32c2/styles/main.2265d699.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"styles/main.2265d699.css","mappings":";;;AAAA;IACI,4DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,4DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,4DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,4DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,4DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,4DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,4DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,4DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,4DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,4DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;EACE,6DAAmE;EACnE,0BAA0B;AAC5B;AACA;EACE,6DAAoE;EACpE,0BAA0B;AAC5B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;EACE,6DAAiE;EACjE,0BAA0B;AAC5B;AACA;EACE,6DAAkE;EAClE,0BAA0B;AAC5B;AACA;IACI,6DAAiE;IACjE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAA4E;IAC5E,0BAA0B;AAC9B;AACA;IACI,6DAAyE;IACzE,0BAA0B;AAC9B;AACA;IACI,6DAA8E;IAC9E,0BAA0B;AAC9B;AACA;IACI,6DAA2E;IAC3E,0BAA0B;AAC9B;AACA;IACI,6DAA6E;IAC7E,0BAA0B;AAC9B;AACA;IACI,6DAA0E;IAC1E,0BAA0B;AAC9B;AACA;IACI,6DAAiE;IACjE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAA2E;IAC3E,0BAA0B;AAC9B;AACA;IACI,6DAAyE;IACzE,0BAA0B;AAC9B;AACA;IACI,6DAA6E;IAC7E,0BAA0B;AAC9B;AACA;IACI,6DAA2E;IAC3E,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAA2E;IAC3E,0BAA0B;AAC9B;AACA;IACI,6DAA4E;IAC5E,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAkE;IAClE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAmE;IACnE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAsE;IACtE,0BAA0B;AAC9B;AACA;IACI,6DAAgE;IAChE,0BAA0B;AAC9B;AACA;IACI,6DAAiE;IACjE,0BAA0B;AAC9B;AACA;IACI,6DAAsE;IACtE,0BAA0B;AAC9B;AACA;IACI,6DAAsE;IACtE,0BAA0B;AAC9B;AACA;IACI,6DAAsE;IACtE,0BAA0B;AAC9B;AACA;IACI,6DAAuE;IACvE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B;AACA;IACI,6DAAoE;IACpE,0BAA0B;AAC9B;AACA;IACI,6DAAqE;IACrE,0BAA0B;AAC9B,C","sources":["webpack://@mixly/micropython-esp32c2/./css/color_esp32c3_mixgocc.css"],"sourcesContent":["div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(1) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/inout.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(1) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/inout2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(2) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/ctrl.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(2) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/ctrl2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(3) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/math.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(3) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/math2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(4) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/logic.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(4) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/logic2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(5) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/text.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(5) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/text2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(6) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/list3.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(6) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/list4.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(7) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/tuple.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(7) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/tuple2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(8) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/dict.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(8) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/dict2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(9) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/set.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(9) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/set2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(10) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/var.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(10) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/var2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(11) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/func.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(11) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/func2.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(12) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/port.png') no-repeat;\n background-size: 100% auto; \n}\ndiv.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(12) > div.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/port2.png') no-repeat;\n background-size: 100% auto; \n}\n#catOnBoardSensor.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor_onboard.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnBoardSensor.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor_new2.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnBoardActuator.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/actuator_onboard.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnBoardActuator.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/actuator_new2.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnBoardDisplay.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/display_onboard.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnBoardDisplay.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/display_new2.png') no-repeat;\n background-size: 100% auto;\n}\n#catME_GO.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/act.png') no-repeat;\n background-size: 100% auto;\n}\n#catME_GO.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/act2.png') no-repeat;\n background-size: 100% auto;\n}\n#catME_G1.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor.png') no-repeat;\n background-size: 100% auto;\n}\n#catME_G1.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor2.png') no-repeat;\n background-size: 100% auto;\n}\n#catCC_G1.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor.png') no-repeat;\n background-size: 100% auto;\n}\n#catCC_G1.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor2.png') no-repeat;\n background-size: 100% auto;\n}\n#catMINI_G2.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor.png') no-repeat;\n background-size: 100% auto;\n}\n#catMINI_G2.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor2.png') no-repeat;\n background-size: 100% auto;\n}\n#catExternSensor.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor_extern.png') no-repeat;\n background-size: 100% auto;\n}\n#catExternSensor.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/sensor_new2.png') no-repeat;\n background-size: 100% auto;\n}\n#catExternActuator.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/actuator_extern.png') no-repeat;\n background-size: 100% auto;\n}\n#catExternActuator.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/actuator_new2.png') no-repeat;\n background-size: 100% auto;\n}\n#catMatrix.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/Matrix.png') no-repeat;\n background-size: 100% auto;\n}\n#catMatrix.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/Matrix2.png') no-repeat;\n background-size: 100% auto;\n}\n#cat4Digitdisplay.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/4Digitdisplay.png') no-repeat;\n background-size: 100% auto;\n}\n#cat4Digitdisplay.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/4Digitdisplay2.png') no-repeat;\n background-size: 100% auto;\n}\n#catLCD.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled.png') no-repeat;\n background-size: 100% auto;\n}\n#catLCD.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled2.png') no-repeat;\n background-size: 100% auto;\n}\n#catOLED.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled.png') no-repeat;\n background-size: 100% auto;\n}\n#catOLED.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled2.png') no-repeat;\n background-size: 100% auto;\n}\n#catTFT.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled.png') no-repeat;\n background-size: 100% auto;\n}\n#catTFT.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/oled2.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIsensor.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/image.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIsensor.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/image2.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIsensor2.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/image.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIsensor2.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/image2.png') no-repeat;\n background-size: 100% auto;\n}\n#catFile.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/file.png') no-repeat;\n background-size: 100% auto;\n}\n#catFile.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/file2.png') no-repeat;\n background-size: 100% auto;\n}\n#catBLE.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catBLE.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catIR.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catIR.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catI2C.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catI2C.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catSPI.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catSPI.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catRadio.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catRadio.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catOneWire.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catOneWire.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catESPNow.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catESPNow.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catLora.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catLora.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catNetwork.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/net3.png') no-repeat;\n background-size: 100% auto;\n}\n#catNetwork.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/net2.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnenet.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/onenet.png') no-repeat;\n background-size: 100% auto;\n}\n#catOnenet.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/onenet2.png') no-repeat;\n background-size: 100% auto;\n}\n#catBlynk.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/blynk.png') no-repeat;\n background-size: 100% auto;\n}\n#catBlynk.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/blynk2.png') no-repeat;\n background-size: 100% auto;\n}\n#catMixIO.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/mixio.png') no-repeat;\n background-size: 100% auto;\n}\n#catMixIO.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/mixio2.png') no-repeat;\n background-size: 100% auto;\n}\n#catweather.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/weather.png') no-repeat;\n background-size: 100% auto;\n}\n#catweather.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/weather2.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIOT.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/ai.png') no-repeat;\n background-size: 100% auto;\n}\n#catAIOT.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/ai2.png') no-repeat;\n background-size: 100% auto;\n}\n#catFactory.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/factory3.png') no-repeat;\n background-size: 100% auto;\n}\n#catFactory.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/factory4.png') no-repeat;\n background-size: 100% auto;\n}\n#catCommunicate.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/requests.png') no-repeat;\n background-size: 100% auto; \n}\n#catCommunicate.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/requests2.png') no-repeat;\n background-size: 100% auto; \n}\n#catBLEC.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catBLEC.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}\n#catBLEKM.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni.png') no-repeat;\n background-size: 100% auto;\n}\n#catBLEKM.blocklyTreeRow.blocklyTreeSelected > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{\n background:url('../../../../common/media/mark/comuni2.png') no-repeat;\n background-size: 100% auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/boards/default/micropython_esp32c2/styles/main.2265d699.css b/boards/default/micropython_esp32c2/styles/main.c30a59f3.css similarity index 99% rename from boards/default/micropython_esp32c2/styles/main.2265d699.css rename to boards/default/micropython_esp32c2/styles/main.c30a59f3.css index dd62194d..ddaac934 100644 --- a/boards/default/micropython_esp32c2/styles/main.2265d699.css +++ b/boards/default/micropython_esp32c2/styles/main.c30a59f3.css @@ -1,6 +1,3 @@ -/*!*****************************************************************************************************************************************!*\ - !*** css ../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/postcss-loader/dist/cjs.js!./css/color_esp32c3_mixgocc.css ***! - \*****************************************************************************************************************************************/ div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(1) > div.blocklyTreeRow > div.blocklyTreeRowContentContainer > span.blocklyTreeIcon{ background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NTo0NiswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6NDYrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZGFjMDQyYmMtODZjZC02MzQwLWExYjItZjA5MTkyOGMzM2Q4PC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOmRhYzA0MmJjLTg2Y2QtNjM0MC1hMWIyLWYwOTE5MjhjMzNkODwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOmRhYzA0MmJjLTg2Y2QtNjM0MC1hMWIyLWYwOTE5MjhjMzNkODwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDpkYWMwNDJiYy04NmNkLTYzNDAtYTFiMi1mMDkxOTI4YzMzZDg8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjIrMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+z0WRKgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADjUlEQVR42sSXT6hVVRTGf9865x4H74U0c1RKEDgJamSTGjUoKgIR1ItOoyzE8ElBIUiFvuebqEnhIKzrn8iKSqiJk6igSQ0LIkdFICj+eUWee/f+Gpx773s+yXevXfFMDpy9z1q//a219tpbtrmbjwYAZ2Y2ra9dPWHpQeEMpAnYD8BAInNM+JfBwJb5kzcCnJ7ZOpOJA4DuwDqR8245zQ/Mb54/dSPAiZlth4VfAr4FfwCsmYDnq8D9oF3C89i7hwocXKbAyZn2UdALNq9LfmsCwQULzBoUf4p8VE47hgocPHUTwDugF232Avsk+uEb068MBrtxZLRO4jxwxOblwbz2wc6tAYbGxoq0yQ66qUUoUxU1ku9V5tK1YnrfX+XU3sJNbu94+8jKAONCdFOLlAuyg6qop6qiXoW4lHPcY6lGXB8qMNsZDQBA4ZGi0UslopkbRZ6P8CspxzOYsyI30Y9mUVtmT46hgEZLB8k4i14usGNDWfa+C4gMbzrrDQwqGnsjK6Doex4jHYxIqSCUicjHQdttvibzlENWeDQAhRuADLbWAVNAb8RqaNn6FfMP0mfAc5g/LB6X/NvW2RMjKLC4Jz4r+HxC2+IVw672XOf9FQF6qSQ5KCKvaxXd3aAe0L2NftAF/u4reMXiq/Zs58cVNiKTckHdqygiUbXqZmebTAtktBD0a1syraI7uT41DsBiFUyqSRoj2nOd0ZJwCJDvAkAoD1Rfa8dO4BqQ+8kUt9GtpoCLhi/bc50fVlYggWwIPUrB90xMA15rz3X2r1gFTXMpkRJV0X1M8jlQaXMI2Cl5NXDfGKVZGV0ELrTnOt1bA2AyQbfXVEEZXZBWh/wN8JDNAeBV4bGKw/3JI+XAQIWcg6qsm58NEX4XeB64rpwfBn4mmqT1CtUyHkA/Y3uppIi02BVlJLYLjueszcBHtpBMRL4h2MO3+oDjACw9kBg1q+sbU2O9rHtVyg5HZMroUUZvuQrTBueIv5Z+3Db74e0fyQahGOyUA+eSFyEHcyPOFyldqOp6gyXo+9t4+Mz/P5QaIbzoeFmtAaSiuL6qrn9fffXqAzliOPzksbOTOpb7v3uEIRfF5aquL08vLKxdCvD0e1/c8YtJDZCj2F/V9U/TCwuP3BLg9J6tM9mTv5pZokjp06quN1qLpjce+njZ5XTPpvV1nujlVP2CbQl/Ivvc0sGbrmZ36/l3AHnYit+0RI/wAAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; @@ -377,5 +374,3 @@ div.blocklyToolboxDiv > div.blocklyToolboxContents > div:nth-child(12) > div.blo background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAA4JmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTgtMDctMjFUMjE6MTY6MjErMDg6MDA8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxOS0xMC0yNlQxNjo1NToyNyswODowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4bXA6TWV0YWRhdGFEYXRlPjIwMTktMTAtMjZUMTY6NTU6MjcrMDg6MDA8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6NzFmZjM2OWUtMzY0NS0zMzQ5LWJlZmUtZjhiMTM1ZWVmY2NjPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjcxZmYzNjllLTM2NDUtMzM0OS1iZWZlLWY4YjEzNWVlZmNjYzwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjcxZmYzNjllLTM2NDUtMzM0OS1iZWZlLWY4YjEzNWVlZmNjYzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo3MWZmMzY5ZS0zNjQ1LTMzNDktYmVmZS1mOGIxMzVlZWZjY2M8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTgtMDctMjFUMjE6MTY6MjErMDg6MDA8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj4zMDAwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4zMjwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+EjBnGgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAADnElEQVR42sTXWYiWZRQH8N+QkohBmZm0oM6oNGUUbTC2QOhFw9BmaUZCm1BRjkSmaXXV1MS0kC1UlCbV0FBmKm0XRhdaQTkXlpnaNJZIha3QZlhMN+eN48v3TfPNDHSuzrOd9/+e53/+z/PU9fX1qdFORRMmY1z0fY/deB9bawlWVwOAiViAFpyMEaXxv/Ax3sCz2DNcAMbjScyuMVNrcRP2DQXAtVhV6nsHb+EzfBd9R6ERzZhZmn8dnhsMgEewKLWfxl2x3/3ZOLThhlKsW2sB8HBa8DVmxR/XYo3YiGNSzNsGAmABngl/C2bgQGnOmOifFO2iAn4rzRsZ/Wek2Cv7A3A8dmEUejEdf6TxI3E/rqlSBatxB35I/aOxLcp2P6ZibzUAK4M0cHagL6wFr5c+WiyuK/W34M3UnoH3wl+F6ysBaEBPItyNKcBFWJ/anXgCn0d7Km7GVWnOxdiQ2k8lYjZEhg8CcDs6wj8J28M/OoCNiTSfj81ViHcO3o3t+QVTkg6ciE/DX4IHMoBGPBY1vAnnpaCPYmH4zXg7jY1I+1/YBaETxdpcyptjazdGzB0FgPlYgbG4N+odDsFXOBZduDIFuy+V1UNYnsZewrwg2yT8ndYsC5IuQmcB4M4QjwJMZ/hNiYiz8Vr49ySQhbXh7jT31UTAD1LsF8JfjvYCQE7zrJBbuAxrkrDsCL8niJStJ8gIJyThujyBmRnp/3d7CgAr0FoBwKVxqJSJuRPTSgB2xofLhMuZqwpgaQgMXI3nwz8TH4Z/BV4Of3HB4mSLgwvF3K7wz8JHKfbq8JeiowAwL7IwPgIvSYF7Q8XWRUYKaw/VE+CXpbF1oQO7UZ/6O6Lc9wUJuwoAUyIlzehO2p2ZC3PxSoV05m3Lf99eqo4tOD3KtBU9WYgWBggBoDv8w+J8mBDt+vizSgAmFwqHb4Inv6aYxVa0hu4cpITHxeKRUYbzSwq3KV3N9lQBMBFfRt+5JcV8MaT6QPzE3kqHUa6GsupNC0H54j+2oCEEbNdA1LEMYGx84PBQq+n4toruVwNQtgn4JG5KPwfAH/u7kMxJ5bY96n8oALalGJnE/V7JCmn+Ka5U+wcJYFRc6Y4ImW6r5VJ6YSzuHmIGTguCbxjqw2SwAIbtZfS/AzgUp0SJ9cYp93iM3RKnZn2U6lb8OdwA1sTxPNC5c4YbwPq4nA507iXDDaApjtzfKzxU8kNkNB5Mt6B+7Z8BADmmRtBxI+m+AAAAAElFTkSuQmCC) no-repeat; background-size: 100% auto; } - -/*# sourceMappingURL=main.2265d699.css.map*/ \ No newline at end of file diff --git a/boards/default/micropython_esp32c3/index.xml b/boards/default/micropython_esp32c3/index.xml index fc28a9e3..11806fe0 100644 --- a/boards/default/micropython_esp32c3/index.xml +++ b/boards/default/micropython_esp32c3/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,018029100100100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly50010.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_func1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,0100100100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly50010.51001001000interrupt_funcinterrupt_functurnsdistance00Mixly0Mixlywifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.org/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"sound"ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!1002000001000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi2000004512spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr0121ws_wrws_wrws_wr360002zsensorzsensorzsensorzsensorweight12500weight100midi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi1000000450spi78tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32c3/main.bundle.js b/boards/default/micropython_esp32c3/main.bundle.js index bb77af2c..062f7d3e 100644 --- a/boards/default/micropython_esp32c3/main.bundle.js +++ b/boards/default/micropython_esp32c3/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>yt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>kt,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>qt,controls_if_elseif:()=>Qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>xt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>Ht,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>le,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>de,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>di,text:()=>Xe,text_capital:()=>qe,text_center:()=>ze,text_char:()=>ye,text_char_at:()=>He,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>Qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>ke,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>xe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>qi,enumerate:()=>Qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>yi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>xi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>ki,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>Hi,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>ln,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>dn,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>kn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>yn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>xn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>Qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>Hn,storage_make_dir:()=>qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ls,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var d={};t.r(d),t.d(d,{set_add_discard:()=>Bs,set_clear:()=>ys,set_create_with:()=>Ps,set_create_with_container:()=>Ys,set_create_with_item:()=>vs,set_create_with_text_return:()=>ws,set_length:()=>Xs,set_operate:()=>bs,set_operate_update:()=>Vs,set_pop:()=>xs,set_sub:()=>Gs,set_toset:()=>Hs,set_update:()=>Us});var l={};t.r(l),t.d(l,{html_content:()=>Qs,html_content_more:()=>qs,html_document:()=>Ws,html_form:()=>js,html_head_body:()=>Js,html_style:()=>zs,html_style_color:()=>$s,html_style_content:()=>Zs,html_text:()=>t_,html_title:()=>Ks});var I={};t.r(I),t.d(I,{attribute_access:()=>T_,function_call:()=>d_,function_call_container:()=>l_,function_call_item:()=>I_,raw_block:()=>n_,raw_empty:()=>__,raw_expression:()=>s_,raw_table:()=>i_,text_comment:()=>o_,text_print_multiple:()=>a_,text_print_multiple_container:()=>u_,text_print_multiple_item:()=>r_,type_check:()=>p_});var T={};t.r(T),t.d(T,{controls_type:()=>O_,controls_typeLists:()=>R_,lists_zip:()=>c_,unpack_iterable_object:()=>g_,variables_change:()=>m_,variables_get:()=>M_,variables_global:()=>E_,variables_set:()=>h_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>Y_,base_setup:()=>S_,controls_delay:()=>P_,controls_flow_statements:()=>F_,controls_for:()=>N_,controls_forEach:()=>b_,controls_for_range:()=>D_,controls_if:()=>A_,controls_interrupts:()=>x_,controls_lambda:()=>B_,controls_main:()=>C_,controls_millis:()=>v_,controls_nointerrupts:()=>y_,controls_pass:()=>U_,controls_range:()=>V_,controls_repeat:()=>q_,controls_repeat_ext:()=>k_,controls_thread:()=>w_,controls_try_finally:()=>L_,controls_whileUntil:()=>f_,datetime_fromtimestamp:()=>z_,do_while:()=>H_,garbage_collection:()=>W_,gene_unique_identifier:()=>j_,get_mem_alloc:()=>K_,get_mem_free:()=>J_,get_unique_identifier:()=>Q_,reset:()=>X_,time_sleep:()=>G_});var h={};t.r(h),t.d(h,{base_map:()=>Oo,generate_cartesian_product:()=>co,math_arithmetic:()=>io,math_bit:()=>eo,math_constant:()=>$_,math_constant_mp:()=>to,math_constrain:()=>lo,math_dec:()=>oo,math_indexer_number:()=>Mo,math_map:()=>ro,math_max_min:()=>ao,math_number:()=>Z_,math_number_base_conversion:()=>Io,math_random:()=>uo,math_random_seed:()=>To,math_round:()=>ho,math_selfcalcu:()=>no,math_single:()=>so,math_to_int:()=>po,math_trig:()=>_o,text_to_number:()=>mo,text_to_number_skulpt:()=>Eo,turn_to_int:()=>Ro});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Lo,char_to_ascii:()=>No,number_to_text:()=>Do,os_system:()=>jo,text:()=>go,text_capital:()=>bo,text_center:()=>Vo,text_char:()=>So,text_char_at:()=>Po,text_char_at2:()=>Fo,text_char_at3:()=>Qo,text_compareTo:()=>Jo,text_compare_to:()=>Xo,text_encode:()=>qo,text_equals_starts_ends:()=>vo,text_eval:()=>zo,text_find:()=>Bo,text_format:()=>ko,text_format_noreturn:()=>Wo,text_join:()=>Ao,text_join_seq:()=>Go,text_length:()=>fo,text_random_char:()=>Yo,text_replace:()=>Uo,text_split:()=>wo,text_strip:()=>Ho,text_substring:()=>yo,text_substring2:()=>xo,text_substring3:()=>Ko,text_textarea:()=>Co});var E={};t.r(E),t.d(E,{content_in_lists:()=>Pp,enumerate:()=>Fp,list_many_input:()=>mp,list_tolist:()=>Dp,list_tolist2:()=>fp,list_trig:()=>Tp,lists_2d_get_col_row_data:()=>tp,lists_2d_get_data_with_col_row:()=>$o,lists_append_extend:()=>_p,lists_change_to:()=>hp,lists_change_to_general:()=>Op,lists_clear:()=>rp,lists_create_with:()=>ep,lists_create_with2:()=>cp,lists_create_with_noreturn:()=>Ep,lists_create_with_text:()=>ip,lists_create_with_text2:()=>gp,lists_del_general:()=>Rp,lists_find:()=>dp,lists_getIndex3:()=>Cp,lists_getSublist3:()=>Sp,lists_get_index:()=>np,lists_get_random_item:()=>op,lists_get_random_sublist:()=>pp,lists_get_sublist:()=>Zo,lists_insert_value:()=>ap,lists_insert_value2:()=>Lp,lists_pop:()=>Ip,lists_remove_at:()=>lp,lists_remove_at2:()=>Np,lists_reverse:()=>up,lists_setIndex3:()=>Ap,lists_set_index:()=>sp,lists_sort:()=>Mp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>kp,dicts_add_or_change:()=>yp,dicts_clear:()=>Bp,dicts_create_with:()=>Yp,dicts_create_with_noreturn:()=>Jp,dicts_deldict:()=>Hp,dicts_delete:()=>bp,dicts_get:()=>Xp,dicts_get_default:()=>xp,dicts_items:()=>Gp,dicts_keys:()=>vp,dicts_length:()=>wp,dicts_pop:()=>Wp,dicts_setdefault:()=>Kp,dicts_to_json:()=>qp,dicts_to_json2:()=>Zp,dicts_to_to:()=>jp,dicts_todict:()=>Qp,dicts_update:()=>Vp,dicts_values:()=>Up,json_to_dicts:()=>zp});var R={};t.r(R),t.d(R,{logic_boolean:()=>na,logic_compare:()=>$p,logic_compare_continous:()=>ta,logic_is:()=>pa,logic_is_in:()=>oa,logic_negate:()=>ia,logic_null:()=>sa,logic_operation:()=>ea,logic_tobool:()=>aa,logic_true_or_false:()=>_a});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Pa,sdcard_use_spi_init:()=>Fa,storage_can_write_ornot:()=>ma,storage_change_dir:()=>Aa,storage_close_file:()=>Oa,storage_delete_file:()=>ca,storage_file_seek:()=>Sa,storage_file_tell:()=>Ca,storage_file_write:()=>Ia,storage_fileopen:()=>ra,storage_fileopen_new:()=>da,storage_fileopen_new_encoding:()=>la,storage_get_a_line:()=>ha,storage_get_contents:()=>Ma,storage_get_contents_without_para:()=>Ta,storage_get_current_dir:()=>La,storage_get_file_size:()=>ga,storage_get_filename:()=>Ea,storage_is_file:()=>fa,storage_list_all_files:()=>Ra,storage_make_dir:()=>Na,storage_open_file_with_os:()=>ua,storage_rename:()=>Da});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>xa,procedures_callreturn:()=>Xa,procedures_defnoreturn:()=>va,procedures_defreturn:()=>Ya,procedures_ifreturn:()=>ya,procedures_return:()=>ba});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ka,tuple_create_with:()=>Va,tuple_create_with_noreturn:()=>za,tuple_create_with_text2:()=>Ba,tuple_create_with_text_return:()=>Ga,tuple_del:()=>Ha,tuple_find:()=>Ja,tuple_getIndex:()=>Ua,tuple_getSublist:()=>qa,tuple_get_random_item:()=>Za,tuple_get_sublist:()=>ja,tuple_join:()=>ka,tuple_length:()=>wa,tuple_max:()=>Wa,tuple_totuple:()=>$a,tuple_trig:()=>Qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>ou,set_clear:()=>nu,set_create_with:()=>tu,set_create_with_text_return:()=>uu,set_length:()=>eu,set_operate:()=>su,set_operate_update:()=>_u,set_pop:()=>iu,set_sub:()=>pu,set_toset:()=>ru,set_update:()=>au});var A={};t.r(A),t.d(A,{html_content:()=>Tu,html_content_more:()=>Mu,html_document:()=>du,html_form:()=>mu,html_head_body:()=>Iu,html_style:()=>hu,html_style_content:()=>Eu,html_text:()=>Ou,html_title:()=>lu});var L={};t.r(L),t.d(L,{attribute_access:()=>Lu,function_call:()=>Au,raw_block:()=>Ru,raw_empty:()=>gu,raw_expression:()=>cu,raw_table:()=>Cu,type_check:()=>Su});var N={};t.r(N),t.d(N,{PIN_init:()=>Nr,actuator_extern_get_led_bright:()=>Vu,actuator_extern_get_led_state:()=>Bu,actuator_extern_led_bright:()=>bu,actuator_extern_led_brightness:()=>Gu,actuator_ms32006_dcmotor:()=>qu,actuator_ms32006_init:()=>Qu,actuator_ms32006_stepper:()=>zu,actuator_neopixel_init:()=>ju,actuator_neopixel_rgb:()=>Zu,actuator_neopixel_rgb_all:()=>$u,actuator_neopixel_write:()=>tr,actuator_use_uart_init:()=>er,esp32_music_get_tempo_extern:()=>Xu,esp32_music_pitch:()=>Fu,esp32_music_pitch_init:()=>fu,esp32_music_pitch_with_time:()=>Pu,esp32_music_play_list:()=>Yu,esp32_music_reset_extern:()=>xu,esp32_music_set_tempo_extern:()=>vu,esp32_music_stop:()=>yu,mixbot_actuator_extern_get_addr:()=>Ar,mixbot_actuator_extern_set_addr:()=>Lr,mixbot_addr_extern:()=>lr,parrot_PIN_init:()=>Pr,parrot_move_speed:()=>Yr,pin_led_bright:()=>Dr,player_insert_music:()=>pr,player_play_music:()=>or,player_set_mode:()=>_r,player_set_play:()=>nr,player_set_volume:()=>sr,player_whether_stop:()=>ir,robot_led_extern:()=>hr,robot_led_extern_get_value:()=>mr,robot_motor_extern:()=>Ir,robot_motor_extern_get_speed:()=>Tr,robot_servo_extern_absolute_run:()=>cr,robot_servo_extern_get_status:()=>Er,robot_servo_extern_relative_continue:()=>Sr,robot_servo_extern_relative_origin:()=>gr,robot_servo_extern_relative_run:()=>Cr,robot_servo_extern_stop:()=>Rr,robot_servo_extern_stop_mode:()=>Or,robot_traffic_light_extern:()=>Mr,servo_PIN_init:()=>fr,servo_get_angle:()=>Ku,servo_get_speed:()=>Ju,servo_init:()=>Uu,servo_move:()=>wu,servo_move_angle:()=>Fr,servo_set_angle:()=>ku,servo_set_speed:()=>Wu,servo_speed_360:()=>Hu,syn6288_builtin_voice:()=>rr,syn6288_get_voice:()=>ur,syn6288_set_voice:()=>ar,syn6288_tts_play:()=>dr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>rd,actuator_dc_motor_stop:()=>dd,actuator_get_led_bright:()=>br,actuator_get_led_state:()=>Vr,actuator_led_bright:()=>yr,actuator_led_brightness:()=>Br,actuator_mixbot_buzzer_on_off:()=>hd,actuator_mixgo_nova_mic_get:()=>cd,actuator_mixgo_nova_mic_set:()=>Rd,actuator_mixgo_nova_onboard_music_pitch:()=>Nd,actuator_mixgo_nova_onboard_music_stop:()=>Dd,actuator_mixgo_nova_play_audio:()=>Ad,actuator_mixgo_nova_play_online_audio:()=>Ld,actuator_mixgo_nova_record_audio:()=>Sd,actuator_mixgo_nova_voice_get:()=>Cd,actuator_mixgo_nova_voice_set:()=>gd,actuator_mixgo_zero_led_color:()=>Gr,actuator_onboard_neopixel_rgb:()=>Kr,actuator_onboard_neopixel_rgb_all:()=>Jr,actuator_onboard_neopixel_rgb_show_all_chase:()=>qr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>Qr,actuator_onboard_neopixel_write:()=>zr,actuator_rm_onboard_neopixel_rgb:()=>jr,actuator_rm_onboard_neopixel_rgb_all:()=>Zr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>$r,actuator_stepper_keep:()=>ad,actuator_stepper_stop:()=>ud,analog_ble_keyboard_init:()=>Ud,analog_ble_keyboard_input:()=>kd,analog_ble_keyboard_mouse_init:()=>Zd,analog_ble_keyboard_mouse_input:()=>il,analog_ble_keyboard_mouse_send_battery:()=>el,analog_ble_keyboard_mouse_str:()=>nl,analog_ble_keyboard_send_battery:()=>Kd,analog_ble_keyboard_str:()=>Wd,analog_ble_mouse_init:()=>Jd,analog_ble_mouse_input:()=>zd,analog_ble_mouse_keyboard_input:()=>sl,analog_ble_mouse_send_battery:()=>jd,analog_keyboard_input:()=>Yd,analog_keyboard_str:()=>Gd,analog_mouse_input:()=>Vd,bitbot_motor:()=>Od,bitbot_move:()=>md,bitbot_stop:()=>Ed,ble_keyboard_connect:()=>Hd,ble_keyboard_get_mac:()=>wd,ble_keyboard_mouse_connect:()=>tl,ble_keyboard_mouse_get_mac:()=>$d,ble_mouse_connect:()=>qd,ble_mouse_get_mac:()=>Qd,cc_number:()=>Wr,educore_ble_keyboard_input:()=>Tl,educore_ble_sensor_connected:()=>Il,educore_ble_sensor_init:()=>ll,educore_buzzer:()=>_l,educore_buzzer_play_tone:()=>ol,educore_buzzer_play_tone_time:()=>pl,educore_buzzer_stop:()=>al,educore_neopixel_clear:()=>dl,educore_neopixel_rgb:()=>rl,educore_rgb_light:()=>ul,esp32_music_get_tempo:()=>ed,esp32_music_reset:()=>id,esp32_music_set_tempo:()=>td,esp32_onboard_music_pitch:()=>nd,esp32_onboard_music_pitch_with_time:()=>sd,esp32_onboard_music_play_list:()=>od,esp32_onboard_music_stop:()=>_d,general_key:()=>Xd,general_key_tuple:()=>xd,generalkey_container:()=>yd,generalkey_create_with_item:()=>bd,get_power_output:()=>Fd,ledswitch:()=>xr,mixbot_motor:()=>Md,mixbot_motor_status:()=>ld,mixbot_move:()=>Id,mixbot_stop:()=>Td,mouse_key:()=>Bd,number:()=>Xr,rm_actuator_get_led_bright:()=>wr,rm_actuator_get_led_state:()=>Hr,rm_actuator_led_bright:()=>Ur,rm_actuator_led_brightness:()=>kr,rm_motor:()=>pd,set_all_power_output:()=>Pd,set_power_output:()=>fd,special_key:()=>vd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>Ql,ai_sensor_ailocal_class:()=>bl,ai_sensor_ailocal_class_result:()=>Vl,ai_sensor_ailocal_train:()=>yl,ai_sensor_asr_recognize:()=>Hl,ai_sensor_audio_play:()=>Gl,ai_sensor_audio_record:()=>Bl,ai_sensor_barcode:()=>gl,ai_sensor_circle:()=>Dl,ai_sensor_classifier_faces:()=>Jl,ai_sensor_color:()=>Yl,ai_sensor_color_chases:()=>xl,ai_sensor_color_chases_result:()=>Xl,ai_sensor_config:()=>Rl,ai_sensor_face:()=>Kl,ai_sensor_find_20objects:()=>ql,ai_sensor_find_barcodes:()=>Cl,ai_sensor_find_circles:()=>fl,ai_sensor_find_colors:()=>vl,ai_sensor_find_licenseplates:()=>Wl,ai_sensor_find_lines:()=>Nl,ai_sensor_find_qrcodes:()=>Ol,ai_sensor_find_rects:()=>Pl,ai_sensor_find_tags:()=>Al,ai_sensor_licenseplate:()=>kl,ai_sensor_line:()=>Ll,ai_sensor_qrcode:()=>ml,ai_sensor_qrcode_lite:()=>El,ai_sensor_rect:()=>Fl,ai_sensor_rgb:()=>cl,ai_sensor_tag:()=>Sl,ai_sensor_use_uart_init:()=>hl,ai_sensor_yolo_recognize:()=>Ul,ai_sensor_yolo_recognize_result:()=>wl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Zl,MICROPYTHON_AI_Speech_unit:()=>jl,MICROPYTHON_AI_client:()=>zl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>II,mpython_blynk_app_notify:()=>oI,mpython_blynk_email:()=>uI,mpython_blynk_get_timers:()=>rI,mpython_blynk_on_connected:()=>nI,mpython_blynk_on_disconnected:()=>iI,mpython_blynk_run:()=>_I,mpython_blynk_sensor_data_to_app:()=>lI,mpython_blynk_set_property:()=>aI,mpython_blynk_setup:()=>TI,mpython_blynk_stop_timers:()=>pI,mpython_blynk_sync_virtual:()=>eI,mpython_blynk_terminal_widget_vpin:()=>tI,mpython_blynktimer:()=>dI,mpython_blynktimer_run:()=>sI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>MI,cc_g1_read_bat:()=>hI,cc_g1_read_joystick:()=>mI,cc_g1_read_key:()=>EI,cc_g1_turnoff:()=>OI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>DI,ce_go_get_led_bright:()=>CI,ce_go_get_led_state:()=>SI,ce_go_hall_attachInterrupt:()=>fI,ce_go_hall_data:()=>PI,ce_go_hall_initialize:()=>FI,ce_go_led_bright:()=>gI,ce_go_led_brightness:()=>AI,ce_go_light_number:()=>cI,ce_go_pin_light:()=>yI,ce_go_pin_near:()=>vI,ce_go_pin_near_line:()=>YI,ce_go_pin_near_state_change:()=>XI,ce_go_stepper_keep:()=>LI,ce_go_stepper_stop:()=>NI,educore_car:()=>bI,educore_car_pin_near:()=>UI,educore_car_pin_near_line:()=>GI,educore_car_stepper_keep:()=>VI,educore_car_stepper_stop:()=>BI,sensor_mixgome_eulerangles:()=>xI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>CT,communicate_bluetooth_connect:()=>NT,communicate_bluetooth_disconnect:()=>DT,communicate_bluetooth_handle:()=>vT,communicate_bluetooth_is_connected:()=>FT,communicate_bluetooth_mac:()=>LT,communicate_bluetooth_peripheral_init:()=>ST,communicate_bluetooth_recv:()=>PT,communicate_bluetooth_recv_only:()=>YT,communicate_bluetooth_scan:()=>AT,communicate_bluetooth_send:()=>fT,communicate_espnow_init:()=>XT,communicate_espnow_init_new:()=>xT,communicate_i2c_available:()=>_T,communicate_i2c_init:()=>WI,communicate_i2c_master_read:()=>sT,communicate_i2c_onboard:()=>HI,communicate_i2c_read:()=>KI,communicate_i2c_scan:()=>QI,communicate_i2c_write:()=>JI,communicate_ir_recv_init:()=>IT,communicate_ir_send_init:()=>ET,communicate_ow_init:()=>pT,communicate_ow_read:()=>uT,communicate_ow_reset:()=>lT,communicate_ow_scan:()=>aT,communicate_ow_select:()=>dT,communicate_ow_write:()=>rT,communicate_spi_buffer:()=>jI,communicate_spi_init:()=>qI,communicate_spi_onboard:()=>kI,communicate_spi_read:()=>ZI,communicate_spi_read_output:()=>$I,communicate_spi_readinto:()=>tT,communicate_spi_readinto_output:()=>eT,communicate_spi_set:()=>zI,communicate_spi_write:()=>iT,communicate_spi_write_readinto:()=>nT,espnow_radio_channel:()=>UT,espnow_radio_channel_new:()=>HT,espnow_radio_on_off:()=>kT,espnow_radio_rec:()=>KT,espnow_radio_recv:()=>QT,espnow_radio_recv_certain_msg:()=>qT,espnow_radio_recv_certain_msg_new:()=>jT,espnow_radio_recv_msg:()=>JT,espnow_radio_recv_new:()=>zT,espnow_radio_send:()=>WT,espnow_radio_txpower:()=>wT,i2c_available:()=>OM,i2c_init:()=>_M,i2c_master_reader2:()=>EM,i2c_read:()=>oM,i2c_scan:()=>aM,i2c_slave_onreceive:()=>oT,i2c_write:()=>pM,internal_variable:()=>TT,ir_recv_timeout:()=>mT,ir_transmit_busy:()=>gT,ir_transmit_conventional_data:()=>OT,ir_transmit_raw_code:()=>cT,ir_transmit_study_code:()=>RT,ir_whether_recv:()=>hT,lora_init:()=>ZT,lora_packet:()=>$T,lora_recv:()=>eM,lora_send:()=>tM,network_espnow_info:()=>bT,network_espnow_mac:()=>yT,network_espnow_recv:()=>VT,network_espnow_recv_handle:()=>GT,network_espnow_send:()=>BT,recv_fun:()=>MT,spi_buffer:()=>dM,spi_init:()=>uM,spi_read:()=>lM,spi_read_output:()=>IM,spi_readinto:()=>TM,spi_readinto_output:()=>MM,spi_set:()=>rM,spi_write:()=>hM,spi_write_readinto:()=>mM,urequests_attribute:()=>nM,urequests_get:()=>iM,urequests_method:()=>sM});var x={};t.r(x),t.d(x,{display_animate:()=>qM,display_blink_rate:()=>WM,display_circle:()=>zM,display_color_seclet:()=>ah,display_draw_4strings:()=>BM,display_fill:()=>QM,display_get_screen_image:()=>kM,display_help:()=>ZM,display_image_size:()=>GM,display_lcd_use_i2c_init:()=>Th,display_line:()=>wM,display_line_arbitrarily:()=>HM,display_matrix_extern_bright_point:()=>PM,display_matrix_extern_bright_screen:()=>vM,display_matrix_extern_clear:()=>XM,display_matrix_extern_get_pixel:()=>FM,display_matrix_extern_get_screen_pixel:()=>YM,display_matrix_extern_image_builtins:()=>xM,display_matrix_extern_scroll_string:()=>AM,display_matrix_extern_scroll_string_delay:()=>LM,display_matrix_extern_shift:()=>fM,display_matrix_extern_show_frame_string:()=>NM,display_matrix_extern_show_frame_string_delay:()=>DM,display_matrix_extern_show_image:()=>CM,display_matrix_extern_show_image_or_string_delay:()=>SM,display_matrix_use_i2c_init:()=>gM,display_oled_drawPixel:()=>th,display_oled_showBitmap:()=>$M,display_oled_use_i2c_init:()=>Oh,display_onoff:()=>JM,display_rect:()=>UM,display_rgb_color:()=>KM,display_tm1650_power:()=>ih,display_tm1650_set_brightness:()=>_h,display_tm1650_show_dot:()=>sh,display_tm1650_show_num:()=>nh,display_tm_use_i2c_init:()=>eh,display_triangle:()=>jM,display_use_i2c_init:()=>VM,extern_oled_bright_point:()=>Fh,extern_oled_clear:()=>Ph,extern_oled_get_pixel:()=>fh,extern_oled_hvline:()=>vh,extern_oled_line:()=>Xh,extern_oled_scroll_string:()=>Sh,extern_oled_scroll_string_delay:()=>Ah,extern_oled_shape_rect:()=>Yh,extern_oled_shift:()=>Dh,extern_oled_show_frame_string:()=>Lh,extern_oled_show_frame_string_delay:()=>Nh,extern_oled_show_image:()=>Rh,extern_oled_show_image_or_string_delay:()=>Ch,extern_oled_show_image_xy:()=>ch,extern_oled_show_string:()=>gh,lcd_backlight:()=>mh,lcd_clear:()=>Eh,lcd_print_string:()=>hh,lcd_show_image_or_string_delay:()=>Mh,matrix_extern_image_arithmetic:()=>yM,matrix_extern_image_invert:()=>bM,tft_fill:()=>lh,tft_line_arbitrarily:()=>Ih,tft_scroll_string_delay:()=>rh,tft_show_frame_string_delay:()=>dh,tft_show_image_or_string_delay:()=>uh,tft_show_image_xy:()=>ph,tft_use_spi_init:()=>oh});var y={};t.r(y),t.d(y,{bitbot_display_image_create:()=>Om,display_bright_point:()=>qh,display_bright_screen:()=>jh,display_clear:()=>Zh,display_get_pixel:()=>Qh,display_get_screen_pixel:()=>zh,display_image_builtins:()=>Hh,display_image_builtins_all:()=>kh,display_image_create:()=>wh,display_scroll_string:()=>Vh,display_scroll_string_delay:()=>Bh,display_shift:()=>Jh,display_show_frame_string:()=>Gh,display_show_frame_string_delay:()=>Uh,display_show_image:()=>yh,display_show_image_or_string_delay:()=>bh,draw_pointer:()=>Hm,image_arithmetic:()=>Wh,image_invert:()=>Kh,mixbot_display_bright_screen:()=>mm,mixbot_display_get_ambientbright:()=>hm,mixbot_display_get_screen_pixel:()=>Mm,mixbot_display_image_create:()=>Tm,mixbot_display_rotate:()=>Em,mixgo_display_image_create_new:()=>em,mixgome_display_font:()=>im,mixgome_display_image_create:()=>$h,mixgomini_display_image_create:()=>tm,mpython_display_hvline:()=>dm,mpython_display_line:()=>lm,mpython_display_shape_rect:()=>rm,mpython_pbm_image:()=>Im,onboard_oled_bright_point:()=>um,onboard_oled_scroll_string_delay:()=>pm,onboard_oled_show_frame_string_delay:()=>am,onboard_oled_show_image:()=>nm,onboard_oled_show_image_or_string_delay:()=>om,onboard_oled_show_image_xy:()=>sm,onboard_oled_show_string:()=>_m,onboard_tft_bright_point:()=>Ym,onboard_tft_bright_screen:()=>xm,onboard_tft_clear:()=>vm,onboard_tft_clock_clear:()=>Um,onboard_tft_clock_draw:()=>Gm,onboard_tft_clock_get_rtctime:()=>Vm,onboard_tft_clock_init:()=>bm,onboard_tft_clock_set_time:()=>Bm,onboard_tft_display_hvline:()=>Dm,onboard_tft_display_line:()=>fm,onboard_tft_display_shape_circle:()=>wm,onboard_tft_display_shape_rect:()=>Nm,onboard_tft_fill:()=>ym,onboard_tft_get_pixel:()=>Pm,onboard_tft_get_screen_pixel:()=>Xm,onboard_tft_scroll_string:()=>Cm,onboard_tft_scroll_string_delay:()=>Sm,onboard_tft_shift:()=>Fm,onboard_tft_show_frame_string:()=>Am,onboard_tft_show_frame_string_delay:()=>Lm,onboard_tft_show_image:()=>Rm,onboard_tft_show_image_or_string_delay:()=>gm,onboard_tft_show_image_xy:()=>cm});var b={};t.r(b),t.d(b,{factory_block:()=>tE,factory_block_return:()=>eE,factory_block_return_with_textarea:()=>nE,factory_block_with_textarea:()=>iE,factory_callMethod_noreturn:()=>Zm,factory_callMethod_return:()=>$m,factory_create_with_container:()=>Qm,factory_create_with_item:()=>qm,factory_declare:()=>jm,factory_from_import:()=>Wm,factory_function_noreturn:()=>Jm,factory_function_return:()=>zm,factory_import:()=>Km,folding_block:()=>sE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>LE,inout_analog_atten:()=>TE,inout_analog_read:()=>IE,inout_analog_read_init:()=>RE,inout_analog_write:()=>rE,inout_analog_write_init:()=>OE,inout_analog_write_set:()=>dE,inout_analog_write_set_freq:()=>CE,inout_digital_init:()=>mE,inout_digital_read:()=>aE,inout_digital_write:()=>pE,inout_highlow:()=>oE,inout_pinMode:()=>gE,inout_pin_attachInterrupt:()=>hE,inout_pin_pressed:()=>ME,inout_pin_pressed_init:()=>cE,inout_pwm_analog_write:()=>uE,inout_pwm_analog_write_init:()=>EE,inout_pwm_analog_write_set_freq:()=>lE,pin_pressed:()=>AE,pin_pressed_init:()=>SE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>zE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>qE,IOT_EMQX_PING:()=>JE,IOT_FORMATTING:()=>WE,IOT_FORMAT_STRING:()=>KE,IOT_MIXIO_NTP:()=>QE,IOT_MIXIO_PUBLISH:()=>VE,IOT_MIXIO_SUBSCRIBE:()=>BE,iot_checkonenet:()=>oO,iot_client_onboard:()=>ZE,iot_create_with_item:()=>yE,iot_http_client:()=>$E,iot_http_data:()=>tO,iot_mixio_check:()=>wE,iot_mixio_connect:()=>bE,iot_mixio_connect_only:()=>UE,iot_mixio_disconnect:()=>GE,iot_mixio_format_msg:()=>kE,iot_mixio_format_topic:()=>HE,iot_mixly_key:()=>jE,iot_mqtt_client:()=>eO,iot_mqtt_data:()=>iO,iot_onenet_check:()=>PE,iot_onenet_connect:()=>fE,iot_onenet_disconnect:()=>FE,iot_onenet_publish:()=>vE,iot_onenet_publish_dict:()=>YE,iot_onenetconnect:()=>sO,iot_onenetdisconnect:()=>_O,iot_publish:()=>pO,iot_publish_container:()=>XE,iot_publish_item:()=>xE,iot_wifi_connect:()=>DE,iot_wificonnect:()=>nO});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>GO,educore_mqtt_connect_success:()=>kO,educore_mqtt_subscribe_message:()=>UO,educore_mqtt_topic_publish:()=>HO,educore_mqtt_topic_subscribe:()=>wO,educore_wifi_connect:()=>BO,network_ap_connect:()=>EO,network_connect:()=>IO,network_get_connect:()=>MO,network_get_wifi:()=>mO,network_init:()=>uO,network_is_active:()=>dO,network_open:()=>rO,network_scan:()=>lO,network_server:()=>OO,network_socket_accept:()=>SO,network_socket_bind:()=>cO,network_socket_close:()=>fO,network_socket_connect:()=>gO,network_socket_init:()=>RO,network_socket_listen:()=>CO,network_socket_receive:()=>AO,network_socket_receive_from:()=>NO,network_socket_send:()=>LO,network_socket_send_to:()=>DO,network_stop:()=>hO,network_wifi_connect:()=>TO,ntptime_address:()=>XO,ntptime_time:()=>vO,requests_attribute:()=>PO,requests_attribute2:()=>VO,requests_get:()=>FO,requests_get2:()=>yO,requests_method:()=>YO,requests_post:()=>bO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>MR,CI130X_GET_THE_RECOGNIZED_CMD:()=>TR,CI130X_GET_WHETHER_IDENTIFY:()=>IR,CI130X_IDENTIFY_AND_SAVE:()=>lR,CI130X_SET_SYSTEM_CMD:()=>hR,HCSR04:()=>ic,PS2_Button:()=>oc,PS2_Buttons:()=>ac,PS2_Buttons_new:()=>lc,PS2_State:()=>pc,PS2_init:()=>nc,PS2_init_new:()=>rc,PS2_stk:()=>uc,PS2_stk_new:()=>Ic,PS2_vibration:()=>_c,PS2_vibration_new:()=>dc,camera_sensor_init:()=>wc,camera_sensor_result:()=>Hc,educore_body_sensor:()=>Yc,educore_button_sensor_extern:()=>yc,educore_camera_sensor:()=>Uc,educore_infrared_sensor:()=>xc,educore_soilhum_sensor:()=>vc,educore_temp_sensor:()=>Gc,educore_temphum_sensor:()=>Xc,educore_ultrasonic_sensor:()=>Vc,esp32_s2_weather_init:()=>ZR,esp32_s2_weather_rain:()=>tc,esp32_s2_weather_wd:()=>$R,esp32_s2_weather_ws:()=>ec,extern_rfid_read:()=>VR,extern_rfid_readcontent:()=>GR,extern_rfid_readid:()=>BR,extern_rfid_status:()=>HR,extern_rfid_write:()=>UR,extern_rfid_write_return:()=>wR,gnss_get_data:()=>mc,gnss_have_data:()=>hc,interaction_whether_to_interaction:()=>rR,interaction_whether_to_interaction_SANT:()=>dR,mixbot_sensor_extern_get_addr:()=>Sc,mixbot_sensor_extern_set_addr:()=>Ac,pm25_get_data:()=>Mc,radar_set_DETECTION_THRESHOLD:()=>aR,radar_set_DETECTION_THRESHOLD_SANT:()=>uR,robot_button_extern_get_value:()=>Ec,robot_color_extern_get_value:()=>Cc,robot_infrared_extern_get_value:()=>Rc,robot_infrared_extern_grey_get_value:()=>cc,robot_potentiometer_extern_get_value:()=>gc,robot_sonar_extern_get_value:()=>Lc,robot_sonar_extern_led:()=>Nc,robot_touch_extern_get_value:()=>Oc,sensor_APDS9960_extern:()=>ER,sensor_DS18X20:()=>_R,sensor_LTR308_extern:()=>OR,sensor_LTR390UV_extern:()=>gR,sensor_MAX30102_extern:()=>mR,sensor_QMC5883L_extern:()=>DR,sensor_VL530LX_extern:()=>CR,sensor_adxl345_get_acceleration:()=>jO,sensor_aht11_extern:()=>AR,sensor_bmp:()=>nR,sensor_compass_reset:()=>yR,sensor_dht11:()=>$O,sensor_hp203_extern:()=>LR,sensor_light_level:()=>ZO,sensor_lm35:()=>oR,sensor_ltr381_extern:()=>RR,sensor_mixgo_extern_button_attachInterrupt:()=>qO,sensor_mixgo_extern_button_get_presses:()=>QO,sensor_mixgo_extern_button_is_pressed:()=>KO,sensor_mixgo_extern_button_was_pressed:()=>JO,sensor_mixgo_extern_light:()=>tR,sensor_mixgo_extern_pin_near:()=>iR,sensor_mixgo_extern_sound:()=>eR,sensor_mixgoce_hot_wheel_degrees:()=>jR,sensor_mixgoce_hot_wheel_is_touched:()=>zR,sensor_mpu9250_attachGestureInterrupt:()=>zO,sensor_mpu9250_calibrate_compass:()=>vR,sensor_mpu9250_field_strength:()=>xR,sensor_mpu9250_gesture:()=>fR,sensor_mpu9250_get_acceleration:()=>FR,sensor_mpu9250_get_gyro:()=>YR,sensor_mpu9250_get_magnetic:()=>PR,sensor_mpu9250_temperature:()=>XR,sensor_read_humiture:()=>bc,sensor_sht:()=>sR,sensor_shtc3_extern:()=>SR,sensor_spl06_001_extern:()=>NR,sensor_ucs12071_extern:()=>cR,sensor_use_i2c_init:()=>pR,sensor_use_spi_init:()=>bR,sensor_use_uart_init:()=>Tc,sensor_weather_solo_init:()=>Dc,sensor_weather_solo_rain:()=>Pc,sensor_weather_solo_wd:()=>fc,sensor_weather_solo_ws:()=>Fc,sensor_weigh_init:()=>kc,ultrasonic_sensor_read_distance:()=>Bc,weather_data:()=>kR,weather_have_data:()=>WR,weather_set_label:()=>JR,weather_set_label_container:()=>QR,weather_set_label_item:()=>qR,weather_uart_mixio:()=>KR,weigh_sensor_get_weight:()=>Wc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>BC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>VC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>bC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>yC,CI130X_SET_SYSTEM_CMD_SANT:()=>GC,HCSR04:()=>ag,RTC_set_date:()=>pg,RTC_set_time:()=>og,bitbot_als_num:()=>MC,dht11:()=>gC,educore_button_sensor:()=>PC,educore_button_was_pressed:()=>YC,educore_gyroscope_sensor:()=>DC,educore_gyroscope_sensor_read:()=>fC,educore_gyroscope_sensor_shake:()=>FC,educore_light_sensor:()=>NC,educore_rfid_sensor:()=>vC,educore_rfid_sensor_scan:()=>XC,educore_rfid_sensor_scan_data:()=>xC,educore_voice_sensor:()=>AC,number1:()=>rg,number2:()=>dg,number3:()=>lg,number4:()=>Ig,number5:()=>Tg,number6:()=>Mg,number7:()=>hg,onboard_RTC_get_time:()=>Sg,onboard_RTC_get_time_str:()=>Fg,onboard_RTC_get_timestamp:()=>Ag,onboard_RTC_set_datetime:()=>Dg,onboard_RTC_settime_string:()=>Ng,onboard_RTC_timestamp_totuple:()=>Lg,rfid_readcontent:()=>bg,rfid_readid:()=>yg,rfid_write:()=>Vg,rfid_write_return:()=>Bg,sensor_LTR308:()=>Pg,sensor_aht11:()=>vg,sensor_bitbot_ALS:()=>TC,sensor_button_get_presses:()=>EC,sensor_button_is_pressed:()=>hC,sensor_button_was_pressed:()=>mC,sensor_distance_hrsc04:()=>_g,sensor_eulerangles:()=>Ug,sensor_field_strength:()=>CC,sensor_get_acceleration:()=>Gg,sensor_get_temperature:()=>Xg,sensor_hp203:()=>xg,sensor_light:()=>cC,sensor_mixbot_get_gyro:()=>IC,sensor_mixbot_patrol_calibrate:()=>rC,sensor_mixbot_patrol_value:()=>dC,sensor_mixbot_temperature:()=>lC,sensor_mixgo_LTR308:()=>gg,sensor_mixgo_button_attachInterrupt:()=>zc,sensor_mixgo_button_get_presses:()=>qc,sensor_mixgo_button_is_pressed:()=>Jc,sensor_mixgo_button_was_pressed:()=>Qc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Zg,sensor_mixgo_cc_mmc5603_get_angle:()=>jg,sensor_mixgo_cc_mmc5603_get_magnetic:()=>zg,sensor_mixgo_light:()=>ug,sensor_mixgo_nova_LTR308:()=>cg,sensor_mixgo_nova_pin_near:()=>Rg,sensor_mixgo_pin_near:()=>Og,sensor_mixgo_pin_near_double:()=>Eg,sensor_mixgo_pin_near_single:()=>mg,sensor_mixgo_pin_pressed:()=>eg,sensor_mixgo_sant_color:()=>Cg,sensor_mixgo_touch_slide:()=>sg,sensor_mixgocar42_button_attachInterrupt:()=>tg,sensor_mixgocar42_button_get_presses:()=>$c,sensor_mixgocar42_button_is_pressed:()=>jc,sensor_mixgocar42_button_was_pressed:()=>Zc,sensor_mixgocar_battery_left:()=>uC,sensor_mixgocar_pin_near:()=>pC,sensor_mixgocar_pin_near_line:()=>oC,sensor_mixgocar_pin_near_state_change:()=>aC,sensor_mixgoce_pin_pressed:()=>ig,sensor_mixgoce_temperature:()=>tC,sensor_mixgome_temperature:()=>$g,sensor_mpython_pin_pressed:()=>ng,sensor_mpython_qmi8658_get_gyro:()=>eC,sensor_mpython_qmi8658_temperature:()=>iC,sensor_onboard_compass_reset:()=>qg,sensor_onboard_mpu9250_calibrate_compass:()=>Kg,sensor_onboard_mpu9250_field_strength:()=>Qg,sensor_onboard_mpu9250_gesture:()=>wg,sensor_onboard_mpu9250_get_acceleration:()=>Hg,sensor_onboard_mpu9250_get_gyro:()=>Wg,sensor_onboard_mpu9250_get_magnetic:()=>kg,sensor_onboard_mpu9250_temperature:()=>Jg,sensor_pin_near:()=>RC,sensor_pin_pressed:()=>OC,sensor_read:()=>LC,sensor_rm_acc:()=>_C,sensor_rm_battery_left:()=>sC,sensor_rm_pin_near_double:()=>nC,sensor_rtc_init:()=>fg,sensor_sound:()=>Yg,sensor_temperature:()=>SC});var H={};t.r(H),t.d(H,{serial_any:()=>QC,serial_begin:()=>$C,serial_print:()=>HC,serial_print_byte:()=>wC,serial_print_hex:()=>WC,serial_println:()=>kC,serial_read_from_ai:()=>aS,serial_readline:()=>qC,serial_readstr:()=>JC,serial_readstr_until:()=>zC,serial_receive_data_event:()=>KC,serial_send_to_ai:()=>pS,serial_softserial:()=>ZC,serial_softserial_new:()=>jC,system_input:()=>tS,system_print:()=>eS,system_print_container:()=>_S,system_print_end:()=>nS,system_print_inline:()=>iS,system_print_item:()=>oS,system_print_many:()=>sS});var k={};t.r(k),t.d(k,{Panic_with_status_code:()=>lS,Timer_init:()=>AS,base_delay:()=>DS,controls_delay:()=>dS,controls_delay_new:()=>rS,controls_millis:()=>TS,controls_uname:()=>hS,raw_block:()=>MS,reset:()=>IS,system_bitbot_shutdown:()=>SS,system_machine_reset:()=>CS,system_ticks_diff:()=>OS,system_timer:()=>ES,system_timer_init:()=>RS,system_wdt_feed:()=>gS,system_wdt_init:()=>cS,time_ticks_diff:()=>NS,timer:()=>mS,timer2:()=>LS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>wS,Air_now_content:()=>xS,Geo_moon_content:()=>kS,Geo_sun_content:()=>HS,Life_suggestion_content:()=>bS,Location_search_content:()=>BS,Tide_daily_content:()=>VS,WEATHER_DAILY:()=>PS,WEATHER_HOUR:()=>YS,WEATHER_NOW:()=>FS,Weather_alarm_content:()=>yS,Weather_daily:()=>GS,Weather_daily_content:()=>US,Weather_now:()=>vS,Weather_now_content:()=>XS});var K={};t.r(K),t.d(K,{PIN_init:()=>wA,actuator_extern_get_led_bright:()=>rA,actuator_extern_get_led_state:()=>dA,actuator_extern_led_bright:()=>uA,actuator_extern_led_brightness:()=>lA,actuator_ms32006_dcmotor:()=>ZS,actuator_ms32006_init:()=>jS,actuator_ms32006_stepper:()=>$S,actuator_neopixel_init:()=>IA,actuator_neopixel_rgb:()=>hA,actuator_neopixel_rgb_all:()=>TA,actuator_neopixel_write:()=>MA,actuator_use_uart_init:()=>mA,esp32_music_get_tempo_extern:()=>_A,esp32_music_pitch:()=>eA,esp32_music_pitch_init:()=>tA,esp32_music_pitch_with_time:()=>iA,esp32_music_play_list:()=>oA,esp32_music_reset_extern:()=>pA,esp32_music_set_tempo_extern:()=>sA,esp32_music_stop:()=>nA,mixbot_actuator_extern_get_addr:()=>GA,mixbot_actuator_extern_set_addr:()=>UA,mixbot_addr_extern:()=>NA,parrot_PIN_init:()=>KA,parrot_move_speed:()=>JA,pin_led_bright:()=>HA,player_play_music:()=>gA,player_set_mode:()=>cA,player_set_play:()=>OA,player_set_volume:()=>RA,player_whether_stop:()=>EA,robot_led_extern:()=>PA,robot_led_extern_get_value:()=>YA,robot_motor_extern:()=>DA,robot_motor_extern_get_speed:()=>fA,robot_servo_extern_absolute_run:()=>yA,robot_servo_extern_get_status:()=>vA,robot_servo_extern_relative_continue:()=>BA,robot_servo_extern_relative_origin:()=>bA,robot_servo_extern_relative_run:()=>VA,robot_servo_extern_stop:()=>xA,robot_servo_extern_stop_mode:()=>XA,robot_traffic_light_extern:()=>FA,servo_PIN_init:()=>kA,servo_get_angle:()=>qS,servo_get_speed:()=>zS,servo_init:()=>WS,servo_move:()=>aA,servo_move_angle:()=>WA,servo_set_angle:()=>JS,servo_set_speed:()=>QS,servo_speed_360:()=>KS,syn6288_builtin_voice:()=>AA,syn6288_get_voice:()=>SA,syn6288_set_voice:()=>CA,syn6288_tts_play:()=>LA});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>cL,actuator_dc_motor_stop:()=>gL,actuator_get_led_bright:()=>sL,actuator_get_led_state:()=>_L,actuator_led_bright:()=>nL,actuator_led_brightness:()=>oL,actuator_mixbot_buzzer_on_off:()=>NL,actuator_mixgo_nova_mic_get:()=>YL,actuator_mixgo_nova_mic_set:()=>PL,actuator_mixgo_nova_onboard_music_pitch:()=>VL,actuator_mixgo_nova_onboard_music_stop:()=>BL,actuator_mixgo_nova_play_audio:()=>yL,actuator_mixgo_nova_play_online_audio:()=>bL,actuator_mixgo_nova_record_audio:()=>xL,actuator_mixgo_nova_voice_get:()=>XL,actuator_mixgo_nova_voice_set:()=>vL,actuator_mixgo_zero_led_color:()=>pL,actuator_onboard_neopixel_rgb:()=>TL,actuator_onboard_neopixel_rgb_all:()=>ML,actuator_onboard_neopixel_rgb_show_all_chase:()=>hL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>mL,actuator_onboard_neopixel_write:()=>IL,actuator_stepper_keep:()=>OL,actuator_stepper_stop:()=>RL,analog_ble_keyboard_init:()=>zL,analog_ble_keyboard_input:()=>$L,analog_ble_keyboard_mouse_init:()=>pN,analog_ble_keyboard_mouse_input:()=>dN,analog_ble_keyboard_mouse_send_battery:()=>rN,analog_ble_keyboard_mouse_str:()=>lN,analog_ble_keyboard_send_battery:()=>eN,analog_ble_keyboard_str:()=>tN,analog_ble_mouse_init:()=>iN,analog_ble_mouse_input:()=>_N,analog_ble_mouse_keyboard_input:()=>IN,analog_ble_mouse_send_battery:()=>oN,analog_keyboard_input:()=>HL,analog_keyboard_str:()=>QL,analog_mouse_input:()=>KL,bitbot_motor:()=>FL,bitbot_move:()=>DL,bitbot_stop:()=>fL,ble_keyboard_connect:()=>ZL,ble_keyboard_get_mac:()=>jL,ble_keyboard_mouse_connect:()=>uN,ble_keyboard_mouse_get_mac:()=>aN,ble_mouse_connect:()=>sN,ble_mouse_get_mac:()=>nN,cc_number:()=>aL,educore_ble_keyboard_input:()=>CN,educore_ble_sensor_connected:()=>gN,educore_ble_sensor_init:()=>cN,educore_buzzer:()=>TN,educore_buzzer_play_tone:()=>MN,educore_buzzer_play_tone_time:()=>hN,educore_buzzer_stop:()=>mN,educore_neopixel_clear:()=>RN,educore_neopixel_rgb:()=>ON,educore_rgb_light:()=>EN,esp32_music_get_tempo:()=>qA,esp32_music_reset:()=>tL,esp32_music_set_tempo:()=>QA,esp32_onboard_music_pitch:()=>zA,esp32_onboard_music_pitch_with_time:()=>jA,esp32_onboard_music_play_list:()=>$A,esp32_onboard_music_stop:()=>ZA,general_key:()=>WL,general_key_tuple:()=>qL,get_power_output:()=>UL,ledswitch:()=>iL,mixbot_motor:()=>LL,mixbot_motor_status:()=>CL,mixbot_move:()=>SL,mixbot_stop:()=>AL,mouse_key:()=>JL,number:()=>eL,rm_actuator_get_led_bright:()=>rL,rm_actuator_get_led_state:()=>dL,rm_actuator_led_bright:()=>uL,rm_actuator_led_brightness:()=>lL,rm_motor:()=>EL,set_all_power_output:()=>wL,set_power_output:()=>GL,special_key:()=>kL});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>iD,ai_sensor_ailocal_class:()=>WN,ai_sensor_ailocal_class_result:()=>KN,ai_sensor_ailocal_train:()=>kN,ai_sensor_asr_recognize:()=>jN,ai_sensor_audio_play:()=>QN,ai_sensor_audio_record:()=>JN,ai_sensor_barcode:()=>FN,ai_sensor_circle:()=>yN,ai_sensor_classifier_faces:()=>eD,ai_sensor_color:()=>GN,ai_sensor_color_chases:()=>HN,ai_sensor_color_chases_result:()=>wN,ai_sensor_config:()=>LN,ai_sensor_face:()=>tD,ai_sensor_find_20objects:()=>nD,ai_sensor_find_barcodes:()=>PN,ai_sensor_find_circles:()=>bN,ai_sensor_find_colors:()=>UN,ai_sensor_find_licenseplates:()=>$N,ai_sensor_find_lines:()=>xN,ai_sensor_find_qrcodes:()=>fN,ai_sensor_find_rects:()=>BN,ai_sensor_find_tags:()=>vN,ai_sensor_licenseplate:()=>ZN,ai_sensor_line:()=>XN,ai_sensor_qrcode:()=>DN,ai_sensor_qrcode_lite:()=>AN,ai_sensor_rect:()=>VN,ai_sensor_rgb:()=>NN,ai_sensor_tag:()=>YN,ai_sensor_use_uart_init:()=>SN,ai_sensor_yolo_recognize:()=>qN,ai_sensor_yolo_recognize_result:()=>zN});var q={};t.r(q),t.d(q,{MICROPYTHON_AI_Speech_asr:()=>oD,MICROPYTHON_AI_Speech_unit:()=>_D,MICROPYTHON_AI_client:()=>sD});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>ED,mpython_blynk_app_notify:()=>ID,mpython_blynk_email:()=>OD,mpython_blynk_get_timers:()=>MD,mpython_blynk_on_connected:()=>rD,mpython_blynk_on_disconnected:()=>uD,mpython_blynk_run:()=>lD,mpython_blynk_sensor_data_to_app:()=>mD,mpython_blynk_set_property:()=>RD,mpython_blynk_setup:()=>cD,mpython_blynk_stop_timers:()=>TD,mpython_blynk_sync_virtual:()=>aD,mpython_blynk_terminal_widget_vpin:()=>pD,mpython_blynktimer:()=>hD,mpython_blynktimer_run:()=>dD});var j={};t.r(j),t.d(j,{cc_g1_read_bat:()=>gD,cc_g1_read_joystick:()=>CD,cc_g1_read_key:()=>SD,cc_g1_turnoff:()=>AD});var Z={};t.r(Z),t.d(Z,{ce_go_dc_motor:()=>vD,ce_go_get_led_bright:()=>DD,ce_go_get_led_state:()=>fD,ce_go_hall_attachInterrupt:()=>XD,ce_go_hall_data:()=>yD,ce_go_hall_initialize:()=>xD,ce_go_led_bright:()=>ND,ce_go_led_brightness:()=>FD,ce_go_light_number:()=>LD,ce_go_pin_light:()=>UD,ce_go_pin_near:()=>VD,ce_go_pin_near_line:()=>bD,ce_go_pin_near_state_change:()=>BD,ce_go_stepper_keep:()=>PD,ce_go_stepper_stop:()=>YD,educore_car:()=>wD,educore_car_pin_near:()=>KD,educore_car_pin_near_line:()=>WD,educore_car_stepper_keep:()=>HD,educore_car_stepper_stop:()=>kD,sensor_mixgome_eulerangles:()=>GD});var $={};t.r($),t.d($,{communicate_bluetooth_central_init:()=>Df,communicate_bluetooth_connect:()=>Pf,communicate_bluetooth_disconnect:()=>Yf,communicate_bluetooth_handle:()=>Vf,communicate_bluetooth_is_connected:()=>Xf,communicate_bluetooth_mac:()=>vf,communicate_bluetooth_peripheral_init:()=>ff,communicate_bluetooth_recv:()=>bf,communicate_bluetooth_recv_only:()=>yf,communicate_bluetooth_scan:()=>Ff,communicate_bluetooth_send:()=>xf,communicate_espnow_init:()=>Bf,communicate_espnow_init_new:()=>Gf,communicate_i2c_available:()=>tf,communicate_i2c_init:()=>qD,communicate_i2c_master_read:()=>$D,communicate_i2c_onboard:()=>JD,communicate_i2c_read:()=>zD,communicate_i2c_scan:()=>ZD,communicate_i2c_write:()=>jD,communicate_ir_recv_init:()=>Ef,communicate_ir_send_init:()=>Cf,communicate_ow_init:()=>lf,communicate_ow_read:()=>Mf,communicate_ow_reset:()=>Tf,communicate_ow_scan:()=>If,communicate_ow_select:()=>mf,communicate_ow_write:()=>hf,communicate_spi_buffer:()=>_f,communicate_spi_init:()=>nf,communicate_spi_onboard:()=>QD,communicate_spi_read:()=>of,communicate_spi_read_output:()=>pf,communicate_spi_readinto:()=>af,communicate_spi_readinto_output:()=>uf,communicate_spi_set:()=>sf,communicate_spi_write:()=>rf,communicate_spi_write_readinto:()=>df,espnow_radio_channel:()=>Kf,espnow_radio_channel_new:()=>Qf,espnow_radio_on_off:()=>qf,espnow_radio_rec:()=>jf,espnow_radio_recv:()=>$f,espnow_radio_recv_certain_msg:()=>tF,espnow_radio_recv_certain_msg_new:()=>iF,espnow_radio_recv_msg:()=>Zf,espnow_radio_recv_new:()=>eF,espnow_radio_send:()=>zf,espnow_radio_txpower:()=>Jf,i2c_slave_onreceive:()=>ef,internal_variable:()=>Of,ir_recv_timeout:()=>gf,ir_transmit_busy:()=>Nf,ir_transmit_conventional_data:()=>Sf,ir_transmit_raw_code:()=>Lf,ir_transmit_study_code:()=>Af,ir_whether_recv:()=>cf,lora_init:()=>nF,lora_packet:()=>sF,lora_recv:()=>oF,lora_send:()=>_F,network_espnow_info:()=>wf,network_espnow_mac:()=>Uf,network_espnow_recv:()=>Hf,network_espnow_recv_handle:()=>Wf,network_espnow_send:()=>kf,recv_fun:()=>Rf,urequests_attribute:()=>aF,urequests_get:()=>pF,urequests_method:()=>uF});var tt={};t.r(tt),t.d(tt,{display_animate:()=>XF,display_circle:()=>xF,display_color_seclet:()=>KF,display_draw_4strings:()=>NF,display_fill:()=>vF,display_lcd_use_i2c_init:()=>ZF,display_line:()=>FF,display_line_arbitrarily:()=>DF,display_matrix_extern_bright_point:()=>RF,display_matrix_extern_bright_screen:()=>gF,display_matrix_extern_clear:()=>mF,display_matrix_extern_get_pixel:()=>OF,display_matrix_extern_get_screen_pixel:()=>cF,display_matrix_extern_image_builtins:()=>CF,display_matrix_extern_scroll_string:()=>MF,display_matrix_extern_scroll_string_delay:()=>hF,display_matrix_extern_shift:()=>EF,display_matrix_extern_show_frame_string:()=>IF,display_matrix_extern_show_frame_string_delay:()=>TF,display_matrix_extern_show_image:()=>dF,display_matrix_extern_show_image_or_string_delay:()=>lF,display_matrix_use_i2c_init:()=>rF,display_oled_drawPixel:()=>VF,display_oled_showBitmap:()=>bF,display_oled_use_i2c_init:()=>nP,display_onoff:()=>PF,display_rect:()=>fF,display_tm1650_power:()=>GF,display_tm1650_set_brightness:()=>HF,display_tm1650_show_dot:()=>wF,display_tm1650_show_num:()=>UF,display_tm_use_i2c_init:()=>BF,display_triangle:()=>yF,display_use_i2c_init:()=>LF,extern_oled_bright_point:()=>MP,extern_oled_clear:()=>lP,extern_oled_get_pixel:()=>TP,extern_oled_hvline:()=>mP,extern_oled_line:()=>EP,extern_oled_scroll_string:()=>rP,extern_oled_scroll_string_delay:()=>dP,extern_oled_shape_rect:()=>hP,extern_oled_shift:()=>IP,extern_oled_show_frame_string:()=>aP,extern_oled_show_frame_string_delay:()=>uP,extern_oled_show_image:()=>sP,extern_oled_show_image_or_string_delay:()=>pP,extern_oled_show_image_xy:()=>_P,extern_oled_show_string:()=>oP,image_shift:()=>YF,lcd_backlight:()=>eP,lcd_clear:()=>iP,lcd_print_string:()=>tP,lcd_show_image_or_string_delay:()=>$F,matrix_extern_image_arithmetic:()=>SF,matrix_extern_image_invert:()=>AF,tft_fill:()=>zF,tft_line_arbitrarily:()=>jF,tft_scroll_string_delay:()=>qF,tft_show_frame_string_delay:()=>QF,tft_show_image_or_string_delay:()=>JF,tft_show_image_xy:()=>WF,tft_use_spi_init:()=>kF});var et={};t.r(et),t.d(et,{bitbot_display_image_create:()=>iY,display_bright_point:()=>vP,display_bright_screen:()=>xP,display_clear:()=>DP,display_get_pixel:()=>YP,display_get_screen_pixel:()=>XP,display_image_builtins:()=>AP,display_image_builtins_all:()=>LP,display_image_create:()=>NP,display_scroll_string:()=>CP,display_scroll_string_delay:()=>SP,display_shift:()=>PP,display_show_frame_string:()=>cP,display_show_frame_string_delay:()=>gP,display_show_image:()=>OP,display_show_image_or_string_delay:()=>RP,draw_pointer:()=>LY,image_arithmetic:()=>fP,image_invert:()=>FP,mixbot_display_bright_screen:()=>tY,mixbot_display_get_ambientbright:()=>$P,mixbot_display_get_screen_pixel:()=>ZP,mixbot_display_image_create:()=>jP,mixbot_display_rotate:()=>eY,mixgo_display_image_create_new:()=>BP,mixgome_display_font:()=>VP,mixgome_display_image_create:()=>yP,mixgomini_display_image_create:()=>bP,mpython_display_hvline:()=>qP,mpython_display_line:()=>zP,mpython_display_shape_rect:()=>QP,mpython_pbm_image:()=>GP,onboard_oled_bright_point:()=>JP,onboard_oled_scroll_string_delay:()=>KP,onboard_oled_show_frame_string_delay:()=>WP,onboard_oled_show_image:()=>UP,onboard_oled_show_image_or_string_delay:()=>kP,onboard_oled_show_image_xy:()=>wP,onboard_oled_show_string:()=>HP,onboard_tft_bright_point:()=>hY,onboard_tft_bright_screen:()=>EY,onboard_tft_clear:()=>IY,onboard_tft_clock_clear:()=>SY,onboard_tft_clock_draw:()=>CY,onboard_tft_clock_get_rtctime:()=>cY,onboard_tft_clock_init:()=>RY,onboard_tft_clock_set_time:()=>gY,onboard_tft_display_hvline:()=>dY,onboard_tft_display_line:()=>lY,onboard_tft_display_shape_circle:()=>AY,onboard_tft_display_shape_rect:()=>rY,onboard_tft_fill:()=>OY,onboard_tft_get_pixel:()=>MY,onboard_tft_get_screen_pixel:()=>mY,onboard_tft_scroll_string:()=>aY,onboard_tft_scroll_string_delay:()=>uY,onboard_tft_shift:()=>TY,onboard_tft_show_frame_string:()=>oY,onboard_tft_show_frame_string_delay:()=>pY,onboard_tft_show_image:()=>nY,onboard_tft_show_image_or_string_delay:()=>_Y,onboard_tft_show_image_xy:()=>sY});var it={};t.r(it),t.d(it,{factory_block:()=>XY,factory_block_return:()=>xY,factory_block_return_with_textarea:()=>bY,factory_block_with_textarea:()=>yY,factory_callMethod_noreturn:()=>YY,factory_callMethod_return:()=>vY,factory_declare:()=>PY,factory_from_import:()=>NY,factory_function_noreturn:()=>fY,factory_function_return:()=>FY,factory_import:()=>DY,folding_block:()=>VY});var nt={};t.r(nt),t.d(nt,{inout_analog_atten:()=>$Y,inout_analog_read:()=>KY,inout_analog_read_init:()=>ZY,inout_analog_write:()=>HY,inout_analog_write_init:()=>jY,inout_analog_write_set:()=>kY,inout_digital_init:()=>qY,inout_digital_read:()=>UY,inout_digital_write:()=>GY,inout_highlow:()=>BY,inout_pin_attachInterrupt:()=>QY,inout_pin_pressed:()=>JY,inout_pin_pressed_init:()=>tv,inout_pwm_analog_write:()=>wY,inout_pwm_analog_write_init:()=>zY,inout_pwm_analog_write_set_freq:()=>WY});var st={};t.r(st),t.d(st,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Ov,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>mv,IOT_EMQX_PING:()=>Rv,IOT_FORMATTING:()=>Mv,IOT_FORMAT_STRING:()=>hv,IOT_MIXIO_NTP:()=>cv,IOT_MIXIO_PUBLISH:()=>av,IOT_MIXIO_SUBSCRIBE:()=>uv,iot_client_onboard:()=>gv,iot_http_client:()=>Cv,iot_http_data:()=>Sv,iot_mixio_check:()=>lv,iot_mixio_connect:()=>pv,iot_mixio_connect_only:()=>dv,iot_mixio_disconnect:()=>rv,iot_mixio_format_msg:()=>Tv,iot_mixio_format_topic:()=>Iv,iot_mixly_key:()=>Ev,iot_mqtt_client:()=>Av,iot_mqtt_data:()=>Lv,iot_onenet_check:()=>_v,iot_onenet_connect:()=>iv,iot_onenet_disconnect:()=>nv,iot_onenet_publish:()=>ov,iot_onenet_publish_dict:()=>sv,iot_wifi_connect:()=>ev});var _t={};t.r(_t),t.d(_t,{educore_mqtt_connect:()=>nX,educore_mqtt_connect_success:()=>pX,educore_mqtt_subscribe_message:()=>sX,educore_mqtt_topic_publish:()=>oX,educore_mqtt_topic_subscribe:()=>_X,educore_wifi_connect:()=>iX,network_ap_connect:()=>xv,network_connect:()=>Dv,network_get_connect:()=>Fv,network_get_wifi:()=>Xv,network_init:()=>Nv,network_is_active:()=>vv,network_open:()=>Yv,network_scan:()=>yv,network_server:()=>bv,network_socket_accept:()=>wv,network_socket_bind:()=>Bv,network_socket_close:()=>Jv,network_socket_connect:()=>Gv,network_socket_init:()=>Vv,network_socket_listen:()=>Uv,network_socket_receive:()=>Hv,network_socket_receive_from:()=>Wv,network_socket_send:()=>kv,network_socket_send_to:()=>Kv,network_stop:()=>Pv,network_wifi_connect:()=>fv,ntptime_address:()=>Zv,ntptime_time:()=>jv,requests_attribute:()=>qv,requests_attribute2:()=>tX,requests_get:()=>Qv,requests_get2:()=>$v,requests_method:()=>zv,requests_post:()=>eX});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>FX,CI130X_GET_THE_RECOGNIZED_CMD:()=>fX,CI130X_GET_WHETHER_IDENTIFY:()=>DX,CI130X_IDENTIFY_AND_SAVE:()=>NX,CI130X_SET_SYSTEM_CMD:()=>PX,HCSR04:()=>px,PS2_Button:()=>rx,PS2_Buttons:()=>dx,PS2_Buttons_new:()=>Ox,PS2_State:()=>lx,PS2_init:()=>ax,PS2_init_new:()=>mx,PS2_stk:()=>Ix,PS2_stk_new:()=>Rx,PS2_vibration:()=>ux,PS2_vibration_new:()=>Ex,RTC_get_time:()=>Mx,RTC_set_date:()=>MX,RTC_set_datetime:()=>Tx,RTC_set_time:()=>TX,camera_sensor_init:()=>zx,camera_sensor_result:()=>jx,educore_body_sensor:()=>Gx,educore_button_sensor_extern:()=>kx,educore_camera_sensor:()=>qx,educore_infrared_sensor:()=>Hx,educore_soilhum_sensor:()=>Ux,educore_temp_sensor:()=>Qx,educore_temphum_sensor:()=>wx,educore_ultrasonic_sensor:()=>Kx,esp32_s2_weather_init:()=>nx,esp32_s2_weather_rain:()=>_x,esp32_s2_weather_wd:()=>sx,esp32_s2_weather_ws:()=>ox,extern_rfid_read:()=>WX,extern_rfid_readcontent:()=>JX,extern_rfid_readid:()=>KX,extern_rfid_status:()=>zX,extern_rfid_write:()=>QX,extern_rfid_write_return:()=>qX,gnss_get_data:()=>Cx,gnss_have_data:()=>Sx,interaction_whether_to_interaction:()=>AX,interaction_whether_to_interaction_SANT:()=>LX,mixbot_sensor_extern_get_addr:()=>vx,mixbot_sensor_extern_set_addr:()=>Xx,pm25_get_data:()=>gx,radar_set_DETECTION_THRESHOLD:()=>CX,radar_set_DETECTION_THRESHOLD_SANT:()=>SX,robot_button_extern_get_value:()=>Ax,robot_color_extern_get_value:()=>Fx,robot_infrared_extern_get_value:()=>Nx,robot_infrared_extern_grey_get_value:()=>Dx,robot_potentiometer_extern_get_value:()=>fx,robot_sonar_extern_get_value:()=>Px,robot_sonar_extern_led:()=>Yx,robot_touch_extern_get_value:()=>Lx,sensor_APDS9960_extern:()=>vX,sensor_DS18X20:()=>Bx,sensor_LTR308_extern:()=>XX,sensor_LTR390UV_extern:()=>BX,sensor_MAX30102_extern:()=>YX,sensor_QMC5883L_extern:()=>GX,sensor_VL530LX_extern:()=>HX,sensor_aht11_extern:()=>wX,sensor_bmp:()=>RX,sensor_dht11:()=>hx,sensor_distance_hrsc04:()=>IX,sensor_hp203_extern:()=>xX,sensor_ltr381_extern:()=>bX,sensor_mixgo_extern_button_attachInterrupt:()=>dX,sensor_mixgo_extern_button_get_presses:()=>rX,sensor_mixgo_extern_button_is_pressed:()=>aX,sensor_mixgo_extern_button_was_pressed:()=>uX,sensor_mixgo_extern_light:()=>hX,sensor_mixgo_extern_pin_near:()=>EX,sensor_mixgo_extern_sound:()=>mX,sensor_mixgoce_hot_wheel_degrees:()=>ix,sensor_mixgoce_hot_wheel_is_touched:()=>ex,sensor_mpu9250_attachGestureInterrupt:()=>lX,sensor_read_humiture:()=>Wx,sensor_rtc_init:()=>OX,sensor_sht:()=>cX,sensor_shtc3_extern:()=>UX,sensor_spl06_001_extern:()=>yX,sensor_ucs12071_extern:()=>VX,sensor_use_i2c_init:()=>gX,sensor_use_spi_init:()=>kX,sensor_use_uart_init:()=>cx,sensor_weather_solo_init:()=>xx,sensor_weather_solo_rain:()=>Vx,sensor_weather_solo_wd:()=>yx,sensor_weather_solo_ws:()=>bx,sensor_weigh_init:()=>Zx,ultrasonic_sensor_read_distance:()=>Jx,weather_data:()=>jX,weather_have_data:()=>ZX,weather_set_label:()=>tx,weather_uart_mixio:()=>$X,weigh_sensor_get_weight:()=>$x});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>jb,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>zb,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>qb,CI130X_IDENTIFY_AND_SAVE_SANT:()=>Qb,CI130X_SET_SYSTEM_CMD_SANT:()=>Zb,HCSR04:()=>ay,bitbot_als_num:()=>Db,dht11:()=>yb,educore_button_sensor:()=>Hb,educore_button_was_pressed:()=>kb,educore_gyroscope_sensor:()=>Gb,educore_gyroscope_sensor_read:()=>Ub,educore_gyroscope_sensor_shake:()=>wb,educore_light_sensor:()=>Bb,educore_rfid_sensor:()=>Wb,educore_rfid_sensor_scan:()=>Kb,educore_rfid_sensor_scan_data:()=>Jb,educore_voice_sensor:()=>bb,number1:()=>uy,number2:()=>ry,number3:()=>dy,number4:()=>ly,number5:()=>Iy,number6:()=>Ty,number7:()=>My,onboard_RTC_get_time:()=>_b,onboard_RTC_get_time_str:()=>ab,onboard_RTC_get_timestamp:()=>ob,onboard_RTC_set_datetime:()=>nb,onboard_RTC_settime_string:()=>sb,onboard_RTC_timestamp_totuple:()=>pb,rfid_readcontent:()=>Py,rfid_readid:()=>Fy,rfid_write:()=>Yy,rfid_write_return:()=>vy,sensor_LTR308:()=>Ay,sensor_adxl345_get_acceleration:()=>wy,sensor_aht11:()=>Dy,sensor_bitbot_ALS:()=>Nb,sensor_button_get_presses:()=>Pb,sensor_button_is_pressed:()=>fb,sensor_button_was_pressed:()=>Fb,sensor_compass_reset:()=>Qy,sensor_ds18x20:()=>Cy,sensor_eulerangles:()=>xy,sensor_get_acceleration:()=>Xy,sensor_get_temperature:()=>fy,sensor_hp203:()=>Ny,sensor_light:()=>xb,sensor_lm35:()=>Sy,sensor_mixbot_get_gyro:()=>Lb,sensor_mixbot_patrol_calibrate:()=>Cb,sensor_mixbot_patrol_value:()=>Sb,sensor_mixbot_temperature:()=>Ab,sensor_mixgo_LTR308:()=>Ry,sensor_mixgo_button_attachInterrupt:()=>ny,sensor_mixgo_button_get_presses:()=>iy,sensor_mixgo_button_is_pressed:()=>ty,sensor_mixgo_button_was_pressed:()=>ey,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>db,sensor_mixgo_cc_mmc5603_get_angle:()=>rb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>ub,sensor_mixgo_light:()=>Xb,sensor_mixgo_nova_LTR308:()=>gy,sensor_mixgo_nova_pin_near:()=>Oy,sensor_mixgo_pin_near:()=>Ey,sensor_mixgo_pin_near_double:()=>my,sensor_mixgo_pin_near_single:()=>hy,sensor_mixgo_pin_pressed:()=>Gy,sensor_mixgo_sant_color:()=>cy,sensor_mixgo_touch_slide:()=>By,sensor_mixgocar42_button_attachInterrupt:()=>py,sensor_mixgocar42_button_get_presses:()=>oy,sensor_mixgocar42_button_is_pressed:()=>sy,sensor_mixgocar42_button_was_pressed:()=>_y,sensor_mixgocar_battery_left:()=>gb,sensor_mixgocar_pin_near:()=>Rb,sensor_mixgocar_pin_near_line:()=>Ob,sensor_mixgocar_pin_near_state_change:()=>cb,sensor_mixgoce_pin_pressed:()=>Vy,sensor_mixgoce_temperature:()=>Ib,sensor_mixgome_temperature:()=>lb,sensor_mpu9250_calibrate_compass:()=>Wy,sensor_mpu9250_field_strength:()=>Jy,sensor_mpu9250_gesture:()=>yy,sensor_mpu9250_get_acceleration:()=>by,sensor_mpu9250_get_gyro:()=>ky,sensor_mpu9250_get_magnetic:()=>Hy,sensor_mpu9250_temperature:()=>Ky,sensor_mpython_pin_pressed:()=>Uy,sensor_mpython_qmi8658_get_gyro:()=>Tb,sensor_mpython_qmi8658_temperature:()=>Mb,sensor_onboard_compass_reset:()=>ib,sensor_onboard_mpu9250_calibrate_compass:()=>$y,sensor_onboard_mpu9250_field_strength:()=>eb,sensor_onboard_mpu9250_gesture:()=>qy,sensor_onboard_mpu9250_get_acceleration:()=>zy,sensor_onboard_mpu9250_get_gyro:()=>Zy,sensor_onboard_mpu9250_get_magnetic:()=>jy,sensor_onboard_mpu9250_temperature:()=>tb,sensor_pin_near:()=>vb,sensor_pin_pressed:()=>Yb,sensor_read:()=>Vb,sensor_rm_acc:()=>Eb,sensor_rm_battery_left:()=>mb,sensor_rm_pin_near_double:()=>hb,sensor_sound:()=>Ly});var at={};t.r(at),t.d(at,{serial_any:()=>nV,serial_print:()=>$b,serial_print_byte:()=>tV,serial_print_hex:()=>iV,serial_println:()=>eV,serial_read_from_ai:()=>TV,serial_readline:()=>_V,serial_readstr:()=>sV,serial_send_to_ai:()=>IV,serial_softserial:()=>oV,serial_softserial_new:()=>pV,system_input:()=>aV,system_print:()=>uV,system_print_end:()=>dV,system_print_inline:()=>rV,system_print_many:()=>lV});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>LV,Timer_init:()=>UV,base_delay:()=>kV,controls_delay:()=>PV,controls_delay_new:()=>YV,controls_end_program:()=>DV,controls_millis:()=>NV,controls_uname:()=>FV,reset:()=>fV,system_bitbot_shutdown:()=>GV,system_device_name:()=>SV,system_device_serial_number:()=>AV,system_event_bus_source:()=>gV,system_event_bus_value:()=>CV,system_machine_reset:()=>BV,system_on_event:()=>OV,system_raise_event:()=>EV,system_reset:()=>hV,system_run_in_background:()=>MV,system_ticks_diff:()=>xV,system_timer:()=>XV,system_timer_init:()=>yV,system_timestamp:()=>RV,system_value:()=>cV,system_wait:()=>mV,system_wdt_feed:()=>VV,system_wdt_init:()=>bV,time_ticks_diff:()=>HV,timer:()=>vV,timer2:()=>wV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>nB,Air_now_content:()=>zV,Geo_moon_content:()=>_B,Geo_sun_content:()=>sB,Life_suggestion_content:()=>ZV,Location_search_content:()=>tB,Tide_daily_content:()=>$V,WEATHER_DAILY:()=>KV,WEATHER_HOUR:()=>JV,WEATHER_NOW:()=>WV,Weather_alarm_content:()=>jV,Weather_daily:()=>eB,Weather_daily_content:()=>iB,Weather_now:()=>QV,Weather_now_content:()=>qV});var dt={};t.r(dt),t.d(dt,{controls_pin_attachInterrupt:()=>SB,inout_analog_atten:()=>TB,inout_analog_write:()=>lB,inout_analog_write_init:()=>EB,inout_analog_write_set:()=>IB,inout_analog_write_set_freq:()=>RB,inout_digital_init:()=>mB,inout_digital_read:()=>dB,inout_digital_write:()=>rB,inout_highlow:()=>uB,inout_pinMode:()=>cB,inout_pin_attachInterrupt:()=>hB,inout_pin_pressed:()=>MB,inout_pin_pressed_init:()=>OB,pin_pressed:()=>CB,pin_pressed_init:()=>gB});var lt={};t.r(lt),t.d(lt,{me_g1_aht11:()=>LB,me_g1_hp203:()=>NB,me_g1_rfid_readcontent:()=>FB,me_g1_rfid_readid:()=>fB,me_g1_rfid_status:()=>vB,me_g1_rfid_write:()=>PB,me_g1_rfid_write_outcome:()=>YB,me_g1_varistor:()=>DB});var It={};t.r(It),t.d(It,{analog_input:()=>wB,analog_output:()=>kB,espnow_channel:()=>BB,haskylens_model:()=>GB,i2c_A_pin:()=>WB,i2c_B_pin:()=>KB,pins_analog:()=>jB,pins_analog_pin:()=>ZB,pins_axis:()=>MG,pins_brightness:()=>hG,pins_builtinimg:()=>aG,pins_builtinimg_extern:()=>uG,pins_button:()=>eG,pins_buttonB:()=>iG,pins_dac:()=>$B,pins_dac_pin:()=>tG,pins_digital:()=>xB,pins_digital_dot:()=>SG,pins_digital_pin:()=>yB,pins_exlcdh:()=>IG,pins_exlcdv:()=>TG,pins_imglist:()=>rG,pins_input_pin:()=>bB,pins_one_more:()=>CG,pins_output_pin:()=>VB,pins_playlist:()=>dG,pins_playlist_extern:()=>lG,pins_pwm:()=>nG,pins_pwm_pin:()=>sG,pins_radio_datarate:()=>gG,pins_radio_power:()=>cG,pins_serial:()=>pG,pins_tone_notes:()=>RG,pins_touch:()=>oG,pins_touch_pin:()=>_G,pins_tts_bgmusic:()=>OG,pins_tts_builtin_music:()=>EG,pins_tts_voice:()=>mG,pwm_input:()=>UB,pwm_output:()=>HB,spi_A_pin:()=>JB,spi_B_pin:()=>QB,spi_C_pin:()=>qB,spi_D_pin:()=>zB});var Tt={};t.r(Tt),t.d(Tt,{inout_analog_atten:()=>XG,inout_analog_write:()=>DG,inout_analog_write_init:()=>vG,inout_analog_write_set:()=>fG,inout_digital_init:()=>YG,inout_digital_read:()=>NG,inout_digital_write:()=>LG,inout_highlow:()=>AG,inout_pin_attachInterrupt:()=>PG,inout_pin_pressed:()=>FG,inout_pin_pressed_init:()=>xG});var Mt={};t.r(Mt),t.d(Mt,{me_g1_aht11:()=>yG,me_g1_hp203:()=>bG,me_g1_rfid_readcontent:()=>GG,me_g1_rfid_readid:()=>BG,me_g1_rfid_status:()=>HG,me_g1_rfid_write:()=>UG,me_g1_rfid_write_outcome:()=>wG,me_g1_varistor:()=>VG});var ht={};t.r(ht),t.d(ht,{analog_input:()=>$G,analog_output:()=>eU,espnow_channel:()=>jG,haskylens_model:()=>ZG,i2c_A_pin:()=>iU,i2c_B_pin:()=>nU,pins_analog:()=>uU,pins_analog_pin:()=>aU,pins_axis:()=>CU,pins_brightness:()=>LU,pins_builtinimg:()=>EU,pins_builtinimg_extern:()=>OU,pins_button:()=>WG,pins_buttonB:()=>KG,pins_dac:()=>IU,pins_dac_pin:()=>lU,pins_digital:()=>kG,pins_digital_dot:()=>XU,pins_digital_pin:()=>JG,pins_exlcdh:()=>SU,pins_exlcdv:()=>AU,pins_imglist:()=>RU,pins_input_pin:()=>QG,pins_interrupt:()=>hU,pins_one_more:()=>vU,pins_output_pin:()=>qG,pins_playlist:()=>cU,pins_playlist_extern:()=>gU,pins_pwm:()=>dU,pins_pwm_input:()=>zG,pins_pwm_pin:()=>rU,pins_radio_datarate:()=>YU,pins_radio_power:()=>PU,pins_serial:()=>mU,pins_tone_notes:()=>FU,pins_touch:()=>MU,pins_touch_pin:()=>TU,pins_tts_bgmusic:()=>fU,pins_tts_builtin_music:()=>DU,pins_tts_voice:()=>NU,pwm_output:()=>tU,spi_A_pin:()=>sU,spi_B_pin:()=>_U,spi_C_pin:()=>oU,spi_D_pin:()=>pU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>yt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>kt,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>qt,controls_if_elseif:()=>Qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>xt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>Ht,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>le,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>de,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>di,text:()=>Xe,text_capital:()=>qe,text_center:()=>ze,text_char:()=>ye,text_char_at:()=>He,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>Qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>ke,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>xe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>qi,enumerate:()=>Qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>yi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>xi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>ki,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>Hi,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>ln,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>dn,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>kn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>yn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>xn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>Qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>Hn,storage_make_dir:()=>qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ls,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_input:()=>Fs,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var d={};t.r(d),t.d(d,{set_add_discard:()=>Gs,set_clear:()=>bs,set_create_with:()=>Ys,set_create_with_container:()=>vs,set_create_with_item:()=>Xs,set_create_with_text_return:()=>Hs,set_length:()=>xs,set_operate:()=>Vs,set_operate_update:()=>Bs,set_pop:()=>ys,set_sub:()=>Us,set_toset:()=>ks,set_update:()=>ws});var l={};t.r(l),t.d(l,{html_content:()=>qs,html_content_more:()=>zs,html_document:()=>Ks,html_form:()=>Zs,html_head_body:()=>Qs,html_style:()=>js,html_style_color:()=>t_,html_style_content:()=>$s,html_text:()=>e_,html_title:()=>Js});var I={};t.r(I),t.d(I,{attribute_access:()=>M_,function_call:()=>l_,function_call_container:()=>I_,function_call_item:()=>T_,raw_block:()=>s_,raw_empty:()=>o_,raw_expression:()=>__,raw_table:()=>n_,text_comment:()=>p_,text_print_multiple:()=>u_,text_print_multiple_container:()=>r_,text_print_multiple_item:()=>d_,type_check:()=>a_});var T={};t.r(T),t.d(T,{controls_type:()=>R_,controls_typeLists:()=>c_,lists_zip:()=>g_,unpack_iterable_object:()=>C_,variables_change:()=>E_,variables_get:()=>h_,variables_global:()=>O_,variables_set:()=>m_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>v_,base_setup:()=>A_,controls_delay:()=>Y_,controls_flow_statements:()=>P_,controls_for:()=>D_,controls_forEach:()=>V_,controls_for_range:()=>f_,controls_if:()=>L_,controls_interrupts:()=>y_,controls_lambda:()=>G_,controls_main:()=>S_,controls_millis:()=>X_,controls_nointerrupts:()=>b_,controls_pass:()=>w_,controls_range:()=>B_,controls_repeat:()=>z_,controls_repeat_ext:()=>W_,controls_thread:()=>H_,controls_try_finally:()=>N_,controls_whileUntil:()=>F_,datetime_fromtimestamp:()=>j_,do_while:()=>k_,garbage_collection:()=>K_,gene_unique_identifier:()=>Z_,get_mem_alloc:()=>J_,get_mem_free:()=>Q_,get_unique_identifier:()=>q_,reset:()=>x_,time_sleep:()=>U_});var h={};t.r(h),t.d(h,{base_map:()=>Ro,generate_cartesian_product:()=>go,math_arithmetic:()=>no,math_bit:()=>io,math_constant:()=>to,math_constant_mp:()=>eo,math_constrain:()=>Io,math_dec:()=>po,math_indexer_number:()=>ho,math_map:()=>lo,math_max_min:()=>uo,math_number:()=>$_,math_number_base_conversion:()=>To,math_random:()=>ro,math_random_seed:()=>Mo,math_round:()=>mo,math_selfcalcu:()=>so,math_single:()=>_o,math_to_int:()=>ao,math_trig:()=>oo,text_to_number:()=>Eo,text_to_number_skulpt:()=>Oo,turn_to_int:()=>co});var m={};t.r(m),t.d(m,{ascii_to_char:()=>No,char_to_ascii:()=>Do,number_to_text:()=>fo,os_system:()=>Zo,text:()=>Co,text_capital:()=>Vo,text_center:()=>Bo,text_char:()=>Ao,text_char_at:()=>Yo,text_char_at2:()=>Po,text_char_at3:()=>qo,text_compareTo:()=>Qo,text_compare_to:()=>xo,text_encode:()=>zo,text_equals_starts_ends:()=>Xo,text_eval:()=>jo,text_find:()=>Go,text_format:()=>Wo,text_format_noreturn:()=>Ko,text_join:()=>Lo,text_join_seq:()=>Uo,text_length:()=>Fo,text_random_char:()=>vo,text_replace:()=>wo,text_split:()=>Ho,text_strip:()=>ko,text_substring:()=>bo,text_substring2:()=>yo,text_substring3:()=>Jo,text_textarea:()=>So});var E={};t.r(E),t.d(E,{content_in_lists:()=>Yp,enumerate:()=>Pp,list_many_input:()=>Ep,list_tolist:()=>fp,list_tolist2:()=>Fp,list_trig:()=>Mp,lists_2d_get_col_row_data:()=>ep,lists_2d_get_data_with_col_row:()=>tp,lists_append_extend:()=>op,lists_change_to:()=>mp,lists_change_to_general:()=>Rp,lists_clear:()=>dp,lists_create_with:()=>ip,lists_create_with2:()=>gp,lists_create_with_noreturn:()=>Op,lists_create_with_text:()=>np,lists_create_with_text2:()=>Cp,lists_del_general:()=>cp,lists_find:()=>lp,lists_getIndex3:()=>Sp,lists_getSublist3:()=>Ap,lists_get_index:()=>sp,lists_get_random_item:()=>pp,lists_get_random_sublist:()=>ap,lists_get_sublist:()=>$o,lists_insert_value:()=>up,lists_insert_value2:()=>Np,lists_pop:()=>Tp,lists_remove_at:()=>Ip,lists_remove_at2:()=>Dp,lists_reverse:()=>rp,lists_setIndex3:()=>Lp,lists_set_index:()=>_p,lists_sort:()=>hp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Wp,dicts_add_or_change:()=>bp,dicts_clear:()=>Gp,dicts_create_with:()=>vp,dicts_create_with_noreturn:()=>Qp,dicts_deldict:()=>kp,dicts_delete:()=>Vp,dicts_get:()=>xp,dicts_get_default:()=>yp,dicts_items:()=>Up,dicts_keys:()=>Xp,dicts_length:()=>Hp,dicts_pop:()=>Kp,dicts_setdefault:()=>Jp,dicts_to_json:()=>zp,dicts_to_json2:()=>$p,dicts_to_to:()=>Zp,dicts_todict:()=>qp,dicts_update:()=>Bp,dicts_values:()=>wp,json_to_dicts:()=>jp});var R={};t.r(R),t.d(R,{logic_boolean:()=>sa,logic_compare:()=>ta,logic_compare_continous:()=>ea,logic_is:()=>aa,logic_is_in:()=>pa,logic_negate:()=>na,logic_null:()=>_a,logic_operation:()=>ia,logic_tobool:()=>ua,logic_true_or_false:()=>oa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Ya,sdcard_use_spi_init:()=>Pa,storage_can_write_ornot:()=>Ea,storage_change_dir:()=>La,storage_close_file:()=>Ra,storage_delete_file:()=>ga,storage_file_seek:()=>Aa,storage_file_tell:()=>Sa,storage_file_write:()=>Ta,storage_fileopen:()=>da,storage_fileopen_new:()=>la,storage_fileopen_new_encoding:()=>Ia,storage_get_a_line:()=>ma,storage_get_contents:()=>ha,storage_get_contents_without_para:()=>Ma,storage_get_current_dir:()=>Na,storage_get_file_size:()=>Ca,storage_get_filename:()=>Oa,storage_is_file:()=>Fa,storage_list_all_files:()=>ca,storage_make_dir:()=>Da,storage_open_file_with_os:()=>ra,storage_rename:()=>fa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>ya,procedures_callreturn:()=>xa,procedures_defnoreturn:()=>Xa,procedures_defreturn:()=>va,procedures_ifreturn:()=>ba,procedures_return:()=>Va});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ja,tuple_create_with:()=>Ba,tuple_create_with_noreturn:()=>ja,tuple_create_with_text2:()=>Ga,tuple_create_with_text_return:()=>Ua,tuple_del:()=>ka,tuple_find:()=>Qa,tuple_getIndex:()=>wa,tuple_getSublist:()=>za,tuple_get_random_item:()=>$a,tuple_get_sublist:()=>Za,tuple_input:()=>eu,tuple_join:()=>Wa,tuple_length:()=>Ha,tuple_max:()=>Ka,tuple_totuple:()=>tu,tuple_trig:()=>qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>au,set_clear:()=>_u,set_create_with:()=>iu,set_create_with_text_return:()=>du,set_length:()=>nu,set_operate:()=>ou,set_operate_update:()=>pu,set_pop:()=>su,set_sub:()=>uu,set_toset:()=>lu,set_update:()=>ru});var A={};t.r(A),t.d(A,{html_content:()=>hu,html_content_more:()=>mu,html_document:()=>Iu,html_form:()=>Ou,html_head_body:()=>Mu,html_style:()=>Eu,html_style_content:()=>Ru,html_text:()=>cu,html_title:()=>Tu});var L={};t.r(L),t.d(L,{attribute_access:()=>Du,function_call:()=>Nu,raw_block:()=>gu,raw_empty:()=>Su,raw_expression:()=>Cu,raw_table:()=>Au,type_check:()=>Lu});var N={};t.r(N),t.d(N,{PIN_init:()=>fr,actuator_extern_get_led_bright:()=>Gu,actuator_extern_get_led_state:()=>Uu,actuator_extern_led_bright:()=>Bu,actuator_extern_led_brightness:()=>wu,actuator_ms32006_dcmotor:()=>ju,actuator_ms32006_init:()=>zu,actuator_ms32006_stepper:()=>Zu,actuator_neopixel_init:()=>$u,actuator_neopixel_rgb:()=>tr,actuator_neopixel_rgb_all:()=>er,actuator_neopixel_write:()=>ir,actuator_use_uart_init:()=>nr,esp32_music_get_tempo_extern:()=>yu,esp32_music_pitch:()=>Yu,esp32_music_pitch_init:()=>Pu,esp32_music_pitch_with_time:()=>vu,esp32_music_play_list:()=>Xu,esp32_music_reset_extern:()=>bu,esp32_music_set_tempo_extern:()=>xu,esp32_music_stop:()=>Vu,mixbot_actuator_extern_get_addr:()=>Nr,mixbot_actuator_extern_set_addr:()=>Dr,mixbot_addr_extern:()=>Tr,parrot_PIN_init:()=>vr,parrot_move_speed:()=>Xr,pin_led_bright:()=>Fr,player_insert_music:()=>ur,player_play_music:()=>ar,player_set_mode:()=>pr,player_set_play:()=>_r,player_set_volume:()=>or,player_whether_stop:()=>sr,robot_led_extern:()=>Er,robot_led_extern_get_value:()=>Or,robot_motor_extern:()=>Mr,robot_motor_extern_get_speed:()=>hr,robot_servo_extern_absolute_run:()=>Cr,robot_servo_extern_get_status:()=>Rr,robot_servo_extern_relative_continue:()=>Lr,robot_servo_extern_relative_origin:()=>Sr,robot_servo_extern_relative_run:()=>Ar,robot_servo_extern_stop:()=>gr,robot_servo_extern_stop_mode:()=>cr,robot_traffic_light_extern:()=>mr,servo_PIN_init:()=>Pr,servo_get_angle:()=>Qu,servo_get_speed:()=>qu,servo_init:()=>Hu,servo_move:()=>ku,servo_move_angle:()=>Yr,servo_set_angle:()=>Ku,servo_set_speed:()=>Ju,servo_speed_360:()=>Wu,syn6288_builtin_voice:()=>lr,syn6288_get_voice:()=>dr,syn6288_set_voice:()=>rr,syn6288_tts_play:()=>Ir});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>ld,actuator_dc_motor_stop:()=>Id,actuator_get_led_bright:()=>Br,actuator_get_led_state:()=>Gr,actuator_led_bright:()=>Vr,actuator_led_brightness:()=>Ur,actuator_mixbot_buzzer_on_off:()=>Ed,actuator_mixgo_nova_mic_get:()=>Cd,actuator_mixgo_nova_mic_set:()=>gd,actuator_mixgo_nova_onboard_music_pitch:()=>fd,actuator_mixgo_nova_onboard_music_stop:()=>Fd,actuator_mixgo_nova_play_audio:()=>Nd,actuator_mixgo_nova_play_online_audio:()=>Dd,actuator_mixgo_nova_record_audio:()=>Ld,actuator_mixgo_nova_voice_get:()=>Ad,actuator_mixgo_nova_voice_set:()=>Sd,actuator_mixgo_zero_led_color:()=>wr,actuator_onboard_neopixel_rgb:()=>Qr,actuator_onboard_neopixel_rgb_all:()=>qr,actuator_onboard_neopixel_rgb_show_all_chase:()=>jr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>zr,actuator_onboard_neopixel_write:()=>Zr,actuator_rm_onboard_neopixel_rgb:()=>$r,actuator_rm_onboard_neopixel_rgb_all:()=>td,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>ed,actuator_stepper_keep:()=>rd,actuator_stepper_stop:()=>dd,analog_ble_keyboard_init:()=>Hd,analog_ble_keyboard_input:()=>Kd,analog_ble_keyboard_mouse_init:()=>tl,analog_ble_keyboard_mouse_input:()=>sl,analog_ble_keyboard_mouse_send_battery:()=>nl,analog_ble_keyboard_mouse_str:()=>_l,analog_ble_keyboard_send_battery:()=>Qd,analog_ble_keyboard_str:()=>Jd,analog_ble_mouse_init:()=>qd,analog_ble_mouse_input:()=>Zd,analog_ble_mouse_keyboard_input:()=>ol,analog_ble_mouse_send_battery:()=>$d,analog_keyboard_input:()=>Xd,analog_keyboard_str:()=>wd,analog_mouse_input:()=>Gd,bitbot_motor:()=>cd,bitbot_move:()=>Od,bitbot_stop:()=>Rd,ble_keyboard_connect:()=>Wd,ble_keyboard_get_mac:()=>kd,ble_keyboard_mouse_connect:()=>il,ble_keyboard_mouse_get_mac:()=>el,ble_mouse_connect:()=>jd,ble_mouse_get_mac:()=>zd,cc_number:()=>Jr,educore_ble_keyboard_input:()=>hl,educore_ble_sensor_connected:()=>Ml,educore_ble_sensor_init:()=>Tl,educore_buzzer:()=>pl,educore_buzzer_play_tone:()=>al,educore_buzzer_play_tone_time:()=>ul,educore_buzzer_stop:()=>rl,educore_neopixel_clear:()=>Il,educore_neopixel_rgb:()=>ll,educore_rgb_light:()=>dl,esp32_music_get_tempo:()=>nd,esp32_music_reset:()=>sd,esp32_music_set_tempo:()=>id,esp32_onboard_music_pitch:()=>_d,esp32_onboard_music_pitch_with_time:()=>od,esp32_onboard_music_play_list:()=>ad,esp32_onboard_music_stop:()=>pd,general_key:()=>yd,general_key_tuple:()=>bd,generalkey_container:()=>Vd,generalkey_create_with_item:()=>Bd,get_power_output:()=>Yd,ledswitch:()=>br,mixbot_motor:()=>md,mixbot_motor_status:()=>Td,mixbot_move:()=>Md,mixbot_stop:()=>hd,mouse_key:()=>Ud,number:()=>yr,rm_actuator_get_led_bright:()=>kr,rm_actuator_get_led_state:()=>Wr,rm_actuator_led_bright:()=>Hr,rm_actuator_led_brightness:()=>Kr,rm_motor:()=>ud,set_all_power_output:()=>vd,set_power_output:()=>Pd,special_key:()=>xd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>zl,ai_sensor_ailocal_class:()=>Bl,ai_sensor_ailocal_class_result:()=>Gl,ai_sensor_ailocal_train:()=>Vl,ai_sensor_asr_recognize:()=>Wl,ai_sensor_audio_play:()=>wl,ai_sensor_audio_record:()=>Ul,ai_sensor_barcode:()=>Sl,ai_sensor_circle:()=>Fl,ai_sensor_classifier_faces:()=>ql,ai_sensor_color:()=>Xl,ai_sensor_color_chases:()=>bl,ai_sensor_color_chases_result:()=>yl,ai_sensor_config:()=>gl,ai_sensor_face:()=>Ql,ai_sensor_find_20objects:()=>jl,ai_sensor_find_barcodes:()=>Al,ai_sensor_find_circles:()=>Pl,ai_sensor_find_colors:()=>xl,ai_sensor_find_licenseplates:()=>Jl,ai_sensor_find_lines:()=>fl,ai_sensor_find_qrcodes:()=>cl,ai_sensor_find_rects:()=>vl,ai_sensor_find_tags:()=>Nl,ai_sensor_licenseplate:()=>Kl,ai_sensor_line:()=>Dl,ai_sensor_qrcode:()=>Ol,ai_sensor_qrcode_lite:()=>Rl,ai_sensor_rect:()=>Yl,ai_sensor_rgb:()=>Cl,ai_sensor_tag:()=>Ll,ai_sensor_use_uart_init:()=>El,ai_sensor_yolo_recognize:()=>Hl,ai_sensor_yolo_recognize_result:()=>kl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>tI,MICROPYTHON_AI_Speech_unit:()=>$l,MICROPYTHON_AI_client:()=>Zl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>MI,mpython_blynk_app_notify:()=>aI,mpython_blynk_email:()=>dI,mpython_blynk_get_timers:()=>lI,mpython_blynk_on_connected:()=>_I,mpython_blynk_on_disconnected:()=>sI,mpython_blynk_run:()=>pI,mpython_blynk_sensor_data_to_app:()=>TI,mpython_blynk_set_property:()=>rI,mpython_blynk_setup:()=>hI,mpython_blynk_stop_timers:()=>uI,mpython_blynk_sync_virtual:()=>nI,mpython_blynk_terminal_widget_vpin:()=>iI,mpython_blynktimer:()=>II,mpython_blynktimer_run:()=>oI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>mI,cc_g1_read_bat:()=>EI,cc_g1_read_joystick:()=>OI,cc_g1_read_key:()=>RI,cc_g1_turnoff:()=>cI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>FI,ce_go_get_led_bright:()=>AI,ce_go_get_led_state:()=>LI,ce_go_hall_attachInterrupt:()=>PI,ce_go_hall_data:()=>vI,ce_go_hall_initialize:()=>YI,ce_go_led_bright:()=>SI,ce_go_led_brightness:()=>NI,ce_go_light_number:()=>CI,ce_go_pin_light:()=>VI,ce_go_pin_near:()=>xI,ce_go_pin_near_line:()=>XI,ce_go_pin_near_state_change:()=>yI,ce_go_stepper_keep:()=>DI,ce_go_stepper_stop:()=>fI,educore_car:()=>BI,educore_car_pin_near:()=>HI,educore_car_pin_near_line:()=>wI,educore_car_stepper_keep:()=>GI,educore_car_stepper_stop:()=>UI,sensor_mixgome_eulerangles:()=>bI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>AT,communicate_bluetooth_connect:()=>fT,communicate_bluetooth_disconnect:()=>FT,communicate_bluetooth_handle:()=>xT,communicate_bluetooth_is_connected:()=>YT,communicate_bluetooth_mac:()=>DT,communicate_bluetooth_peripheral_init:()=>LT,communicate_bluetooth_recv:()=>vT,communicate_bluetooth_recv_only:()=>XT,communicate_bluetooth_scan:()=>NT,communicate_bluetooth_send:()=>PT,communicate_espnow_init:()=>yT,communicate_espnow_init_new:()=>bT,communicate_i2c_available:()=>pT,communicate_i2c_init:()=>JI,communicate_i2c_master_read:()=>oT,communicate_i2c_onboard:()=>WI,communicate_i2c_read:()=>QI,communicate_i2c_scan:()=>zI,communicate_i2c_write:()=>qI,communicate_ir_recv_init:()=>MT,communicate_ir_send_init:()=>RT,communicate_ow_init:()=>uT,communicate_ow_read:()=>dT,communicate_ow_reset:()=>TT,communicate_ow_scan:()=>rT,communicate_ow_select:()=>IT,communicate_ow_write:()=>lT,communicate_spi_buffer:()=>$I,communicate_spi_init:()=>jI,communicate_spi_onboard:()=>KI,communicate_spi_read:()=>tT,communicate_spi_read_output:()=>eT,communicate_spi_readinto:()=>iT,communicate_spi_readinto_output:()=>nT,communicate_spi_set:()=>ZI,communicate_spi_write:()=>sT,communicate_spi_write_readinto:()=>_T,espnow_radio_channel:()=>HT,espnow_radio_channel_new:()=>WT,espnow_radio_on_off:()=>KT,espnow_radio_rec:()=>QT,espnow_radio_recv:()=>zT,espnow_radio_recv_certain_msg:()=>jT,espnow_radio_recv_certain_msg_new:()=>$T,espnow_radio_recv_msg:()=>qT,espnow_radio_recv_new:()=>ZT,espnow_radio_send:()=>JT,espnow_radio_txpower:()=>kT,i2c_available:()=>cM,i2c_init:()=>pM,i2c_master_reader2:()=>RM,i2c_read:()=>aM,i2c_scan:()=>rM,i2c_slave_onreceive:()=>aT,i2c_write:()=>uM,internal_variable:()=>hT,ir_recv_timeout:()=>OT,ir_transmit_busy:()=>ST,ir_transmit_conventional_data:()=>cT,ir_transmit_raw_code:()=>CT,ir_transmit_study_code:()=>gT,ir_whether_recv:()=>ET,lora_init:()=>tM,lora_packet:()=>eM,lora_recv:()=>nM,lora_send:()=>iM,network_espnow_info:()=>BT,network_espnow_mac:()=>VT,network_espnow_recv:()=>GT,network_espnow_recv_handle:()=>wT,network_espnow_send:()=>UT,recv_fun:()=>mT,spi_buffer:()=>IM,spi_init:()=>dM,spi_read:()=>TM,spi_read_output:()=>MM,spi_readinto:()=>hM,spi_readinto_output:()=>mM,spi_set:()=>lM,spi_write:()=>EM,spi_write_readinto:()=>OM,urequests_attribute:()=>_M,urequests_get:()=>sM,urequests_method:()=>oM});var x={};t.r(x),t.d(x,{display_animate:()=>jM,display_blink_rate:()=>JM,display_circle:()=>ZM,display_color_seclet:()=>rh,display_draw_4strings:()=>UM,display_fill:()=>zM,display_get_screen_image:()=>KM,display_help:()=>th,display_image_size:()=>wM,display_lcd_use_i2c_init:()=>hh,display_line:()=>kM,display_line_arbitrarily:()=>WM,display_matrix_extern_bright_point:()=>vM,display_matrix_extern_bright_screen:()=>xM,display_matrix_extern_clear:()=>yM,display_matrix_extern_get_pixel:()=>YM,display_matrix_extern_get_screen_pixel:()=>XM,display_matrix_extern_image_builtins:()=>bM,display_matrix_extern_scroll_string:()=>NM,display_matrix_extern_scroll_string_delay:()=>DM,display_matrix_extern_shift:()=>PM,display_matrix_extern_show_frame_string:()=>fM,display_matrix_extern_show_frame_string_delay:()=>FM,display_matrix_extern_show_image:()=>AM,display_matrix_extern_show_image_or_string_delay:()=>LM,display_matrix_use_i2c_init:()=>SM,display_oled_drawPixel:()=>ih,display_oled_showBitmap:()=>eh,display_oled_use_i2c_init:()=>ch,display_onoff:()=>qM,display_rect:()=>HM,display_rgb_color:()=>QM,display_tm1650_power:()=>sh,display_tm1650_set_brightness:()=>ph,display_tm1650_show_dot:()=>oh,display_tm1650_show_num:()=>_h,display_tm_use_i2c_init:()=>nh,display_triangle:()=>$M,display_use_i2c_init:()=>GM,extern_oled_bright_point:()=>Yh,extern_oled_clear:()=>vh,extern_oled_get_pixel:()=>Ph,extern_oled_hvline:()=>xh,extern_oled_line:()=>yh,extern_oled_scroll_string:()=>Lh,extern_oled_scroll_string_delay:()=>Nh,extern_oled_shape_rect:()=>Xh,extern_oled_shift:()=>Fh,extern_oled_show_frame_string:()=>Dh,extern_oled_show_frame_string_delay:()=>fh,extern_oled_show_image:()=>gh,extern_oled_show_image_or_string_delay:()=>Ah,extern_oled_show_image_xy:()=>Ch,extern_oled_show_string:()=>Sh,lcd_backlight:()=>Oh,lcd_clear:()=>Rh,lcd_print_string:()=>Eh,lcd_show_image_or_string_delay:()=>mh,matrix_extern_image_arithmetic:()=>VM,matrix_extern_image_invert:()=>BM,tft_fill:()=>Th,tft_line_arbitrarily:()=>Mh,tft_scroll_string_delay:()=>lh,tft_show_frame_string_delay:()=>Ih,tft_show_image_or_string_delay:()=>dh,tft_show_image_xy:()=>uh,tft_use_spi_init:()=>ah});var y={};t.r(y),t.d(y,{bitbot_display_image_create:()=>cm,display_bright_point:()=>jh,display_bright_screen:()=>$h,display_clear:()=>tm,display_get_pixel:()=>zh,display_get_screen_pixel:()=>Zh,display_image_builtins:()=>Wh,display_image_builtins_all:()=>Kh,display_image_create:()=>kh,display_scroll_string:()=>Gh,display_scroll_string_delay:()=>Uh,display_shift:()=>qh,display_show_frame_string:()=>wh,display_show_frame_string_delay:()=>Hh,display_show_image:()=>Vh,display_show_image_or_string_delay:()=>Bh,draw_pointer:()=>Wm,image_arithmetic:()=>Jh,image_invert:()=>Qh,mixbot_display_bright_screen:()=>Om,mixbot_display_get_ambientbright:()=>Em,mixbot_display_get_screen_pixel:()=>mm,mixbot_display_image_create:()=>hm,mixbot_display_rotate:()=>Rm,mixgo_display_image_create_new:()=>nm,mixgome_display_font:()=>sm,mixgome_display_image_create:()=>em,mixgomini_display_image_create:()=>im,mpython_display_hvline:()=>Im,mpython_display_line:()=>Tm,mpython_display_shape_rect:()=>lm,mpython_pbm_image:()=>Mm,onboard_oled_bright_point:()=>dm,onboard_oled_scroll_string_delay:()=>um,onboard_oled_show_frame_string_delay:()=>rm,onboard_oled_show_image:()=>_m,onboard_oled_show_image_or_string_delay:()=>am,onboard_oled_show_image_xy:()=>om,onboard_oled_show_string:()=>pm,onboard_tft_bright_point:()=>Xm,onboard_tft_bright_screen:()=>bm,onboard_tft_clear:()=>xm,onboard_tft_clock_clear:()=>Hm,onboard_tft_clock_draw:()=>wm,onboard_tft_clock_get_rtctime:()=>Gm,onboard_tft_clock_init:()=>Bm,onboard_tft_clock_set_time:()=>Um,onboard_tft_display_hvline:()=>Fm,onboard_tft_display_line:()=>Pm,onboard_tft_display_shape_circle:()=>km,onboard_tft_display_shape_rect:()=>fm,onboard_tft_fill:()=>Vm,onboard_tft_get_pixel:()=>vm,onboard_tft_get_screen_pixel:()=>ym,onboard_tft_scroll_string:()=>Am,onboard_tft_scroll_string_delay:()=>Lm,onboard_tft_shift:()=>Ym,onboard_tft_show_frame_string:()=>Nm,onboard_tft_show_frame_string_delay:()=>Dm,onboard_tft_show_image:()=>gm,onboard_tft_show_image_or_string_delay:()=>Sm,onboard_tft_show_image_xy:()=>Cm});var b={};t.r(b),t.d(b,{factory_block:()=>iE,factory_block_return:()=>nE,factory_block_return_with_textarea:()=>_E,factory_block_with_textarea:()=>sE,factory_callMethod_noreturn:()=>tE,factory_callMethod_return:()=>eE,factory_create_with_container:()=>zm,factory_create_with_item:()=>jm,factory_declare:()=>$m,factory_from_import:()=>Jm,factory_function_noreturn:()=>qm,factory_function_return:()=>Zm,factory_import:()=>Qm,folding_block:()=>oE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>DE,inout_analog_atten:()=>hE,inout_analog_read:()=>ME,inout_analog_read_init:()=>gE,inout_analog_write:()=>lE,inout_analog_write_init:()=>cE,inout_analog_write_set:()=>IE,inout_analog_write_set_freq:()=>AE,inout_digital_init:()=>OE,inout_digital_read:()=>rE,inout_digital_write:()=>uE,inout_highlow:()=>aE,inout_pinMode:()=>SE,inout_pin_attachInterrupt:()=>EE,inout_pin_pressed:()=>mE,inout_pin_pressed_init:()=>CE,inout_pwm_analog_write:()=>dE,inout_pwm_analog_write_init:()=>RE,inout_pwm_analog_write_set_freq:()=>TE,pin_pressed:()=>NE,pin_pressed_init:()=>LE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>ZE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>jE,IOT_EMQX_PING:()=>qE,IOT_FORMATTING:()=>JE,IOT_FORMAT_STRING:()=>QE,IOT_MIXIO_NTP:()=>zE,IOT_MIXIO_PUBLISH:()=>GE,IOT_MIXIO_SUBSCRIBE:()=>UE,iot_checkonenet:()=>aO,iot_client_onboard:()=>tO,iot_create_with_item:()=>VE,iot_http_client:()=>eO,iot_http_data:()=>iO,iot_mixio_check:()=>kE,iot_mixio_connect:()=>BE,iot_mixio_connect_only:()=>HE,iot_mixio_disconnect:()=>wE,iot_mixio_format_msg:()=>KE,iot_mixio_format_topic:()=>WE,iot_mixly_key:()=>$E,iot_mqtt_client:()=>nO,iot_mqtt_data:()=>sO,iot_onenet_check:()=>vE,iot_onenet_connect:()=>PE,iot_onenet_disconnect:()=>YE,iot_onenet_publish:()=>xE,iot_onenet_publish_dict:()=>XE,iot_onenetconnect:()=>oO,iot_onenetdisconnect:()=>pO,iot_publish:()=>uO,iot_publish_container:()=>yE,iot_publish_item:()=>bE,iot_wifi_connect:()=>FE,iot_wificonnect:()=>_O});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>wO,educore_mqtt_connect_success:()=>KO,educore_mqtt_subscribe_message:()=>HO,educore_mqtt_topic_publish:()=>WO,educore_mqtt_topic_subscribe:()=>kO,educore_wifi_connect:()=>UO,network_ap_connect:()=>RO,network_connect:()=>MO,network_get_connect:()=>mO,network_get_wifi:()=>OO,network_init:()=>dO,network_is_active:()=>IO,network_open:()=>lO,network_scan:()=>TO,network_server:()=>cO,network_socket_accept:()=>LO,network_socket_bind:()=>CO,network_socket_close:()=>PO,network_socket_connect:()=>SO,network_socket_init:()=>gO,network_socket_listen:()=>AO,network_socket_receive:()=>NO,network_socket_receive_from:()=>fO,network_socket_send:()=>DO,network_socket_send_to:()=>FO,network_stop:()=>EO,network_wifi_connect:()=>hO,ntptime_address:()=>yO,ntptime_time:()=>xO,requests_attribute:()=>vO,requests_attribute2:()=>GO,requests_get:()=>YO,requests_get2:()=>VO,requests_method:()=>XO,requests_post:()=>BO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>mR,CI130X_GET_THE_RECOGNIZED_CMD:()=>hR,CI130X_GET_WHETHER_IDENTIFY:()=>MR,CI130X_IDENTIFY_AND_SAVE:()=>TR,CI130X_SET_SYSTEM_CMD:()=>ER,HCSR04:()=>sc,PS2_Button:()=>ac,PS2_Buttons:()=>rc,PS2_Buttons_new:()=>Tc,PS2_State:()=>uc,PS2_init:()=>_c,PS2_init_new:()=>lc,PS2_stk:()=>dc,PS2_stk_new:()=>Mc,PS2_vibration:()=>pc,PS2_vibration_new:()=>Ic,camera_sensor_init:()=>kc,camera_sensor_result:()=>Wc,educore_body_sensor:()=>Xc,educore_button_sensor_extern:()=>Vc,educore_camera_sensor:()=>Hc,educore_infrared_sensor:()=>bc,educore_soilhum_sensor:()=>xc,educore_temp_sensor:()=>wc,educore_temphum_sensor:()=>yc,educore_ultrasonic_sensor:()=>Gc,esp32_s2_weather_init:()=>tc,esp32_s2_weather_rain:()=>ic,esp32_s2_weather_wd:()=>ec,esp32_s2_weather_ws:()=>nc,extern_rfid_read:()=>GR,extern_rfid_readcontent:()=>wR,extern_rfid_readid:()=>UR,extern_rfid_status:()=>WR,extern_rfid_write:()=>HR,extern_rfid_write_return:()=>kR,gnss_get_data:()=>Oc,gnss_have_data:()=>Ec,interaction_whether_to_interaction:()=>lR,interaction_whether_to_interaction_SANT:()=>IR,mixbot_sensor_extern_get_addr:()=>Lc,mixbot_sensor_extern_set_addr:()=>Nc,pm25_get_data:()=>mc,radar_set_DETECTION_THRESHOLD:()=>rR,radar_set_DETECTION_THRESHOLD_SANT:()=>dR,robot_button_extern_get_value:()=>Rc,robot_color_extern_get_value:()=>Ac,robot_infrared_extern_get_value:()=>gc,robot_infrared_extern_grey_get_value:()=>Cc,robot_potentiometer_extern_get_value:()=>Sc,robot_sonar_extern_get_value:()=>Dc,robot_sonar_extern_led:()=>fc,robot_touch_extern_get_value:()=>cc,sensor_APDS9960_extern:()=>RR,sensor_DS18X20:()=>pR,sensor_LTR308_extern:()=>cR,sensor_LTR390UV_extern:()=>SR,sensor_MAX30102_extern:()=>OR,sensor_QMC5883L_extern:()=>FR,sensor_VL530LX_extern:()=>AR,sensor_adxl345_get_acceleration:()=>$O,sensor_aht11_extern:()=>NR,sensor_bmp:()=>_R,sensor_compass_reset:()=>VR,sensor_dht11:()=>eR,sensor_hp203_extern:()=>DR,sensor_light_level:()=>tR,sensor_lm35:()=>aR,sensor_ltr381_extern:()=>gR,sensor_mixgo_extern_button_attachInterrupt:()=>jO,sensor_mixgo_extern_button_get_presses:()=>zO,sensor_mixgo_extern_button_is_pressed:()=>QO,sensor_mixgo_extern_button_was_pressed:()=>qO,sensor_mixgo_extern_light:()=>iR,sensor_mixgo_extern_pin_near:()=>sR,sensor_mixgo_extern_sound:()=>nR,sensor_mixgoce_hot_wheel_degrees:()=>$R,sensor_mixgoce_hot_wheel_is_touched:()=>ZR,sensor_mpu9250_attachGestureInterrupt:()=>ZO,sensor_mpu9250_calibrate_compass:()=>xR,sensor_mpu9250_field_strength:()=>bR,sensor_mpu9250_gesture:()=>PR,sensor_mpu9250_get_acceleration:()=>YR,sensor_mpu9250_get_gyro:()=>XR,sensor_mpu9250_get_magnetic:()=>vR,sensor_mpu9250_temperature:()=>yR,sensor_read_humiture:()=>Bc,sensor_sht:()=>oR,sensor_shtc3_extern:()=>LR,sensor_spl06_001_extern:()=>fR,sensor_ucs12071_extern:()=>CR,sensor_use_i2c_init:()=>uR,sensor_use_spi_init:()=>BR,sensor_use_uart_init:()=>hc,sensor_weather_solo_init:()=>Fc,sensor_weather_solo_rain:()=>vc,sensor_weather_solo_wd:()=>Pc,sensor_weather_solo_ws:()=>Yc,sensor_weigh_init:()=>Kc,ultrasonic_sensor_read_distance:()=>Uc,weather_data:()=>KR,weather_have_data:()=>JR,weather_set_label:()=>qR,weather_set_label_container:()=>zR,weather_set_label_item:()=>jR,weather_uart_mixio:()=>QR,weigh_sensor_get_weight:()=>Jc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>wC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>UC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>GC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>BC,CI130X_SET_SYSTEM_CMD_SANT:()=>HC,HCSR04:()=>rg,RTC_set_date:()=>ug,RTC_set_time:()=>ag,bitbot_als_num:()=>EC,dht11:()=>AC,educore_button_sensor:()=>XC,educore_button_was_pressed:()=>xC,educore_gyroscope_sensor:()=>PC,educore_gyroscope_sensor_read:()=>YC,educore_gyroscope_sensor_shake:()=>vC,educore_light_sensor:()=>FC,educore_rfid_sensor:()=>yC,educore_rfid_sensor_scan:()=>bC,educore_rfid_sensor_scan_data:()=>VC,educore_voice_sensor:()=>DC,number1:()=>lg,number2:()=>Ig,number3:()=>Tg,number4:()=>Mg,number5:()=>hg,number6:()=>mg,number7:()=>Eg,onboard_RTC_get_time:()=>Lg,onboard_RTC_get_time_str:()=>Yg,onboard_RTC_get_timestamp:()=>Ng,onboard_RTC_get_timetuple_to_str:()=>vg,onboard_RTC_set_datetime:()=>Fg,onboard_RTC_settime_string:()=>fg,onboard_RTC_timestamp_totuple:()=>Dg,rfid_readcontent:()=>Gg,rfid_readid:()=>Bg,rfid_write:()=>Ug,rfid_write_return:()=>wg,sensor_LTR308:()=>Xg,sensor_aht11:()=>yg,sensor_bitbot_ALS:()=>mC,sensor_button_get_presses:()=>cC,sensor_button_is_pressed:()=>OC,sensor_button_was_pressed:()=>RC,sensor_distance_hrsc04:()=>pg,sensor_eulerangles:()=>kg,sensor_field_strength:()=>LC,sensor_get_acceleration:()=>Hg,sensor_get_temperature:()=>bg,sensor_hp203:()=>Vg,sensor_light:()=>SC,sensor_mixbot_get_gyro:()=>hC,sensor_mixbot_patrol_calibrate:()=>IC,sensor_mixbot_patrol_value:()=>TC,sensor_mixbot_temperature:()=>MC,sensor_mixgo_LTR308:()=>Sg,sensor_mixgo_button_attachInterrupt:()=>Zc,sensor_mixgo_button_get_presses:()=>jc,sensor_mixgo_button_is_pressed:()=>qc,sensor_mixgo_button_was_pressed:()=>zc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>eC,sensor_mixgo_cc_mmc5603_get_angle:()=>tC,sensor_mixgo_cc_mmc5603_get_magnetic:()=>$g,sensor_mixgo_light:()=>dg,sensor_mixgo_nova_LTR308:()=>Cg,sensor_mixgo_nova_pin_near:()=>gg,sensor_mixgo_pin_near:()=>cg,sensor_mixgo_pin_near_double:()=>Rg,sensor_mixgo_pin_near_single:()=>Og,sensor_mixgo_pin_pressed:()=>ng,sensor_mixgo_sant_color:()=>Ag,sensor_mixgo_touch_slide:()=>og,sensor_mixgocar42_button_attachInterrupt:()=>ig,sensor_mixgocar42_button_get_presses:()=>eg,sensor_mixgocar42_button_is_pressed:()=>$c,sensor_mixgocar42_button_was_pressed:()=>tg,sensor_mixgocar_battery_left:()=>lC,sensor_mixgocar_pin_near:()=>rC,sensor_mixgocar_pin_near_line:()=>uC,sensor_mixgocar_pin_near_state_change:()=>dC,sensor_mixgoce_pin_pressed:()=>sg,sensor_mixgoce_temperature:()=>nC,sensor_mixgome_temperature:()=>iC,sensor_mpython_pin_pressed:()=>_g,sensor_mpython_qmi8658_get_gyro:()=>sC,sensor_mpython_qmi8658_temperature:()=>_C,sensor_onboard_compass_reset:()=>Zg,sensor_onboard_mpu9250_calibrate_compass:()=>qg,sensor_onboard_mpu9250_field_strength:()=>jg,sensor_onboard_mpu9250_gesture:()=>Wg,sensor_onboard_mpu9250_get_acceleration:()=>Kg,sensor_onboard_mpu9250_get_gyro:()=>Qg,sensor_onboard_mpu9250_get_magnetic:()=>Jg,sensor_onboard_mpu9250_temperature:()=>zg,sensor_pin_near:()=>CC,sensor_pin_pressed:()=>gC,sensor_read:()=>fC,sensor_rm_acc:()=>aC,sensor_rm_battery_left:()=>pC,sensor_rm_pin_near_double:()=>oC,sensor_rtc_init:()=>Pg,sensor_sound:()=>xg,sensor_temperature:()=>NC});var H={};t.r(H),t.d(H,{serial_any:()=>jC,serial_begin:()=>iS,serial_print:()=>KC,serial_print_byte:()=>WC,serial_print_hex:()=>QC,serial_println:()=>JC,serial_read_from_ai:()=>dS,serial_readline:()=>ZC,serial_readstr:()=>zC,serial_readstr_until:()=>$C,serial_receive_data_event:()=>qC,serial_send_to_ai:()=>rS,serial_softserial:()=>eS,serial_softserial_new:()=>tS,system_input:()=>nS,system_print:()=>sS,system_print_container:()=>aS,system_print_end:()=>oS,system_print_inline:()=>_S,system_print_item:()=>uS,system_print_many:()=>pS});var k={};t.r(k),t.d(k,{Panic_with_status_code:()=>MS,Timer_init:()=>DS,base_delay:()=>PS,controls_delay:()=>TS,controls_delay_new:()=>IS,controls_millis:()=>mS,controls_uname:()=>OS,raw_block:()=>ES,reset:()=>hS,system_bitbot_shutdown:()=>NS,system_machine_reset:()=>LS,system_ticks_diff:()=>gS,system_timer:()=>cS,system_timer_init:()=>CS,system_wdt_feed:()=>AS,system_wdt_init:()=>SS,time_ticks_diff:()=>FS,timer:()=>RS,timer2:()=>fS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>WS,Air_now_content:()=>VS,Geo_moon_content:()=>JS,Geo_sun_content:()=>KS,Life_suggestion_content:()=>GS,Location_search_content:()=>wS,Tide_daily_content:()=>US,WEATHER_DAILY:()=>XS,WEATHER_HOUR:()=>xS,WEATHER_NOW:()=>vS,Weather_alarm_content:()=>BS,Weather_daily:()=>HS,Weather_daily_content:()=>kS,Weather_now:()=>yS,Weather_now_content:()=>bS});var K={};t.r(K),t.d(K,{PIN_init:()=>WA,actuator_extern_get_led_bright:()=>IA,actuator_extern_get_led_state:()=>TA,actuator_extern_led_bright:()=>lA,actuator_extern_led_brightness:()=>MA,actuator_ms32006_dcmotor:()=>eA,actuator_ms32006_init:()=>tA,actuator_ms32006_stepper:()=>iA,actuator_neopixel_init:()=>hA,actuator_neopixel_rgb:()=>OA,actuator_neopixel_rgb_all:()=>mA,actuator_neopixel_write:()=>EA,actuator_use_uart_init:()=>RA,esp32_music_get_tempo_extern:()=>aA,esp32_music_pitch:()=>sA,esp32_music_pitch_init:()=>nA,esp32_music_pitch_with_time:()=>_A,esp32_music_play_list:()=>uA,esp32_music_reset_extern:()=>rA,esp32_music_set_tempo_extern:()=>pA,esp32_music_stop:()=>oA,mixbot_actuator_extern_get_addr:()=>HA,mixbot_actuator_extern_set_addr:()=>kA,mixbot_addr_extern:()=>FA,parrot_PIN_init:()=>qA,parrot_move_speed:()=>zA,pin_led_bright:()=>KA,player_play_music:()=>AA,player_set_mode:()=>SA,player_set_play:()=>gA,player_set_volume:()=>CA,player_whether_stop:()=>cA,robot_led_extern:()=>XA,robot_led_extern_get_value:()=>xA,robot_motor_extern:()=>PA,robot_motor_extern_get_speed:()=>YA,robot_servo_extern_absolute_run:()=>BA,robot_servo_extern_get_status:()=>yA,robot_servo_extern_relative_continue:()=>wA,robot_servo_extern_relative_origin:()=>GA,robot_servo_extern_relative_run:()=>UA,robot_servo_extern_stop:()=>VA,robot_servo_extern_stop_mode:()=>bA,robot_traffic_light_extern:()=>vA,servo_PIN_init:()=>JA,servo_get_angle:()=>ZS,servo_get_speed:()=>$S,servo_init:()=>QS,servo_move:()=>dA,servo_move_angle:()=>QA,servo_set_angle:()=>zS,servo_set_speed:()=>jS,servo_speed_360:()=>qS,syn6288_builtin_voice:()=>DA,syn6288_get_voice:()=>NA,syn6288_set_voice:()=>LA,syn6288_tts_play:()=>fA});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>SL,actuator_dc_motor_stop:()=>AL,actuator_get_led_bright:()=>pL,actuator_get_led_state:()=>aL,actuator_led_bright:()=>oL,actuator_led_brightness:()=>uL,actuator_mixbot_buzzer_on_off:()=>FL,actuator_mixgo_nova_mic_get:()=>xL,actuator_mixgo_nova_mic_set:()=>XL,actuator_mixgo_nova_onboard_music_pitch:()=>UL,actuator_mixgo_nova_onboard_music_stop:()=>wL,actuator_mixgo_nova_play_audio:()=>BL,actuator_mixgo_nova_play_online_audio:()=>GL,actuator_mixgo_nova_record_audio:()=>VL,actuator_mixgo_nova_voice_get:()=>bL,actuator_mixgo_nova_voice_set:()=>yL,actuator_mixgo_zero_led_color:()=>rL,actuator_onboard_neopixel_rgb:()=>mL,actuator_onboard_neopixel_rgb_all:()=>EL,actuator_onboard_neopixel_rgb_show_all_chase:()=>OL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>RL,actuator_onboard_neopixel_write:()=>hL,actuator_stepper_keep:()=>gL,actuator_stepper_stop:()=>CL,analog_ble_keyboard_init:()=>$L,analog_ble_keyboard_input:()=>iN,analog_ble_keyboard_mouse_init:()=>rN,analog_ble_keyboard_mouse_input:()=>TN,analog_ble_keyboard_mouse_send_battery:()=>IN,analog_ble_keyboard_mouse_str:()=>MN,analog_ble_keyboard_send_battery:()=>sN,analog_ble_keyboard_str:()=>nN,analog_ble_mouse_init:()=>_N,analog_ble_mouse_input:()=>aN,analog_ble_mouse_keyboard_input:()=>hN,analog_ble_mouse_send_battery:()=>uN,analog_keyboard_input:()=>KL,analog_keyboard_str:()=>jL,analog_mouse_input:()=>qL,bitbot_motor:()=>vL,bitbot_move:()=>PL,bitbot_stop:()=>YL,ble_keyboard_connect:()=>eN,ble_keyboard_get_mac:()=>tN,ble_keyboard_mouse_connect:()=>lN,ble_keyboard_mouse_get_mac:()=>dN,ble_mouse_connect:()=>pN,ble_mouse_get_mac:()=>oN,cc_number:()=>dL,educore_ble_keyboard_input:()=>LN,educore_ble_sensor_connected:()=>AN,educore_ble_sensor_init:()=>SN,educore_buzzer:()=>mN,educore_buzzer_play_tone:()=>EN,educore_buzzer_play_tone_time:()=>ON,educore_buzzer_stop:()=>RN,educore_neopixel_clear:()=>CN,educore_neopixel_rgb:()=>gN,educore_rgb_light:()=>cN,esp32_music_get_tempo:()=>ZA,esp32_music_reset:()=>nL,esp32_music_set_tempo:()=>jA,esp32_onboard_music_pitch:()=>$A,esp32_onboard_music_pitch_with_time:()=>tL,esp32_onboard_music_play_list:()=>iL,esp32_onboard_music_stop:()=>eL,general_key:()=>QL,general_key_tuple:()=>ZL,get_power_output:()=>kL,ledswitch:()=>_L,mixbot_motor:()=>fL,mixbot_motor_status:()=>LL,mixbot_move:()=>NL,mixbot_stop:()=>DL,mouse_key:()=>zL,number:()=>sL,rm_actuator_get_led_bright:()=>IL,rm_actuator_get_led_state:()=>TL,rm_actuator_led_bright:()=>lL,rm_actuator_led_brightness:()=>ML,rm_motor:()=>cL,set_all_power_output:()=>WL,set_power_output:()=>HL,special_key:()=>JL});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>_D,ai_sensor_ailocal_class:()=>QN,ai_sensor_ailocal_class_result:()=>qN,ai_sensor_ailocal_train:()=>JN,ai_sensor_asr_recognize:()=>tD,ai_sensor_audio_play:()=>jN,ai_sensor_audio_record:()=>zN,ai_sensor_barcode:()=>vN,ai_sensor_circle:()=>BN,ai_sensor_classifier_faces:()=>sD,ai_sensor_color:()=>HN,ai_sensor_color_chases:()=>KN,ai_sensor_color_chases_result:()=>WN,ai_sensor_config:()=>fN,ai_sensor_face:()=>nD,ai_sensor_find_20objects:()=>oD,ai_sensor_find_barcodes:()=>XN,ai_sensor_find_circles:()=>GN,ai_sensor_find_colors:()=>kN,ai_sensor_find_licenseplates:()=>iD,ai_sensor_find_lines:()=>VN,ai_sensor_find_qrcodes:()=>YN,ai_sensor_find_rects:()=>wN,ai_sensor_find_tags:()=>yN,ai_sensor_licenseplate:()=>eD,ai_sensor_line:()=>bN,ai_sensor_qrcode:()=>PN,ai_sensor_qrcode_lite:()=>DN,ai_sensor_rect:()=>UN,ai_sensor_rgb:()=>FN,ai_sensor_tag:()=>xN,ai_sensor_use_uart_init:()=>NN,ai_sensor_yolo_recognize:()=>ZN,ai_sensor_yolo_recognize_result:()=>$N});var q={};t.r(q),t.d(q,{MICROPYTHON_AI_Speech_asr:()=>uD,MICROPYTHON_AI_Speech_unit:()=>aD,MICROPYTHON_AI_client:()=>pD});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>cD,mpython_blynk_app_notify:()=>hD,mpython_blynk_email:()=>gD,mpython_blynk_get_timers:()=>ED,mpython_blynk_on_connected:()=>ID,mpython_blynk_on_disconnected:()=>lD,mpython_blynk_run:()=>MD,mpython_blynk_sensor_data_to_app:()=>RD,mpython_blynk_set_property:()=>CD,mpython_blynk_setup:()=>SD,mpython_blynk_stop_timers:()=>mD,mpython_blynk_sync_virtual:()=>dD,mpython_blynk_terminal_widget_vpin:()=>rD,mpython_blynktimer:()=>OD,mpython_blynktimer_run:()=>TD});var j={};t.r(j),t.d(j,{cc_g1_read_bat:()=>AD,cc_g1_read_joystick:()=>LD,cc_g1_read_key:()=>ND,cc_g1_turnoff:()=>DD});var Z={};t.r(Z),t.d(Z,{ce_go_dc_motor:()=>yD,ce_go_get_led_bright:()=>PD,ce_go_get_led_state:()=>YD,ce_go_hall_attachInterrupt:()=>bD,ce_go_hall_data:()=>BD,ce_go_hall_initialize:()=>VD,ce_go_led_bright:()=>FD,ce_go_led_brightness:()=>vD,ce_go_light_number:()=>fD,ce_go_pin_light:()=>kD,ce_go_pin_near:()=>UD,ce_go_pin_near_line:()=>GD,ce_go_pin_near_state_change:()=>wD,ce_go_stepper_keep:()=>XD,ce_go_stepper_stop:()=>xD,educore_car:()=>WD,educore_car_pin_near:()=>qD,educore_car_pin_near_line:()=>QD,educore_car_stepper_keep:()=>KD,educore_car_stepper_stop:()=>JD,sensor_mixgome_eulerangles:()=>HD});var $={};t.r($),t.d($,{communicate_bluetooth_central_init:()=>Pf,communicate_bluetooth_connect:()=>Xf,communicate_bluetooth_disconnect:()=>xf,communicate_bluetooth_handle:()=>Uf,communicate_bluetooth_is_connected:()=>bf,communicate_bluetooth_mac:()=>yf,communicate_bluetooth_peripheral_init:()=>Yf,communicate_bluetooth_recv:()=>Gf,communicate_bluetooth_recv_only:()=>Bf,communicate_bluetooth_scan:()=>vf,communicate_bluetooth_send:()=>Vf,communicate_espnow_init:()=>wf,communicate_espnow_init_new:()=>Hf,communicate_i2c_available:()=>sf,communicate_i2c_init:()=>ZD,communicate_i2c_master_read:()=>nf,communicate_i2c_onboard:()=>zD,communicate_i2c_read:()=>$D,communicate_i2c_scan:()=>ef,communicate_i2c_write:()=>tf,communicate_ir_recv_init:()=>cf,communicate_ir_send_init:()=>Lf,communicate_ow_init:()=>Mf,communicate_ow_read:()=>Ef,communicate_ow_reset:()=>mf,communicate_ow_scan:()=>hf,communicate_ow_select:()=>Rf,communicate_ow_write:()=>Of,communicate_spi_buffer:()=>af,communicate_spi_init:()=>of,communicate_spi_onboard:()=>jD,communicate_spi_read:()=>uf,communicate_spi_read_output:()=>rf,communicate_spi_readinto:()=>df,communicate_spi_readinto_output:()=>lf,communicate_spi_set:()=>pf,communicate_spi_write:()=>If,communicate_spi_write_readinto:()=>Tf,espnow_radio_channel:()=>qf,espnow_radio_channel_new:()=>jf,espnow_radio_on_off:()=>Zf,espnow_radio_rec:()=>tF,espnow_radio_recv:()=>iF,espnow_radio_recv_certain_msg:()=>nF,espnow_radio_recv_certain_msg_new:()=>_F,espnow_radio_recv_msg:()=>eF,espnow_radio_recv_new:()=>sF,espnow_radio_send:()=>$f,espnow_radio_txpower:()=>zf,i2c_slave_onreceive:()=>_f,internal_variable:()=>gf,ir_recv_timeout:()=>Af,ir_transmit_busy:()=>Ff,ir_transmit_conventional_data:()=>Nf,ir_transmit_raw_code:()=>ff,ir_transmit_study_code:()=>Df,ir_whether_recv:()=>Sf,lora_init:()=>oF,lora_packet:()=>pF,lora_recv:()=>uF,lora_send:()=>aF,network_espnow_info:()=>Wf,network_espnow_mac:()=>kf,network_espnow_recv:()=>Kf,network_espnow_recv_handle:()=>Qf,network_espnow_send:()=>Jf,recv_fun:()=>Cf,urequests_attribute:()=>dF,urequests_get:()=>rF,urequests_method:()=>lF});var tt={};t.r(tt),t.d(tt,{display_animate:()=>bF,display_circle:()=>VF,display_color_seclet:()=>qF,display_draw_4strings:()=>FF,display_fill:()=>yF,display_lcd_use_i2c_init:()=>eP,display_line:()=>vF,display_line_arbitrarily:()=>PF,display_matrix_extern_bright_point:()=>CF,display_matrix_extern_bright_screen:()=>AF,display_matrix_extern_clear:()=>RF,display_matrix_extern_get_pixel:()=>gF,display_matrix_extern_get_screen_pixel:()=>SF,display_matrix_extern_image_builtins:()=>LF,display_matrix_extern_scroll_string:()=>EF,display_matrix_extern_scroll_string_delay:()=>OF,display_matrix_extern_shift:()=>cF,display_matrix_extern_show_frame_string:()=>hF,display_matrix_extern_show_frame_string_delay:()=>mF,display_matrix_extern_show_image:()=>TF,display_matrix_extern_show_image_or_string_delay:()=>MF,display_matrix_use_i2c_init:()=>IF,display_oled_drawPixel:()=>UF,display_oled_showBitmap:()=>GF,display_oled_use_i2c_init:()=>oP,display_onoff:()=>XF,display_rect:()=>YF,display_tm1650_power:()=>HF,display_tm1650_set_brightness:()=>KF,display_tm1650_show_dot:()=>WF,display_tm1650_show_num:()=>kF,display_tm_use_i2c_init:()=>wF,display_triangle:()=>BF,display_use_i2c_init:()=>fF,extern_oled_bright_point:()=>EP,extern_oled_clear:()=>MP,extern_oled_get_pixel:()=>mP,extern_oled_hvline:()=>RP,extern_oled_line:()=>cP,extern_oled_scroll_string:()=>IP,extern_oled_scroll_string_delay:()=>TP,extern_oled_shape_rect:()=>OP,extern_oled_shift:()=>hP,extern_oled_show_frame_string:()=>dP,extern_oled_show_frame_string_delay:()=>lP,extern_oled_show_image:()=>pP,extern_oled_show_image_or_string_delay:()=>rP,extern_oled_show_image_xy:()=>aP,extern_oled_show_string:()=>uP,image_shift:()=>xF,lcd_backlight:()=>sP,lcd_clear:()=>_P,lcd_print_string:()=>nP,lcd_show_image_or_string_delay:()=>iP,matrix_extern_image_arithmetic:()=>NF,matrix_extern_image_invert:()=>DF,tft_fill:()=>$F,tft_line_arbitrarily:()=>tP,tft_scroll_string_delay:()=>ZF,tft_show_frame_string_delay:()=>jF,tft_show_image_or_string_delay:()=>zF,tft_show_image_xy:()=>QF,tft_use_spi_init:()=>JF});var et={};t.r(et),t.d(et,{bitbot_display_image_create:()=>_Y,display_bright_point:()=>yP,display_bright_screen:()=>VP,display_clear:()=>PP,display_get_pixel:()=>xP,display_get_screen_pixel:()=>bP,display_image_builtins:()=>DP,display_image_builtins_all:()=>fP,display_image_create:()=>FP,display_scroll_string:()=>LP,display_scroll_string_delay:()=>NP,display_shift:()=>XP,display_show_frame_string:()=>SP,display_show_frame_string_delay:()=>AP,display_show_image:()=>gP,display_show_image_or_string_delay:()=>CP,draw_pointer:()=>fY,image_arithmetic:()=>YP,image_invert:()=>vP,mixbot_display_bright_screen:()=>nY,mixbot_display_get_ambientbright:()=>iY,mixbot_display_get_screen_pixel:()=>eY,mixbot_display_image_create:()=>tY,mixbot_display_rotate:()=>sY,mixgo_display_image_create_new:()=>wP,mixgome_display_font:()=>UP,mixgome_display_image_create:()=>BP,mixgomini_display_image_create:()=>GP,mpython_display_hvline:()=>ZP,mpython_display_line:()=>$P,mpython_display_shape_rect:()=>jP,mpython_pbm_image:()=>HP,onboard_oled_bright_point:()=>zP,onboard_oled_scroll_string_delay:()=>qP,onboard_oled_show_frame_string_delay:()=>QP,onboard_oled_show_image:()=>kP,onboard_oled_show_image_or_string_delay:()=>JP,onboard_oled_show_image_xy:()=>WP,onboard_oled_show_string:()=>KP,onboard_tft_bright_point:()=>OY,onboard_tft_bright_screen:()=>cY,onboard_tft_clear:()=>hY,onboard_tft_clock_clear:()=>NY,onboard_tft_clock_draw:()=>LY,onboard_tft_clock_get_rtctime:()=>SY,onboard_tft_clock_init:()=>CY,onboard_tft_clock_set_time:()=>AY,onboard_tft_display_hvline:()=>TY,onboard_tft_display_line:()=>MY,onboard_tft_display_shape_circle:()=>DY,onboard_tft_display_shape_rect:()=>IY,onboard_tft_fill:()=>gY,onboard_tft_get_pixel:()=>EY,onboard_tft_get_screen_pixel:()=>RY,onboard_tft_scroll_string:()=>dY,onboard_tft_scroll_string_delay:()=>lY,onboard_tft_shift:()=>mY,onboard_tft_show_frame_string:()=>uY,onboard_tft_show_frame_string_delay:()=>rY,onboard_tft_show_image:()=>oY,onboard_tft_show_image_or_string_delay:()=>aY,onboard_tft_show_image_xy:()=>pY});var it={};t.r(it),t.d(it,{factory_block:()=>bY,factory_block_return:()=>VY,factory_block_return_with_textarea:()=>GY,factory_block_with_textarea:()=>BY,factory_callMethod_noreturn:()=>xY,factory_callMethod_return:()=>yY,factory_declare:()=>XY,factory_from_import:()=>FY,factory_function_noreturn:()=>YY,factory_function_return:()=>vY,factory_import:()=>PY,folding_block:()=>UY});var nt={};t.r(nt),t.d(nt,{inout_analog_atten:()=>iv,inout_analog_read:()=>qY,inout_analog_read_init:()=>ev,inout_analog_write:()=>KY,inout_analog_write_init:()=>tv,inout_analog_write_set:()=>JY,inout_digital_init:()=>ZY,inout_digital_read:()=>kY,inout_digital_write:()=>HY,inout_highlow:()=>wY,inout_pin_attachInterrupt:()=>jY,inout_pin_pressed:()=>zY,inout_pin_pressed_init:()=>nv,inout_pwm_analog_write:()=>WY,inout_pwm_analog_write_init:()=>$Y,inout_pwm_analog_write_set_freq:()=>QY});var st={};t.r(st),t.d(st,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>gv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Rv,IOT_EMQX_PING:()=>Cv,IOT_FORMATTING:()=>Ev,IOT_FORMAT_STRING:()=>Ov,IOT_MIXIO_NTP:()=>Sv,IOT_MIXIO_PUBLISH:()=>dv,IOT_MIXIO_SUBSCRIBE:()=>lv,iot_client_onboard:()=>Av,iot_http_client:()=>Lv,iot_http_data:()=>Nv,iot_mixio_check:()=>Mv,iot_mixio_connect:()=>rv,iot_mixio_connect_only:()=>Tv,iot_mixio_disconnect:()=>Iv,iot_mixio_format_msg:()=>mv,iot_mixio_format_topic:()=>hv,iot_mixly_key:()=>cv,iot_mqtt_client:()=>Dv,iot_mqtt_data:()=>fv,iot_onenet_check:()=>av,iot_onenet_connect:()=>_v,iot_onenet_disconnect:()=>ov,iot_onenet_publish:()=>uv,iot_onenet_publish_dict:()=>pv,iot_wifi_connect:()=>sv});var _t={};t.r(_t),t.d(_t,{educore_mqtt_connect:()=>oX,educore_mqtt_connect_success:()=>rX,educore_mqtt_subscribe_message:()=>pX,educore_mqtt_topic_publish:()=>uX,educore_mqtt_topic_subscribe:()=>aX,educore_wifi_connect:()=>_X,network_ap_connect:()=>Vv,network_connect:()=>Pv,network_get_connect:()=>vv,network_get_wifi:()=>bv,network_init:()=>Fv,network_is_active:()=>yv,network_open:()=>xv,network_scan:()=>Bv,network_server:()=>Gv,network_socket_accept:()=>Wv,network_socket_bind:()=>wv,network_socket_close:()=>zv,network_socket_connect:()=>Hv,network_socket_init:()=>Uv,network_socket_listen:()=>kv,network_socket_receive:()=>Kv,network_socket_receive_from:()=>Qv,network_socket_send:()=>Jv,network_socket_send_to:()=>qv,network_stop:()=>Xv,network_wifi_connect:()=>Yv,ntptime_address:()=>eX,ntptime_time:()=>tX,requests_attribute:()=>Zv,requests_attribute2:()=>nX,requests_get:()=>jv,requests_get2:()=>iX,requests_method:()=>$v,requests_post:()=>sX});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>vX,CI130X_GET_THE_RECOGNIZED_CMD:()=>YX,CI130X_GET_WHETHER_IDENTIFY:()=>PX,CI130X_IDENTIFY_AND_SAVE:()=>FX,CI130X_SET_SYSTEM_CMD:()=>XX,HCSR04:()=>rx,PS2_Button:()=>Ix,PS2_Buttons:()=>Tx,PS2_Buttons_new:()=>gx,PS2_State:()=>Mx,PS2_init:()=>dx,PS2_init_new:()=>Rx,PS2_stk:()=>hx,PS2_stk_new:()=>Cx,PS2_vibration:()=>lx,PS2_vibration_new:()=>cx,RTC_get_time:()=>Ex,RTC_set_date:()=>EX,RTC_set_datetime:()=>mx,RTC_set_time:()=>mX,camera_sensor_init:()=>$x,camera_sensor_result:()=>ty,educore_body_sensor:()=>Hx,educore_button_sensor_extern:()=>Jx,educore_camera_sensor:()=>Zx,educore_infrared_sensor:()=>Kx,educore_soilhum_sensor:()=>kx,educore_temp_sensor:()=>jx,educore_temphum_sensor:()=>Wx,educore_ultrasonic_sensor:()=>qx,esp32_s2_weather_init:()=>ox,esp32_s2_weather_rain:()=>ax,esp32_s2_weather_wd:()=>px,esp32_s2_weather_ws:()=>ux,extern_rfid_read:()=>QX,extern_rfid_readcontent:()=>zX,extern_rfid_readid:()=>qX,extern_rfid_status:()=>$X,extern_rfid_write:()=>jX,extern_rfid_write_return:()=>ZX,gnss_get_data:()=>Lx,gnss_have_data:()=>Nx,interaction_whether_to_interaction:()=>DX,interaction_whether_to_interaction_SANT:()=>fX,mixbot_sensor_extern_get_addr:()=>yx,mixbot_sensor_extern_set_addr:()=>bx,pm25_get_data:()=>Ax,radar_set_DETECTION_THRESHOLD:()=>LX,radar_set_DETECTION_THRESHOLD_SANT:()=>NX,robot_button_extern_get_value:()=>Dx,robot_color_extern_get_value:()=>vx,robot_infrared_extern_get_value:()=>Fx,robot_infrared_extern_grey_get_value:()=>Px,robot_potentiometer_extern_get_value:()=>Yx,robot_sonar_extern_get_value:()=>Xx,robot_sonar_extern_led:()=>xx,robot_touch_extern_get_value:()=>fx,sensor_APDS9960_extern:()=>yX,sensor_DS18X20:()=>wx,sensor_LTR308_extern:()=>bX,sensor_LTR390UV_extern:()=>wX,sensor_MAX30102_extern:()=>xX,sensor_QMC5883L_extern:()=>HX,sensor_VL530LX_extern:()=>KX,sensor_aht11_extern:()=>WX,sensor_bmp:()=>CX,sensor_dht11:()=>Ox,sensor_distance_hrsc04:()=>hX,sensor_hp203_extern:()=>VX,sensor_ltr381_extern:()=>GX,sensor_mixgo_extern_button_attachInterrupt:()=>TX,sensor_mixgo_extern_button_get_presses:()=>IX,sensor_mixgo_extern_button_is_pressed:()=>dX,sensor_mixgo_extern_button_was_pressed:()=>lX,sensor_mixgo_extern_light:()=>OX,sensor_mixgo_extern_pin_near:()=>cX,sensor_mixgo_extern_sound:()=>RX,sensor_mixgoce_hot_wheel_degrees:()=>_x,sensor_mixgoce_hot_wheel_is_touched:()=>sx,sensor_mpu9250_attachGestureInterrupt:()=>MX,sensor_read_humiture:()=>Qx,sensor_rtc_init:()=>gX,sensor_sht:()=>SX,sensor_shtc3_extern:()=>kX,sensor_spl06_001_extern:()=>BX,sensor_ucs12071_extern:()=>UX,sensor_use_i2c_init:()=>AX,sensor_use_spi_init:()=>JX,sensor_use_uart_init:()=>Sx,sensor_weather_solo_init:()=>Vx,sensor_weather_solo_rain:()=>Ux,sensor_weather_solo_wd:()=>Bx,sensor_weather_solo_ws:()=>Gx,sensor_weigh_init:()=>ey,ultrasonic_sensor_read_distance:()=>zx,weather_data:()=>tx,weather_have_data:()=>ex,weather_set_label:()=>nx,weather_uart_mixio:()=>ix,weigh_sensor_get_weight:()=>iy});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>eV,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>tV,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>$b,CI130X_IDENTIFY_AND_SAVE_SANT:()=>Zb,CI130X_SET_SYSTEM_CMD_SANT:()=>iV,HCSR04:()=>dy,bitbot_als_num:()=>Yb,dht11:()=>Gb,educore_button_sensor:()=>Jb,educore_button_was_pressed:()=>Qb,educore_gyroscope_sensor:()=>kb,educore_gyroscope_sensor_read:()=>Wb,educore_gyroscope_sensor_shake:()=>Kb,educore_light_sensor:()=>Hb,educore_rfid_sensor:()=>qb,educore_rfid_sensor_scan:()=>zb,educore_rfid_sensor_scan_data:()=>jb,educore_voice_sensor:()=>Ub,number1:()=>ly,number2:()=>Iy,number3:()=>Ty,number4:()=>My,number5:()=>hy,number6:()=>my,number7:()=>Ey,onboard_RTC_get_time:()=>ab,onboard_RTC_get_time_str:()=>db,onboard_RTC_get_timestamp:()=>ub,onboard_RTC_get_timetuple_to_str:()=>lb,onboard_RTC_set_datetime:()=>ob,onboard_RTC_settime_string:()=>pb,onboard_RTC_timestamp_totuple:()=>rb,rfid_readcontent:()=>Xy,rfid_readid:()=>vy,rfid_write:()=>xy,rfid_write_return:()=>yy,sensor_LTR308:()=>Dy,sensor_adxl345_get_acceleration:()=>Wy,sensor_aht11:()=>Py,sensor_bitbot_ALS:()=>Pb,sensor_button_get_presses:()=>xb,sensor_button_is_pressed:()=>vb,sensor_button_was_pressed:()=>Xb,sensor_compass_reset:()=>jy,sensor_ds18x20:()=>Ly,sensor_eulerangles:()=>Vy,sensor_get_acceleration:()=>by,sensor_get_temperature:()=>Yy,sensor_hp203:()=>Fy,sensor_light:()=>Bb,sensor_lm35:()=>Ny,sensor_mixbot_get_gyro:()=>Fb,sensor_mixbot_patrol_calibrate:()=>Nb,sensor_mixbot_patrol_value:()=>Db,sensor_mixbot_temperature:()=>fb,sensor_mixgo_LTR308:()=>Cy,sensor_mixgo_button_attachInterrupt:()=>oy,sensor_mixgo_button_get_presses:()=>_y,sensor_mixgo_button_is_pressed:()=>ny,sensor_mixgo_button_was_pressed:()=>sy,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Mb,sensor_mixgo_cc_mmc5603_get_angle:()=>Tb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Ib,sensor_mixgo_light:()=>Vb,sensor_mixgo_nova_LTR308:()=>Ay,sensor_mixgo_nova_pin_near:()=>gy,sensor_mixgo_pin_near:()=>cy,sensor_mixgo_pin_near_double:()=>Ry,sensor_mixgo_pin_near_single:()=>Oy,sensor_mixgo_pin_pressed:()=>Hy,sensor_mixgo_sant_color:()=>Sy,sensor_mixgo_touch_slide:()=>wy,sensor_mixgocar42_button_attachInterrupt:()=>ry,sensor_mixgocar42_button_get_presses:()=>uy,sensor_mixgocar42_button_is_pressed:()=>py,sensor_mixgocar42_button_was_pressed:()=>ay,sensor_mixgocar_battery_left:()=>Lb,sensor_mixgocar_pin_near:()=>Sb,sensor_mixgocar_pin_near_line:()=>Cb,sensor_mixgocar_pin_near_state_change:()=>Ab,sensor_mixgoce_pin_pressed:()=>Uy,sensor_mixgoce_temperature:()=>mb,sensor_mixgome_temperature:()=>hb,sensor_mpu9250_calibrate_compass:()=>Qy,sensor_mpu9250_field_strength:()=>zy,sensor_mpu9250_gesture:()=>By,sensor_mpu9250_get_acceleration:()=>Gy,sensor_mpu9250_get_gyro:()=>Jy,sensor_mpu9250_get_magnetic:()=>Ky,sensor_mpu9250_temperature:()=>qy,sensor_mpython_pin_pressed:()=>ky,sensor_mpython_qmi8658_get_gyro:()=>Eb,sensor_mpython_qmi8658_temperature:()=>Ob,sensor_onboard_compass_reset:()=>_b,sensor_onboard_mpu9250_calibrate_compass:()=>ib,sensor_onboard_mpu9250_field_strength:()=>sb,sensor_onboard_mpu9250_gesture:()=>Zy,sensor_onboard_mpu9250_get_acceleration:()=>$y,sensor_onboard_mpu9250_get_gyro:()=>eb,sensor_onboard_mpu9250_get_magnetic:()=>tb,sensor_onboard_mpu9250_temperature:()=>nb,sensor_pin_near:()=>bb,sensor_pin_pressed:()=>yb,sensor_read:()=>wb,sensor_rm_acc:()=>gb,sensor_rm_battery_left:()=>cb,sensor_rm_pin_near_double:()=>Rb,sensor_sound:()=>fy});var at={};t.r(at),t.d(at,{serial_any:()=>pV,serial_print:()=>nV,serial_print_byte:()=>sV,serial_print_hex:()=>oV,serial_println:()=>_V,serial_read_from_ai:()=>EV,serial_readline:()=>uV,serial_readstr:()=>aV,serial_send_to_ai:()=>mV,serial_softserial:()=>rV,serial_softserial_new:()=>dV,system_input:()=>lV,system_print:()=>IV,system_print_end:()=>MV,system_print_inline:()=>TV,system_print_many:()=>hV});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>FV,Timer_init:()=>WV,base_delay:()=>QV,controls_delay:()=>xV,controls_delay_new:()=>yV,controls_end_program:()=>YV,controls_millis:()=>PV,controls_uname:()=>XV,reset:()=>vV,system_bitbot_shutdown:()=>kV,system_device_name:()=>DV,system_device_serial_number:()=>fV,system_event_bus_source:()=>LV,system_event_bus_value:()=>NV,system_machine_reset:()=>HV,system_on_event:()=>CV,system_raise_event:()=>gV,system_reset:()=>RV,system_run_in_background:()=>OV,system_ticks_diff:()=>BV,system_timer:()=>VV,system_timer_init:()=>GV,system_timestamp:()=>SV,system_value:()=>AV,system_wait:()=>cV,system_wdt_feed:()=>wV,system_wdt_init:()=>UV,time_ticks_diff:()=>JV,timer:()=>bV,timer2:()=>KV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>pB,Air_now_content:()=>tB,Geo_moon_content:()=>uB,Geo_sun_content:()=>aB,Life_suggestion_content:()=>iB,Location_search_content:()=>sB,Tide_daily_content:()=>nB,WEATHER_DAILY:()=>zV,WEATHER_HOUR:()=>jV,WEATHER_NOW:()=>qV,Weather_alarm_content:()=>eB,Weather_daily:()=>_B,Weather_daily_content:()=>oB,Weather_now:()=>ZV,Weather_now_content:()=>$V});var dt={};t.r(dt),t.d(dt,{controls_pin_attachInterrupt:()=>DB,inout_analog_atten:()=>EB,inout_analog_write:()=>hB,inout_analog_write_init:()=>gB,inout_analog_write_set:()=>mB,inout_analog_write_set_freq:()=>SB,inout_digital_init:()=>cB,inout_digital_read:()=>MB,inout_digital_write:()=>TB,inout_highlow:()=>IB,inout_pinMode:()=>AB,inout_pin_attachInterrupt:()=>RB,inout_pin_pressed:()=>OB,inout_pin_pressed_init:()=>CB,pin_pressed:()=>NB,pin_pressed_init:()=>LB});var lt={};t.r(lt),t.d(lt,{me_g1_aht11:()=>FB,me_g1_hp203:()=>PB,me_g1_rfid_readcontent:()=>XB,me_g1_rfid_readid:()=>vB,me_g1_rfid_status:()=>bB,me_g1_rfid_write:()=>xB,me_g1_rfid_write_outcome:()=>yB,me_g1_varistor:()=>YB});var It={};t.r(It),t.d(It,{analog_input:()=>KB,analog_output:()=>QB,espnow_channel:()=>HB,haskylens_model:()=>kB,i2c_A_pin:()=>qB,i2c_B_pin:()=>zB,pins_analog:()=>eG,pins_analog_pin:()=>iG,pins_axis:()=>OG,pins_brightness:()=>RG,pins_builtinimg:()=>lG,pins_builtinimg_extern:()=>IG,pins_button:()=>_G,pins_buttonB:()=>oG,pins_dac:()=>nG,pins_dac_pin:()=>sG,pins_digital:()=>BB,pins_digital_dot:()=>DG,pins_digital_pin:()=>GB,pins_exlcdh:()=>mG,pins_exlcdv:()=>EG,pins_imglist:()=>TG,pins_input_pin:()=>UB,pins_one_more:()=>NG,pins_output_pin:()=>wB,pins_playlist:()=>MG,pins_playlist_extern:()=>hG,pins_pwm:()=>pG,pins_pwm_pin:()=>aG,pins_radio_datarate:()=>LG,pins_radio_power:()=>AG,pins_serial:()=>dG,pins_tone_notes:()=>SG,pins_touch:()=>rG,pins_touch_pin:()=>uG,pins_tts_bgmusic:()=>CG,pins_tts_builtin_music:()=>gG,pins_tts_voice:()=>cG,pwm_input:()=>WB,pwm_output:()=>JB,spi_A_pin:()=>jB,spi_B_pin:()=>ZB,spi_C_pin:()=>$B,spi_D_pin:()=>tG});var Tt={};t.r(Tt),t.d(Tt,{inout_analog_atten:()=>VG,inout_analog_write:()=>YG,inout_analog_write_init:()=>bG,inout_analog_write_set:()=>vG,inout_digital_init:()=>yG,inout_digital_read:()=>PG,inout_digital_write:()=>FG,inout_highlow:()=>fG,inout_pin_attachInterrupt:()=>xG,inout_pin_pressed:()=>XG,inout_pin_pressed_init:()=>BG});var Mt={};t.r(Mt),t.d(Mt,{me_g1_aht11:()=>GG,me_g1_hp203:()=>UG,me_g1_rfid_readcontent:()=>kG,me_g1_rfid_readid:()=>HG,me_g1_rfid_status:()=>JG,me_g1_rfid_write:()=>WG,me_g1_rfid_write_outcome:()=>KG,me_g1_varistor:()=>wG});var ht={};t.r(ht),t.d(ht,{analog_input:()=>nU,analog_output:()=>_U,espnow_channel:()=>eU,haskylens_model:()=>iU,i2c_A_pin:()=>oU,i2c_B_pin:()=>pU,pins_analog:()=>IU,pins_analog_pin:()=>lU,pins_axis:()=>NU,pins_brightness:()=>FU,pins_builtinimg:()=>gU,pins_builtinimg_extern:()=>CU,pins_button:()=>qG,pins_buttonB:()=>zG,pins_dac:()=>mU,pins_dac_pin:()=>hU,pins_digital:()=>QG,pins_digital_dot:()=>VU,pins_digital_pin:()=>jG,pins_exlcdh:()=>DU,pins_exlcdv:()=>fU,pins_imglist:()=>SU,pins_input_pin:()=>ZG,pins_interrupt:()=>RU,pins_one_more:()=>bU,pins_output_pin:()=>$G,pins_playlist:()=>AU,pins_playlist_extern:()=>LU,pins_pwm:()=>MU,pins_pwm_input:()=>tU,pins_pwm_pin:()=>TU,pins_radio_datarate:()=>yU,pins_radio_power:()=>xU,pins_serial:()=>cU,pins_tone_notes:()=>XU,pins_touch:()=>OU,pins_touch_pin:()=>EU,pins_tts_bgmusic:()=>vU,pins_tts_builtin_music:()=>YU,pins_tts_voice:()=>PU,pwm_output:()=>sU,spi_A_pin:()=>aU,spi_B_pin:()=>uU,spi_C_pin:()=>rU,spi_D_pin:()=>dU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Ht={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},kt={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],kt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const de={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const ye={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},js={init:function(){this.setColour(ks),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(ks),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(ks),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(ks),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_=160,i_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},n_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},s_={init:function(){this.setColour(e_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},__={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},o_={init:function(){this.setColour(e_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},p_={init:function(){this.setColour(e_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},a_={init:function(){this.setColour(e_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ea=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},ia=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},na=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},sa=function(t,e){return["None",e.ORDER_ATOMIC]},_a=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ua=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},da=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},la=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ia=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ta=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ha=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Oa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ra=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ca=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Sa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Na=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},lu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Iu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},hu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},mu=function(t,e){return'"},Eu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ou=function(){return this.getFieldValue("TEXT")+"\n"},Ru=function(t){return t.getFieldValue("TEXT")+"\n"},cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},gu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Cu=function(){return""},Su=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Au=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Nu.scrubNakedValue=function(t){return t+"\n"},Nu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Nu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Nu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,Nu.COMMENT_WRAP-3),n+=Nu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Du="#74A55B",fu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Fu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Pu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},vu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Uu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Hu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},zu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},ju={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},$u={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},er={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ir={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},nr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},pr={},ar={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},rr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},dr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},lr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Ir={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Tr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr="#6C9858",Xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Gr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ur={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Wr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Kr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},$r={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},td={init:function(){this.setColour(vr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},sd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},_d={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},od={init:function(){this.setColour(vr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ad={init:function(){this.setColour(vr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(vr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},rd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Od={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},vd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Xd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},xd={init:function(){this.setColour(vr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},XE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},xE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},yE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},bE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},BE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},GE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},kE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},WE={init:function(){this.setColour(NE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},KE={init:function(){this.setColour(NE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},JE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},QE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},qE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(NE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},ZE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},$E={init:function(){this.setColour(NE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},eO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nO=DE,sO=fE,_O=FE,oO=PE,pO=vE,aO=225,uO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},rO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},dO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},lO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},IO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},TO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},mO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},EO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},RO={init:function(){this.setColour(aO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},cO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},gO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},SO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},AO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},LO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},NO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},DO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},fO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},FO={init:function(){this.setColour(aO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},PO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},YO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},vO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},XO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},xO="#3288dd",yO={init:function(){this.setColour(xO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},bO={init:function(){this.setColour(xO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},VO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(xO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},BO={init:function(){this.setColour(xO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},GO={init:function(){this.setColour(xO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UO={init:function(){this.setColour(xO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},wO={init:function(){this.setColour(xO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HO={init:function(){this.setColour(xO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(xO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},WO="#A58C5B",KO={init:function(){this.setColour(WO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},JO={init:function(){this.setColour(WO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},QO={init:function(){this.setColour(WO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},qO={init:function(){this.setColour(WO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},zO={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},jO={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ZO={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},$O={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(WO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},tR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},eR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},iR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},nR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},sR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},_R={init:function(){this.setColour(WO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},oR={init:function(){this.setColour(WO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},pR={init:function(){this.setColour(WO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},aR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},uR={init:function(){this.setColour(WO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},rR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},dR={init:function(){this.setColour(WO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},lR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},IR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},TR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},MR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},mR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ER={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},OR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},AR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},LR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},FR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},PR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},YR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},XR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},xR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},yR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},bR={init:function(){this.setColour(WO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},VR={init:function(){this.setColour(WO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},BR={init:function(){this.setColour(WO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},GR={init:function(){this.setColour(WO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},UR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},wR={init:function(){this.setColour(WO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},HR={init:function(){this.setColour(WO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},WR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},KR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},JR={init:function(){this.setColour(WO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},dF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},IF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},MF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},EF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},OF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},RF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},cF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},gF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},CF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},SF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},AF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},LF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},NF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},DF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},fF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},FF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},PF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},YF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},vF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},XF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},xF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},yF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},bF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},VF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},BF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},GF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},UF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},wF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},HF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},kF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},WF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},KF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},JF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},QF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},qF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},zF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},jF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},ZF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},$F=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},tP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},iP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},nP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},sP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},_P=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},oP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},pP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},aP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},dP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},lP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},TP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},MP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},hP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},mP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},EP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},OP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},RP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},cP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},gP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},CP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},AP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},LP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},NP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},_Y=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},oY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},pY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},SY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},AY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},LY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},NY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},DY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},fY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},hV=function(){return"control.reset()\n"},mV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},EV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},OV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},RV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},cV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},gV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},CV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},SV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},AV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},LV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},NV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},DV=function(){return"while True:\n pass\n"},fV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},FV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},PV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},YV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},vV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},XV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},xV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},yV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},bV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},VV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},BV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},GV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},UV=yV,wV=XV,HV=xV,kV=PV,WV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},KV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},JV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},QV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},qV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ZV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$V=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},eB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},iB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},nB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},sB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},_B=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},oB={};oB["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},oB["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-7"]),exlcdv:Et.Profile.generate(["0-4"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},oB["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["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"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},oB["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const pB=oB,aB=20,uB={init:function(){this.setColour(aB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},rB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},dB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},lB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},IB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},TB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},MB={init:function(){this.setColour(aB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},hB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},mB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},EB={init:function(){this.setColour(aB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},OB={init:function(){this.setColour(aB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},RB={init:function(){this.setColour(aB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},cB=mB,gB=OB,CB=MB,SB=hB,AB=40,LB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},NB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},fB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},FB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},PB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},YB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},vB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(AB),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XB=230,xB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},yB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},BB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},wB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},HB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},kB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},WB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},KB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},JB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},QB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},qB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},zB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},jB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},ZB={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},$B={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},tG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},sG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},pG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},uG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},rG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},lG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},IG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},CG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},SG={init:function(){this.setColour(XB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},AG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},LG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},NG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},DG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},fG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},FG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},PG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},YG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},vG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},XG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},xG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},yG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},bG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},VG=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},BG=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},GG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},UG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},wG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},HG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},kG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},WG=kG,KG=kG,JG=kG,QG=kG,qG=kG,zG=kG,jG=kG,ZG=kG,$G=kG,tU=kG,eU=kG,iU=kG,nU=kG,sU=kG,_U=kG,oU=kG,pU=kG,aU=kG,uU=kG,rU=kG,dU=kG,lU=kG,IU=kG,TU=kG,MU=kG,hU=kG,mU=kG,EU=kG,OU=kG,RU=kG,cU=kG,gU=kG,CU=kG,SU=kG,AU=kG,LU=kG,NU=kG,DU=kG,fU=kG,FU=kG,PU=kG,YU=kG,vU=kG,XU=kG;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=Nu,mt.generator=Nu,Et.Profile.default={},Object.assign(Et.Profile,pB),Object.assign(Et.Profile.default,pB["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,V,k,H,X,B,W,f,w,U,G,F,D,N,y,x,b,P,Y,v,dt,lt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,$,st,rt,Q,pt,ot,_t,q,J,K,et,tt,it,z,j,Z,Tt,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Ht={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},kt={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],kt.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const de={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const ye={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ia=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},na=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},sa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},_a=function(t,e){return["None",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ua=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ra=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},da=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},la=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ia=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ta=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ha=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Sa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Aa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},La=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Da=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},va=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Eu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Ou=function(t,e){return'"},Ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},cu=function(){return this.getFieldValue("TEXT")+"\n"},gu=function(t){return t.getFieldValue("TEXT")+"\n"},Cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Au=function(){return""},Lu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Nu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},fu.scrubNakedValue=function(t){return t+"\n"},fu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},fu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},fu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,fu.COMMENT_WRAP-3),n+=fu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Fu="#74A55B",Pu={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},bu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Gu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Uu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},wu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Hu={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ku={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Ku={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},ju={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},$u={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},er={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ir={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},_r={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},ur={},rr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},dr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Ir={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},hr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Lr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xr="#6C9858",yr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},br={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Vr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Br={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Gr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},wr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Hr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},kr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Jr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Qr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},qr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},zr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},jr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Zr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},$r={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},td={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ed={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},id={init:function(){this.setColour(xr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},nd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},_d={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},od={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},pd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ad={init:function(){this.setColour(xr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ud={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rd={init:function(){this.setColour(xr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ld={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Td={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Md={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Ed={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gd={init:function(){this.setColour(xr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(xr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ad={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ld={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Fd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Yd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},vd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Xd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},xd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},yd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},bd={init:function(){this.setColour(xr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},yE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},bE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},VE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},BE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},UE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},KE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},JE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},QE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},qE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},zE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},jE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(fE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},tO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},eO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},_O=FE,oO=PE,pO=YE,aO=vE,uO=xE,rO=225,dO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},lO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},IO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},TO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},MO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},hO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},mO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},EO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},OO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},RO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},cO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gO={init:function(){this.setColour(rO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},CO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},SO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},AO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},LO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},NO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},DO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},fO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},FO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},PO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},YO={init:function(){this.setColour(rO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},XO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},xO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},yO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},bO="#3288dd",VO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},BO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},GO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(bO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},UO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HO={init:function(){this.setColour(bO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},kO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},JO="#A58C5B",QO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},qO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},zO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},jO={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},ZO={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},$O={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},tR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},eR={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(JO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},iR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},nR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},sR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},_R={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},oR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},pR={init:function(){this.setColour(JO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},aR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},uR={init:function(){this.setColour(JO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},rR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},dR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},lR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},IR={init:function(){this.setColour(JO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},TR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},MR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},hR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},mR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ER={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},OR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},RR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},gR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},CR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},SR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},AR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},DR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},YR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},XR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},yR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},bR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},VR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},BR={init:function(){this.setColour(JO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},GR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},wR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},HR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},kR={init:function(){this.setColour(JO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},WR={init:function(){this.setColour(JO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},JR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},qR={init:function(){this.setColour(JO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},TF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},MF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},hF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},EF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},OF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},cF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},gF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},CF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},SF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},AF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},NF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},DF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},fF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},FF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},PF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},YF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},vF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},XF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},xF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},bF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},VF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},BF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},GF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},UF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},wF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},HF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},kF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},WF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},KF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},JF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},QF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},zF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},jF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},ZF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},$F=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},tP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},eP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},iP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},nP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},sP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},_P=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},oP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},pP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},aP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},uP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},rP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},dP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},lP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},MP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},mP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},EP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},OP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},RP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},cP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},gP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},CP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},AP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},LP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},NP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},DP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},fP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},FP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},aY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},uY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},rY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},dY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},lY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},IY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},SY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},AY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},LY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},NY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},DY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},fY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},FY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},PY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},YY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},RV=function(){return"control.reset()\n"},cV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},gV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},CV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},SV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},AV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},LV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},NV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},DV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},fV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},FV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},PV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},YV=function(){return"while True:\n pass\n"},vV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},XV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},xV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},yV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},bV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},VV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},BV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},GV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},UV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},wV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},HV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},kV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},WV=GV,KV=VV,JV=BV,QV=xV,qV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},jV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},$V=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},tB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},eB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},iB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},nB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},sB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},_B=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},oB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},pB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},aB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},uB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},rB={};rB["MixGo CC"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},rB["MixGo ME"]={description:"MicroPython[ESP32C3 MixGo ME]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-7"]),exlcdv:Et.Profile.generate(["0-4"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},rB["MixGo Car 4.2"]={description:"MicroPython[ESP32]",digital_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],digital:[["pin0","pin0"],["pin1","pin1"],["pin2","pin2"],["pin3","pin3"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin20","pin20"],["pin21","pin21"]],pwm_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["20","20"],["21","21"]],pwm:[["pwm0","pwm0"],["pwm1","pwm1"],["pwm2","pwm2"],["pwm3","pwm3"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm6","pwm6"],["pwm7","pwm7"],["pwm8","pwm8"],["pwm9","pwm9"],["pwm10","pwm10"],["pwm20","pwm20"],["pwm21","pwm21"]],espnow_channel:[["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"]],i2c_A_pin:[["6","6"],["9","9"]],i2c_B_pin:[["7","7"],["10","10"]],spi_A_pin:[["6","6"],["9","9"]],spi_B_pin:[["7","7"],["10","10"]],spi_C_pin:[["9","9"],["20","20"]],spi_D_pin:[["10","10"],["21","21"]],analog_pin:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],analog:[["adc0","adc0"],["adc1","adc1"],["adc2","adc2"],["adc3","adc3"],["adc4","adc4"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],buttonB:[["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["24","24"],["25","25"],["26","26"],["27","27"],["28","28"],["29","29"],["30","30"],["31","31"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","matrix.Image.HEART"],["HEART_SMALL","matrix.Image.HEART_SMALL"],["HAPPY","matrix.Image.HAPPY"],["SAD","matrix.Image.SAD"],["SMILE","matrix.Image.SMILE"],["SILLY","matrix.Image.SILLY"],["FABULOUS","matrix.Image.FABULOUS"],["SURPRISED","matrix.Image.SURPRISED"],["ASLEEP","matrix.Image.ASLEEP"],["ANGRY","matrix.Image.ANGRY"],["CONFUSED","matrix.Image.CONFUSED"],["NO","matrix.Image.NO"],["YES","matrix.Image.YES"],["LEFT_ARROW","matrix.Image.LEFT_ARROW"],["RIGHT_ARROW","matrix.Image.RIGHT_ARROW"],["DRESS","matrix.Image.DRESS"],["TRANSFORMERS","matrix.Image.TRANSFORMERS"],["SCISSORS","matrix.Image.SCISSORS"],["EXIT","matrix.Image.EXIT"],["TREE","matrix.Image.TREE"],["PACMAN","matrix.Image.PACMAN"],["TARGET","matrix.Image.TARGET"],["TSHIRT","matrix.Image.TSHIRT"],["ROLLERSKATE","matrix.Image.ROLLERSKATE"],["DUCK","matrix.Image.DUCK"],["HOUSE","matrix.Image.HOUSE"],["TORTOISE","matrix.Image.TORTOISE"],["BUTTERFLY","matrix.Image.BUTTERFLY"],["STICKFIGURE","matrix.Image.STICKFIGURE"],["GHOST","matrix.Image.GHOST"],["PITCHFORK","matrix.Image.PITCHFORK"],["MUSIC_QUAVERS","matrix.Image.MUSIC_QUAVERS"],["MUSIC_QUAVER","matrix.Image.MUSIC_QUAVER"],["MUSIC_CROTCHET","matrix.Image.MUSIC_CROTCHET"],["COW","matrix.Image.COW"],["RABBIT","matrix.Image.RABBIT"],["SQUARE_SMALL","matrix.Image.SQUARE_SMALL"],["SQUARE","matrix.Image.SQUARE"],["DIAMOND_SMALL","matrix.Image.DIAMOND_SMALL"],["DIAMOND","matrix.Image.DIAMOND"],["CHESSBOARD","matrix.Image.CHESSBOARD"],["TRIANGLE_LEFT","matrix.Image.TRIANGLE_LEFT"],["TRIANGLE","matrix.Image.TRIANGLE"],["SNAKE","matrix.Image.SNAKE"],["UMBRELLA","matrix.Image.UMBRELLA"],["SKULL","matrix.Image.SKULL"],["GIRAFFE","matrix.Image.GIRAFFE"],["SWORD","matrix.Image.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","music.DADADADUM"],["ENTERTAINER","music.ENTERTAINER"],["PRELUDE","music.PRELUDE"],["ODE","music.ODE"],["NYAN","music.NYAN"],["RINGTONE","music.RINGTONE"],["FUNK","music.FUNK"],["BLUES","music.BLUES"],["BIRTHDAY","music.BIRTHDAY"],["WEDDING","music.WEDDING"],["FUNERAL","music.FUNERAL"],["PUNCHLINE","music.PUNCHLINE"],["PYTHON","music.PYTHON"],["BADDY","music.BADDY"],["CHASE","music.CHASE"],["BA_DING","music.BA_DING"],["WAWAWAWAA","music.WAWAWAWAA"],["JUMP_UP","music.JUMP_UP"],["JUMP_DOWN","music.JUMP_DOWN"],["POWER_UP","music.POWER_UP"],["POWER_DOWN","music.POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},rB["ESP32C3 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-11","18-21"]),input_pin:Et.Profile.generate(["0-11","18-21"]),output_pin:Et.Profile.generate(["0-11","18-21"]),pwm_input:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-5"],"adc","adc"),pwm_output:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-5"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-11","18-21"]),pwm:Et.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:Et.Profile.generate(["0-5"]),analog:Et.Profile.generate(["0-5"],"adc","adc"),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-31"]),exlcdv:Et.Profile.generate(["0-11"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const dB=rB,lB=20,IB={init:function(){this.setColour(lB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},TB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},MB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},hB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},mB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},EB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},OB={init:function(){this.setColour(lB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},RB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},cB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},gB={init:function(){this.setColour(lB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},CB={init:function(){this.setColour(lB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},SB={init:function(){this.setColour(lB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},AB=cB,LB=CB,NB=OB,DB=RB,fB=40,FB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[t]}))}},PB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput("").appendField(t).appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},vB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},XB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},xB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},bB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(fB),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VB=230,BB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},GB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},wB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},HB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},kB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},WB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},KB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},JB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},QB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},qB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},zB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},jB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},$B={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},iG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},sG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},aG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},IG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},TG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},MG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},hG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},mG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},OG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},cG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},CG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},AG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},NG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},DG={init:function(){this.setColour(VB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},fG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},FG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},PG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},YG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},vG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},XG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},xG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},yG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},bG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},VG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},BG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},GG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_ahtx0."+i+"()",e.ORDER_ATOMIC]},UG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_hp203x."+i,e.ORDER_ATOMIC]},wG=function(t,e){e.definitions_.import_me_g1="import me_g1";return["me_g1.varistor()",e.ORDER_ATOMIC]},HG=function(t,e){e.definitions_.import_me_g1="import me_g1";return['me_g1.ext_rc522.read_card(0, x="id")',e.ORDER_ATOMIC]},kG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.read_card("+i+")",e.ORDER_ATOMIC]},WG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1","me_g1.ext_rc522.write_card("+n+","+i+")\n"},KG=function(t,e){var i=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),n=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.write_card("+n+","+i+")",e.ORDER_ATOMIC]},JG=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_me_g1="import me_g1",["me_g1.ext_rc522.scan_card()=="+i,e.ORDER_ATOMIC]},QG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},qG=QG,zG=QG,jG=QG,ZG=QG,$G=QG,tU=QG,eU=QG,iU=QG,nU=QG,sU=QG,_U=QG,oU=QG,pU=QG,aU=QG,uU=QG,rU=QG,dU=QG,lU=QG,IU=QG,TU=QG,MU=QG,hU=QG,mU=QG,EU=QG,OU=QG,RU=QG,cU=QG,gU=QG,CU=QG,SU=QG,AU=QG,LU=QG,NU=QG,DU=QG,fU=QG,FU=QG,PU=QG,YU=QG,vU=QG,XU=QG,xU=QG,yU=QG,bU=QG,VU=QG;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=fu,mt.generator=fu,Et.Profile.default={},Object.assign(Et.Profile,dB),Object.assign(Et.Profile.default,dB["MixGo CC"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,V,k,H,X,B,W,f,w,U,G,F,D,N,y,x,b,P,Y,v,dt,lt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,nt,ut,at,$,st,rt,Q,pt,ot,_t,q,J,K,et,tt,it,z,j,Z,Tt,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/index.xml b/boards/default/micropython_esp32s2/index.xml index 0a05d8dd..c5e6985d 100644 --- a/boards/default/micropython_esp32s2/index.xml +++ b/boards/default/micropython_esp32s2/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,018029100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京111113820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func010,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_func2022711420452023,1,1,12,0,0180292023,1,1,12,0,0100440440100004120000000000010001000Mixly0MixlyMixly500MixlyMixly500>10.51001001000interrupt_funcinterrupt_functurnsdistancei2c_extend1718400000g6i2c_extendg6g6100g6g6100g6g6100g6wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京111113820000391000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr124ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32s2/main.bundle.js b/boards/default/micropython_esp32s2/main.bundle.js index 4e2ee65e..f4d492db 100644 --- a/boards/default/micropython_esp32s2/main.bundle.js +++ b/boards/default/micropython_esp32s2/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>xt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>Ht,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>Qt,controls_if_elseif:()=>qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>yt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>kt,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>de,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>le,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>li,text:()=>Xe,text_capital:()=>Qe,text_center:()=>ze,text_char:()=>xe,text_char_at:()=>ke,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>He,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>ye});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>Qi,enumerate:()=>qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>xi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>yi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>Hi,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>ki,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>dn,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>ln,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>Hn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>xn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>yn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>kn,storage_make_dir:()=>Qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ds,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var l={};t.r(l),t.d(l,{set_add_discard:()=>Bs,set_clear:()=>xs,set_create_with:()=>Ps,set_create_with_container:()=>Ys,set_create_with_item:()=>vs,set_create_with_text_return:()=>ws,set_length:()=>Xs,set_operate:()=>bs,set_operate_update:()=>Vs,set_pop:()=>ys,set_sub:()=>Gs,set_toset:()=>ks,set_update:()=>Us});var d={};t.r(d),t.d(d,{html_content:()=>qs,html_content_more:()=>Qs,html_document:()=>Ws,html_form:()=>js,html_head_body:()=>Js,html_style:()=>zs,html_style_color:()=>$s,html_style_content:()=>Zs,html_text:()=>t_,html_title:()=>Ks});var I={};t.r(I),t.d(I,{attribute_access:()=>T_,function_call:()=>l_,function_call_container:()=>d_,function_call_item:()=>I_,raw_block:()=>n_,raw_empty:()=>__,raw_expression:()=>s_,raw_table:()=>i_,text_comment:()=>o_,text_print_multiple:()=>a_,text_print_multiple_container:()=>u_,text_print_multiple_item:()=>r_,type_check:()=>p_});var T={};t.r(T),t.d(T,{controls_type:()=>O_,controls_typeLists:()=>R_,lists_zip:()=>c_,unpack_iterable_object:()=>g_,variables_change:()=>m_,variables_get:()=>M_,variables_global:()=>E_,variables_set:()=>h_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>Y_,base_setup:()=>S_,controls_delay:()=>P_,controls_flow_statements:()=>F_,controls_for:()=>N_,controls_forEach:()=>b_,controls_for_range:()=>D_,controls_if:()=>A_,controls_interrupts:()=>y_,controls_lambda:()=>B_,controls_main:()=>C_,controls_millis:()=>v_,controls_nointerrupts:()=>x_,controls_pass:()=>U_,controls_range:()=>V_,controls_repeat:()=>Q_,controls_repeat_ext:()=>H_,controls_thread:()=>w_,controls_try_finally:()=>L_,controls_whileUntil:()=>f_,datetime_fromtimestamp:()=>z_,do_while:()=>k_,garbage_collection:()=>W_,gene_unique_identifier:()=>j_,get_mem_alloc:()=>K_,get_mem_free:()=>J_,get_unique_identifier:()=>q_,reset:()=>X_,time_sleep:()=>G_});var h={};t.r(h),t.d(h,{base_map:()=>Oo,generate_cartesian_product:()=>co,math_arithmetic:()=>io,math_bit:()=>eo,math_constant:()=>$_,math_constant_mp:()=>to,math_constrain:()=>lo,math_dec:()=>oo,math_indexer_number:()=>Mo,math_map:()=>ro,math_max_min:()=>ao,math_number:()=>Z_,math_number_base_conversion:()=>Io,math_random:()=>uo,math_random_seed:()=>To,math_round:()=>ho,math_selfcalcu:()=>no,math_single:()=>so,math_to_int:()=>po,math_trig:()=>_o,text_to_number:()=>mo,text_to_number_skulpt:()=>Eo,turn_to_int:()=>Ro});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Lo,char_to_ascii:()=>No,number_to_text:()=>Do,os_system:()=>jo,text:()=>go,text_capital:()=>bo,text_center:()=>Vo,text_char:()=>So,text_char_at:()=>Po,text_char_at2:()=>Fo,text_char_at3:()=>qo,text_compareTo:()=>Jo,text_compare_to:()=>Xo,text_encode:()=>Qo,text_equals_starts_ends:()=>vo,text_eval:()=>zo,text_find:()=>Bo,text_format:()=>Ho,text_format_noreturn:()=>Wo,text_join:()=>Ao,text_join_seq:()=>Go,text_length:()=>fo,text_random_char:()=>Yo,text_replace:()=>Uo,text_split:()=>wo,text_strip:()=>ko,text_substring:()=>xo,text_substring2:()=>yo,text_substring3:()=>Ko,text_textarea:()=>Co});var E={};t.r(E),t.d(E,{content_in_lists:()=>Pp,enumerate:()=>Fp,list_many_input:()=>mp,list_tolist:()=>Dp,list_tolist2:()=>fp,list_trig:()=>Tp,lists_2d_get_col_row_data:()=>tp,lists_2d_get_data_with_col_row:()=>$o,lists_append_extend:()=>_p,lists_change_to:()=>hp,lists_change_to_general:()=>Op,lists_clear:()=>rp,lists_create_with:()=>ep,lists_create_with2:()=>cp,lists_create_with_noreturn:()=>Ep,lists_create_with_text:()=>ip,lists_create_with_text2:()=>gp,lists_del_general:()=>Rp,lists_find:()=>lp,lists_getIndex3:()=>Cp,lists_getSublist3:()=>Sp,lists_get_index:()=>np,lists_get_random_item:()=>op,lists_get_random_sublist:()=>pp,lists_get_sublist:()=>Zo,lists_insert_value:()=>ap,lists_insert_value2:()=>Lp,lists_pop:()=>Ip,lists_remove_at:()=>dp,lists_remove_at2:()=>Np,lists_reverse:()=>up,lists_setIndex3:()=>Ap,lists_set_index:()=>sp,lists_sort:()=>Mp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Hp,dicts_add_or_change:()=>xp,dicts_clear:()=>Bp,dicts_create_with:()=>Yp,dicts_create_with_noreturn:()=>Jp,dicts_deldict:()=>kp,dicts_delete:()=>bp,dicts_get:()=>Xp,dicts_get_default:()=>yp,dicts_items:()=>Gp,dicts_keys:()=>vp,dicts_length:()=>wp,dicts_pop:()=>Wp,dicts_setdefault:()=>Kp,dicts_to_json:()=>Qp,dicts_to_json2:()=>Zp,dicts_to_to:()=>jp,dicts_todict:()=>qp,dicts_update:()=>Vp,dicts_values:()=>Up,json_to_dicts:()=>zp});var R={};t.r(R),t.d(R,{logic_boolean:()=>na,logic_compare:()=>$p,logic_compare_continous:()=>ta,logic_is:()=>pa,logic_is_in:()=>oa,logic_negate:()=>ia,logic_null:()=>sa,logic_operation:()=>ea,logic_tobool:()=>aa,logic_true_or_false:()=>_a});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Pa,sdcard_use_spi_init:()=>Fa,storage_can_write_ornot:()=>ma,storage_change_dir:()=>Aa,storage_close_file:()=>Oa,storage_delete_file:()=>ca,storage_file_seek:()=>Sa,storage_file_tell:()=>Ca,storage_file_write:()=>Ia,storage_fileopen:()=>ra,storage_fileopen_new:()=>la,storage_fileopen_new_encoding:()=>da,storage_get_a_line:()=>ha,storage_get_contents:()=>Ma,storage_get_contents_without_para:()=>Ta,storage_get_current_dir:()=>La,storage_get_file_size:()=>ga,storage_get_filename:()=>Ea,storage_is_file:()=>fa,storage_list_all_files:()=>Ra,storage_make_dir:()=>Na,storage_open_file_with_os:()=>ua,storage_rename:()=>Da});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>ya,procedures_callreturn:()=>Xa,procedures_defnoreturn:()=>va,procedures_defreturn:()=>Ya,procedures_ifreturn:()=>xa,procedures_return:()=>ba});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ka,tuple_create_with:()=>Va,tuple_create_with_noreturn:()=>za,tuple_create_with_text2:()=>Ba,tuple_create_with_text_return:()=>Ga,tuple_del:()=>ka,tuple_find:()=>Ja,tuple_getIndex:()=>Ua,tuple_getSublist:()=>Qa,tuple_get_random_item:()=>Za,tuple_get_sublist:()=>ja,tuple_join:()=>Ha,tuple_length:()=>wa,tuple_max:()=>Wa,tuple_totuple:()=>$a,tuple_trig:()=>qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>ou,set_clear:()=>nu,set_create_with:()=>tu,set_create_with_text_return:()=>uu,set_length:()=>eu,set_operate:()=>su,set_operate_update:()=>_u,set_pop:()=>iu,set_sub:()=>pu,set_toset:()=>ru,set_update:()=>au});var A={};t.r(A),t.d(A,{html_content:()=>Tu,html_content_more:()=>Mu,html_document:()=>lu,html_form:()=>mu,html_head_body:()=>Iu,html_style:()=>hu,html_style_content:()=>Eu,html_text:()=>Ou,html_title:()=>du});var L={};t.r(L),t.d(L,{attribute_access:()=>Lu,function_call:()=>Au,raw_block:()=>Ru,raw_empty:()=>gu,raw_expression:()=>cu,raw_table:()=>Cu,type_check:()=>Su});var N={};t.r(N),t.d(N,{PIN_init:()=>Nr,actuator_extern_get_led_bright:()=>Vu,actuator_extern_get_led_state:()=>Bu,actuator_extern_led_bright:()=>bu,actuator_extern_led_brightness:()=>Gu,actuator_ms32006_dcmotor:()=>Qu,actuator_ms32006_init:()=>qu,actuator_ms32006_stepper:()=>zu,actuator_neopixel_init:()=>ju,actuator_neopixel_rgb:()=>Zu,actuator_neopixel_rgb_all:()=>$u,actuator_neopixel_write:()=>tr,actuator_use_uart_init:()=>er,esp32_music_get_tempo_extern:()=>Xu,esp32_music_pitch:()=>Fu,esp32_music_pitch_init:()=>fu,esp32_music_pitch_with_time:()=>Pu,esp32_music_play_list:()=>Yu,esp32_music_reset_extern:()=>yu,esp32_music_set_tempo_extern:()=>vu,esp32_music_stop:()=>xu,mixbot_actuator_extern_get_addr:()=>Ar,mixbot_actuator_extern_set_addr:()=>Lr,mixbot_addr_extern:()=>dr,parrot_PIN_init:()=>Pr,parrot_move_speed:()=>Yr,pin_led_bright:()=>Dr,player_insert_music:()=>pr,player_play_music:()=>or,player_set_mode:()=>_r,player_set_play:()=>nr,player_set_volume:()=>sr,player_whether_stop:()=>ir,robot_led_extern:()=>hr,robot_led_extern_get_value:()=>mr,robot_motor_extern:()=>Ir,robot_motor_extern_get_speed:()=>Tr,robot_servo_extern_absolute_run:()=>cr,robot_servo_extern_get_status:()=>Er,robot_servo_extern_relative_continue:()=>Sr,robot_servo_extern_relative_origin:()=>gr,robot_servo_extern_relative_run:()=>Cr,robot_servo_extern_stop:()=>Rr,robot_servo_extern_stop_mode:()=>Or,robot_traffic_light_extern:()=>Mr,servo_PIN_init:()=>fr,servo_get_angle:()=>Ku,servo_get_speed:()=>Ju,servo_init:()=>Uu,servo_move:()=>wu,servo_move_angle:()=>Fr,servo_set_angle:()=>Hu,servo_set_speed:()=>Wu,servo_speed_360:()=>ku,syn6288_builtin_voice:()=>rr,syn6288_get_voice:()=>ur,syn6288_set_voice:()=>ar,syn6288_tts_play:()=>lr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>rl,actuator_dc_motor_stop:()=>ll,actuator_get_led_bright:()=>br,actuator_get_led_state:()=>Vr,actuator_led_bright:()=>xr,actuator_led_brightness:()=>Br,actuator_mixbot_buzzer_on_off:()=>hl,actuator_mixgo_nova_mic_get:()=>cl,actuator_mixgo_nova_mic_set:()=>Rl,actuator_mixgo_nova_onboard_music_pitch:()=>Nl,actuator_mixgo_nova_onboard_music_stop:()=>Dl,actuator_mixgo_nova_play_audio:()=>Al,actuator_mixgo_nova_play_online_audio:()=>Ll,actuator_mixgo_nova_record_audio:()=>Sl,actuator_mixgo_nova_voice_get:()=>Cl,actuator_mixgo_nova_voice_set:()=>gl,actuator_mixgo_zero_led_color:()=>Gr,actuator_onboard_neopixel_rgb:()=>Kr,actuator_onboard_neopixel_rgb_all:()=>Jr,actuator_onboard_neopixel_rgb_show_all_chase:()=>Qr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>qr,actuator_onboard_neopixel_write:()=>zr,actuator_rm_onboard_neopixel_rgb:()=>jr,actuator_rm_onboard_neopixel_rgb_all:()=>Zr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>$r,actuator_stepper_keep:()=>al,actuator_stepper_stop:()=>ul,analog_ble_keyboard_init:()=>Ul,analog_ble_keyboard_input:()=>Hl,analog_ble_keyboard_mouse_init:()=>Zl,analog_ble_keyboard_mouse_input:()=>id,analog_ble_keyboard_mouse_send_battery:()=>ed,analog_ble_keyboard_mouse_str:()=>nd,analog_ble_keyboard_send_battery:()=>Kl,analog_ble_keyboard_str:()=>Wl,analog_ble_mouse_init:()=>Jl,analog_ble_mouse_input:()=>zl,analog_ble_mouse_keyboard_input:()=>sd,analog_ble_mouse_send_battery:()=>jl,analog_keyboard_input:()=>Yl,analog_keyboard_str:()=>Gl,analog_mouse_input:()=>Vl,bitbot_motor:()=>Ol,bitbot_move:()=>ml,bitbot_stop:()=>El,ble_keyboard_connect:()=>kl,ble_keyboard_get_mac:()=>wl,ble_keyboard_mouse_connect:()=>td,ble_keyboard_mouse_get_mac:()=>$l,ble_mouse_connect:()=>Ql,ble_mouse_get_mac:()=>ql,cc_number:()=>Wr,educore_ble_keyboard_input:()=>Td,educore_ble_sensor_connected:()=>Id,educore_ble_sensor_init:()=>dd,educore_buzzer:()=>_d,educore_buzzer_play_tone:()=>od,educore_buzzer_play_tone_time:()=>pd,educore_buzzer_stop:()=>ad,educore_neopixel_clear:()=>ld,educore_neopixel_rgb:()=>rd,educore_rgb_light:()=>ud,esp32_music_get_tempo:()=>el,esp32_music_reset:()=>il,esp32_music_set_tempo:()=>tl,esp32_onboard_music_pitch:()=>nl,esp32_onboard_music_pitch_with_time:()=>sl,esp32_onboard_music_play_list:()=>ol,esp32_onboard_music_stop:()=>_l,general_key:()=>Xl,general_key_tuple:()=>yl,generalkey_container:()=>xl,generalkey_create_with_item:()=>bl,get_power_output:()=>Fl,ledswitch:()=>yr,mixbot_motor:()=>Ml,mixbot_motor_status:()=>dl,mixbot_move:()=>Il,mixbot_stop:()=>Tl,mouse_key:()=>Bl,number:()=>Xr,rm_actuator_get_led_bright:()=>wr,rm_actuator_get_led_state:()=>kr,rm_actuator_led_bright:()=>Ur,rm_actuator_led_brightness:()=>Hr,rm_motor:()=>pl,set_all_power_output:()=>Pl,set_power_output:()=>fl,special_key:()=>vl});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>qd,ai_sensor_ailocal_class:()=>bd,ai_sensor_ailocal_class_result:()=>Vd,ai_sensor_ailocal_train:()=>xd,ai_sensor_asr_recognize:()=>kd,ai_sensor_audio_play:()=>Gd,ai_sensor_audio_record:()=>Bd,ai_sensor_barcode:()=>gd,ai_sensor_circle:()=>Dd,ai_sensor_classifier_faces:()=>Jd,ai_sensor_color:()=>Yd,ai_sensor_color_chases:()=>yd,ai_sensor_color_chases_result:()=>Xd,ai_sensor_config:()=>Rd,ai_sensor_face:()=>Kd,ai_sensor_find_20objects:()=>Qd,ai_sensor_find_barcodes:()=>Cd,ai_sensor_find_circles:()=>fd,ai_sensor_find_colors:()=>vd,ai_sensor_find_licenseplates:()=>Wd,ai_sensor_find_lines:()=>Nd,ai_sensor_find_qrcodes:()=>Od,ai_sensor_find_rects:()=>Pd,ai_sensor_find_tags:()=>Ad,ai_sensor_licenseplate:()=>Hd,ai_sensor_line:()=>Ld,ai_sensor_qrcode:()=>md,ai_sensor_qrcode_lite:()=>Ed,ai_sensor_rect:()=>Fd,ai_sensor_rgb:()=>cd,ai_sensor_tag:()=>Sd,ai_sensor_use_uart_init:()=>hd,ai_sensor_yolo_recognize:()=>Ud,ai_sensor_yolo_recognize_result:()=>wd});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Zd,MICROPYTHON_AI_Speech_unit:()=>jd,MICROPYTHON_AI_client:()=>zd});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>II,mpython_blynk_app_notify:()=>oI,mpython_blynk_email:()=>uI,mpython_blynk_get_timers:()=>rI,mpython_blynk_on_connected:()=>nI,mpython_blynk_on_disconnected:()=>iI,mpython_blynk_run:()=>_I,mpython_blynk_sensor_data_to_app:()=>dI,mpython_blynk_set_property:()=>aI,mpython_blynk_setup:()=>TI,mpython_blynk_stop_timers:()=>pI,mpython_blynk_sync_virtual:()=>eI,mpython_blynk_terminal_widget_vpin:()=>tI,mpython_blynktimer:()=>lI,mpython_blynktimer_run:()=>sI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>MI,cc_g1_read_bat:()=>hI,cc_g1_read_joystick:()=>mI,cc_g1_read_key:()=>EI,cc_g1_turnoff:()=>OI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>DI,ce_go_get_led_bright:()=>CI,ce_go_get_led_state:()=>SI,ce_go_hall_attachInterrupt:()=>fI,ce_go_hall_data:()=>PI,ce_go_hall_initialize:()=>FI,ce_go_led_bright:()=>gI,ce_go_led_brightness:()=>AI,ce_go_light_number:()=>cI,ce_go_pin_light:()=>xI,ce_go_pin_near:()=>vI,ce_go_pin_near_line:()=>YI,ce_go_pin_near_state_change:()=>XI,ce_go_stepper_keep:()=>LI,ce_go_stepper_stop:()=>NI,educore_car:()=>bI,educore_car_pin_near:()=>UI,educore_car_pin_near_line:()=>GI,educore_car_stepper_keep:()=>VI,educore_car_stepper_stop:()=>BI,sensor_mixgome_eulerangles:()=>yI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>CT,communicate_bluetooth_connect:()=>NT,communicate_bluetooth_disconnect:()=>DT,communicate_bluetooth_handle:()=>vT,communicate_bluetooth_is_connected:()=>FT,communicate_bluetooth_mac:()=>LT,communicate_bluetooth_peripheral_init:()=>ST,communicate_bluetooth_recv:()=>PT,communicate_bluetooth_recv_only:()=>YT,communicate_bluetooth_scan:()=>AT,communicate_bluetooth_send:()=>fT,communicate_espnow_init:()=>XT,communicate_espnow_init_new:()=>yT,communicate_i2c_available:()=>_T,communicate_i2c_init:()=>WI,communicate_i2c_master_read:()=>sT,communicate_i2c_onboard:()=>kI,communicate_i2c_read:()=>KI,communicate_i2c_scan:()=>qI,communicate_i2c_write:()=>JI,communicate_ir_recv_init:()=>IT,communicate_ir_send_init:()=>ET,communicate_ow_init:()=>pT,communicate_ow_read:()=>uT,communicate_ow_reset:()=>dT,communicate_ow_scan:()=>aT,communicate_ow_select:()=>lT,communicate_ow_write:()=>rT,communicate_spi_buffer:()=>jI,communicate_spi_init:()=>QI,communicate_spi_onboard:()=>HI,communicate_spi_read:()=>ZI,communicate_spi_read_output:()=>$I,communicate_spi_readinto:()=>tT,communicate_spi_readinto_output:()=>eT,communicate_spi_set:()=>zI,communicate_spi_write:()=>iT,communicate_spi_write_readinto:()=>nT,espnow_radio_channel:()=>UT,espnow_radio_channel_new:()=>kT,espnow_radio_on_off:()=>HT,espnow_radio_rec:()=>KT,espnow_radio_recv:()=>qT,espnow_radio_recv_certain_msg:()=>QT,espnow_radio_recv_certain_msg_new:()=>jT,espnow_radio_recv_msg:()=>JT,espnow_radio_recv_new:()=>zT,espnow_radio_send:()=>WT,espnow_radio_txpower:()=>wT,i2c_available:()=>OM,i2c_init:()=>_M,i2c_master_reader2:()=>EM,i2c_read:()=>oM,i2c_scan:()=>aM,i2c_slave_onreceive:()=>oT,i2c_write:()=>pM,internal_variable:()=>TT,ir_recv_timeout:()=>mT,ir_transmit_busy:()=>gT,ir_transmit_conventional_data:()=>OT,ir_transmit_raw_code:()=>cT,ir_transmit_study_code:()=>RT,ir_whether_recv:()=>hT,lora_init:()=>ZT,lora_packet:()=>$T,lora_recv:()=>eM,lora_send:()=>tM,network_espnow_info:()=>bT,network_espnow_mac:()=>xT,network_espnow_recv:()=>VT,network_espnow_recv_handle:()=>GT,network_espnow_send:()=>BT,recv_fun:()=>MT,spi_buffer:()=>lM,spi_init:()=>uM,spi_read:()=>dM,spi_read_output:()=>IM,spi_readinto:()=>TM,spi_readinto_output:()=>MM,spi_set:()=>rM,spi_write:()=>hM,spi_write_readinto:()=>mM,urequests_attribute:()=>nM,urequests_get:()=>iM,urequests_method:()=>sM});var y={};t.r(y),t.d(y,{display_animate:()=>QM,display_blink_rate:()=>WM,display_circle:()=>zM,display_color_seclet:()=>ah,display_draw_4strings:()=>BM,display_fill:()=>qM,display_get_screen_image:()=>HM,display_help:()=>ZM,display_image_size:()=>GM,display_lcd_use_i2c_init:()=>Th,display_line:()=>wM,display_line_arbitrarily:()=>kM,display_matrix_extern_bright_point:()=>PM,display_matrix_extern_bright_screen:()=>vM,display_matrix_extern_clear:()=>XM,display_matrix_extern_get_pixel:()=>FM,display_matrix_extern_get_screen_pixel:()=>YM,display_matrix_extern_image_builtins:()=>yM,display_matrix_extern_scroll_string:()=>AM,display_matrix_extern_scroll_string_delay:()=>LM,display_matrix_extern_shift:()=>fM,display_matrix_extern_show_frame_string:()=>NM,display_matrix_extern_show_frame_string_delay:()=>DM,display_matrix_extern_show_image:()=>CM,display_matrix_extern_show_image_or_string_delay:()=>SM,display_matrix_use_i2c_init:()=>gM,display_oled_drawPixel:()=>th,display_oled_showBitmap:()=>$M,display_oled_use_i2c_init:()=>Oh,display_onoff:()=>JM,display_rect:()=>UM,display_rgb_color:()=>KM,display_tm1650_power:()=>ih,display_tm1650_set_brightness:()=>_h,display_tm1650_show_dot:()=>sh,display_tm1650_show_num:()=>nh,display_tm_use_i2c_init:()=>eh,display_triangle:()=>jM,display_use_i2c_init:()=>VM,extern_oled_bright_point:()=>Fh,extern_oled_clear:()=>Ph,extern_oled_get_pixel:()=>fh,extern_oled_hvline:()=>vh,extern_oled_line:()=>Xh,extern_oled_scroll_string:()=>Sh,extern_oled_scroll_string_delay:()=>Ah,extern_oled_shape_rect:()=>Yh,extern_oled_shift:()=>Dh,extern_oled_show_frame_string:()=>Lh,extern_oled_show_frame_string_delay:()=>Nh,extern_oled_show_image:()=>Rh,extern_oled_show_image_or_string_delay:()=>Ch,extern_oled_show_image_xy:()=>ch,extern_oled_show_string:()=>gh,lcd_backlight:()=>mh,lcd_clear:()=>Eh,lcd_print_string:()=>hh,lcd_show_image_or_string_delay:()=>Mh,matrix_extern_image_arithmetic:()=>xM,matrix_extern_image_invert:()=>bM,tft_fill:()=>dh,tft_line_arbitrarily:()=>Ih,tft_scroll_string_delay:()=>rh,tft_show_frame_string_delay:()=>lh,tft_show_image_or_string_delay:()=>uh,tft_show_image_xy:()=>ph,tft_use_spi_init:()=>oh});var x={};t.r(x),t.d(x,{bitbot_display_image_create:()=>Om,display_bright_point:()=>Qh,display_bright_screen:()=>jh,display_clear:()=>Zh,display_get_pixel:()=>qh,display_get_screen_pixel:()=>zh,display_image_builtins:()=>kh,display_image_builtins_all:()=>Hh,display_image_create:()=>wh,display_scroll_string:()=>Vh,display_scroll_string_delay:()=>Bh,display_shift:()=>Jh,display_show_frame_string:()=>Gh,display_show_frame_string_delay:()=>Uh,display_show_image:()=>xh,display_show_image_or_string_delay:()=>bh,draw_pointer:()=>km,image_arithmetic:()=>Wh,image_invert:()=>Kh,mixbot_display_bright_screen:()=>mm,mixbot_display_get_ambientbright:()=>hm,mixbot_display_get_screen_pixel:()=>Mm,mixbot_display_image_create:()=>Tm,mixbot_display_rotate:()=>Em,mixgo_display_image_create_new:()=>em,mixgome_display_font:()=>im,mixgome_display_image_create:()=>$h,mixgomini_display_image_create:()=>tm,mpython_display_hvline:()=>lm,mpython_display_line:()=>dm,mpython_display_shape_rect:()=>rm,mpython_pbm_image:()=>Im,onboard_oled_bright_point:()=>um,onboard_oled_scroll_string_delay:()=>pm,onboard_oled_show_frame_string_delay:()=>am,onboard_oled_show_image:()=>nm,onboard_oled_show_image_or_string_delay:()=>om,onboard_oled_show_image_xy:()=>sm,onboard_oled_show_string:()=>_m,onboard_tft_bright_point:()=>Ym,onboard_tft_bright_screen:()=>ym,onboard_tft_clear:()=>vm,onboard_tft_clock_clear:()=>Um,onboard_tft_clock_draw:()=>Gm,onboard_tft_clock_get_rtctime:()=>Vm,onboard_tft_clock_init:()=>bm,onboard_tft_clock_set_time:()=>Bm,onboard_tft_display_hvline:()=>Dm,onboard_tft_display_line:()=>fm,onboard_tft_display_shape_circle:()=>wm,onboard_tft_display_shape_rect:()=>Nm,onboard_tft_fill:()=>xm,onboard_tft_get_pixel:()=>Pm,onboard_tft_get_screen_pixel:()=>Xm,onboard_tft_scroll_string:()=>Cm,onboard_tft_scroll_string_delay:()=>Sm,onboard_tft_shift:()=>Fm,onboard_tft_show_frame_string:()=>Am,onboard_tft_show_frame_string_delay:()=>Lm,onboard_tft_show_image:()=>Rm,onboard_tft_show_image_or_string_delay:()=>gm,onboard_tft_show_image_xy:()=>cm});var b={};t.r(b),t.d(b,{factory_block:()=>tE,factory_block_return:()=>eE,factory_block_return_with_textarea:()=>nE,factory_block_with_textarea:()=>iE,factory_callMethod_noreturn:()=>Zm,factory_callMethod_return:()=>$m,factory_create_with_container:()=>qm,factory_create_with_item:()=>Qm,factory_declare:()=>jm,factory_from_import:()=>Wm,factory_function_noreturn:()=>Jm,factory_function_return:()=>zm,factory_import:()=>Km,folding_block:()=>sE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>LE,inout_analog_atten:()=>TE,inout_analog_read:()=>IE,inout_analog_read_init:()=>RE,inout_analog_write:()=>rE,inout_analog_write_init:()=>OE,inout_analog_write_set:()=>lE,inout_analog_write_set_freq:()=>CE,inout_digital_init:()=>mE,inout_digital_read:()=>aE,inout_digital_write:()=>pE,inout_highlow:()=>oE,inout_pinMode:()=>gE,inout_pin_attachInterrupt:()=>hE,inout_pin_pressed:()=>ME,inout_pin_pressed_init:()=>cE,inout_pwm_analog_write:()=>uE,inout_pwm_analog_write_init:()=>EE,inout_pwm_analog_write_set_freq:()=>dE,pin_pressed:()=>AE,pin_pressed_init:()=>SE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>zE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>QE,IOT_EMQX_PING:()=>JE,IOT_FORMATTING:()=>WE,IOT_FORMAT_STRING:()=>KE,IOT_MIXIO_NTP:()=>qE,IOT_MIXIO_PUBLISH:()=>VE,IOT_MIXIO_SUBSCRIBE:()=>BE,iot_checkonenet:()=>oO,iot_client_onboard:()=>ZE,iot_create_with_item:()=>xE,iot_http_client:()=>$E,iot_http_data:()=>tO,iot_mixio_check:()=>wE,iot_mixio_connect:()=>bE,iot_mixio_connect_only:()=>UE,iot_mixio_disconnect:()=>GE,iot_mixio_format_msg:()=>HE,iot_mixio_format_topic:()=>kE,iot_mixly_key:()=>jE,iot_mqtt_client:()=>eO,iot_mqtt_data:()=>iO,iot_onenet_check:()=>PE,iot_onenet_connect:()=>fE,iot_onenet_disconnect:()=>FE,iot_onenet_publish:()=>vE,iot_onenet_publish_dict:()=>YE,iot_onenetconnect:()=>sO,iot_onenetdisconnect:()=>_O,iot_publish:()=>pO,iot_publish_container:()=>XE,iot_publish_item:()=>yE,iot_wifi_connect:()=>DE,iot_wificonnect:()=>nO});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>GO,educore_mqtt_connect_success:()=>HO,educore_mqtt_subscribe_message:()=>UO,educore_mqtt_topic_publish:()=>kO,educore_mqtt_topic_subscribe:()=>wO,educore_wifi_connect:()=>BO,network_ap_connect:()=>EO,network_connect:()=>IO,network_get_connect:()=>MO,network_get_wifi:()=>mO,network_init:()=>uO,network_is_active:()=>lO,network_open:()=>rO,network_scan:()=>dO,network_server:()=>OO,network_socket_accept:()=>SO,network_socket_bind:()=>cO,network_socket_close:()=>fO,network_socket_connect:()=>gO,network_socket_init:()=>RO,network_socket_listen:()=>CO,network_socket_receive:()=>AO,network_socket_receive_from:()=>NO,network_socket_send:()=>LO,network_socket_send_to:()=>DO,network_stop:()=>hO,network_wifi_connect:()=>TO,ntptime_address:()=>XO,ntptime_time:()=>vO,requests_attribute:()=>PO,requests_attribute2:()=>VO,requests_get:()=>FO,requests_get2:()=>xO,requests_method:()=>YO,requests_post:()=>bO});var U={};t.r(U),t.d(U,{pe_g1_battery_left:()=>JO,pe_g1_dc_motor:()=>qO,pe_g1_dc_motor_speed:()=>QO,pe_g1_servo_get_angle:()=>ZO,pe_g1_servo_get_speed:()=>$O,pe_g1_servo_set_angle:()=>zO,pe_g1_servo_set_speed:()=>jO,pe_g1_use_i2c_init:()=>KO});var w={};t.r(w),t.d(w,{CI130X_BROADCAST:()=>SR,CI130X_GET_THE_RECOGNIZED_CMD:()=>CR,CI130X_GET_WHETHER_IDENTIFY:()=>gR,CI130X_IDENTIFY_AND_SAVE:()=>cR,CI130X_SET_SYSTEM_CMD:()=>AR,HCSR04:()=>lc,PS2_Button:()=>Mc,PS2_Buttons:()=>mc,PS2_Buttons_new:()=>cc,PS2_State:()=>hc,PS2_init:()=>dc,PS2_init_new:()=>Oc,PS2_stk:()=>Ec,PS2_stk_new:()=>gc,PS2_vibration:()=>Tc,PS2_vibration_new:()=>Rc,camera_sensor_init:()=>jc,camera_sensor_result:()=>Zc,educore_body_sensor:()=>Uc,educore_button_sensor_extern:()=>Wc,educore_camera_sensor:()=>zc,educore_infrared_sensor:()=>Hc,educore_soilhum_sensor:()=>wc,educore_temp_sensor:()=>Qc,educore_temphum_sensor:()=>kc,educore_ultrasonic_sensor:()=>Jc,esp32_s2_weather_init:()=>pc,esp32_s2_weather_rain:()=>uc,esp32_s2_weather_wd:()=>ac,esp32_s2_weather_ws:()=>rc,extern_rfid_read:()=>JR,extern_rfid_readcontent:()=>QR,extern_rfid_readid:()=>qR,extern_rfid_status:()=>ZR,extern_rfid_write:()=>zR,extern_rfid_write_return:()=>jR,gnss_get_data:()=>Lc,gnss_have_data:()=>Ac,interaction_whether_to_interaction:()=>OR,interaction_whether_to_interaction_SANT:()=>RR,mixbot_sensor_extern_get_addr:()=>vc,mixbot_sensor_extern_set_addr:()=>Xc,pm25_get_data:()=>Sc,radar_set_DETECTION_THRESHOLD:()=>mR,radar_set_DETECTION_THRESHOLD_SANT:()=>ER,robot_button_extern_get_value:()=>Nc,robot_color_extern_get_value:()=>Yc,robot_infrared_extern_get_value:()=>fc,robot_infrared_extern_grey_get_value:()=>Fc,robot_potentiometer_extern_get_value:()=>Pc,robot_sonar_extern_get_value:()=>yc,robot_sonar_extern_led:()=>xc,robot_touch_extern_get_value:()=>Dc,sensor_APDS9960_extern:()=>NR,sensor_DS18X20:()=>TR,sensor_LTR308_extern:()=>DR,sensor_LTR390UV_extern:()=>PR,sensor_MAX30102_extern:()=>LR,sensor_QMC5883L_extern:()=>bR,sensor_VL530LX_extern:()=>YR,sensor_adxl345_get_acceleration:()=>oR,sensor_aht11_extern:()=>XR,sensor_bmp:()=>dR,sensor_compass_reset:()=>WR,sensor_dht11:()=>aR,sensor_hp203_extern:()=>yR,sensor_light_level:()=>pR,sensor_lm35:()=>MR,sensor_ltr381_extern:()=>fR,sensor_mixgo_extern_button_attachInterrupt:()=>sR,sensor_mixgo_extern_button_get_presses:()=>nR,sensor_mixgo_extern_button_is_pressed:()=>eR,sensor_mixgo_extern_button_was_pressed:()=>iR,sensor_mixgo_extern_light:()=>uR,sensor_mixgo_extern_pin_near:()=>lR,sensor_mixgo_extern_sound:()=>rR,sensor_mixgoce_hot_wheel_degrees:()=>oc,sensor_mixgoce_hot_wheel_is_touched:()=>_c,sensor_mpu9250_attachGestureInterrupt:()=>_R,sensor_mpu9250_calibrate_compass:()=>wR,sensor_mpu9250_field_strength:()=>HR,sensor_mpu9250_gesture:()=>VR,sensor_mpu9250_get_acceleration:()=>BR,sensor_mpu9250_get_gyro:()=>UR,sensor_mpu9250_get_magnetic:()=>GR,sensor_mpu9250_temperature:()=>kR,sensor_read_humiture:()=>Kc,sensor_sht:()=>IR,sensor_shtc3_extern:()=>vR,sensor_spl06_001_extern:()=>xR,sensor_ucs12071_extern:()=>FR,sensor_use_i2c_init:()=>hR,sensor_use_spi_init:()=>KR,sensor_use_uart_init:()=>Cc,sensor_weather_solo_init:()=>bc,sensor_weather_solo_rain:()=>Gc,sensor_weather_solo_wd:()=>Vc,sensor_weather_solo_ws:()=>Bc,sensor_weigh_init:()=>$c,ultrasonic_sensor_read_distance:()=>qc,weather_data:()=>$R,weather_have_data:()=>tc,weather_set_label:()=>ic,weather_set_label_container:()=>nc,weather_set_label_item:()=>sc,weather_uart_mixio:()=>ec,weigh_sensor_get_weight:()=>tg});var k={};t.r(k),t.d(k,{CI130X_BROADCAST_SANT:()=>qC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>JC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>KC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>WC,CI130X_SET_SYSTEM_CMD_SANT:()=>QC,HCSR04:()=>mg,RTC_set_date:()=>hg,RTC_set_time:()=>Mg,bitbot_als_num:()=>SC,dht11:()=>PC,educore_button_sensor:()=>GC,educore_button_was_pressed:()=>UC,educore_gyroscope_sensor:()=>bC,educore_gyroscope_sensor_read:()=>VC,educore_gyroscope_sensor_shake:()=>BC,educore_light_sensor:()=>xC,educore_rfid_sensor:()=>wC,educore_rfid_sensor_scan:()=>kC,educore_rfid_sensor_scan_data:()=>HC,educore_voice_sensor:()=>XC,number1:()=>Og,number2:()=>Rg,number3:()=>cg,number4:()=>gg,number5:()=>Cg,number6:()=>Sg,number7:()=>Ag,onboard_RTC_get_time:()=>vg,onboard_RTC_get_time_str:()=>Bg,onboard_RTC_get_timestamp:()=>Xg,onboard_RTC_set_datetime:()=>bg,onboard_RTC_settime_string:()=>xg,onboard_RTC_timestamp_totuple:()=>yg,rfid_readcontent:()=>Kg,rfid_readid:()=>Wg,rfid_write:()=>Jg,rfid_write_return:()=>qg,sensor_LTR308:()=>Gg,sensor_aht11:()=>wg,sensor_bitbot_ALS:()=>CC,sensor_button_get_presses:()=>NC,sensor_button_is_pressed:()=>AC,sensor_button_was_pressed:()=>LC,sensor_distance_hrsc04:()=>Tg,sensor_eulerangles:()=>zg,sensor_field_strength:()=>YC,sensor_get_acceleration:()=>Qg,sensor_get_temperature:()=>kg,sensor_hp203:()=>Hg,sensor_light:()=>FC,sensor_mixbot_get_gyro:()=>gC,sensor_mixbot_patrol_calibrate:()=>OC,sensor_mixbot_patrol_value:()=>RC,sensor_mixbot_temperature:()=>cC,sensor_mixgo_LTR308:()=>Pg,sensor_mixgo_button_attachInterrupt:()=>_g,sensor_mixgo_button_get_presses:()=>sg,sensor_mixgo_button_is_pressed:()=>ig,sensor_mixgo_button_was_pressed:()=>ng,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>pC,sensor_mixgo_cc_mmc5603_get_angle:()=>oC,sensor_mixgo_cc_mmc5603_get_magnetic:()=>_C,sensor_mixgo_light:()=>Eg,sensor_mixgo_nova_LTR308:()=>Fg,sensor_mixgo_nova_pin_near:()=>fg,sensor_mixgo_pin_near:()=>Dg,sensor_mixgo_pin_near_double:()=>Ng,sensor_mixgo_pin_near_single:()=>Lg,sensor_mixgo_pin_pressed:()=>rg,sensor_mixgo_sant_color:()=>Yg,sensor_mixgo_touch_slide:()=>Ig,sensor_mixgocar42_button_attachInterrupt:()=>ug,sensor_mixgocar42_button_get_presses:()=>ag,sensor_mixgocar42_button_is_pressed:()=>og,sensor_mixgocar42_button_was_pressed:()=>pg,sensor_mixgocar_battery_left:()=>EC,sensor_mixgocar_pin_near:()=>hC,sensor_mixgocar_pin_near_line:()=>MC,sensor_mixgocar_pin_near_state_change:()=>mC,sensor_mixgoce_pin_pressed:()=>lg,sensor_mixgoce_temperature:()=>uC,sensor_mixgome_temperature:()=>aC,sensor_mpython_pin_pressed:()=>dg,sensor_mpython_qmi8658_get_gyro:()=>rC,sensor_mpython_qmi8658_temperature:()=>lC,sensor_onboard_compass_reset:()=>sC,sensor_onboard_mpu9250_calibrate_compass:()=>eC,sensor_onboard_mpu9250_field_strength:()=>nC,sensor_onboard_mpu9250_gesture:()=>jg,sensor_onboard_mpu9250_get_acceleration:()=>Zg,sensor_onboard_mpu9250_get_gyro:()=>tC,sensor_onboard_mpu9250_get_magnetic:()=>$g,sensor_onboard_mpu9250_temperature:()=>iC,sensor_pin_near:()=>fC,sensor_pin_pressed:()=>DC,sensor_read:()=>yC,sensor_rm_acc:()=>TC,sensor_rm_battery_left:()=>IC,sensor_rm_pin_near_double:()=>dC,sensor_rtc_init:()=>Vg,sensor_sound:()=>Ug,sensor_temperature:()=>vC});var H={};t.r(H),t.d(H,{serial_any:()=>nS,serial_begin:()=>aS,serial_print:()=>ZC,serial_print_byte:()=>jC,serial_print_hex:()=>tS,serial_println:()=>$C,serial_read_from_ai:()=>mS,serial_readline:()=>sS,serial_readstr:()=>iS,serial_readstr_until:()=>_S,serial_receive_data_event:()=>eS,serial_send_to_ai:()=>hS,serial_softserial:()=>pS,serial_softserial_new:()=>oS,system_input:()=>uS,system_print:()=>rS,system_print_container:()=>TS,system_print_end:()=>dS,system_print_inline:()=>lS,system_print_item:()=>MS,system_print_many:()=>IS});var W={};t.r(W),t.d(W,{Panic_with_status_code:()=>cS,Timer_init:()=>XS,base_delay:()=>bS,controls_delay:()=>RS,controls_delay_new:()=>OS,controls_millis:()=>CS,controls_uname:()=>AS,raw_block:()=>SS,reset:()=>gS,system_bitbot_shutdown:()=>vS,system_machine_reset:()=>YS,system_ticks_diff:()=>DS,system_timer:()=>NS,system_timer_init:()=>fS,system_wdt_feed:()=>PS,system_wdt_init:()=>FS,time_ticks_diff:()=>xS,timer:()=>LS,timer2:()=>yS});var K={};t.r(K),t.d(K,{Air_daily_content:()=>jS,Air_now_content:()=>HS,Geo_moon_content:()=>$S,Geo_sun_content:()=>ZS,Life_suggestion_content:()=>KS,Location_search_content:()=>qS,Tide_daily_content:()=>JS,WEATHER_DAILY:()=>GS,WEATHER_HOUR:()=>US,WEATHER_NOW:()=>BS,Weather_alarm_content:()=>WS,Weather_daily:()=>QS,Weather_daily_content:()=>zS,Weather_now:()=>wS,Weather_now_content:()=>kS});var J={};t.r(J),t.d(J,{PIN_init:()=>jA,actuator_extern_get_led_bright:()=>OA,actuator_extern_get_led_state:()=>RA,actuator_extern_led_bright:()=>EA,actuator_extern_led_brightness:()=>cA,actuator_ms32006_dcmotor:()=>pA,actuator_ms32006_init:()=>oA,actuator_ms32006_stepper:()=>aA,actuator_neopixel_init:()=>gA,actuator_neopixel_rgb:()=>AA,actuator_neopixel_rgb_all:()=>CA,actuator_neopixel_write:()=>SA,actuator_use_uart_init:()=>LA,esp32_music_get_tempo_extern:()=>TA,esp32_music_pitch:()=>rA,esp32_music_pitch_init:()=>uA,esp32_music_pitch_with_time:()=>lA,esp32_music_play_list:()=>MA,esp32_music_reset_extern:()=>hA,esp32_music_set_tempo_extern:()=>IA,esp32_music_stop:()=>dA,mixbot_actuator_extern_get_addr:()=>QA,mixbot_actuator_extern_set_addr:()=>zA,mixbot_addr_extern:()=>xA,parrot_PIN_init:()=>eL,parrot_move_speed:()=>iL,pin_led_bright:()=>ZA,player_play_music:()=>PA,player_set_mode:()=>FA,player_set_play:()=>DA,player_set_volume:()=>fA,player_whether_stop:()=>NA,robot_led_extern:()=>GA,robot_led_extern_get_value:()=>UA,robot_motor_extern:()=>bA,robot_motor_extern_get_speed:()=>VA,robot_servo_extern_absolute_run:()=>WA,robot_servo_extern_get_status:()=>wA,robot_servo_extern_relative_continue:()=>qA,robot_servo_extern_relative_origin:()=>KA,robot_servo_extern_relative_run:()=>JA,robot_servo_extern_stop:()=>HA,robot_servo_extern_stop_mode:()=>kA,robot_traffic_light_extern:()=>BA,servo_PIN_init:()=>$A,servo_get_angle:()=>sA,servo_get_speed:()=>_A,servo_init:()=>tA,servo_move:()=>mA,servo_move_angle:()=>tL,servo_set_angle:()=>iA,servo_set_speed:()=>nA,servo_speed_360:()=>eA,syn6288_builtin_voice:()=>XA,syn6288_get_voice:()=>vA,syn6288_set_voice:()=>YA,syn6288_tts_play:()=>yA});var q={};t.r(q),t.d(q,{actuator_dc_motor:()=>FL,actuator_dc_motor_stop:()=>PL,actuator_get_led_bright:()=>IL,actuator_get_led_state:()=>TL,actuator_led_bright:()=>dL,actuator_led_brightness:()=>ML,actuator_mixbot_buzzer_on_off:()=>xL,actuator_mixgo_nova_mic_get:()=>UL,actuator_mixgo_nova_mic_set:()=>GL,actuator_mixgo_nova_onboard_music_pitch:()=>JL,actuator_mixgo_nova_onboard_music_stop:()=>qL,actuator_mixgo_nova_play_audio:()=>WL,actuator_mixgo_nova_play_online_audio:()=>KL,actuator_mixgo_nova_record_audio:()=>HL,actuator_mixgo_nova_voice_get:()=>kL,actuator_mixgo_nova_voice_set:()=>wL,actuator_mixgo_zero_led_color:()=>hL,actuator_onboard_neopixel_rgb:()=>CL,actuator_onboard_neopixel_rgb_all:()=>SL,actuator_onboard_neopixel_rgb_show_all_chase:()=>AL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>LL,actuator_onboard_neopixel_write:()=>gL,actuator_stepper_keep:()=>DL,actuator_stepper_stop:()=>fL,analog_ble_keyboard_init:()=>_N,analog_ble_keyboard_input:()=>aN,analog_ble_keyboard_mouse_init:()=>hN,analog_ble_keyboard_mouse_input:()=>RN,analog_ble_keyboard_mouse_send_battery:()=>ON,analog_ble_keyboard_mouse_str:()=>cN,analog_ble_keyboard_send_battery:()=>rN,analog_ble_keyboard_str:()=>uN,analog_ble_mouse_init:()=>lN,analog_ble_mouse_input:()=>TN,analog_ble_mouse_keyboard_input:()=>gN,analog_ble_mouse_send_battery:()=>MN,analog_keyboard_input:()=>ZL,analog_keyboard_str:()=>nN,analog_mouse_input:()=>eN,bitbot_motor:()=>BL,bitbot_move:()=>bL,bitbot_stop:()=>VL,ble_keyboard_connect:()=>pN,ble_keyboard_get_mac:()=>oN,ble_keyboard_mouse_connect:()=>EN,ble_keyboard_mouse_get_mac:()=>mN,ble_mouse_connect:()=>IN,ble_mouse_get_mac:()=>dN,cc_number:()=>mL,educore_ble_keyboard_input:()=>YN,educore_ble_sensor_connected:()=>PN,educore_ble_sensor_init:()=>FN,educore_buzzer:()=>CN,educore_buzzer_play_tone:()=>SN,educore_buzzer_play_tone_time:()=>AN,educore_buzzer_stop:()=>LN,educore_neopixel_clear:()=>fN,educore_neopixel_rgb:()=>DN,educore_rgb_light:()=>NN,esp32_music_get_tempo:()=>sL,esp32_music_reset:()=>uL,esp32_music_set_tempo:()=>nL,esp32_onboard_music_pitch:()=>_L,esp32_onboard_music_pitch_with_time:()=>oL,esp32_onboard_music_play_list:()=>aL,esp32_onboard_music_stop:()=>pL,general_key:()=>tN,general_key_tuple:()=>sN,get_power_output:()=>zL,ledswitch:()=>lL,mixbot_motor:()=>yL,mixbot_motor_status:()=>YL,mixbot_move:()=>vL,mixbot_stop:()=>XL,mouse_key:()=>iN,number:()=>rL,rm_actuator_get_led_bright:()=>OL,rm_actuator_get_led_state:()=>RL,rm_actuator_led_bright:()=>EL,rm_actuator_led_brightness:()=>cL,rm_motor:()=>NL,set_all_power_output:()=>jL,set_power_output:()=>QL,special_key:()=>$L});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>lD,ai_sensor_ailocal_class:()=>tD,ai_sensor_ailocal_class_result:()=>eD,ai_sensor_ailocal_train:()=>$N,ai_sensor_asr_recognize:()=>oD,ai_sensor_audio_play:()=>nD,ai_sensor_audio_record:()=>iD,ai_sensor_barcode:()=>BN,ai_sensor_circle:()=>WN,ai_sensor_classifier_faces:()=>rD,ai_sensor_color:()=>QN,ai_sensor_color_chases:()=>ZN,ai_sensor_color_chases_result:()=>jN,ai_sensor_config:()=>yN,ai_sensor_face:()=>uD,ai_sensor_find_20objects:()=>dD,ai_sensor_find_barcodes:()=>GN,ai_sensor_find_circles:()=>KN,ai_sensor_find_colors:()=>zN,ai_sensor_find_licenseplates:()=>aD,ai_sensor_find_lines:()=>HN,ai_sensor_find_qrcodes:()=>VN,ai_sensor_find_rects:()=>qN,ai_sensor_find_tags:()=>wN,ai_sensor_licenseplate:()=>pD,ai_sensor_line:()=>kN,ai_sensor_qrcode:()=>bN,ai_sensor_qrcode_lite:()=>XN,ai_sensor_rect:()=>JN,ai_sensor_rgb:()=>xN,ai_sensor_tag:()=>UN,ai_sensor_use_uart_init:()=>vN,ai_sensor_yolo_recognize:()=>sD,ai_sensor_yolo_recognize_result:()=>_D});var z={};t.r(z),t.d(z,{MICROPYTHON_AI_Speech_asr:()=>MD,MICROPYTHON_AI_Speech_unit:()=>TD,MICROPYTHON_AI_client:()=>ID});var j={};t.r(j),t.d(j,{mpython_blynk_app_data:()=>ND,mpython_blynk_app_notify:()=>gD,mpython_blynk_email:()=>DD,mpython_blynk_get_timers:()=>SD,mpython_blynk_on_connected:()=>OD,mpython_blynk_on_disconnected:()=>ED,mpython_blynk_run:()=>cD,mpython_blynk_sensor_data_to_app:()=>LD,mpython_blynk_set_property:()=>fD,mpython_blynk_setup:()=>FD,mpython_blynk_stop_timers:()=>CD,mpython_blynk_sync_virtual:()=>mD,mpython_blynk_terminal_widget_vpin:()=>hD,mpython_blynktimer:()=>AD,mpython_blynktimer_run:()=>RD});var Z={};t.r(Z),t.d(Z,{cc_g1_read_bat:()=>PD,cc_g1_read_joystick:()=>YD,cc_g1_read_key:()=>vD,cc_g1_turnoff:()=>XD});var $={};t.r($),t.d($,{ce_go_dc_motor:()=>wD,ce_go_get_led_bright:()=>bD,ce_go_get_led_state:()=>VD,ce_go_hall_attachInterrupt:()=>kD,ce_go_hall_data:()=>WD,ce_go_hall_initialize:()=>HD,ce_go_led_bright:()=>xD,ce_go_led_brightness:()=>BD,ce_go_light_number:()=>yD,ce_go_pin_light:()=>zD,ce_go_pin_near:()=>JD,ce_go_pin_near_line:()=>KD,ce_go_pin_near_state_change:()=>qD,ce_go_stepper_keep:()=>GD,ce_go_stepper_stop:()=>UD,educore_car:()=>jD,educore_car_pin_near:()=>ef,educore_car_pin_near_line:()=>tf,educore_car_stepper_keep:()=>ZD,educore_car_stepper_stop:()=>$D,sensor_mixgome_eulerangles:()=>QD});var tt={};t.r(tt),t.d(tt,{communicate_bluetooth_central_init:()=>bf,communicate_bluetooth_connect:()=>Gf,communicate_bluetooth_disconnect:()=>Uf,communicate_bluetooth_handle:()=>Jf,communicate_bluetooth_is_connected:()=>kf,communicate_bluetooth_mac:()=>wf,communicate_bluetooth_peripheral_init:()=>Vf,communicate_bluetooth_recv:()=>Kf,communicate_bluetooth_recv_only:()=>Wf,communicate_bluetooth_scan:()=>Bf,communicate_bluetooth_send:()=>Hf,communicate_espnow_init:()=>qf,communicate_espnow_init_new:()=>Qf,communicate_i2c_available:()=>rf,communicate_i2c_init:()=>_f,communicate_i2c_master_read:()=>uf,communicate_i2c_onboard:()=>nf,communicate_i2c_read:()=>of,communicate_i2c_scan:()=>af,communicate_i2c_write:()=>pf,communicate_ir_recv_init:()=>Nf,communicate_ir_send_init:()=>Yf,communicate_ow_init:()=>cf,communicate_ow_read:()=>Sf,communicate_ow_reset:()=>Cf,communicate_ow_scan:()=>gf,communicate_ow_select:()=>Lf,communicate_ow_write:()=>Af,communicate_spi_buffer:()=>Tf,communicate_spi_init:()=>df,communicate_spi_onboard:()=>sf,communicate_spi_read:()=>Mf,communicate_spi_read_output:()=>hf,communicate_spi_readinto:()=>mf,communicate_spi_readinto_output:()=>Ef,communicate_spi_set:()=>If,communicate_spi_write:()=>Of,communicate_spi_write_readinto:()=>Rf,espnow_radio_channel:()=>eF,espnow_radio_channel_new:()=>nF,espnow_radio_on_off:()=>sF,espnow_radio_rec:()=>oF,espnow_radio_recv:()=>aF,espnow_radio_recv_certain_msg:()=>uF,espnow_radio_recv_certain_msg_new:()=>lF,espnow_radio_recv_msg:()=>pF,espnow_radio_recv_new:()=>rF,espnow_radio_send:()=>_F,espnow_radio_txpower:()=>iF,i2c_slave_onreceive:()=>lf,internal_variable:()=>Df,ir_recv_timeout:()=>Pf,ir_transmit_busy:()=>xf,ir_transmit_conventional_data:()=>vf,ir_transmit_raw_code:()=>yf,ir_transmit_study_code:()=>Xf,ir_whether_recv:()=>Ff,lora_init:()=>dF,lora_packet:()=>IF,lora_recv:()=>MF,lora_send:()=>TF,network_espnow_info:()=>jf,network_espnow_mac:()=>zf,network_espnow_recv:()=>Zf,network_espnow_recv_handle:()=>tF,network_espnow_send:()=>$f,recv_fun:()=>ff,urequests_attribute:()=>mF,urequests_get:()=>hF,urequests_method:()=>EF});var et={};t.r(et),t.d(et,{display_animate:()=>kF,display_circle:()=>HF,display_color_seclet:()=>eP,display_draw_4strings:()=>xF,display_fill:()=>wF,display_lcd_use_i2c_init:()=>pP,display_line:()=>BF,display_line_arbitrarily:()=>bF,display_matrix_extern_bright_point:()=>fF,display_matrix_extern_bright_screen:()=>PF,display_matrix_extern_clear:()=>LF,display_matrix_extern_get_pixel:()=>DF,display_matrix_extern_get_screen_pixel:()=>FF,display_matrix_extern_image_builtins:()=>YF,display_matrix_extern_scroll_string:()=>SF,display_matrix_extern_scroll_string_delay:()=>AF,display_matrix_extern_shift:()=>NF,display_matrix_extern_show_frame_string:()=>gF,display_matrix_extern_show_frame_string_delay:()=>CF,display_matrix_extern_show_image:()=>RF,display_matrix_extern_show_image_or_string_delay:()=>cF,display_matrix_use_i2c_init:()=>OF,display_oled_drawPixel:()=>JF,display_oled_showBitmap:()=>KF,display_oled_use_i2c_init:()=>dP,display_onoff:()=>GF,display_rect:()=>VF,display_tm1650_power:()=>QF,display_tm1650_set_brightness:()=>ZF,display_tm1650_show_dot:()=>jF,display_tm1650_show_num:()=>zF,display_tm_use_i2c_init:()=>qF,display_triangle:()=>WF,display_use_i2c_init:()=>yF,extern_oled_bright_point:()=>SP,extern_oled_clear:()=>cP,extern_oled_get_pixel:()=>CP,extern_oled_hvline:()=>LP,extern_oled_line:()=>NP,extern_oled_scroll_string:()=>OP,extern_oled_scroll_string_delay:()=>RP,extern_oled_shape_rect:()=>AP,extern_oled_shift:()=>gP,extern_oled_show_frame_string:()=>mP,extern_oled_show_frame_string_delay:()=>EP,extern_oled_show_image:()=>IP,extern_oled_show_image_or_string_delay:()=>hP,extern_oled_show_image_xy:()=>TP,extern_oled_show_string:()=>MP,image_shift:()=>UF,lcd_backlight:()=>rP,lcd_clear:()=>lP,lcd_print_string:()=>uP,lcd_show_image_or_string_delay:()=>aP,matrix_extern_image_arithmetic:()=>vF,matrix_extern_image_invert:()=>XF,tft_fill:()=>_P,tft_line_arbitrarily:()=>oP,tft_scroll_string_delay:()=>sP,tft_show_frame_string_delay:()=>nP,tft_show_image_or_string_delay:()=>iP,tft_show_image_xy:()=>tP,tft_use_spi_init:()=>$F});var it={};t.r(it),t.d(it,{bitbot_display_image_create:()=>lY,display_bright_point:()=>wP,display_bright_screen:()=>HP,display_clear:()=>bP,display_get_pixel:()=>UP,display_get_screen_pixel:()=>kP,display_image_builtins:()=>XP,display_image_builtins_all:()=>yP,display_image_create:()=>xP,display_scroll_string:()=>YP,display_scroll_string_delay:()=>vP,display_shift:()=>GP,display_show_frame_string:()=>FP,display_show_frame_string_delay:()=>PP,display_show_image:()=>DP,display_show_image_or_string_delay:()=>fP,draw_pointer:()=>yY,image_arithmetic:()=>VP,image_invert:()=>BP,mixbot_display_bright_screen:()=>uY,mixbot_display_get_ambientbright:()=>aY,mixbot_display_get_screen_pixel:()=>pY,mixbot_display_image_create:()=>oY,mixbot_display_rotate:()=>rY,mixgo_display_image_create_new:()=>qP,mixgome_display_font:()=>JP,mixgome_display_image_create:()=>WP,mixgomini_display_image_create:()=>KP,mpython_display_hvline:()=>sY,mpython_display_line:()=>_Y,mpython_display_shape_rect:()=>nY,mpython_pbm_image:()=>QP,onboard_oled_bright_point:()=>iY,onboard_oled_scroll_string_delay:()=>eY,onboard_oled_show_frame_string_delay:()=>tY,onboard_oled_show_image:()=>zP,onboard_oled_show_image_or_string_delay:()=>$P,onboard_oled_show_image_xy:()=>jP,onboard_oled_show_string:()=>ZP,onboard_tft_bright_point:()=>AY,onboard_tft_bright_screen:()=>NY,onboard_tft_clear:()=>gY,onboard_tft_clock_clear:()=>vY,onboard_tft_clock_draw:()=>YY,onboard_tft_clock_get_rtctime:()=>FY,onboard_tft_clock_init:()=>fY,onboard_tft_clock_set_time:()=>PY,onboard_tft_display_hvline:()=>RY,onboard_tft_display_line:()=>cY,onboard_tft_display_shape_circle:()=>XY,onboard_tft_display_shape_rect:()=>OY,onboard_tft_fill:()=>DY,onboard_tft_get_pixel:()=>SY,onboard_tft_get_screen_pixel:()=>LY,onboard_tft_scroll_string:()=>mY,onboard_tft_scroll_string_delay:()=>EY,onboard_tft_shift:()=>CY,onboard_tft_show_frame_string:()=>MY,onboard_tft_show_frame_string_delay:()=>hY,onboard_tft_show_image:()=>dY,onboard_tft_show_image_or_string_delay:()=>TY,onboard_tft_show_image_xy:()=>IY});var nt={};t.r(nt),t.d(nt,{factory_block:()=>kY,factory_block_return:()=>HY,factory_block_return_with_textarea:()=>KY,factory_block_with_textarea:()=>WY,factory_callMethod_noreturn:()=>UY,factory_callMethod_return:()=>wY,factory_declare:()=>GY,factory_from_import:()=>xY,factory_function_noreturn:()=>VY,factory_function_return:()=>BY,factory_import:()=>bY,folding_block:()=>JY});var st={};t.r(st),t.d(st,{inout_analog_atten:()=>av,inout_analog_read:()=>ev,inout_analog_read_init:()=>pv,inout_analog_write:()=>ZY,inout_analog_write_init:()=>ov,inout_analog_write_set:()=>$Y,inout_digital_init:()=>sv,inout_digital_read:()=>zY,inout_digital_write:()=>QY,inout_highlow:()=>qY,inout_pin_attachInterrupt:()=>nv,inout_pin_pressed:()=>iv,inout_pin_pressed_init:()=>uv,inout_pwm_analog_write:()=>jY,inout_pwm_analog_write_init:()=>_v,inout_pwm_analog_write_set_freq:()=>tv});var _t={};t.r(_t),t.d(_t,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Dv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Lv,IOT_EMQX_PING:()=>fv,IOT_FORMATTING:()=>Sv,IOT_FORMAT_STRING:()=>Av,IOT_MIXIO_NTP:()=>Fv,IOT_MIXIO_PUBLISH:()=>mv,IOT_MIXIO_SUBSCRIBE:()=>Ev,iot_client_onboard:()=>Pv,iot_http_client:()=>Yv,iot_http_data:()=>vv,iot_mixio_check:()=>cv,iot_mixio_connect:()=>hv,iot_mixio_connect_only:()=>Rv,iot_mixio_disconnect:()=>Ov,iot_mixio_format_msg:()=>Cv,iot_mixio_format_topic:()=>gv,iot_mixly_key:()=>Nv,iot_mqtt_client:()=>Xv,iot_mqtt_data:()=>yv,iot_onenet_check:()=>Tv,iot_onenet_connect:()=>lv,iot_onenet_disconnect:()=>dv,iot_onenet_publish:()=>Mv,iot_onenet_publish_dict:()=>Iv,iot_wifi_connect:()=>rv});var ot={};t.r(ot),t.d(ot,{educore_mqtt_connect:()=>dX,educore_mqtt_connect_success:()=>hX,educore_mqtt_subscribe_message:()=>IX,educore_mqtt_topic_publish:()=>MX,educore_mqtt_topic_subscribe:()=>TX,educore_wifi_connect:()=>lX,network_ap_connect:()=>Hv,network_connect:()=>bv,network_get_connect:()=>Bv,network_get_wifi:()=>kv,network_init:()=>xv,network_is_active:()=>wv,network_open:()=>Uv,network_scan:()=>Wv,network_server:()=>Kv,network_socket_accept:()=>jv,network_socket_bind:()=>qv,network_socket_close:()=>iX,network_socket_connect:()=>Qv,network_socket_init:()=>Jv,network_socket_listen:()=>zv,network_socket_receive:()=>Zv,network_socket_receive_from:()=>tX,network_socket_send:()=>$v,network_socket_send_to:()=>eX,network_stop:()=>Gv,network_wifi_connect:()=>Vv,ntptime_address:()=>pX,ntptime_time:()=>oX,requests_attribute:()=>sX,requests_attribute2:()=>uX,requests_get:()=>nX,requests_get2:()=>aX,requests_method:()=>_X,requests_post:()=>rX});var pt={};t.r(pt),t.d(pt,{pe_g1_battery_left:()=>EX,pe_g1_dc_motor:()=>OX,pe_g1_dc_motor_speed:()=>RX,pe_g1_servo_get_angle:()=>CX,pe_g1_servo_get_speed:()=>SX,pe_g1_servo_set_angle:()=>cX,pe_g1_servo_set_speed:()=>gX,pe_g1_use_i2c_init:()=>mX});var at={};t.r(at),t.d(at,{CI130X_BROADCAST:()=>JX,CI130X_GET_THE_RECOGNIZED_CMD:()=>KX,CI130X_GET_WHETHER_IDENTIFY:()=>WX,CI130X_IDENTIFY_AND_SAVE:()=>HX,CI130X_SET_SYSTEM_CMD:()=>qX,HCSR04:()=>Sy,PS2_Button:()=>Ny,PS2_Buttons:()=>Dy,PS2_Buttons_new:()=>xy,PS2_State:()=>fy,PS2_init:()=>Ay,PS2_init_new:()=>Xy,PS2_stk:()=>Fy,PS2_stk_new:()=>by,PS2_vibration:()=>Ly,PS2_vibration_new:()=>yy,RTC_get_time:()=>Yy,RTC_set_date:()=>YX,RTC_set_datetime:()=>Py,RTC_set_time:()=>PX,camera_sensor_init:()=>Ix,camera_sensor_result:()=>Tx,educore_body_sensor:()=>nx,educore_button_sensor_extern:()=>px,educore_camera_sensor:()=>dx,educore_infrared_sensor:()=>ox,educore_soilhum_sensor:()=>sx,educore_temp_sensor:()=>lx,educore_temphum_sensor:()=>_x,educore_ultrasonic_sensor:()=>ux,esp32_s2_weather_init:()=>Ry,esp32_s2_weather_rain:()=>gy,esp32_s2_weather_wd:()=>cy,esp32_s2_weather_ws:()=>Cy,extern_rfid_read:()=>ay,extern_rfid_readcontent:()=>ry,extern_rfid_readid:()=>uy,extern_rfid_status:()=>Iy,extern_rfid_write:()=>ly,extern_rfid_write_return:()=>dy,gnss_get_data:()=>Gy,gnss_have_data:()=>Uy,interaction_whether_to_interaction:()=>wX,interaction_whether_to_interaction_SANT:()=>kX,mixbot_sensor_extern_get_addr:()=>zy,mixbot_sensor_extern_set_addr:()=>jy,pm25_get_data:()=>By,radar_set_DETECTION_THRESHOLD:()=>GX,radar_set_DETECTION_THRESHOLD_SANT:()=>UX,robot_button_extern_get_value:()=>wy,robot_color_extern_get_value:()=>Jy,robot_infrared_extern_get_value:()=>Hy,robot_infrared_extern_grey_get_value:()=>Wy,robot_potentiometer_extern_get_value:()=>Ky,robot_sonar_extern_get_value:()=>qy,robot_sonar_extern_led:()=>Qy,robot_touch_extern_get_value:()=>ky,sensor_APDS9960_extern:()=>zX,sensor_DS18X20:()=>ix,sensor_LTR308_extern:()=>jX,sensor_LTR390UV_extern:()=>iy,sensor_MAX30102_extern:()=>QX,sensor_QMC5883L_extern:()=>ny,sensor_VL530LX_extern:()=>oy,sensor_aht11_extern:()=>_y,sensor_bmp:()=>bX,sensor_dht11:()=>vy,sensor_distance_hrsc04:()=>FX,sensor_hp203_extern:()=>ZX,sensor_ltr381_extern:()=>ty,sensor_mixgo_extern_button_attachInterrupt:()=>DX,sensor_mixgo_extern_button_get_presses:()=>NX,sensor_mixgo_extern_button_is_pressed:()=>AX,sensor_mixgo_extern_button_was_pressed:()=>LX,sensor_mixgo_extern_light:()=>vX,sensor_mixgo_extern_pin_near:()=>yX,sensor_mixgo_extern_sound:()=>XX,sensor_mixgoce_hot_wheel_degrees:()=>Oy,sensor_mixgoce_hot_wheel_is_touched:()=>Ey,sensor_mpu9250_attachGestureInterrupt:()=>fX,sensor_read_humiture:()=>ax,sensor_rtc_init:()=>xX,sensor_sht:()=>VX,sensor_shtc3_extern:()=>sy,sensor_spl06_001_extern:()=>$X,sensor_ucs12071_extern:()=>ey,sensor_use_i2c_init:()=>BX,sensor_use_spi_init:()=>py,sensor_use_uart_init:()=>Vy,sensor_weather_solo_init:()=>Zy,sensor_weather_solo_rain:()=>ex,sensor_weather_solo_wd:()=>$y,sensor_weather_solo_ws:()=>tx,sensor_weigh_init:()=>Mx,ultrasonic_sensor_read_distance:()=>rx,weather_data:()=>Ty,weather_have_data:()=>My,weather_set_label:()=>my,weather_uart_mixio:()=>hy,weigh_sensor_get_weight:()=>hx});var ut={};t.r(ut),t.d(ut,{CI130X_BROADCAST_SANT:()=>TV,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>IV,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>dV,CI130X_IDENTIFY_AND_SAVE_SANT:()=>lV,CI130X_SET_SYSTEM_CMD_SANT:()=>MV,HCSR04:()=>Ax,bitbot_als_num:()=>Wb,dht11:()=>$b,educore_button_sensor:()=>oV,educore_button_was_pressed:()=>pV,educore_gyroscope_sensor:()=>nV,educore_gyroscope_sensor_read:()=>sV,educore_gyroscope_sensor_shake:()=>_V,educore_light_sensor:()=>iV,educore_rfid_sensor:()=>aV,educore_rfid_sensor_scan:()=>uV,educore_rfid_sensor_scan_data:()=>rV,educore_voice_sensor:()=>tV,number1:()=>Lx,number2:()=>Nx,number3:()=>Dx,number4:()=>fx,number5:()=>Fx,number6:()=>Px,number7:()=>Yx,onboard_RTC_get_time:()=>gb,onboard_RTC_get_time_str:()=>Ab,onboard_RTC_get_timestamp:()=>Cb,onboard_RTC_set_datetime:()=>Rb,onboard_RTC_settime_string:()=>cb,onboard_RTC_timestamp_totuple:()=>Sb,rfid_readcontent:()=>qx,rfid_readid:()=>Jx,rfid_write:()=>Qx,rfid_write_return:()=>zx,sensor_LTR308:()=>wx,sensor_adxl345_get_acceleration:()=>_b,sensor_aht11:()=>Wx,sensor_bitbot_ALS:()=>Hb,sensor_button_get_presses:()=>qb,sensor_button_is_pressed:()=>Kb,sensor_button_was_pressed:()=>Jb,sensor_compass_reset:()=>lb,sensor_ds18x20:()=>Gx,sensor_eulerangles:()=>Zx,sensor_get_acceleration:()=>jx,sensor_get_temperature:()=>Kx,sensor_hp203:()=>Hx,sensor_light:()=>Zb,sensor_lm35:()=>Ux,sensor_mixbot_get_gyro:()=>kb,sensor_mixbot_patrol_calibrate:()=>Gb,sensor_mixbot_patrol_value:()=>Ub,sensor_mixbot_temperature:()=>wb,sensor_mixgo_LTR308:()=>bx,sensor_mixgo_button_attachInterrupt:()=>Rx,sensor_mixgo_button_get_presses:()=>Ox,sensor_mixgo_button_is_pressed:()=>mx,sensor_mixgo_button_was_pressed:()=>Ex,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Db,sensor_mixgo_cc_mmc5603_get_angle:()=>Nb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Lb,sensor_mixgo_light:()=>jb,sensor_mixgo_nova_LTR308:()=>Bx,sensor_mixgo_nova_pin_near:()=>xx,sensor_mixgo_pin_near:()=>yx,sensor_mixgo_pin_near_double:()=>Xx,sensor_mixgo_pin_near_single:()=>vx,sensor_mixgo_pin_pressed:()=>nb,sensor_mixgo_sant_color:()=>Vx,sensor_mixgo_touch_slide:()=>ib,sensor_mixgocar42_button_attachInterrupt:()=>Sx,sensor_mixgocar42_button_get_presses:()=>Cx,sensor_mixgocar42_button_is_pressed:()=>cx,sensor_mixgocar42_button_was_pressed:()=>gx,sensor_mixgocar_battery_left:()=>Bb,sensor_mixgocar_pin_near:()=>bb,sensor_mixgocar_pin_near_line:()=>xb,sensor_mixgocar_pin_near_state_change:()=>Vb,sensor_mixgoce_pin_pressed:()=>eb,sensor_mixgoce_temperature:()=>Fb,sensor_mixgome_temperature:()=>fb,sensor_mpu9250_calibrate_compass:()=>ab,sensor_mpu9250_field_strength:()=>rb,sensor_mpu9250_gesture:()=>$x,sensor_mpu9250_get_acceleration:()=>tb,sensor_mpu9250_get_gyro:()=>pb,sensor_mpu9250_get_magnetic:()=>ob,sensor_mpu9250_temperature:()=>ub,sensor_mpython_pin_pressed:()=>sb,sensor_mpython_qmi8658_get_gyro:()=>Pb,sensor_mpython_qmi8658_temperature:()=>Yb,sensor_onboard_compass_reset:()=>Ob,sensor_onboard_mpu9250_calibrate_compass:()=>hb,sensor_onboard_mpu9250_field_strength:()=>Eb,sensor_onboard_mpu9250_gesture:()=>db,sensor_onboard_mpu9250_get_acceleration:()=>Ib,sensor_onboard_mpu9250_get_gyro:()=>Mb,sensor_onboard_mpu9250_get_magnetic:()=>Tb,sensor_onboard_mpu9250_temperature:()=>mb,sensor_pin_near:()=>zb,sensor_pin_pressed:()=>Qb,sensor_read:()=>eV,sensor_rm_acc:()=>yb,sensor_rm_battery_left:()=>Xb,sensor_rm_pin_near_double:()=>vb,sensor_sound:()=>kx});var rt={};t.r(rt),t.d(rt,{serial_any:()=>RV,serial_print:()=>hV,serial_print_byte:()=>mV,serial_print_hex:()=>OV,serial_println:()=>EV,serial_read_from_ai:()=>PV,serial_readline:()=>gV,serial_readstr:()=>cV,serial_send_to_ai:()=>FV,serial_softserial:()=>CV,serial_softserial_new:()=>SV,system_input:()=>AV,system_print:()=>LV,system_print_end:()=>DV,system_print_inline:()=>NV,system_print_many:()=>fV});var lt={};t.r(lt),t.d(lt,{Panic_with_status_code:()=>kV,Timer_init:()=>sB,base_delay:()=>pB,controls_delay:()=>qV,controls_delay_new:()=>QV,controls_end_program:()=>WV,controls_millis:()=>HV,controls_uname:()=>JV,reset:()=>KV,system_bitbot_shutdown:()=>nB,system_device_name:()=>UV,system_device_serial_number:()=>wV,system_event_bus_source:()=>BV,system_event_bus_value:()=>GV,system_machine_reset:()=>iB,system_on_event:()=>xV,system_raise_event:()=>yV,system_reset:()=>vV,system_run_in_background:()=>YV,system_ticks_diff:()=>ZV,system_timer:()=>jV,system_timer_init:()=>$V,system_timestamp:()=>bV,system_value:()=>VV,system_wait:()=>XV,system_wdt_feed:()=>eB,system_wdt_init:()=>tB,time_ticks_diff:()=>oB,timer:()=>zV,timer2:()=>_B});var dt={};t.r(dt),t.d(dt,{Air_daily_content:()=>RB,Air_now_content:()=>IB,Geo_moon_content:()=>gB,Geo_sun_content:()=>cB,Life_suggestion_content:()=>MB,Location_search_content:()=>mB,Tide_daily_content:()=>hB,WEATHER_DAILY:()=>uB,WEATHER_HOUR:()=>rB,WEATHER_NOW:()=>aB,Weather_alarm_content:()=>TB,Weather_daily:()=>EB,Weather_daily_content:()=>OB,Weather_now:()=>lB,Weather_now_content:()=>dB});var It={};t.r(It),t.d(It,{controls_pin_attachInterrupt:()=>UB,inout_analog_atten:()=>PB,inout_analog_write:()=>fB,inout_analog_write_init:()=>yB,inout_analog_write_set:()=>FB,inout_analog_write_set_freq:()=>bB,inout_digital_init:()=>XB,inout_digital_read:()=>DB,inout_digital_write:()=>NB,inout_highlow:()=>LB,inout_pinMode:()=>VB,inout_pin_attachInterrupt:()=>vB,inout_pin_pressed:()=>YB,inout_pin_pressed_init:()=>xB,pin_pressed:()=>GB,pin_pressed_init:()=>BB});var Tt={};t.r(Tt),t.d(Tt,{analog_input:()=>zB,analog_output:()=>ZB,espnow_channel:()=>JB,haskylens_model:()=>qB,i2c_A_pin:()=>$B,i2c_B_pin:()=>tG,pins_analog:()=>_G,pins_analog_pin:()=>oG,pins_axis:()=>CG,pins_brightness:()=>SG,pins_builtinimg:()=>hG,pins_builtinimg_extern:()=>mG,pins_button:()=>uG,pins_buttonB:()=>rG,pins_dac:()=>pG,pins_dac_pin:()=>aG,pins_digital:()=>kB,pins_digital_dot:()=>YG,pins_digital_pin:()=>HB,pins_exlcdh:()=>cG,pins_exlcdv:()=>gG,pins_imglist:()=>EG,pins_input_pin:()=>WB,pins_one_more:()=>PG,pins_output_pin:()=>KB,pins_playlist:()=>OG,pins_playlist_extern:()=>RG,pins_pwm:()=>lG,pins_pwm_pin:()=>dG,pins_radio_datarate:()=>FG,pins_radio_power:()=>fG,pins_serial:()=>MG,pins_tone_notes:()=>DG,pins_touch:()=>TG,pins_touch_pin:()=>IG,pins_tts_bgmusic:()=>NG,pins_tts_builtin_music:()=>LG,pins_tts_voice:()=>AG,pwm_input:()=>QB,pwm_output:()=>jB,spi_A_pin:()=>eG,spi_B_pin:()=>iG,spi_C_pin:()=>nG,spi_D_pin:()=>sG});var Mt={};t.r(Mt),t.d(Mt,{inout_analog_atten:()=>wG,inout_analog_write:()=>xG,inout_analog_write_init:()=>UG,inout_analog_write_set:()=>bG,inout_digital_init:()=>GG,inout_digital_read:()=>yG,inout_digital_write:()=>XG,inout_highlow:()=>vG,inout_pin_attachInterrupt:()=>BG,inout_pin_pressed:()=>VG,inout_pin_pressed_init:()=>kG});var ht={};t.r(ht),t.d(ht,{analog_input:()=>$G,analog_output:()=>eU,espnow_channel:()=>jG,haskylens_model:()=>ZG,i2c_A_pin:()=>iU,i2c_B_pin:()=>nU,pins_analog:()=>uU,pins_analog_pin:()=>aU,pins_axis:()=>CU,pins_brightness:()=>LU,pins_builtinimg:()=>EU,pins_builtinimg_extern:()=>OU,pins_button:()=>WG,pins_buttonB:()=>KG,pins_dac:()=>IU,pins_dac_pin:()=>dU,pins_digital:()=>HG,pins_digital_dot:()=>XU,pins_digital_pin:()=>JG,pins_exlcdh:()=>SU,pins_exlcdv:()=>AU,pins_imglist:()=>RU,pins_input_pin:()=>qG,pins_interrupt:()=>hU,pins_one_more:()=>vU,pins_output_pin:()=>QG,pins_playlist:()=>cU,pins_playlist_extern:()=>gU,pins_pwm:()=>lU,pins_pwm_input:()=>zG,pins_pwm_pin:()=>rU,pins_radio_datarate:()=>YU,pins_radio_power:()=>PU,pins_serial:()=>mU,pins_tone_notes:()=>FU,pins_touch:()=>MU,pins_touch_pin:()=>TU,pins_tts_bgmusic:()=>fU,pins_tts_builtin_music:()=>DU,pins_tts_voice:()=>NU,pwm_output:()=>tU,spi_A_pin:()=>sU,spi_B_pin:()=>_U,spi_C_pin:()=>oU,spi_D_pin:()=>pU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>xt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>Ht,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>Qt,controls_if_elseif:()=>qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>yt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>kt,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>de,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>le,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>li,text:()=>Xe,text_capital:()=>Qe,text_center:()=>ze,text_char:()=>xe,text_char_at:()=>ke,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>He,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>ye});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>Qi,enumerate:()=>qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>xi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>yi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>Hi,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>ki,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>dn,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>ln,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>Hn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>xn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>yn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>kn,storage_make_dir:()=>Qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ds,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_input:()=>Fs,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var l={};t.r(l),t.d(l,{set_add_discard:()=>Gs,set_clear:()=>bs,set_create_with:()=>Ys,set_create_with_container:()=>vs,set_create_with_item:()=>Xs,set_create_with_text_return:()=>ks,set_length:()=>ys,set_operate:()=>Vs,set_operate_update:()=>Bs,set_pop:()=>xs,set_sub:()=>Us,set_toset:()=>Hs,set_update:()=>ws});var d={};t.r(d),t.d(d,{html_content:()=>Qs,html_content_more:()=>zs,html_document:()=>Ks,html_form:()=>Zs,html_head_body:()=>qs,html_style:()=>js,html_style_color:()=>t_,html_style_content:()=>$s,html_text:()=>e_,html_title:()=>Js});var I={};t.r(I),t.d(I,{attribute_access:()=>M_,function_call:()=>d_,function_call_container:()=>I_,function_call_item:()=>T_,raw_block:()=>s_,raw_empty:()=>o_,raw_expression:()=>__,raw_table:()=>n_,text_comment:()=>p_,text_print_multiple:()=>u_,text_print_multiple_container:()=>r_,text_print_multiple_item:()=>l_,type_check:()=>a_});var T={};t.r(T),t.d(T,{controls_type:()=>R_,controls_typeLists:()=>c_,lists_zip:()=>g_,unpack_iterable_object:()=>C_,variables_change:()=>E_,variables_get:()=>h_,variables_global:()=>O_,variables_set:()=>m_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>v_,base_setup:()=>A_,controls_delay:()=>Y_,controls_flow_statements:()=>P_,controls_for:()=>D_,controls_forEach:()=>V_,controls_for_range:()=>f_,controls_if:()=>L_,controls_interrupts:()=>x_,controls_lambda:()=>G_,controls_main:()=>S_,controls_millis:()=>X_,controls_nointerrupts:()=>b_,controls_pass:()=>w_,controls_range:()=>B_,controls_repeat:()=>z_,controls_repeat_ext:()=>W_,controls_thread:()=>k_,controls_try_finally:()=>N_,controls_whileUntil:()=>F_,datetime_fromtimestamp:()=>j_,do_while:()=>H_,garbage_collection:()=>K_,gene_unique_identifier:()=>Z_,get_mem_alloc:()=>J_,get_mem_free:()=>q_,get_unique_identifier:()=>Q_,reset:()=>y_,time_sleep:()=>U_});var h={};t.r(h),t.d(h,{base_map:()=>Ro,generate_cartesian_product:()=>go,math_arithmetic:()=>no,math_bit:()=>io,math_constant:()=>to,math_constant_mp:()=>eo,math_constrain:()=>Io,math_dec:()=>po,math_indexer_number:()=>ho,math_map:()=>lo,math_max_min:()=>uo,math_number:()=>$_,math_number_base_conversion:()=>To,math_random:()=>ro,math_random_seed:()=>Mo,math_round:()=>mo,math_selfcalcu:()=>so,math_single:()=>_o,math_to_int:()=>ao,math_trig:()=>oo,text_to_number:()=>Eo,text_to_number_skulpt:()=>Oo,turn_to_int:()=>co});var m={};t.r(m),t.d(m,{ascii_to_char:()=>No,char_to_ascii:()=>Do,number_to_text:()=>fo,os_system:()=>Zo,text:()=>Co,text_capital:()=>Vo,text_center:()=>Bo,text_char:()=>Ao,text_char_at:()=>Yo,text_char_at2:()=>Po,text_char_at3:()=>Qo,text_compareTo:()=>qo,text_compare_to:()=>yo,text_encode:()=>zo,text_equals_starts_ends:()=>Xo,text_eval:()=>jo,text_find:()=>Go,text_format:()=>Wo,text_format_noreturn:()=>Ko,text_join:()=>Lo,text_join_seq:()=>Uo,text_length:()=>Fo,text_random_char:()=>vo,text_replace:()=>wo,text_split:()=>ko,text_strip:()=>Ho,text_substring:()=>bo,text_substring2:()=>xo,text_substring3:()=>Jo,text_textarea:()=>So});var E={};t.r(E),t.d(E,{content_in_lists:()=>Yp,enumerate:()=>Pp,list_many_input:()=>Ep,list_tolist:()=>fp,list_tolist2:()=>Fp,list_trig:()=>Mp,lists_2d_get_col_row_data:()=>ep,lists_2d_get_data_with_col_row:()=>tp,lists_append_extend:()=>op,lists_change_to:()=>mp,lists_change_to_general:()=>Rp,lists_clear:()=>lp,lists_create_with:()=>ip,lists_create_with2:()=>gp,lists_create_with_noreturn:()=>Op,lists_create_with_text:()=>np,lists_create_with_text2:()=>Cp,lists_del_general:()=>cp,lists_find:()=>dp,lists_getIndex3:()=>Sp,lists_getSublist3:()=>Ap,lists_get_index:()=>sp,lists_get_random_item:()=>pp,lists_get_random_sublist:()=>ap,lists_get_sublist:()=>$o,lists_insert_value:()=>up,lists_insert_value2:()=>Np,lists_pop:()=>Tp,lists_remove_at:()=>Ip,lists_remove_at2:()=>Dp,lists_reverse:()=>rp,lists_setIndex3:()=>Lp,lists_set_index:()=>_p,lists_sort:()=>hp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Wp,dicts_add_or_change:()=>bp,dicts_clear:()=>Gp,dicts_create_with:()=>vp,dicts_create_with_noreturn:()=>qp,dicts_deldict:()=>Hp,dicts_delete:()=>Vp,dicts_get:()=>yp,dicts_get_default:()=>xp,dicts_items:()=>Up,dicts_keys:()=>Xp,dicts_length:()=>kp,dicts_pop:()=>Kp,dicts_setdefault:()=>Jp,dicts_to_json:()=>zp,dicts_to_json2:()=>$p,dicts_to_to:()=>Zp,dicts_todict:()=>Qp,dicts_update:()=>Bp,dicts_values:()=>wp,json_to_dicts:()=>jp});var R={};t.r(R),t.d(R,{logic_boolean:()=>sa,logic_compare:()=>ta,logic_compare_continous:()=>ea,logic_is:()=>aa,logic_is_in:()=>pa,logic_negate:()=>na,logic_null:()=>_a,logic_operation:()=>ia,logic_tobool:()=>ua,logic_true_or_false:()=>oa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Ya,sdcard_use_spi_init:()=>Pa,storage_can_write_ornot:()=>Ea,storage_change_dir:()=>La,storage_close_file:()=>Ra,storage_delete_file:()=>ga,storage_file_seek:()=>Aa,storage_file_tell:()=>Sa,storage_file_write:()=>Ta,storage_fileopen:()=>la,storage_fileopen_new:()=>da,storage_fileopen_new_encoding:()=>Ia,storage_get_a_line:()=>ma,storage_get_contents:()=>ha,storage_get_contents_without_para:()=>Ma,storage_get_current_dir:()=>Na,storage_get_file_size:()=>Ca,storage_get_filename:()=>Oa,storage_is_file:()=>Fa,storage_list_all_files:()=>ca,storage_make_dir:()=>Da,storage_open_file_with_os:()=>ra,storage_rename:()=>fa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>xa,procedures_callreturn:()=>ya,procedures_defnoreturn:()=>Xa,procedures_defreturn:()=>va,procedures_ifreturn:()=>ba,procedures_return:()=>Va});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ja,tuple_create_with:()=>Ba,tuple_create_with_noreturn:()=>ja,tuple_create_with_text2:()=>Ga,tuple_create_with_text_return:()=>Ua,tuple_del:()=>Ha,tuple_find:()=>qa,tuple_getIndex:()=>wa,tuple_getSublist:()=>za,tuple_get_random_item:()=>$a,tuple_get_sublist:()=>Za,tuple_input:()=>eu,tuple_join:()=>Wa,tuple_length:()=>ka,tuple_max:()=>Ka,tuple_totuple:()=>tu,tuple_trig:()=>Qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>au,set_clear:()=>_u,set_create_with:()=>iu,set_create_with_text_return:()=>lu,set_length:()=>nu,set_operate:()=>ou,set_operate_update:()=>pu,set_pop:()=>su,set_sub:()=>uu,set_toset:()=>du,set_update:()=>ru});var A={};t.r(A),t.d(A,{html_content:()=>hu,html_content_more:()=>mu,html_document:()=>Iu,html_form:()=>Ou,html_head_body:()=>Mu,html_style:()=>Eu,html_style_content:()=>Ru,html_text:()=>cu,html_title:()=>Tu});var L={};t.r(L),t.d(L,{attribute_access:()=>Du,function_call:()=>Nu,raw_block:()=>gu,raw_empty:()=>Su,raw_expression:()=>Cu,raw_table:()=>Au,type_check:()=>Lu});var N={};t.r(N),t.d(N,{PIN_init:()=>fr,actuator_extern_get_led_bright:()=>Gu,actuator_extern_get_led_state:()=>Uu,actuator_extern_led_bright:()=>Bu,actuator_extern_led_brightness:()=>wu,actuator_ms32006_dcmotor:()=>ju,actuator_ms32006_init:()=>zu,actuator_ms32006_stepper:()=>Zu,actuator_neopixel_init:()=>$u,actuator_neopixel_rgb:()=>tr,actuator_neopixel_rgb_all:()=>er,actuator_neopixel_write:()=>ir,actuator_use_uart_init:()=>nr,esp32_music_get_tempo_extern:()=>xu,esp32_music_pitch:()=>Yu,esp32_music_pitch_init:()=>Pu,esp32_music_pitch_with_time:()=>vu,esp32_music_play_list:()=>Xu,esp32_music_reset_extern:()=>bu,esp32_music_set_tempo_extern:()=>yu,esp32_music_stop:()=>Vu,mixbot_actuator_extern_get_addr:()=>Nr,mixbot_actuator_extern_set_addr:()=>Dr,mixbot_addr_extern:()=>Tr,parrot_PIN_init:()=>vr,parrot_move_speed:()=>Xr,pin_led_bright:()=>Fr,player_insert_music:()=>ur,player_play_music:()=>ar,player_set_mode:()=>pr,player_set_play:()=>_r,player_set_volume:()=>or,player_whether_stop:()=>sr,robot_led_extern:()=>Er,robot_led_extern_get_value:()=>Or,robot_motor_extern:()=>Mr,robot_motor_extern_get_speed:()=>hr,robot_servo_extern_absolute_run:()=>Cr,robot_servo_extern_get_status:()=>Rr,robot_servo_extern_relative_continue:()=>Lr,robot_servo_extern_relative_origin:()=>Sr,robot_servo_extern_relative_run:()=>Ar,robot_servo_extern_stop:()=>gr,robot_servo_extern_stop_mode:()=>cr,robot_traffic_light_extern:()=>mr,servo_PIN_init:()=>Pr,servo_get_angle:()=>qu,servo_get_speed:()=>Qu,servo_init:()=>ku,servo_move:()=>Hu,servo_move_angle:()=>Yr,servo_set_angle:()=>Ku,servo_set_speed:()=>Ju,servo_speed_360:()=>Wu,syn6288_builtin_voice:()=>dr,syn6288_get_voice:()=>lr,syn6288_set_voice:()=>rr,syn6288_tts_play:()=>Ir});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>dl,actuator_dc_motor_stop:()=>Il,actuator_get_led_bright:()=>Br,actuator_get_led_state:()=>Gr,actuator_led_bright:()=>Vr,actuator_led_brightness:()=>Ur,actuator_mixbot_buzzer_on_off:()=>El,actuator_mixgo_nova_mic_get:()=>Cl,actuator_mixgo_nova_mic_set:()=>gl,actuator_mixgo_nova_onboard_music_pitch:()=>fl,actuator_mixgo_nova_onboard_music_stop:()=>Fl,actuator_mixgo_nova_play_audio:()=>Nl,actuator_mixgo_nova_play_online_audio:()=>Dl,actuator_mixgo_nova_record_audio:()=>Ll,actuator_mixgo_nova_voice_get:()=>Al,actuator_mixgo_nova_voice_set:()=>Sl,actuator_mixgo_zero_led_color:()=>wr,actuator_onboard_neopixel_rgb:()=>qr,actuator_onboard_neopixel_rgb_all:()=>Qr,actuator_onboard_neopixel_rgb_show_all_chase:()=>jr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>zr,actuator_onboard_neopixel_write:()=>Zr,actuator_rm_onboard_neopixel_rgb:()=>$r,actuator_rm_onboard_neopixel_rgb_all:()=>tl,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>el,actuator_stepper_keep:()=>rl,actuator_stepper_stop:()=>ll,analog_ble_keyboard_init:()=>kl,analog_ble_keyboard_input:()=>Kl,analog_ble_keyboard_mouse_init:()=>td,analog_ble_keyboard_mouse_input:()=>sd,analog_ble_keyboard_mouse_send_battery:()=>nd,analog_ble_keyboard_mouse_str:()=>_d,analog_ble_keyboard_send_battery:()=>ql,analog_ble_keyboard_str:()=>Jl,analog_ble_mouse_init:()=>Ql,analog_ble_mouse_input:()=>Zl,analog_ble_mouse_keyboard_input:()=>od,analog_ble_mouse_send_battery:()=>$l,analog_keyboard_input:()=>Xl,analog_keyboard_str:()=>wl,analog_mouse_input:()=>Gl,bitbot_motor:()=>cl,bitbot_move:()=>Ol,bitbot_stop:()=>Rl,ble_keyboard_connect:()=>Wl,ble_keyboard_get_mac:()=>Hl,ble_keyboard_mouse_connect:()=>id,ble_keyboard_mouse_get_mac:()=>ed,ble_mouse_connect:()=>jl,ble_mouse_get_mac:()=>zl,cc_number:()=>Jr,educore_ble_keyboard_input:()=>hd,educore_ble_sensor_connected:()=>Md,educore_ble_sensor_init:()=>Td,educore_buzzer:()=>pd,educore_buzzer_play_tone:()=>ad,educore_buzzer_play_tone_time:()=>ud,educore_buzzer_stop:()=>rd,educore_neopixel_clear:()=>Id,educore_neopixel_rgb:()=>dd,educore_rgb_light:()=>ld,esp32_music_get_tempo:()=>nl,esp32_music_reset:()=>sl,esp32_music_set_tempo:()=>il,esp32_onboard_music_pitch:()=>_l,esp32_onboard_music_pitch_with_time:()=>ol,esp32_onboard_music_play_list:()=>al,esp32_onboard_music_stop:()=>pl,general_key:()=>xl,general_key_tuple:()=>bl,generalkey_container:()=>Vl,generalkey_create_with_item:()=>Bl,get_power_output:()=>Yl,ledswitch:()=>br,mixbot_motor:()=>ml,mixbot_motor_status:()=>Tl,mixbot_move:()=>Ml,mixbot_stop:()=>hl,mouse_key:()=>Ul,number:()=>xr,rm_actuator_get_led_bright:()=>Hr,rm_actuator_get_led_state:()=>Wr,rm_actuator_led_bright:()=>kr,rm_actuator_led_brightness:()=>Kr,rm_motor:()=>ul,set_all_power_output:()=>vl,set_power_output:()=>Pl,special_key:()=>yl});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>zd,ai_sensor_ailocal_class:()=>Bd,ai_sensor_ailocal_class_result:()=>Gd,ai_sensor_ailocal_train:()=>Vd,ai_sensor_asr_recognize:()=>Wd,ai_sensor_audio_play:()=>wd,ai_sensor_audio_record:()=>Ud,ai_sensor_barcode:()=>Sd,ai_sensor_circle:()=>Fd,ai_sensor_classifier_faces:()=>Qd,ai_sensor_color:()=>Xd,ai_sensor_color_chases:()=>bd,ai_sensor_color_chases_result:()=>xd,ai_sensor_config:()=>gd,ai_sensor_face:()=>qd,ai_sensor_find_20objects:()=>jd,ai_sensor_find_barcodes:()=>Ad,ai_sensor_find_circles:()=>Pd,ai_sensor_find_colors:()=>yd,ai_sensor_find_licenseplates:()=>Jd,ai_sensor_find_lines:()=>fd,ai_sensor_find_qrcodes:()=>cd,ai_sensor_find_rects:()=>vd,ai_sensor_find_tags:()=>Nd,ai_sensor_licenseplate:()=>Kd,ai_sensor_line:()=>Dd,ai_sensor_qrcode:()=>Od,ai_sensor_qrcode_lite:()=>Rd,ai_sensor_rect:()=>Yd,ai_sensor_rgb:()=>Cd,ai_sensor_tag:()=>Ld,ai_sensor_use_uart_init:()=>Ed,ai_sensor_yolo_recognize:()=>kd,ai_sensor_yolo_recognize_result:()=>Hd});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>tI,MICROPYTHON_AI_Speech_unit:()=>$d,MICROPYTHON_AI_client:()=>Zd});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>MI,mpython_blynk_app_notify:()=>aI,mpython_blynk_email:()=>lI,mpython_blynk_get_timers:()=>dI,mpython_blynk_on_connected:()=>_I,mpython_blynk_on_disconnected:()=>sI,mpython_blynk_run:()=>pI,mpython_blynk_sensor_data_to_app:()=>TI,mpython_blynk_set_property:()=>rI,mpython_blynk_setup:()=>hI,mpython_blynk_stop_timers:()=>uI,mpython_blynk_sync_virtual:()=>nI,mpython_blynk_terminal_widget_vpin:()=>iI,mpython_blynktimer:()=>II,mpython_blynktimer_run:()=>oI});var Y={};t.r(Y),t.d(Y,{cc_g1_init:()=>mI,cc_g1_read_bat:()=>EI,cc_g1_read_joystick:()=>OI,cc_g1_read_key:()=>RI,cc_g1_turnoff:()=>cI});var v={};t.r(v),t.d(v,{ce_go_dc_motor:()=>FI,ce_go_get_led_bright:()=>AI,ce_go_get_led_state:()=>LI,ce_go_hall_attachInterrupt:()=>PI,ce_go_hall_data:()=>vI,ce_go_hall_initialize:()=>YI,ce_go_led_bright:()=>SI,ce_go_led_brightness:()=>NI,ce_go_light_number:()=>CI,ce_go_pin_light:()=>VI,ce_go_pin_near:()=>yI,ce_go_pin_near_line:()=>XI,ce_go_pin_near_state_change:()=>xI,ce_go_stepper_keep:()=>DI,ce_go_stepper_stop:()=>fI,educore_car:()=>BI,educore_car_pin_near:()=>kI,educore_car_pin_near_line:()=>wI,educore_car_stepper_keep:()=>GI,educore_car_stepper_stop:()=>UI,sensor_mixgome_eulerangles:()=>bI});var X={};t.r(X),t.d(X,{communicate_bluetooth_central_init:()=>AT,communicate_bluetooth_connect:()=>fT,communicate_bluetooth_disconnect:()=>FT,communicate_bluetooth_handle:()=>yT,communicate_bluetooth_is_connected:()=>YT,communicate_bluetooth_mac:()=>DT,communicate_bluetooth_peripheral_init:()=>LT,communicate_bluetooth_recv:()=>vT,communicate_bluetooth_recv_only:()=>XT,communicate_bluetooth_scan:()=>NT,communicate_bluetooth_send:()=>PT,communicate_espnow_init:()=>xT,communicate_espnow_init_new:()=>bT,communicate_i2c_available:()=>pT,communicate_i2c_init:()=>JI,communicate_i2c_master_read:()=>oT,communicate_i2c_onboard:()=>WI,communicate_i2c_read:()=>qI,communicate_i2c_scan:()=>zI,communicate_i2c_write:()=>QI,communicate_ir_recv_init:()=>MT,communicate_ir_send_init:()=>RT,communicate_ow_init:()=>uT,communicate_ow_read:()=>lT,communicate_ow_reset:()=>TT,communicate_ow_scan:()=>rT,communicate_ow_select:()=>IT,communicate_ow_write:()=>dT,communicate_spi_buffer:()=>$I,communicate_spi_init:()=>jI,communicate_spi_onboard:()=>KI,communicate_spi_read:()=>tT,communicate_spi_read_output:()=>eT,communicate_spi_readinto:()=>iT,communicate_spi_readinto_output:()=>nT,communicate_spi_set:()=>ZI,communicate_spi_write:()=>sT,communicate_spi_write_readinto:()=>_T,espnow_radio_channel:()=>kT,espnow_radio_channel_new:()=>WT,espnow_radio_on_off:()=>KT,espnow_radio_rec:()=>qT,espnow_radio_recv:()=>zT,espnow_radio_recv_certain_msg:()=>jT,espnow_radio_recv_certain_msg_new:()=>$T,espnow_radio_recv_msg:()=>QT,espnow_radio_recv_new:()=>ZT,espnow_radio_send:()=>JT,espnow_radio_txpower:()=>HT,i2c_available:()=>cM,i2c_init:()=>pM,i2c_master_reader2:()=>RM,i2c_read:()=>aM,i2c_scan:()=>rM,i2c_slave_onreceive:()=>aT,i2c_write:()=>uM,internal_variable:()=>hT,ir_recv_timeout:()=>OT,ir_transmit_busy:()=>ST,ir_transmit_conventional_data:()=>cT,ir_transmit_raw_code:()=>CT,ir_transmit_study_code:()=>gT,ir_whether_recv:()=>ET,lora_init:()=>tM,lora_packet:()=>eM,lora_recv:()=>nM,lora_send:()=>iM,network_espnow_info:()=>BT,network_espnow_mac:()=>VT,network_espnow_recv:()=>GT,network_espnow_recv_handle:()=>wT,network_espnow_send:()=>UT,recv_fun:()=>mT,spi_buffer:()=>IM,spi_init:()=>lM,spi_read:()=>TM,spi_read_output:()=>MM,spi_readinto:()=>hM,spi_readinto_output:()=>mM,spi_set:()=>dM,spi_write:()=>EM,spi_write_readinto:()=>OM,urequests_attribute:()=>_M,urequests_get:()=>sM,urequests_method:()=>oM});var y={};t.r(y),t.d(y,{display_animate:()=>jM,display_blink_rate:()=>JM,display_circle:()=>ZM,display_color_seclet:()=>rh,display_draw_4strings:()=>UM,display_fill:()=>zM,display_get_screen_image:()=>KM,display_help:()=>th,display_image_size:()=>wM,display_lcd_use_i2c_init:()=>hh,display_line:()=>HM,display_line_arbitrarily:()=>WM,display_matrix_extern_bright_point:()=>vM,display_matrix_extern_bright_screen:()=>yM,display_matrix_extern_clear:()=>xM,display_matrix_extern_get_pixel:()=>YM,display_matrix_extern_get_screen_pixel:()=>XM,display_matrix_extern_image_builtins:()=>bM,display_matrix_extern_scroll_string:()=>NM,display_matrix_extern_scroll_string_delay:()=>DM,display_matrix_extern_shift:()=>PM,display_matrix_extern_show_frame_string:()=>fM,display_matrix_extern_show_frame_string_delay:()=>FM,display_matrix_extern_show_image:()=>AM,display_matrix_extern_show_image_or_string_delay:()=>LM,display_matrix_use_i2c_init:()=>SM,display_oled_drawPixel:()=>ih,display_oled_showBitmap:()=>eh,display_oled_use_i2c_init:()=>ch,display_onoff:()=>QM,display_rect:()=>kM,display_rgb_color:()=>qM,display_tm1650_power:()=>sh,display_tm1650_set_brightness:()=>ph,display_tm1650_show_dot:()=>oh,display_tm1650_show_num:()=>_h,display_tm_use_i2c_init:()=>nh,display_triangle:()=>$M,display_use_i2c_init:()=>GM,extern_oled_bright_point:()=>Yh,extern_oled_clear:()=>vh,extern_oled_get_pixel:()=>Ph,extern_oled_hvline:()=>yh,extern_oled_line:()=>xh,extern_oled_scroll_string:()=>Lh,extern_oled_scroll_string_delay:()=>Nh,extern_oled_shape_rect:()=>Xh,extern_oled_shift:()=>Fh,extern_oled_show_frame_string:()=>Dh,extern_oled_show_frame_string_delay:()=>fh,extern_oled_show_image:()=>gh,extern_oled_show_image_or_string_delay:()=>Ah,extern_oled_show_image_xy:()=>Ch,extern_oled_show_string:()=>Sh,lcd_backlight:()=>Oh,lcd_clear:()=>Rh,lcd_print_string:()=>Eh,lcd_show_image_or_string_delay:()=>mh,matrix_extern_image_arithmetic:()=>VM,matrix_extern_image_invert:()=>BM,tft_fill:()=>Th,tft_line_arbitrarily:()=>Mh,tft_scroll_string_delay:()=>dh,tft_show_frame_string_delay:()=>Ih,tft_show_image_or_string_delay:()=>lh,tft_show_image_xy:()=>uh,tft_use_spi_init:()=>ah});var x={};t.r(x),t.d(x,{bitbot_display_image_create:()=>cm,display_bright_point:()=>jh,display_bright_screen:()=>$h,display_clear:()=>tm,display_get_pixel:()=>zh,display_get_screen_pixel:()=>Zh,display_image_builtins:()=>Wh,display_image_builtins_all:()=>Kh,display_image_create:()=>Hh,display_scroll_string:()=>Gh,display_scroll_string_delay:()=>Uh,display_shift:()=>Qh,display_show_frame_string:()=>wh,display_show_frame_string_delay:()=>kh,display_show_image:()=>Vh,display_show_image_or_string_delay:()=>Bh,draw_pointer:()=>Wm,image_arithmetic:()=>Jh,image_invert:()=>qh,mixbot_display_bright_screen:()=>Om,mixbot_display_get_ambientbright:()=>Em,mixbot_display_get_screen_pixel:()=>mm,mixbot_display_image_create:()=>hm,mixbot_display_rotate:()=>Rm,mixgo_display_image_create_new:()=>nm,mixgome_display_font:()=>sm,mixgome_display_image_create:()=>em,mixgomini_display_image_create:()=>im,mpython_display_hvline:()=>Im,mpython_display_line:()=>Tm,mpython_display_shape_rect:()=>dm,mpython_pbm_image:()=>Mm,onboard_oled_bright_point:()=>lm,onboard_oled_scroll_string_delay:()=>um,onboard_oled_show_frame_string_delay:()=>rm,onboard_oled_show_image:()=>_m,onboard_oled_show_image_or_string_delay:()=>am,onboard_oled_show_image_xy:()=>om,onboard_oled_show_string:()=>pm,onboard_tft_bright_point:()=>Xm,onboard_tft_bright_screen:()=>bm,onboard_tft_clear:()=>ym,onboard_tft_clock_clear:()=>km,onboard_tft_clock_draw:()=>wm,onboard_tft_clock_get_rtctime:()=>Gm,onboard_tft_clock_init:()=>Bm,onboard_tft_clock_set_time:()=>Um,onboard_tft_display_hvline:()=>Fm,onboard_tft_display_line:()=>Pm,onboard_tft_display_shape_circle:()=>Hm,onboard_tft_display_shape_rect:()=>fm,onboard_tft_fill:()=>Vm,onboard_tft_get_pixel:()=>vm,onboard_tft_get_screen_pixel:()=>xm,onboard_tft_scroll_string:()=>Am,onboard_tft_scroll_string_delay:()=>Lm,onboard_tft_shift:()=>Ym,onboard_tft_show_frame_string:()=>Nm,onboard_tft_show_frame_string_delay:()=>Dm,onboard_tft_show_image:()=>gm,onboard_tft_show_image_or_string_delay:()=>Sm,onboard_tft_show_image_xy:()=>Cm});var b={};t.r(b),t.d(b,{factory_block:()=>iE,factory_block_return:()=>nE,factory_block_return_with_textarea:()=>_E,factory_block_with_textarea:()=>sE,factory_callMethod_noreturn:()=>tE,factory_callMethod_return:()=>eE,factory_create_with_container:()=>zm,factory_create_with_item:()=>jm,factory_declare:()=>$m,factory_from_import:()=>Jm,factory_function_noreturn:()=>Qm,factory_function_return:()=>Zm,factory_import:()=>qm,folding_block:()=>oE});var V={};t.r(V),t.d(V,{controls_pin_attachInterrupt:()=>DE,inout_analog_atten:()=>hE,inout_analog_read:()=>ME,inout_analog_read_init:()=>gE,inout_analog_write:()=>dE,inout_analog_write_init:()=>cE,inout_analog_write_set:()=>IE,inout_analog_write_set_freq:()=>AE,inout_digital_init:()=>OE,inout_digital_read:()=>rE,inout_digital_write:()=>uE,inout_highlow:()=>aE,inout_pinMode:()=>SE,inout_pin_attachInterrupt:()=>EE,inout_pin_pressed:()=>mE,inout_pin_pressed_init:()=>CE,inout_pwm_analog_write:()=>lE,inout_pwm_analog_write_init:()=>RE,inout_pwm_analog_write_set_freq:()=>TE,pin_pressed:()=>NE,pin_pressed_init:()=>LE});var B={};t.r(B),t.d(B,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>ZE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>jE,IOT_EMQX_PING:()=>QE,IOT_FORMATTING:()=>JE,IOT_FORMAT_STRING:()=>qE,IOT_MIXIO_NTP:()=>zE,IOT_MIXIO_PUBLISH:()=>GE,IOT_MIXIO_SUBSCRIBE:()=>UE,iot_checkonenet:()=>aO,iot_client_onboard:()=>tO,iot_create_with_item:()=>VE,iot_http_client:()=>eO,iot_http_data:()=>iO,iot_mixio_check:()=>HE,iot_mixio_connect:()=>BE,iot_mixio_connect_only:()=>kE,iot_mixio_disconnect:()=>wE,iot_mixio_format_msg:()=>KE,iot_mixio_format_topic:()=>WE,iot_mixly_key:()=>$E,iot_mqtt_client:()=>nO,iot_mqtt_data:()=>sO,iot_onenet_check:()=>vE,iot_onenet_connect:()=>PE,iot_onenet_disconnect:()=>YE,iot_onenet_publish:()=>yE,iot_onenet_publish_dict:()=>XE,iot_onenetconnect:()=>oO,iot_onenetdisconnect:()=>pO,iot_publish:()=>uO,iot_publish_container:()=>xE,iot_publish_item:()=>bE,iot_wifi_connect:()=>FE,iot_wificonnect:()=>_O});var G={};t.r(G),t.d(G,{educore_mqtt_connect:()=>wO,educore_mqtt_connect_success:()=>KO,educore_mqtt_subscribe_message:()=>kO,educore_mqtt_topic_publish:()=>WO,educore_mqtt_topic_subscribe:()=>HO,educore_wifi_connect:()=>UO,network_ap_connect:()=>RO,network_connect:()=>MO,network_get_connect:()=>mO,network_get_wifi:()=>OO,network_init:()=>lO,network_is_active:()=>IO,network_open:()=>dO,network_scan:()=>TO,network_server:()=>cO,network_socket_accept:()=>LO,network_socket_bind:()=>CO,network_socket_close:()=>PO,network_socket_connect:()=>SO,network_socket_init:()=>gO,network_socket_listen:()=>AO,network_socket_receive:()=>NO,network_socket_receive_from:()=>fO,network_socket_send:()=>DO,network_socket_send_to:()=>FO,network_stop:()=>EO,network_wifi_connect:()=>hO,ntptime_address:()=>xO,ntptime_time:()=>yO,requests_attribute:()=>vO,requests_attribute2:()=>GO,requests_get:()=>YO,requests_get2:()=>VO,requests_method:()=>XO,requests_post:()=>BO});var U={};t.r(U),t.d(U,{pe_g1_battery_left:()=>QO,pe_g1_dc_motor:()=>zO,pe_g1_dc_motor_speed:()=>jO,pe_g1_servo_get_angle:()=>tR,pe_g1_servo_get_speed:()=>eR,pe_g1_servo_set_angle:()=>ZO,pe_g1_servo_set_speed:()=>$O,pe_g1_use_i2c_init:()=>qO});var w={};t.r(w),t.d(w,{CI130X_BROADCAST:()=>LR,CI130X_GET_THE_RECOGNIZED_CMD:()=>AR,CI130X_GET_WHETHER_IDENTIFY:()=>SR,CI130X_IDENTIFY_AND_SAVE:()=>CR,CI130X_SET_SYSTEM_CMD:()=>NR,HCSR04:()=>Ic,PS2_Button:()=>mc,PS2_Buttons:()=>Oc,PS2_Buttons_new:()=>Cc,PS2_State:()=>Ec,PS2_init:()=>Tc,PS2_init_new:()=>cc,PS2_stk:()=>Rc,PS2_stk_new:()=>Sc,PS2_vibration:()=>hc,PS2_vibration_new:()=>gc,camera_sensor_init:()=>$c,camera_sensor_result:()=>tg,educore_body_sensor:()=>kc,educore_button_sensor_extern:()=>Jc,educore_camera_sensor:()=>Zc,educore_infrared_sensor:()=>Kc,educore_soilhum_sensor:()=>Hc,educore_temp_sensor:()=>jc,educore_temphum_sensor:()=>Wc,educore_ultrasonic_sensor:()=>Qc,esp32_s2_weather_init:()=>uc,esp32_s2_weather_rain:()=>lc,esp32_s2_weather_wd:()=>rc,esp32_s2_weather_ws:()=>dc,extern_rfid_read:()=>QR,extern_rfid_readcontent:()=>jR,extern_rfid_readid:()=>zR,extern_rfid_status:()=>tc,extern_rfid_write:()=>ZR,extern_rfid_write_return:()=>$R,gnss_get_data:()=>Dc,gnss_have_data:()=>Nc,interaction_whether_to_interaction:()=>cR,interaction_whether_to_interaction_SANT:()=>gR,mixbot_sensor_extern_get_addr:()=>yc,mixbot_sensor_extern_set_addr:()=>xc,pm25_get_data:()=>Lc,radar_set_DETECTION_THRESHOLD:()=>OR,radar_set_DETECTION_THRESHOLD_SANT:()=>RR,robot_button_extern_get_value:()=>fc,robot_color_extern_get_value:()=>Xc,robot_infrared_extern_get_value:()=>Pc,robot_infrared_extern_grey_get_value:()=>Yc,robot_potentiometer_extern_get_value:()=>vc,robot_sonar_extern_get_value:()=>bc,robot_sonar_extern_led:()=>Vc,robot_touch_extern_get_value:()=>Fc,sensor_APDS9960_extern:()=>fR,sensor_DS18X20:()=>hR,sensor_LTR308_extern:()=>FR,sensor_LTR390UV_extern:()=>vR,sensor_MAX30102_extern:()=>DR,sensor_QMC5883L_extern:()=>BR,sensor_VL530LX_extern:()=>XR,sensor_adxl345_get_acceleration:()=>aR,sensor_aht11_extern:()=>xR,sensor_bmp:()=>TR,sensor_compass_reset:()=>JR,sensor_dht11:()=>rR,sensor_hp203_extern:()=>bR,sensor_light_level:()=>uR,sensor_lm35:()=>mR,sensor_ltr381_extern:()=>PR,sensor_mixgo_extern_button_attachInterrupt:()=>oR,sensor_mixgo_extern_button_get_presses:()=>_R,sensor_mixgo_extern_button_is_pressed:()=>nR,sensor_mixgo_extern_button_was_pressed:()=>sR,sensor_mixgo_extern_light:()=>lR,sensor_mixgo_extern_pin_near:()=>IR,sensor_mixgo_extern_sound:()=>dR,sensor_mixgoce_hot_wheel_degrees:()=>ac,sensor_mixgoce_hot_wheel_is_touched:()=>pc,sensor_mpu9250_attachGestureInterrupt:()=>pR,sensor_mpu9250_calibrate_compass:()=>HR,sensor_mpu9250_field_strength:()=>KR,sensor_mpu9250_gesture:()=>GR,sensor_mpu9250_get_acceleration:()=>UR,sensor_mpu9250_get_gyro:()=>kR,sensor_mpu9250_get_magnetic:()=>wR,sensor_mpu9250_temperature:()=>WR,sensor_read_humiture:()=>qc,sensor_sht:()=>MR,sensor_shtc3_extern:()=>yR,sensor_spl06_001_extern:()=>VR,sensor_ucs12071_extern:()=>YR,sensor_use_i2c_init:()=>ER,sensor_use_spi_init:()=>qR,sensor_use_uart_init:()=>Ac,sensor_weather_solo_init:()=>Bc,sensor_weather_solo_rain:()=>wc,sensor_weather_solo_wd:()=>Gc,sensor_weather_solo_ws:()=>Uc,sensor_weigh_init:()=>eg,ultrasonic_sensor_read_distance:()=>zc,weather_data:()=>ec,weather_have_data:()=>ic,weather_set_label:()=>sc,weather_set_label_container:()=>_c,weather_set_label_item:()=>oc,weather_uart_mixio:()=>nc,weigh_sensor_get_weight:()=>ig});var k={};t.r(k),t.d(k,{CI130X_BROADCAST_SANT:()=>jC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>zC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>QC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>qC,CI130X_SET_SYSTEM_CMD_SANT:()=>ZC,HCSR04:()=>Og,RTC_set_date:()=>Eg,RTC_set_time:()=>mg,bitbot_als_num:()=>NC,dht11:()=>XC,educore_button_sensor:()=>kC,educore_button_was_pressed:()=>HC,educore_gyroscope_sensor:()=>GC,educore_gyroscope_sensor_read:()=>UC,educore_gyroscope_sensor_shake:()=>wC,educore_light_sensor:()=>BC,educore_rfid_sensor:()=>WC,educore_rfid_sensor_scan:()=>KC,educore_rfid_sensor_scan_data:()=>JC,educore_voice_sensor:()=>bC,number1:()=>cg,number2:()=>gg,number3:()=>Cg,number4:()=>Sg,number5:()=>Ag,number6:()=>Lg,number7:()=>Ng,onboard_RTC_get_time:()=>yg,onboard_RTC_get_time_str:()=>Ug,onboard_RTC_get_timestamp:()=>xg,onboard_RTC_get_timetuple_to_str:()=>wg,onboard_RTC_set_datetime:()=>Bg,onboard_RTC_settime_string:()=>Vg,onboard_RTC_timestamp_totuple:()=>bg,rfid_readcontent:()=>Qg,rfid_readid:()=>qg,rfid_write:()=>zg,rfid_write_return:()=>jg,sensor_LTR308:()=>kg,sensor_aht11:()=>Wg,sensor_bitbot_ALS:()=>LC,sensor_button_get_presses:()=>FC,sensor_button_is_pressed:()=>DC,sensor_button_was_pressed:()=>fC,sensor_distance_hrsc04:()=>hg,sensor_eulerangles:()=>$g,sensor_field_strength:()=>yC,sensor_get_acceleration:()=>Zg,sensor_get_temperature:()=>Kg,sensor_hp203:()=>Jg,sensor_light:()=>vC,sensor_mixbot_get_gyro:()=>AC,sensor_mixbot_patrol_calibrate:()=>gC,sensor_mixbot_patrol_value:()=>CC,sensor_mixbot_temperature:()=>SC,sensor_mixgo_LTR308:()=>vg,sensor_mixgo_button_attachInterrupt:()=>pg,sensor_mixgo_button_get_presses:()=>og,sensor_mixgo_button_is_pressed:()=>sg,sensor_mixgo_button_was_pressed:()=>_g,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>rC,sensor_mixgo_cc_mmc5603_get_angle:()=>uC,sensor_mixgo_cc_mmc5603_get_magnetic:()=>aC,sensor_mixgo_light:()=>Rg,sensor_mixgo_nova_LTR308:()=>Yg,sensor_mixgo_nova_pin_near:()=>Pg,sensor_mixgo_pin_near:()=>Fg,sensor_mixgo_pin_near_double:()=>fg,sensor_mixgo_pin_near_single:()=>Dg,sensor_mixgo_pin_pressed:()=>dg,sensor_mixgo_sant_color:()=>Xg,sensor_mixgo_touch_slide:()=>Mg,sensor_mixgocar42_button_attachInterrupt:()=>lg,sensor_mixgocar42_button_get_presses:()=>rg,sensor_mixgocar42_button_is_pressed:()=>ag,sensor_mixgocar42_button_was_pressed:()=>ug,sensor_mixgocar_battery_left:()=>cC,sensor_mixgocar_pin_near:()=>OC,sensor_mixgocar_pin_near_line:()=>EC,sensor_mixgocar_pin_near_state_change:()=>RC,sensor_mixgoce_pin_pressed:()=>Ig,sensor_mixgoce_temperature:()=>dC,sensor_mixgome_temperature:()=>lC,sensor_mpython_pin_pressed:()=>Tg,sensor_mpython_qmi8658_get_gyro:()=>IC,sensor_mpython_qmi8658_temperature:()=>TC,sensor_onboard_compass_reset:()=>pC,sensor_onboard_mpu9250_calibrate_compass:()=>sC,sensor_onboard_mpu9250_field_strength:()=>oC,sensor_onboard_mpu9250_gesture:()=>tC,sensor_onboard_mpu9250_get_acceleration:()=>eC,sensor_onboard_mpu9250_get_gyro:()=>nC,sensor_onboard_mpu9250_get_magnetic:()=>iC,sensor_onboard_mpu9250_temperature:()=>_C,sensor_pin_near:()=>YC,sensor_pin_pressed:()=>PC,sensor_read:()=>VC,sensor_rm_acc:()=>mC,sensor_rm_battery_left:()=>hC,sensor_rm_pin_near_double:()=>MC,sensor_rtc_init:()=>Gg,sensor_sound:()=>Hg,sensor_temperature:()=>xC});var H={};t.r(H),t.d(H,{serial_any:()=>oS,serial_begin:()=>lS,serial_print:()=>eS,serial_print_byte:()=>tS,serial_print_hex:()=>nS,serial_println:()=>iS,serial_read_from_ai:()=>RS,serial_readline:()=>pS,serial_readstr:()=>_S,serial_readstr_until:()=>aS,serial_receive_data_event:()=>sS,serial_send_to_ai:()=>OS,serial_softserial:()=>rS,serial_softserial_new:()=>uS,system_input:()=>dS,system_print:()=>IS,system_print_container:()=>mS,system_print_end:()=>MS,system_print_inline:()=>TS,system_print_item:()=>ES,system_print_many:()=>hS});var W={};t.r(W),t.d(W,{Panic_with_status_code:()=>SS,Timer_init:()=>bS,base_delay:()=>GS,controls_delay:()=>CS,controls_delay_new:()=>gS,controls_millis:()=>LS,controls_uname:()=>DS,raw_block:()=>NS,reset:()=>AS,system_bitbot_shutdown:()=>xS,system_machine_reset:()=>yS,system_ticks_diff:()=>PS,system_timer:()=>FS,system_timer_init:()=>YS,system_wdt_feed:()=>XS,system_wdt_init:()=>vS,time_ticks_diff:()=>BS,timer:()=>fS,timer2:()=>VS});var K={};t.r(K),t.d(K,{Air_daily_content:()=>tA,Air_now_content:()=>JS,Geo_moon_content:()=>iA,Geo_sun_content:()=>eA,Life_suggestion_content:()=>QS,Location_search_content:()=>jS,Tide_daily_content:()=>zS,WEATHER_DAILY:()=>kS,WEATHER_HOUR:()=>HS,WEATHER_NOW:()=>wS,Weather_alarm_content:()=>qS,Weather_daily:()=>ZS,Weather_daily_content:()=>$S,Weather_now:()=>WS,Weather_now_content:()=>KS});var J={};t.r(J),t.d(J,{PIN_init:()=>tL,actuator_extern_get_led_bright:()=>gA,actuator_extern_get_led_state:()=>CA,actuator_extern_led_bright:()=>cA,actuator_extern_led_brightness:()=>SA,actuator_ms32006_dcmotor:()=>rA,actuator_ms32006_init:()=>uA,actuator_ms32006_stepper:()=>lA,actuator_neopixel_init:()=>AA,actuator_neopixel_rgb:()=>DA,actuator_neopixel_rgb_all:()=>LA,actuator_neopixel_write:()=>NA,actuator_use_uart_init:()=>fA,esp32_music_get_tempo_extern:()=>mA,esp32_music_pitch:()=>IA,esp32_music_pitch_init:()=>dA,esp32_music_pitch_with_time:()=>TA,esp32_music_play_list:()=>EA,esp32_music_reset_extern:()=>OA,esp32_music_set_tempo_extern:()=>hA,esp32_music_stop:()=>MA,mixbot_actuator_extern_get_addr:()=>ZA,mixbot_actuator_extern_set_addr:()=>$A,mixbot_addr_extern:()=>BA,parrot_PIN_init:()=>sL,parrot_move_speed:()=>_L,pin_led_bright:()=>eL,player_play_music:()=>XA,player_set_mode:()=>vA,player_set_play:()=>PA,player_set_volume:()=>YA,player_whether_stop:()=>FA,robot_led_extern:()=>kA,robot_led_extern_get_value:()=>HA,robot_motor_extern:()=>GA,robot_motor_extern_get_speed:()=>UA,robot_servo_extern_absolute_run:()=>qA,robot_servo_extern_get_status:()=>WA,robot_servo_extern_relative_continue:()=>jA,robot_servo_extern_relative_origin:()=>QA,robot_servo_extern_relative_run:()=>zA,robot_servo_extern_stop:()=>JA,robot_servo_extern_stop_mode:()=>KA,robot_traffic_light_extern:()=>wA,servo_PIN_init:()=>iL,servo_get_angle:()=>pA,servo_get_speed:()=>aA,servo_init:()=>nA,servo_move:()=>RA,servo_move_angle:()=>nL,servo_set_angle:()=>_A,servo_set_speed:()=>oA,servo_speed_360:()=>sA,syn6288_builtin_voice:()=>bA,syn6288_get_voice:()=>xA,syn6288_set_voice:()=>yA,syn6288_tts_play:()=>VA});var q={};t.r(q),t.d(q,{actuator_dc_motor:()=>vL,actuator_dc_motor_stop:()=>XL,actuator_get_led_bright:()=>hL,actuator_get_led_state:()=>mL,actuator_led_bright:()=>ML,actuator_led_brightness:()=>EL,actuator_mixbot_buzzer_on_off:()=>BL,actuator_mixgo_nova_mic_get:()=>HL,actuator_mixgo_nova_mic_set:()=>kL,actuator_mixgo_nova_onboard_music_pitch:()=>zL,actuator_mixgo_nova_onboard_music_stop:()=>jL,actuator_mixgo_nova_play_audio:()=>qL,actuator_mixgo_nova_play_online_audio:()=>QL,actuator_mixgo_nova_record_audio:()=>JL,actuator_mixgo_nova_voice_get:()=>KL,actuator_mixgo_nova_voice_set:()=>WL,actuator_mixgo_zero_led_color:()=>OL,actuator_onboard_neopixel_rgb:()=>LL,actuator_onboard_neopixel_rgb_all:()=>NL,actuator_onboard_neopixel_rgb_show_all_chase:()=>DL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>fL,actuator_onboard_neopixel_write:()=>AL,actuator_stepper_keep:()=>PL,actuator_stepper_stop:()=>YL,analog_ble_keyboard_init:()=>aN,analog_ble_keyboard_input:()=>lN,analog_ble_keyboard_mouse_init:()=>ON,analog_ble_keyboard_mouse_input:()=>CN,analog_ble_keyboard_mouse_send_battery:()=>gN,analog_ble_keyboard_mouse_str:()=>SN,analog_ble_keyboard_send_battery:()=>IN,analog_ble_keyboard_str:()=>dN,analog_ble_mouse_init:()=>TN,analog_ble_mouse_input:()=>mN,analog_ble_mouse_keyboard_input:()=>AN,analog_ble_mouse_send_battery:()=>EN,analog_keyboard_input:()=>eN,analog_keyboard_str:()=>oN,analog_mouse_input:()=>sN,bitbot_motor:()=>wL,bitbot_move:()=>GL,bitbot_stop:()=>UL,ble_keyboard_connect:()=>rN,ble_keyboard_get_mac:()=>uN,ble_keyboard_mouse_connect:()=>cN,ble_keyboard_mouse_get_mac:()=>RN,ble_mouse_connect:()=>hN,ble_mouse_get_mac:()=>MN,cc_number:()=>RL,educore_ble_keyboard_input:()=>yN,educore_ble_sensor_connected:()=>XN,educore_ble_sensor_init:()=>vN,educore_buzzer:()=>LN,educore_buzzer_play_tone:()=>NN,educore_buzzer_play_tone_time:()=>DN,educore_buzzer_stop:()=>fN,educore_neopixel_clear:()=>YN,educore_neopixel_rgb:()=>PN,educore_rgb_light:()=>FN,esp32_music_get_tempo:()=>pL,esp32_music_reset:()=>dL,esp32_music_set_tempo:()=>oL,esp32_onboard_music_pitch:()=>aL,esp32_onboard_music_pitch_with_time:()=>uL,esp32_onboard_music_play_list:()=>lL,esp32_onboard_music_stop:()=>rL,general_key:()=>nN,general_key_tuple:()=>pN,get_power_output:()=>$L,ledswitch:()=>TL,mixbot_motor:()=>VL,mixbot_motor_status:()=>yL,mixbot_move:()=>xL,mixbot_stop:()=>bL,mouse_key:()=>_N,number:()=>IL,rm_actuator_get_led_bright:()=>gL,rm_actuator_get_led_state:()=>CL,rm_actuator_led_bright:()=>cL,rm_actuator_led_brightness:()=>SL,rm_motor:()=>FL,set_all_power_output:()=>tN,set_power_output:()=>ZL,special_key:()=>iN});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>TD,ai_sensor_ailocal_class:()=>nD,ai_sensor_ailocal_class_result:()=>sD,ai_sensor_ailocal_train:()=>iD,ai_sensor_asr_recognize:()=>uD,ai_sensor_audio_play:()=>oD,ai_sensor_audio_record:()=>_D,ai_sensor_barcode:()=>wN,ai_sensor_circle:()=>qN,ai_sensor_classifier_faces:()=>ID,ai_sensor_color:()=>ZN,ai_sensor_color_chases:()=>eD,ai_sensor_color_chases_result:()=>tD,ai_sensor_config:()=>VN,ai_sensor_face:()=>dD,ai_sensor_find_20objects:()=>MD,ai_sensor_find_barcodes:()=>kN,ai_sensor_find_circles:()=>QN,ai_sensor_find_colors:()=>$N,ai_sensor_find_licenseplates:()=>lD,ai_sensor_find_lines:()=>JN,ai_sensor_find_qrcodes:()=>UN,ai_sensor_find_rects:()=>jN,ai_sensor_find_tags:()=>WN,ai_sensor_licenseplate:()=>rD,ai_sensor_line:()=>KN,ai_sensor_qrcode:()=>GN,ai_sensor_qrcode_lite:()=>bN,ai_sensor_rect:()=>zN,ai_sensor_rgb:()=>BN,ai_sensor_tag:()=>HN,ai_sensor_use_uart_init:()=>xN,ai_sensor_yolo_recognize:()=>pD,ai_sensor_yolo_recognize_result:()=>aD});var z={};t.r(z),t.d(z,{MICROPYTHON_AI_Speech_asr:()=>ED,MICROPYTHON_AI_Speech_unit:()=>mD,MICROPYTHON_AI_client:()=>hD});var j={};t.r(j),t.d(j,{mpython_blynk_app_data:()=>FD,mpython_blynk_app_notify:()=>AD,mpython_blynk_email:()=>PD,mpython_blynk_get_timers:()=>ND,mpython_blynk_on_connected:()=>gD,mpython_blynk_on_disconnected:()=>cD,mpython_blynk_run:()=>SD,mpython_blynk_sensor_data_to_app:()=>fD,mpython_blynk_set_property:()=>YD,mpython_blynk_setup:()=>vD,mpython_blynk_stop_timers:()=>LD,mpython_blynk_sync_virtual:()=>RD,mpython_blynk_terminal_widget_vpin:()=>OD,mpython_blynktimer:()=>DD,mpython_blynktimer_run:()=>CD});var Z={};t.r(Z),t.d(Z,{cc_g1_read_bat:()=>XD,cc_g1_read_joystick:()=>yD,cc_g1_read_key:()=>xD,cc_g1_turnoff:()=>bD});var $={};t.r($),t.d($,{ce_go_dc_motor:()=>WD,ce_go_get_led_bright:()=>GD,ce_go_get_led_state:()=>UD,ce_go_hall_attachInterrupt:()=>KD,ce_go_hall_data:()=>qD,ce_go_hall_initialize:()=>JD,ce_go_led_bright:()=>BD,ce_go_led_brightness:()=>wD,ce_go_light_number:()=>VD,ce_go_pin_light:()=>$D,ce_go_pin_near:()=>zD,ce_go_pin_near_line:()=>QD,ce_go_pin_near_state_change:()=>jD,ce_go_stepper_keep:()=>kD,ce_go_stepper_stop:()=>HD,educore_car:()=>tf,educore_car_pin_near:()=>_f,educore_car_pin_near_line:()=>sf,educore_car_stepper_keep:()=>ef,educore_car_stepper_stop:()=>nf,sensor_mixgome_eulerangles:()=>ZD});var tt={};t.r(tt),t.d(tt,{communicate_bluetooth_central_init:()=>Gf,communicate_bluetooth_connect:()=>kf,communicate_bluetooth_disconnect:()=>Hf,communicate_bluetooth_handle:()=>zf,communicate_bluetooth_is_connected:()=>Kf,communicate_bluetooth_mac:()=>Wf,communicate_bluetooth_peripheral_init:()=>Uf,communicate_bluetooth_recv:()=>Qf,communicate_bluetooth_recv_only:()=>qf,communicate_bluetooth_scan:()=>wf,communicate_bluetooth_send:()=>Jf,communicate_espnow_init:()=>jf,communicate_espnow_init_new:()=>Zf,communicate_i2c_available:()=>If,communicate_i2c_init:()=>af,communicate_i2c_master_read:()=>df,communicate_i2c_onboard:()=>of,communicate_i2c_read:()=>uf,communicate_i2c_scan:()=>lf,communicate_i2c_write:()=>rf,communicate_ir_recv_init:()=>Ff,communicate_ir_send_init:()=>yf,communicate_ow_init:()=>Sf,communicate_ow_read:()=>Nf,communicate_ow_reset:()=>Lf,communicate_ow_scan:()=>Af,communicate_ow_select:()=>ff,communicate_ow_write:()=>Df,communicate_spi_buffer:()=>mf,communicate_spi_init:()=>Mf,communicate_spi_onboard:()=>pf,communicate_spi_read:()=>Ef,communicate_spi_read_output:()=>Of,communicate_spi_readinto:()=>Rf,communicate_spi_readinto_output:()=>cf,communicate_spi_set:()=>hf,communicate_spi_write:()=>gf,communicate_spi_write_readinto:()=>Cf,espnow_radio_channel:()=>sF,espnow_radio_channel_new:()=>oF,espnow_radio_on_off:()=>pF,espnow_radio_rec:()=>uF,espnow_radio_recv:()=>lF,espnow_radio_recv_certain_msg:()=>dF,espnow_radio_recv_certain_msg_new:()=>TF,espnow_radio_recv_msg:()=>rF,espnow_radio_recv_new:()=>IF,espnow_radio_send:()=>aF,espnow_radio_txpower:()=>_F,i2c_slave_onreceive:()=>Tf,internal_variable:()=>Pf,ir_recv_timeout:()=>Xf,ir_transmit_busy:()=>Bf,ir_transmit_conventional_data:()=>xf,ir_transmit_raw_code:()=>Vf,ir_transmit_study_code:()=>bf,ir_whether_recv:()=>vf,lora_init:()=>MF,lora_packet:()=>hF,lora_recv:()=>EF,lora_send:()=>mF,network_espnow_info:()=>tF,network_espnow_mac:()=>$f,network_espnow_recv:()=>eF,network_espnow_recv_handle:()=>nF,network_espnow_send:()=>iF,recv_fun:()=>Yf,urequests_attribute:()=>RF,urequests_get:()=>OF,urequests_method:()=>cF});var et={};t.r(et),t.d(et,{display_animate:()=>KF,display_circle:()=>JF,display_color_seclet:()=>sP,display_draw_4strings:()=>BF,display_fill:()=>WF,display_lcd_use_i2c_init:()=>rP,display_line:()=>wF,display_line_arbitrarily:()=>GF,display_matrix_extern_bright_point:()=>YF,display_matrix_extern_bright_screen:()=>XF,display_matrix_extern_clear:()=>fF,display_matrix_extern_get_pixel:()=>PF,display_matrix_extern_get_screen_pixel:()=>vF,display_matrix_extern_image_builtins:()=>yF,display_matrix_extern_scroll_string:()=>NF,display_matrix_extern_scroll_string_delay:()=>DF,display_matrix_extern_shift:()=>FF,display_matrix_extern_show_frame_string:()=>AF,display_matrix_extern_show_frame_string_delay:()=>LF,display_matrix_extern_show_image:()=>CF,display_matrix_extern_show_image_or_string_delay:()=>SF,display_matrix_use_i2c_init:()=>gF,display_oled_drawPixel:()=>zF,display_oled_showBitmap:()=>QF,display_oled_use_i2c_init:()=>MP,display_onoff:()=>kF,display_rect:()=>UF,display_tm1650_power:()=>ZF,display_tm1650_set_brightness:()=>eP,display_tm1650_show_dot:()=>tP,display_tm1650_show_num:()=>$F,display_tm_use_i2c_init:()=>jF,display_triangle:()=>qF,display_use_i2c_init:()=>VF,extern_oled_bright_point:()=>NP,extern_oled_clear:()=>SP,extern_oled_get_pixel:()=>LP,extern_oled_hvline:()=>fP,extern_oled_line:()=>FP,extern_oled_scroll_string:()=>gP,extern_oled_scroll_string_delay:()=>CP,extern_oled_shape_rect:()=>DP,extern_oled_shift:()=>AP,extern_oled_show_frame_string:()=>RP,extern_oled_show_frame_string_delay:()=>cP,extern_oled_show_image:()=>hP,extern_oled_show_image_or_string_delay:()=>OP,extern_oled_show_image_xy:()=>mP,extern_oled_show_string:()=>EP,image_shift:()=>HF,lcd_backlight:()=>IP,lcd_clear:()=>TP,lcd_print_string:()=>dP,lcd_show_image_or_string_delay:()=>lP,matrix_extern_image_arithmetic:()=>xF,matrix_extern_image_invert:()=>bF,tft_fill:()=>aP,tft_line_arbitrarily:()=>uP,tft_scroll_string_delay:()=>pP,tft_show_frame_string_delay:()=>oP,tft_show_image_or_string_delay:()=>_P,tft_show_image_xy:()=>nP,tft_use_spi_init:()=>iP});var it={};t.r(it),t.d(it,{bitbot_display_image_create:()=>TY,display_bright_point:()=>WP,display_bright_screen:()=>JP,display_clear:()=>GP,display_get_pixel:()=>HP,display_get_screen_pixel:()=>KP,display_image_builtins:()=>bP,display_image_builtins_all:()=>VP,display_image_create:()=>BP,display_scroll_string:()=>yP,display_scroll_string_delay:()=>xP,display_shift:()=>kP,display_show_frame_string:()=>vP,display_show_frame_string_delay:()=>XP,display_show_image:()=>PP,display_show_image_or_string_delay:()=>YP,draw_pointer:()=>VY,image_arithmetic:()=>UP,image_invert:()=>wP,mixbot_display_bright_screen:()=>dY,mixbot_display_get_ambientbright:()=>lY,mixbot_display_get_screen_pixel:()=>rY,mixbot_display_image_create:()=>uY,mixbot_display_rotate:()=>IY,mixgo_display_image_create_new:()=>jP,mixgome_display_font:()=>zP,mixgome_display_image_create:()=>qP,mixgomini_display_image_create:()=>QP,mpython_display_hvline:()=>pY,mpython_display_line:()=>aY,mpython_display_shape_rect:()=>oY,mpython_pbm_image:()=>ZP,onboard_oled_bright_point:()=>_Y,onboard_oled_scroll_string_delay:()=>sY,onboard_oled_show_frame_string_delay:()=>nY,onboard_oled_show_image:()=>$P,onboard_oled_show_image_or_string_delay:()=>iY,onboard_oled_show_image_xy:()=>tY,onboard_oled_show_string:()=>eY,onboard_tft_bright_point:()=>DY,onboard_tft_bright_screen:()=>FY,onboard_tft_clear:()=>AY,onboard_tft_clock_clear:()=>xY,onboard_tft_clock_draw:()=>yY,onboard_tft_clock_get_rtctime:()=>vY,onboard_tft_clock_init:()=>YY,onboard_tft_clock_set_time:()=>XY,onboard_tft_display_hvline:()=>CY,onboard_tft_display_line:()=>SY,onboard_tft_display_shape_circle:()=>bY,onboard_tft_display_shape_rect:()=>gY,onboard_tft_fill:()=>PY,onboard_tft_get_pixel:()=>NY,onboard_tft_get_screen_pixel:()=>fY,onboard_tft_scroll_string:()=>RY,onboard_tft_scroll_string_delay:()=>cY,onboard_tft_shift:()=>LY,onboard_tft_show_frame_string:()=>EY,onboard_tft_show_frame_string_delay:()=>OY,onboard_tft_show_image:()=>MY,onboard_tft_show_image_or_string_delay:()=>mY,onboard_tft_show_image_xy:()=>hY});var nt={};t.r(nt),t.d(nt,{factory_block:()=>KY,factory_block_return:()=>JY,factory_block_return_with_textarea:()=>QY,factory_block_with_textarea:()=>qY,factory_callMethod_noreturn:()=>HY,factory_callMethod_return:()=>WY,factory_declare:()=>kY,factory_from_import:()=>BY,factory_function_noreturn:()=>UY,factory_function_return:()=>wY,factory_import:()=>GY,folding_block:()=>zY});var st={};t.r(st),t.d(st,{inout_analog_atten:()=>lv,inout_analog_read:()=>sv,inout_analog_read_init:()=>rv,inout_analog_write:()=>ev,inout_analog_write_init:()=>uv,inout_analog_write_set:()=>iv,inout_digital_init:()=>pv,inout_digital_read:()=>$Y,inout_digital_write:()=>ZY,inout_highlow:()=>jY,inout_pin_attachInterrupt:()=>ov,inout_pin_pressed:()=>_v,inout_pin_pressed_init:()=>dv,inout_pwm_analog_write:()=>tv,inout_pwm_analog_write_init:()=>av,inout_pwm_analog_write_set_freq:()=>nv});var _t={};t.r(_t),t.d(_t,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>Pv,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>fv,IOT_EMQX_PING:()=>Yv,IOT_FORMATTING:()=>Nv,IOT_FORMAT_STRING:()=>Dv,IOT_MIXIO_NTP:()=>vv,IOT_MIXIO_PUBLISH:()=>Rv,IOT_MIXIO_SUBSCRIBE:()=>cv,iot_client_onboard:()=>Xv,iot_http_client:()=>yv,iot_http_data:()=>xv,iot_mixio_check:()=>Sv,iot_mixio_connect:()=>Ov,iot_mixio_connect_only:()=>Cv,iot_mixio_disconnect:()=>gv,iot_mixio_format_msg:()=>Lv,iot_mixio_format_topic:()=>Av,iot_mixly_key:()=>Fv,iot_mqtt_client:()=>bv,iot_mqtt_data:()=>Vv,iot_onenet_check:()=>mv,iot_onenet_connect:()=>Tv,iot_onenet_disconnect:()=>Mv,iot_onenet_publish:()=>Ev,iot_onenet_publish_dict:()=>hv,iot_wifi_connect:()=>Iv});var ot={};t.r(ot),t.d(ot,{educore_mqtt_connect:()=>MX,educore_mqtt_connect_success:()=>OX,educore_mqtt_subscribe_message:()=>hX,educore_mqtt_topic_publish:()=>EX,educore_mqtt_topic_subscribe:()=>mX,educore_wifi_connect:()=>TX,network_ap_connect:()=>Jv,network_connect:()=>Gv,network_get_connect:()=>wv,network_get_wifi:()=>Kv,network_init:()=>Bv,network_is_active:()=>Wv,network_open:()=>Hv,network_scan:()=>qv,network_server:()=>Qv,network_socket_accept:()=>tX,network_socket_bind:()=>jv,network_socket_close:()=>_X,network_socket_connect:()=>Zv,network_socket_init:()=>zv,network_socket_listen:()=>$v,network_socket_receive:()=>eX,network_socket_receive_from:()=>nX,network_socket_send:()=>iX,network_socket_send_to:()=>sX,network_stop:()=>kv,network_wifi_connect:()=>Uv,ntptime_address:()=>rX,ntptime_time:()=>uX,requests_attribute:()=>pX,requests_attribute2:()=>dX,requests_get:()=>oX,requests_get2:()=>lX,requests_method:()=>aX,requests_post:()=>IX});var pt={};t.r(pt),t.d(pt,{pe_g1_battery_left:()=>cX,pe_g1_dc_motor:()=>gX,pe_g1_dc_motor_speed:()=>CX,pe_g1_servo_get_angle:()=>LX,pe_g1_servo_get_speed:()=>NX,pe_g1_servo_set_angle:()=>SX,pe_g1_servo_set_speed:()=>AX,pe_g1_use_i2c_init:()=>RX});var at={};t.r(at),t.d(at,{CI130X_BROADCAST:()=>zX,CI130X_GET_THE_RECOGNIZED_CMD:()=>QX,CI130X_GET_WHETHER_IDENTIFY:()=>qX,CI130X_IDENTIFY_AND_SAVE:()=>JX,CI130X_SET_SYSTEM_CMD:()=>jX,HCSR04:()=>Ny,PS2_Button:()=>Fy,PS2_Buttons:()=>Py,PS2_Buttons_new:()=>By,PS2_State:()=>Yy,PS2_init:()=>Dy,PS2_init_new:()=>by,PS2_stk:()=>vy,PS2_stk_new:()=>Gy,PS2_vibration:()=>fy,PS2_vibration_new:()=>Vy,RTC_get_time:()=>yy,RTC_set_date:()=>yX,RTC_set_datetime:()=>Xy,RTC_set_time:()=>XX,camera_sensor_init:()=>hx,camera_sensor_result:()=>mx,educore_body_sensor:()=>ox,educore_button_sensor_extern:()=>rx,educore_camera_sensor:()=>Mx,educore_infrared_sensor:()=>ux,educore_soilhum_sensor:()=>px,educore_temp_sensor:()=>Tx,educore_temphum_sensor:()=>ax,educore_ultrasonic_sensor:()=>dx,esp32_s2_weather_init:()=>Cy,esp32_s2_weather_rain:()=>Ay,esp32_s2_weather_wd:()=>Sy,esp32_s2_weather_ws:()=>Ly,extern_rfid_read:()=>ly,extern_rfid_readcontent:()=>Iy,extern_rfid_readid:()=>dy,extern_rfid_status:()=>hy,extern_rfid_write:()=>Ty,extern_rfid_write_return:()=>My,gnss_get_data:()=>ky,gnss_have_data:()=>Hy,interaction_whether_to_interaction:()=>WX,interaction_whether_to_interaction_SANT:()=>KX,mixbot_sensor_extern_get_addr:()=>$y,mixbot_sensor_extern_set_addr:()=>tx,pm25_get_data:()=>wy,radar_set_DETECTION_THRESHOLD:()=>kX,radar_set_DETECTION_THRESHOLD_SANT:()=>HX,robot_button_extern_get_value:()=>Wy,robot_color_extern_get_value:()=>zy,robot_infrared_extern_get_value:()=>Jy,robot_infrared_extern_grey_get_value:()=>qy,robot_potentiometer_extern_get_value:()=>Qy,robot_sonar_extern_get_value:()=>jy,robot_sonar_extern_led:()=>Zy,robot_touch_extern_get_value:()=>Ky,sensor_APDS9960_extern:()=>$X,sensor_DS18X20:()=>_x,sensor_LTR308_extern:()=>ty,sensor_LTR390UV_extern:()=>_y,sensor_MAX30102_extern:()=>ZX,sensor_QMC5883L_extern:()=>oy,sensor_VL530LX_extern:()=>uy,sensor_aht11_extern:()=>ay,sensor_bmp:()=>GX,sensor_dht11:()=>xy,sensor_distance_hrsc04:()=>vX,sensor_hp203_extern:()=>ey,sensor_ltr381_extern:()=>ny,sensor_mixgo_extern_button_attachInterrupt:()=>PX,sensor_mixgo_extern_button_get_presses:()=>FX,sensor_mixgo_extern_button_is_pressed:()=>DX,sensor_mixgo_extern_button_was_pressed:()=>fX,sensor_mixgo_extern_light:()=>xX,sensor_mixgo_extern_pin_near:()=>VX,sensor_mixgo_extern_sound:()=>bX,sensor_mixgoce_hot_wheel_degrees:()=>gy,sensor_mixgoce_hot_wheel_is_touched:()=>cy,sensor_mpu9250_attachGestureInterrupt:()=>YX,sensor_read_humiture:()=>lx,sensor_rtc_init:()=>BX,sensor_sht:()=>UX,sensor_shtc3_extern:()=>py,sensor_spl06_001_extern:()=>iy,sensor_ucs12071_extern:()=>sy,sensor_use_i2c_init:()=>wX,sensor_use_spi_init:()=>ry,sensor_use_uart_init:()=>Uy,sensor_weather_solo_init:()=>ex,sensor_weather_solo_rain:()=>sx,sensor_weather_solo_wd:()=>ix,sensor_weather_solo_ws:()=>nx,sensor_weigh_init:()=>Ex,ultrasonic_sensor_read_distance:()=>Ix,weather_data:()=>my,weather_have_data:()=>Ey,weather_set_label:()=>Ry,weather_uart_mixio:()=>Oy,weigh_sensor_get_weight:()=>Ox});var ut={};t.r(ut),t.d(ut,{CI130X_BROADCAST_SANT:()=>EV,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>mV,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>hV,CI130X_IDENTIFY_AND_SAVE_SANT:()=>MV,CI130X_SET_SYSTEM_CMD_SANT:()=>OV,HCSR04:()=>Dx,bitbot_als_num:()=>Qb,dht11:()=>nV,educore_button_sensor:()=>rV,educore_button_was_pressed:()=>lV,educore_gyroscope_sensor:()=>pV,educore_gyroscope_sensor_read:()=>aV,educore_gyroscope_sensor_shake:()=>uV,educore_light_sensor:()=>oV,educore_rfid_sensor:()=>dV,educore_rfid_sensor_scan:()=>IV,educore_rfid_sensor_scan_data:()=>TV,educore_voice_sensor:()=>sV,number1:()=>fx,number2:()=>Fx,number3:()=>Px,number4:()=>Yx,number5:()=>vx,number6:()=>Xx,number7:()=>yx,onboard_RTC_get_time:()=>Ab,onboard_RTC_get_time_str:()=>Db,onboard_RTC_get_timestamp:()=>Lb,onboard_RTC_get_timetuple_to_str:()=>fb,onboard_RTC_set_datetime:()=>Cb,onboard_RTC_settime_string:()=>Sb,onboard_RTC_timestamp_totuple:()=>Nb,rfid_readcontent:()=>jx,rfid_readid:()=>zx,rfid_write:()=>Zx,rfid_write_return:()=>$x,sensor_LTR308:()=>Wx,sensor_adxl345_get_acceleration:()=>ab,sensor_aht11:()=>qx,sensor_bitbot_ALS:()=>qb,sensor_button_get_presses:()=>Zb,sensor_button_is_pressed:()=>zb,sensor_button_was_pressed:()=>jb,sensor_compass_reset:()=>Tb,sensor_ds18x20:()=>kx,sensor_eulerangles:()=>eb,sensor_get_acceleration:()=>tb,sensor_get_temperature:()=>Qx,sensor_hp203:()=>Jx,sensor_light:()=>iV,sensor_lm35:()=>Hx,sensor_mixbot_get_gyro:()=>Jb,sensor_mixbot_patrol_calibrate:()=>Hb,sensor_mixbot_patrol_value:()=>Wb,sensor_mixbot_temperature:()=>Kb,sensor_mixgo_LTR308:()=>Gx,sensor_mixgo_button_attachInterrupt:()=>Cx,sensor_mixgo_button_get_presses:()=>gx,sensor_mixgo_button_is_pressed:()=>Rx,sensor_mixgo_button_was_pressed:()=>cx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Yb,sensor_mixgo_cc_mmc5603_get_angle:()=>Pb,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Fb,sensor_mixgo_light:()=>eV,sensor_mixgo_nova_LTR308:()=>wx,sensor_mixgo_nova_pin_near:()=>Bx,sensor_mixgo_pin_near:()=>Vx,sensor_mixgo_pin_near_double:()=>bx,sensor_mixgo_pin_near_single:()=>xx,sensor_mixgo_pin_pressed:()=>ob,sensor_mixgo_sant_color:()=>Ux,sensor_mixgo_touch_slide:()=>_b,sensor_mixgocar42_button_attachInterrupt:()=>Nx,sensor_mixgocar42_button_get_presses:()=>Lx,sensor_mixgocar42_button_is_pressed:()=>Sx,sensor_mixgocar42_button_was_pressed:()=>Ax,sensor_mixgocar_battery_left:()=>kb,sensor_mixgocar_pin_near:()=>Ub,sensor_mixgocar_pin_near_line:()=>Gb,sensor_mixgocar_pin_near_state_change:()=>wb,sensor_mixgoce_pin_pressed:()=>sb,sensor_mixgoce_temperature:()=>Xb,sensor_mixgome_temperature:()=>vb,sensor_mpu9250_calibrate_compass:()=>lb,sensor_mpu9250_field_strength:()=>Ib,sensor_mpu9250_gesture:()=>ib,sensor_mpu9250_get_acceleration:()=>nb,sensor_mpu9250_get_gyro:()=>rb,sensor_mpu9250_get_magnetic:()=>ub,sensor_mpu9250_temperature:()=>db,sensor_mpython_pin_pressed:()=>pb,sensor_mpython_qmi8658_get_gyro:()=>yb,sensor_mpython_qmi8658_temperature:()=>xb,sensor_onboard_compass_reset:()=>gb,sensor_onboard_mpu9250_calibrate_compass:()=>Ob,sensor_onboard_mpu9250_field_strength:()=>cb,sensor_onboard_mpu9250_gesture:()=>Mb,sensor_onboard_mpu9250_get_acceleration:()=>hb,sensor_onboard_mpu9250_get_gyro:()=>Eb,sensor_onboard_mpu9250_get_magnetic:()=>mb,sensor_onboard_mpu9250_temperature:()=>Rb,sensor_pin_near:()=>tV,sensor_pin_pressed:()=>$b,sensor_read:()=>_V,sensor_rm_acc:()=>Bb,sensor_rm_battery_left:()=>Vb,sensor_rm_pin_near_double:()=>bb,sensor_sound:()=>Kx});var rt={};t.r(rt),t.d(rt,{serial_any:()=>SV,serial_print:()=>RV,serial_print_byte:()=>cV,serial_print_hex:()=>CV,serial_println:()=>gV,serial_read_from_ai:()=>yV,serial_readline:()=>LV,serial_readstr:()=>AV,serial_send_to_ai:()=>XV,serial_softserial:()=>NV,serial_softserial_new:()=>DV,system_input:()=>fV,system_print:()=>FV,system_print_end:()=>YV,system_print_inline:()=>PV,system_print_many:()=>vV});var lt={};t.r(lt),t.d(lt,{Panic_with_status_code:()=>JV,Timer_init:()=>aB,base_delay:()=>lB,controls_delay:()=>ZV,controls_delay_new:()=>$V,controls_end_program:()=>QV,controls_millis:()=>qV,controls_uname:()=>jV,reset:()=>zV,system_bitbot_shutdown:()=>pB,system_device_name:()=>WV,system_device_serial_number:()=>KV,system_event_bus_source:()=>kV,system_event_bus_value:()=>HV,system_machine_reset:()=>oB,system_on_event:()=>GV,system_raise_event:()=>BV,system_reset:()=>bV,system_run_in_background:()=>xV,system_ticks_diff:()=>iB,system_timer:()=>eB,system_timer_init:()=>nB,system_timestamp:()=>UV,system_value:()=>wV,system_wait:()=>VV,system_wdt_feed:()=>_B,system_wdt_init:()=>sB,time_ticks_diff:()=>rB,timer:()=>tB,timer2:()=>uB});var dt={};t.r(dt),t.d(dt,{Air_daily_content:()=>SB,Air_now_content:()=>mB,Geo_moon_content:()=>LB,Geo_sun_content:()=>AB,Life_suggestion_content:()=>OB,Location_search_content:()=>cB,Tide_daily_content:()=>RB,WEATHER_DAILY:()=>IB,WEATHER_HOUR:()=>TB,WEATHER_NOW:()=>dB,Weather_alarm_content:()=>EB,Weather_daily:()=>gB,Weather_daily_content:()=>CB,Weather_now:()=>MB,Weather_now_content:()=>hB});var It={};t.r(It),t.d(It,{controls_pin_attachInterrupt:()=>WB,inout_analog_atten:()=>yB,inout_analog_write:()=>vB,inout_analog_write_init:()=>BB,inout_analog_write_set:()=>XB,inout_analog_write_set_freq:()=>UB,inout_digital_init:()=>VB,inout_digital_read:()=>YB,inout_digital_write:()=>PB,inout_highlow:()=>FB,inout_pinMode:()=>wB,inout_pin_attachInterrupt:()=>bB,inout_pin_pressed:()=>xB,inout_pin_pressed_init:()=>GB,pin_pressed:()=>HB,pin_pressed_init:()=>kB});var Tt={};t.r(Tt),t.d(Tt,{analog_input:()=>tG,analog_output:()=>iG,espnow_channel:()=>jB,haskylens_model:()=>ZB,i2c_A_pin:()=>nG,i2c_B_pin:()=>sG,pins_analog:()=>uG,pins_analog_pin:()=>rG,pins_axis:()=>NG,pins_brightness:()=>DG,pins_builtinimg:()=>RG,pins_builtinimg_extern:()=>cG,pins_button:()=>IG,pins_buttonB:()=>TG,pins_dac:()=>lG,pins_dac_pin:()=>dG,pins_digital:()=>JB,pins_digital_dot:()=>xG,pins_digital_pin:()=>qB,pins_exlcdh:()=>AG,pins_exlcdv:()=>LG,pins_imglist:()=>gG,pins_input_pin:()=>QB,pins_one_more:()=>yG,pins_output_pin:()=>zB,pins_playlist:()=>CG,pins_playlist_extern:()=>SG,pins_pwm:()=>MG,pins_pwm_pin:()=>hG,pins_radio_datarate:()=>XG,pins_radio_power:()=>vG,pins_serial:()=>OG,pins_tone_notes:()=>YG,pins_touch:()=>EG,pins_touch_pin:()=>mG,pins_tts_bgmusic:()=>PG,pins_tts_builtin_music:()=>FG,pins_tts_voice:()=>fG,pwm_input:()=>$B,pwm_output:()=>eG,spi_A_pin:()=>_G,spi_B_pin:()=>oG,spi_C_pin:()=>pG,spi_D_pin:()=>aG});var Mt={};t.r(Mt),t.d(Mt,{inout_analog_atten:()=>KG,inout_analog_write:()=>GG,inout_analog_write_init:()=>WG,inout_analog_write_set:()=>UG,inout_digital_init:()=>HG,inout_digital_read:()=>BG,inout_digital_write:()=>VG,inout_highlow:()=>bG,inout_pin_attachInterrupt:()=>kG,inout_pin_pressed:()=>wG,inout_pin_pressed_init:()=>JG});var ht={};t.r(ht),t.d(ht,{analog_input:()=>nU,analog_output:()=>_U,espnow_channel:()=>eU,haskylens_model:()=>iU,i2c_A_pin:()=>oU,i2c_B_pin:()=>pU,pins_analog:()=>IU,pins_analog_pin:()=>dU,pins_axis:()=>NU,pins_brightness:()=>FU,pins_builtinimg:()=>gU,pins_builtinimg_extern:()=>CU,pins_button:()=>QG,pins_buttonB:()=>zG,pins_dac:()=>mU,pins_dac_pin:()=>hU,pins_digital:()=>qG,pins_digital_dot:()=>VU,pins_digital_pin:()=>jG,pins_exlcdh:()=>DU,pins_exlcdv:()=>fU,pins_imglist:()=>SU,pins_input_pin:()=>ZG,pins_interrupt:()=>RU,pins_one_more:()=>bU,pins_output_pin:()=>$G,pins_playlist:()=>AU,pins_playlist_extern:()=>LU,pins_pwm:()=>MU,pins_pwm_input:()=>tU,pins_pwm_pin:()=>TU,pins_radio_datarate:()=>xU,pins_radio_power:()=>yU,pins_serial:()=>cU,pins_tone_notes:()=>XU,pins_touch:()=>OU,pins_touch_pin:()=>EU,pins_tts_bgmusic:()=>vU,pins_tts_builtin_music:()=>YU,pins_tts_voice:()=>PU,pwm_output:()=>sU,spi_A_pin:()=>aU,spi_B_pin:()=>uU,spi_C_pin:()=>rU,spi_D_pin:()=>lU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const xe={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},ln={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_=160,i_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},n_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},s_={init:function(){this.setColour(e_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},__={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},o_={init:function(){this.setColour(e_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},p_={init:function(){this.setColour(e_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},a_={init:function(){this.setColour(e_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ea=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},ia=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},na=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},sa=function(t,e){return["None",e.ORDER_ATOMIC]},_a=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ua=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},la=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},da=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ia=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ta=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ha=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Oa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ra=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ca=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Sa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Na=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},du=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Iu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},hu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},mu=function(t,e){return'"},Eu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ou=function(){return this.getFieldValue("TEXT")+"\n"},Ru=function(t){return t.getFieldValue("TEXT")+"\n"},cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},gu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Cu=function(){return""},Su=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Au=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Nu.scrubNakedValue=function(t){return t+"\n"},Nu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Nu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Nu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,Nu.COMMENT_WRAP-3),n+=Nu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Du="#74A55B",fu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Fu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Pu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},vu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Uu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ku={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Hu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},zu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},ju={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},$u={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},er={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ir={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},nr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},pr={},ar={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},rr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},lr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},dr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Ir={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Tr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr="#6C9858",Xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},yr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},xr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Gr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ur={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Wr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Kr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},$r={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},tl={init:function(){this.setColour(vr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},el={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},il={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},nl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},sl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},_l={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ol={init:function(){this.setColour(vr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},pl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},al={init:function(){this.setColour(vr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ul={init:function(){this.setColour(vr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},rl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ll={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Il={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Tl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ml={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},El={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},cl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},gl={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sl={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Al={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ll={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Dl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Fl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yl={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},vl={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Xl={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},yl={init:function(){this.setColour(vr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},XE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},yE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},xE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},bE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},VE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},BE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},GE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},HE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},WE={init:function(){this.setColour(NE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},KE={init:function(){this.setColour(NE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},JE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},qE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},QE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zE={init:function(){this.setColour(NE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(NE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},ZE={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},$E={init:function(){this.setColour(NE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},eO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO={init:function(){this.setColour(NE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nO=DE,sO=fE,_O=FE,oO=PE,pO=vE,aO=225,uO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},rO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},lO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},dO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},IO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},TO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},mO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},EO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},OO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},RO={init:function(){this.setColour(aO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},cO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},gO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},CO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},SO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},AO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},LO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},NO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},DO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},fO={init:function(){this.setColour(aO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},FO={init:function(){this.setColour(aO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},PO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},YO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},vO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},XO={init:function(){this.setColour(aO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},yO="#3288dd",xO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},bO={init:function(){this.setColour(yO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},VO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(yO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},BO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},GO={init:function(){this.setColour(yO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},UO={init:function(){this.setColour(yO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},wO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HO={init:function(){this.setColour(yO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},WO=100,KO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},JO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},QO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},jO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},ZO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},$O={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(WO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},tR="#A58C5B",eR={init:function(){this.setColour(tR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},iR={init:function(){this.setColour(tR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},nR={init:function(){this.setColour(tR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},sR={init:function(){this.setColour(tR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},_R={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},oR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},pR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},aR={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(tR),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},uR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},rR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},lR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},dR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},IR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},TR={init:function(){this.setColour(tR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},MR={init:function(){this.setColour(tR),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},hR={init:function(){this.setColour(tR),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},mR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},ER={init:function(){this.setColour(tR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},OR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},RR={init:function(){this.setColour(tR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},cR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},gR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},CR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},SR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},AR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},LR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},XR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},yR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},xR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},bR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},BR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},GR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},UR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},kR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},HR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},WR={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},KR={init:function(){this.setColour(tR),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},JR={init:function(){this.setColour(tR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qR={init:function(){this.setColour(tR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},QR={init:function(){this.setColour(tR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},zR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jR={init:function(){this.setColour(tR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},ZR={init:function(){this.setColour(tR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$R={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},tc={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ic={init:function(){this.setColour(tR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},RF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},gF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},CF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},SF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},AF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},NF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},DF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},fF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},FF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},PF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},YF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},vF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},XF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},xF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},bF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},VF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},BF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},GF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},UF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},wF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},kF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},HF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},WF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},KF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},JF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},qF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},QF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},zF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},jF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},ZF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},$F=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},tP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},eP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},iP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},nP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},sP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},_P=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},oP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},pP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},aP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},uP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},rP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},lP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},dP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},IP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},TP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},MP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},mP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},EP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},OP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},RP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},cP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},gP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},CP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},SP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},AP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},LP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},NP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},DP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},fP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},FP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},PP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},YP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},vP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},XP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},yP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},xP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},TY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},MY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},hY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},SY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},AY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},LY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},NY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},DY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},fY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},FY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},PY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},YY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},vY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},XY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},yY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},xY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},bY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},VY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},vV=function(){return"control.reset()\n"},XV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},yV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},xV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},bV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},VV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},BV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},GV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},UV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},wV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},kV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},HV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},WV=function(){return"while True:\n pass\n"},KV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},JV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},qV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},QV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},zV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},jV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},ZV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},$V=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},tB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},eB=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},iB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},nB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},sB=$V,_B=jV,oB=ZV,pB=qV,aB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},uB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},rB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},lB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},dB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},IB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},TB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},MB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},hB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},mB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},EB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},OB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},RB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},cB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},gB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},CB={};CB["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21-46"]),input_pin:Et.Profile.generate(["0-18","21-46"]),output_pin:Et.Profile.generate(["0-18","21-45"]),pwm_input:Et.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21-45"]),pwm:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},CB["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-42","45"]),input_pin:Et.Profile.generate(["0-42","45-46"]),output_pin:Et.Profile.generate(["0-42","45"]),pwm_input:Et.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-42","45"]),pwm:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-20"]),analog:Et.Profile.generate(["1-20"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const SB=CB,AB=20,LB={init:function(){this.setColour(AB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},NB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},DB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},fB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},FB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},PB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},YB={init:function(){this.setColour(AB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},vB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},XB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},yB={init:function(){this.setColour(AB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},xB={init:function(){this.setColour(AB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},bB={init:function(){this.setColour(AB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},VB=XB,BB=xB,GB=YB,UB=vB,wB=230,kB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},HB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},WB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},KB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},JB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},qB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},QB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},zB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},jB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},ZB={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},$B={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},tG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},eG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},iG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},nG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},oG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},aG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},rG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},MG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},hG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},mG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},EG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},OG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},RG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},cG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},gG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},CG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},SG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},AG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},NG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},fG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},FG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},YG={init:function(){this.setColour(wB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},vG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},XG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},yG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},xG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},bG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},VG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},BG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},GG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},UG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},wG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},kG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},HG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},WG=HG,KG=HG,JG=HG,qG=HG,QG=HG,zG=HG,jG=HG,ZG=HG,$G=HG,tU=HG,eU=HG,iU=HG,nU=HG,sU=HG,_U=HG,oU=HG,pU=HG,aU=HG,uU=HG,rU=HG,lU=HG,dU=HG,IU=HG,TU=HG,MU=HG,hU=HG,mU=HG,EU=HG,OU=HG,RU=HG,cU=HG,gU=HG,CU=HG,SU=HG,AU=HG,LU=HG,NU=HG,DU=HG,fU=HG,FU=HG,PU=HG,YU=HG,vU=HG,XU=HG;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=Nu,mt.generator=Nu,Et.Profile.default={},Object.assign(Et.Profile,SB),Object.assign(Et.Profile.default,SB["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,W,H,X,B,K,f,k,w,U,G,F,D,N,x,y,b,P,Y,v,It,Tt),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,st,lt,rt,tt,_t,dt,Q,ut,at,pt,ot,z,q,J,it,et,nt,j,Z,$,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const le={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},de={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const xe={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},Qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},ln={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dn={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ia=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},na=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},sa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},_a=function(t,e){return["None",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ua=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ra=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},la=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},da=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ia=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ta=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ha=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Sa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Aa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},La=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Da=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},va=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Eu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Ou=function(t,e){return'"},Ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},cu=function(){return this.getFieldValue("TEXT")+"\n"},gu=function(t){return t.getFieldValue("TEXT")+"\n"},Cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Au=function(){return""},Lu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Nu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},fu.scrubNakedValue=function(t){return t+"\n"},fu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},fu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},fu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,fu.COMMENT_WRAP-3),n+=fu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Fu="#74A55B",Pu={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},bu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Gu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Uu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},wu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},ku={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Ku={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},ju={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},$u={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},er={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ir={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},_r={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},ur={},rr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},dr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Ir={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},hr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Lr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yr="#6C9858",xr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},br={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Vr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Br={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Gr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},wr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},kr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Jr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},qr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Qr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},zr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},jr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Zr={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},$r={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},tl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},el={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},il={init:function(){this.setColour(yr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},nl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},_l={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ol={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},pl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},al={init:function(){this.setColour(yr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ul={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rl={init:function(){this.setColour(yr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ll={init:function(){this.setColour(yr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},dl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Il={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Ml={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},El={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gl={init:function(){this.setColour(yr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sl={init:function(){this.setColour(yr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Al={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ll={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(yr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Fl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Yl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},vl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Xl={init:function(){this.setColour(yr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},yl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},xl={init:function(){this.setColour(yr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},bl={init:function(){this.setColour(yr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},xE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},bE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},VE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},BE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},GE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},UE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},wE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},HE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},KE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},JE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},qE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},QE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},zE={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},jE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ZE={init:function(){this.setColour(fE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$E={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(fE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},tO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},eO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},iO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},nO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sO={init:function(){this.setColour(fE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},_O=FE,oO=PE,pO=YE,aO=vE,uO=yE,rO=225,lO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},dO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},IO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},TO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},MO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},hO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},mO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},EO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},OO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},RO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},cO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},gO={init:function(){this.setColour(rO),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},CO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},SO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},AO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},LO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},NO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},DO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},fO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},FO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},PO={init:function(){this.setColour(rO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},YO={init:function(){this.setColour(rO),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},XO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},yO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},xO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},bO="#3288dd",VO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},BO={init:function(){this.setColour(bO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},GO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(bO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},UO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},wO={init:function(){this.setColour(bO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kO={init:function(){this.setColour(bO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},HO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},WO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},KO={init:function(){this.setColour(bO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},JO=100,qO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},QO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},jO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ZO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},$O={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},tR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},eR={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(JO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},iR="#A58C5B",nR={init:function(){this.setColour(iR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},sR={init:function(){this.setColour(iR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},_R={init:function(){this.setColour(iR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},oR={init:function(){this.setColour(iR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},pR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},aR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},uR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},rR={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(iR),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},lR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},dR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},IR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},TR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},MR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},hR={init:function(){this.setColour(iR),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},mR={init:function(){this.setColour(iR),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},ER={init:function(){this.setColour(iR),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},OR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},RR={init:function(){this.setColour(iR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},cR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},gR={init:function(){this.setColour(iR),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},CR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},SR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},AR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},LR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},NR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},DR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},FR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},YR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},XR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},xR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},bR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},BR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},UR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},wR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},kR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},HR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},WR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},KR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},JR={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},qR={init:function(){this.setColour(iR),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},QR={init:function(){this.setColour(iR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zR={init:function(){this.setColour(iR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},jR={init:function(){this.setColour(iR),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},ZR={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},$R={init:function(){this.setColour(iR),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},tc={init:function(){this.setColour(iR),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ec={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},ic={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nc={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sc={init:function(){this.setColour(iR),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},CF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},SF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},AF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},NF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},DF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},fF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},FF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},PF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},YF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},vF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},XF=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},yF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},xF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},bF=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},VF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},BF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},GF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},UF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},wF=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},kF=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},HF=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},WF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},KF=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},JF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},qF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},QF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},zF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},jF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},ZF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},$F=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},tP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},eP=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},iP=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},nP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},sP=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},_P=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},oP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},pP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},aP=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},uP=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},rP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},lP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},dP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},TP=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},MP=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},hP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},mP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},EP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},OP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},RP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},gP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},CP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},SP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},AP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},LP=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},NP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},DP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},fP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},FP=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},PP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},YP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},vP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},XP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},yP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},xP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},bP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},VP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},BP=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},mY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var l="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&l)>>8|(64512&l)>>5|(255&l)>>3).toString(16)+")\n"}return r},EY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},OY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},RY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},cY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},gY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},CY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},SY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},AY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},LY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},NY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},DY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},fY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},FY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},PY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},YY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},vY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},XY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},yY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},xY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},bY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},VY=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},BY=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},GY=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},UY=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},bV=function(){return"control.reset()\n"},VV=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},BV=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},GV=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},UV=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},wV=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},kV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},HV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},WV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},KV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},JV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},qV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},QV=function(){return"while True:\n pass\n"},zV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},jV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},ZV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},$V=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},tB=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},eB=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},iB=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},nB=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},sB=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},_B=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},oB=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},pB=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},aB=nB,uB=eB,rB=iB,lB=ZV,dB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},IB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},TB=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},hB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},mB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},EB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},OB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},RB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},cB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},gB=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},CB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},SB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},AB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},LB=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},NB={};NB["MixGo CE"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21-46"]),input_pin:Et.Profile.generate(["0-18","21-46"]),output_pin:Et.Profile.generate(["0-18","21-45"]),pwm_input:Et.Profile.generate(["0-18","21-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-18","21-45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21-45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21-45"]),pwm:Et.Profile.generate(["0-18","21-45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},NB["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-42","45"]),input_pin:Et.Profile.generate(["0-42","45-46"]),output_pin:Et.Profile.generate(["0-42","45"]),pwm_input:Et.Profile.generate(["0-42","45-46"],"pwm","pwm"),analog_input:Et.Profile.generate(["0-18","21-46"],"adc","adc"),pwm_output:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_output:Et.Profile.generate(["0-42","45"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-42","45"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-42","45"]),pwm:Et.Profile.generate(["0-42","45"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-20"]),analog:Et.Profile.generate(["1-20"],"adc","adc"),dac_pin:Et.Profile.generate(["17-18"]),dac:Et.Profile.generate(["17-18"],"dac","dac"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const DB=NB,fB=20,FB={init:function(){this.setColour(fB),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},PB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},YB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},vB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},XB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},yB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},xB={init:function(){this.setColour(fB),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},bB={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},VB={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},BB={init:function(){this.setColour(fB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},GB={init:function(){this.setColour(fB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},UB={init:function(){this.setColour(fB),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},wB=VB,kB=GB,HB=xB,WB=bB,KB=230,JB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},qB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},QB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},zB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},jB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},ZB={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},$B={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},tG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},eG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},iG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},nG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},sG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},_G={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},oG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},pG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},aG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},uG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},rG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},lG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},dG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},IG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},TG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},MG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},hG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},mG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},EG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},OG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},RG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},cG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},gG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},CG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},SG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},AG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},LG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},NG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},DG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},fG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},FG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},PG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},YG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},vG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},XG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},yG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},xG={init:function(){this.setColour(KB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},bG=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},VG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},BG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},GG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},UG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},wG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},kG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},HG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},WG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},KG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},JG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},qG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},QG=qG,zG=qG,jG=qG,ZG=qG,$G=qG,tU=qG,eU=qG,iU=qG,nU=qG,sU=qG,_U=qG,oU=qG,pU=qG,aU=qG,uU=qG,rU=qG,lU=qG,dU=qG,IU=qG,TU=qG,MU=qG,hU=qG,mU=qG,EU=qG,OU=qG,RU=qG,cU=qG,gU=qG,CU=qG,SU=qG,AU=qG,LU=qG,NU=qG,DU=qG,fU=qG,FU=qG,PU=qG,YU=qG,vU=qG,XU=qG,yU=qG,xU=qG,bU=qG,VU=qG;Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=fu,mt.generator=fu,Et.Profile.default={},Object.assign(Et.Profile,DB),Object.assign(Et.Profile.default,DB["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,l,d,I,V,W,H,X,B,K,f,k,w,U,G,F,D,N,x,y,b,P,Y,v,It,Tt),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,st,lt,rt,tt,_t,dt,Q,ut,at,pt,ot,z,q,J,it,et,nt,j,Z,$,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_esp32s3/index.xml b/boards/default/micropython_esp32s3/index.xml index 2edd796d..997b8015 100644 --- a/boards/default/micropython_esp32s3/index.xml +++ b/boards/default/micropython_esp32s3/index.xml @@ -1 +1 @@ -02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180291001001004401000/sd/1.wav5/sd/1.wavhttps://gitee.com/dahanzimin/test/raw/master/wav/8.wav44044010000412000000000001000100010020000Hello, Mixly!10001#ffffff255,255,0Mixly0Mixly0010#ffffff255,255,0MixlyMixly0550#ffffff255,255,0MixlyMixly5500#ffffff255,255,00020#ffffff255,255,0005050#ffffff255,255,020202015#ffffff255,255,0606040#ffffff255,255,010000#ffffff255,255,00.5#ffffff255,255,0new_clock16012040#ffffff255,255,0new_clock806440#ffffff255,255,0new_clocknew_clock8200new_clocknew_clock0x0000000,0,000Mixly0Mixly5000500wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!101620000211000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr123ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3100100i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsspi46sdsd/sdfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file +02000attachInterrupt_funcattachInterrupt_func10,1,2,3051iDIVIDE10Exception as eetestThreadtestThreadWHILETRUEHello Mixly from Thread!ms10timtim1000tim_callbacktim_callback5000200090x151100a10.998124.829971100101010001100501100110000x2x0,1,2,30,1,2,30,1,2,3xMixlyHelloMixly65axMixlyMixly0Mixly02MixlyMixlyHello,mixlyl--mylistHello,mixlymixlymixpyI love mixly!I love mixlyRandom No. is {}int1100input('1+2*3')mylist1,2,3,4,5mylist0mylist02mylistmylistmylist0mylist00mylist00mylist0mylist0mylist0mylistmylistmylistxmytup1,2,3,4,5mytup0mytup02mytupmytupmytupmytup0mytupmytup1mytup2xmydictmydictkeymydictkey0mydictkey0mydictkeymydictkeymydictkey0mydictmydictmydictmydictxmydict{"name":"Mixly","color":"green"}s11,2,3,4,5s1s1s1s2s1s2s10s1Mixlys1s2xMixlyMixlyMixly,HelloMixlyprompt02MixlyMixly0XFF00FFcodebMixlyMixly1attachInterrupt_funcattachInterrupt_funcrfid00Mixly0Mixly2022711420452023,1,1,12,0,0180292023,1,1,12,0,01001001004401000/sd/1.wav5/sd/1.wavhttps://gitee.com/dahanzimin/test/raw/master/wav/8.wav44044010000412000000000001000100010020000Hello, Mixly!10001#ffffff255,255,0Mixly0Mixly0010#ffffff255,255,0MixlyMixly0550#ffffff255,255,0MixlyMixly5500#ffffff255,255,00020#ffffff255,255,0005050#ffffff255,255,020202015#ffffff255,255,0606040#ffffff255,255,010000#ffffff255,255,00.5#ffffff255,255,0new_clock16012040#ffffff255,255,0new_clock806440#ffffff255,255,0new_clocknew_clock8200new_clocknew_clock0x0000000,0,000Mixly0Mixly5000500wifinamewifipassword8080AUTH TOKEN0_value02000notify0Your Target Emailsubjectbodycolor#FF0000wifinamewifipasswordmixio.mixly.cnmixio.mixly.cnA1B2C3mixio.mixly.cnusernamepasswordMyProjecttopicmsgtopicmethodmethodEQmsg1content"long""lat""message"012content"key1""key2""key3"012http://mixio.mixly.cn/time.phpmixio.mixly.cnwifinamewifipasswordcsub_cb31444082183.230.40.3914109261n63JySRowo13ZLDBKw6y896E0=MixlyRobotsub_cbEQmsg1ciot_dict"tc"tc0ciot_dictccwifinamewifipasswordclientEnter Your API_KEYEnter Your SECRET_KEYclient1clientS72099北京今天天气如何?wifinamewifipasswordSVa3S0UKHIy9dDArs北京SVa3S0UKHIy9dDArs北京11111ble_cble_pMixlyble_cble_cMixlyble_cble_xble_xble_xMixlyble_xble_xble_methodble_methodEQdataMixlyhandlehandle_methodhandle_methodkey1key2key3keyxble_keyboard_mouse10Hello, Mixly!101620000211000009000,4500,563,5630x1234callbackcmdaddrrawpulsesi2c2221100000i2c00i2c00i2ci2ci2cspi200000045spi200000buf50spi10spi100xffspibufspibuf0xffspi12345spi12345buf1Mixlyow12owowow12345ow12345owmy_now0my_nowmy_nowmy_nowFFFFFFFFFFFFmixlymy_nowmy_nowcbcbEQmsg1spi10000004512spi8my_lora433.925716my_loramy_loramy_loraMixlyi2c_extend45100000xsensori2c_extendxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensorxsensor5000500xsensorxsensorxsensorxsensorxsensorxsensorspi10000004512spi8ysensorysensor0ysensor0ysensor0Mixlyysensor0Mixlyysensorysensorysensor39,119.96,31.67ysensorysensorstation45ps2_handle24512ps2_handle50ps2_handleps2_handlews_wr123ws_wrws_wrws_wr360010zsensorzsensorzsensorzsensorweight12500weightmidi0midi440midi4401000midimidimidi4120midimidirgb04rgb0000rgb000rgb100100i2c_extend45400000Motori2c_extendMotor100Motor1024102402actuatoractuatoractuatoractuatoractuator你好米思齐actuatoractuatoractuator20actuatoractuatormixly*.mp3100100i2c_extend45400000matrixi2c_extendmatrixmatrixmatrixMixly0matrixMixlymatrixMixly500matrixMixlymatrixMixly500matrixmatrix>matrixmatrix1matrixmatrixmatrix0.5matrixmatrixi2c_extend45100000dispi2c_extenddisp2333dispdisp1i2c_extend45100000lcdi2c_extend0x27lcdMixly00lcdMixly005lcdlcdi2c_extend45100000oledi2c_extend0x3coledoled001oledMixlyoledMixly0010oledMixlyoledMixly0550oledMixlyoledMixly5500oled0020oled005050oled20202015oled1oled00oled00oledspi10000001246spi45tft_st7789135240tft_st7789001#ffffff255,255,0tft_st7789Mixly0050#ffffff255,255,0tft_st7789Mixly0550#ffffff255,255,0tft_st7789Mixly5500#ffffff255,255,0tft_st7789004040#ffffff255,255,0tft_st778912ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor'ni-hao','hong-se','lv-se','lan-se','bai-se','hei-se'0.1ai_sensor1.wav5ai_sensor1.wav100ai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsai_sensor'猫','狗','笔记本','笔'mixgo5自模型训练infoai_sensor'猫','狗','笔记本','笔'mixgo自模型识别objectsinfoai_sensor0.1606, 0.3562, 0.4712, 0.9568, 0.9877, 1.9108, 1.8761, 3.5310, 3.4423, 5.6823/sd/masks.kmodel外部模型加载objects12ai_sensorai_sensor98ai_sensor255,255,00,0,255ai_sensor1.wav5ai_sensor1.wav100infoai_sensorlicensePlateinfoai_sensorfaceinfoai_sensor20objectsai_sensorinfoai_sensorqrcodeinfoai_sensorbarcodeinfoai_sensortaginfoai_sensor25002525lineinfoai_sensor35002100circleinfoai_sensor10000rectinfoai_sensorinfoinfoai_sensorcolor_lab101colorsspi46sdsd/sdfilename.txtfMixlyfff0fffpathpathfilename.txtsrcname.txtdstname.txtpathff0wifinamewifipasswordwlanwlanwlanwlanwlan127.16.0.801234567wlanwlanwlanwlanwlan127.16.0.81connect_wifiwlanAPwlanTruewlanwlanSmallCabbage1WHILETRUEEQ0wlan0.0.0.0ms1000TRUEss0.0.0.080s192.168.0.180s5ss1024sbMixlyresponses1024sbMixlyresponse127.0.0.180sntp.aliyun.comresponsehttp://mixio.mixly.cnresponsehttp://mixio.mixly.cnresponse \ No newline at end of file diff --git a/boards/default/micropython_esp32s3/main.bundle.js b/boards/default/micropython_esp32s3/main.bundle.js index 0f656992..6374aa62 100644 --- a/boards/default/micropython_esp32s3/main.bundle.js +++ b/boards/default/micropython_esp32s3/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>yt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>Ht,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>qt,controls_if_elseif:()=>Qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>xt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>kt,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>le,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>de,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>di,text:()=>Xe,text_capital:()=>qe,text_center:()=>ze,text_char:()=>ye,text_char_at:()=>ke,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>Qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>He,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>xe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>qi,enumerate:()=>Qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>yi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>xi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>Hi,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>ki,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>ln,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>dn,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>Hn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>yn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>xn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>Qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>kn,storage_make_dir:()=>qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ls,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var d={};t.r(d),t.d(d,{set_add_discard:()=>Bs,set_clear:()=>ys,set_create_with:()=>Ps,set_create_with_container:()=>Ys,set_create_with_item:()=>vs,set_create_with_text_return:()=>ws,set_length:()=>Xs,set_operate:()=>bs,set_operate_update:()=>Vs,set_pop:()=>xs,set_sub:()=>Gs,set_toset:()=>ks,set_update:()=>Us});var l={};t.r(l),t.d(l,{html_content:()=>Qs,html_content_more:()=>qs,html_document:()=>Ws,html_form:()=>js,html_head_body:()=>Js,html_style:()=>zs,html_style_color:()=>$s,html_style_content:()=>Zs,html_text:()=>t_,html_title:()=>Ks});var I={};t.r(I),t.d(I,{attribute_access:()=>T_,function_call:()=>d_,function_call_container:()=>l_,function_call_item:()=>I_,raw_block:()=>n_,raw_empty:()=>__,raw_expression:()=>s_,raw_table:()=>i_,text_comment:()=>o_,text_print_multiple:()=>a_,text_print_multiple_container:()=>u_,text_print_multiple_item:()=>r_,type_check:()=>p_});var T={};t.r(T),t.d(T,{controls_type:()=>O_,controls_typeLists:()=>R_,lists_zip:()=>c_,unpack_iterable_object:()=>g_,variables_change:()=>m_,variables_get:()=>M_,variables_global:()=>E_,variables_set:()=>h_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>Y_,base_setup:()=>S_,controls_delay:()=>P_,controls_flow_statements:()=>F_,controls_for:()=>N_,controls_forEach:()=>b_,controls_for_range:()=>D_,controls_if:()=>A_,controls_interrupts:()=>x_,controls_lambda:()=>B_,controls_main:()=>C_,controls_millis:()=>v_,controls_nointerrupts:()=>y_,controls_pass:()=>U_,controls_range:()=>V_,controls_repeat:()=>q_,controls_repeat_ext:()=>H_,controls_thread:()=>w_,controls_try_finally:()=>L_,controls_whileUntil:()=>f_,datetime_fromtimestamp:()=>z_,do_while:()=>k_,garbage_collection:()=>W_,gene_unique_identifier:()=>j_,get_mem_alloc:()=>K_,get_mem_free:()=>J_,get_unique_identifier:()=>Q_,reset:()=>X_,time_sleep:()=>G_});var h={};t.r(h),t.d(h,{base_map:()=>Oo,generate_cartesian_product:()=>co,math_arithmetic:()=>io,math_bit:()=>eo,math_constant:()=>$_,math_constant_mp:()=>to,math_constrain:()=>lo,math_dec:()=>oo,math_indexer_number:()=>Mo,math_map:()=>ro,math_max_min:()=>ao,math_number:()=>Z_,math_number_base_conversion:()=>Io,math_random:()=>uo,math_random_seed:()=>To,math_round:()=>ho,math_selfcalcu:()=>no,math_single:()=>so,math_to_int:()=>po,math_trig:()=>_o,text_to_number:()=>mo,text_to_number_skulpt:()=>Eo,turn_to_int:()=>Ro});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Lo,char_to_ascii:()=>No,number_to_text:()=>Do,os_system:()=>jo,text:()=>go,text_capital:()=>bo,text_center:()=>Vo,text_char:()=>So,text_char_at:()=>Po,text_char_at2:()=>Fo,text_char_at3:()=>Qo,text_compareTo:()=>Jo,text_compare_to:()=>Xo,text_encode:()=>qo,text_equals_starts_ends:()=>vo,text_eval:()=>zo,text_find:()=>Bo,text_format:()=>Ho,text_format_noreturn:()=>Wo,text_join:()=>Ao,text_join_seq:()=>Go,text_length:()=>fo,text_random_char:()=>Yo,text_replace:()=>Uo,text_split:()=>wo,text_strip:()=>ko,text_substring:()=>yo,text_substring2:()=>xo,text_substring3:()=>Ko,text_textarea:()=>Co});var E={};t.r(E),t.d(E,{content_in_lists:()=>Pp,enumerate:()=>Fp,list_many_input:()=>mp,list_tolist:()=>Dp,list_tolist2:()=>fp,list_trig:()=>Tp,lists_2d_get_col_row_data:()=>tp,lists_2d_get_data_with_col_row:()=>$o,lists_append_extend:()=>_p,lists_change_to:()=>hp,lists_change_to_general:()=>Op,lists_clear:()=>rp,lists_create_with:()=>ep,lists_create_with2:()=>cp,lists_create_with_noreturn:()=>Ep,lists_create_with_text:()=>ip,lists_create_with_text2:()=>gp,lists_del_general:()=>Rp,lists_find:()=>dp,lists_getIndex3:()=>Cp,lists_getSublist3:()=>Sp,lists_get_index:()=>np,lists_get_random_item:()=>op,lists_get_random_sublist:()=>pp,lists_get_sublist:()=>Zo,lists_insert_value:()=>ap,lists_insert_value2:()=>Lp,lists_pop:()=>Ip,lists_remove_at:()=>lp,lists_remove_at2:()=>Np,lists_reverse:()=>up,lists_setIndex3:()=>Ap,lists_set_index:()=>sp,lists_sort:()=>Mp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Hp,dicts_add_or_change:()=>yp,dicts_clear:()=>Bp,dicts_create_with:()=>Yp,dicts_create_with_noreturn:()=>Jp,dicts_deldict:()=>kp,dicts_delete:()=>bp,dicts_get:()=>Xp,dicts_get_default:()=>xp,dicts_items:()=>Gp,dicts_keys:()=>vp,dicts_length:()=>wp,dicts_pop:()=>Wp,dicts_setdefault:()=>Kp,dicts_to_json:()=>qp,dicts_to_json2:()=>Zp,dicts_to_to:()=>jp,dicts_todict:()=>Qp,dicts_update:()=>Vp,dicts_values:()=>Up,json_to_dicts:()=>zp});var R={};t.r(R),t.d(R,{logic_boolean:()=>na,logic_compare:()=>$p,logic_compare_continous:()=>ta,logic_is:()=>pa,logic_is_in:()=>oa,logic_negate:()=>ia,logic_null:()=>sa,logic_operation:()=>ea,logic_tobool:()=>aa,logic_true_or_false:()=>_a});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Pa,sdcard_use_spi_init:()=>Fa,storage_can_write_ornot:()=>ma,storage_change_dir:()=>Aa,storage_close_file:()=>Oa,storage_delete_file:()=>ca,storage_file_seek:()=>Sa,storage_file_tell:()=>Ca,storage_file_write:()=>Ia,storage_fileopen:()=>ra,storage_fileopen_new:()=>da,storage_fileopen_new_encoding:()=>la,storage_get_a_line:()=>ha,storage_get_contents:()=>Ma,storage_get_contents_without_para:()=>Ta,storage_get_current_dir:()=>La,storage_get_file_size:()=>ga,storage_get_filename:()=>Ea,storage_is_file:()=>fa,storage_list_all_files:()=>Ra,storage_make_dir:()=>Na,storage_open_file_with_os:()=>ua,storage_rename:()=>Da});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>xa,procedures_callreturn:()=>Xa,procedures_defnoreturn:()=>va,procedures_defreturn:()=>Ya,procedures_ifreturn:()=>ya,procedures_return:()=>ba});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ka,tuple_create_with:()=>Va,tuple_create_with_noreturn:()=>za,tuple_create_with_text2:()=>Ba,tuple_create_with_text_return:()=>Ga,tuple_del:()=>ka,tuple_find:()=>Ja,tuple_getIndex:()=>Ua,tuple_getSublist:()=>qa,tuple_get_random_item:()=>Za,tuple_get_sublist:()=>ja,tuple_join:()=>Ha,tuple_length:()=>wa,tuple_max:()=>Wa,tuple_totuple:()=>$a,tuple_trig:()=>Qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>ou,set_clear:()=>nu,set_create_with:()=>tu,set_create_with_text_return:()=>uu,set_length:()=>eu,set_operate:()=>su,set_operate_update:()=>_u,set_pop:()=>iu,set_sub:()=>pu,set_toset:()=>ru,set_update:()=>au});var A={};t.r(A),t.d(A,{html_content:()=>Tu,html_content_more:()=>Mu,html_document:()=>du,html_form:()=>mu,html_head_body:()=>Iu,html_style:()=>hu,html_style_content:()=>Eu,html_text:()=>Ou,html_title:()=>lu});var L={};t.r(L),t.d(L,{attribute_access:()=>Lu,function_call:()=>Au,raw_block:()=>Ru,raw_empty:()=>gu,raw_expression:()=>cu,raw_table:()=>Cu,type_check:()=>Su});var N={};t.r(N),t.d(N,{PIN_init:()=>Nr,actuator_extern_get_led_bright:()=>Vu,actuator_extern_get_led_state:()=>Bu,actuator_extern_led_bright:()=>bu,actuator_extern_led_brightness:()=>Gu,actuator_ms32006_dcmotor:()=>qu,actuator_ms32006_init:()=>Qu,actuator_ms32006_stepper:()=>zu,actuator_neopixel_init:()=>ju,actuator_neopixel_rgb:()=>Zu,actuator_neopixel_rgb_all:()=>$u,actuator_neopixel_write:()=>tr,actuator_use_uart_init:()=>er,esp32_music_get_tempo_extern:()=>Xu,esp32_music_pitch:()=>Fu,esp32_music_pitch_init:()=>fu,esp32_music_pitch_with_time:()=>Pu,esp32_music_play_list:()=>Yu,esp32_music_reset_extern:()=>xu,esp32_music_set_tempo_extern:()=>vu,esp32_music_stop:()=>yu,mixbot_actuator_extern_get_addr:()=>Ar,mixbot_actuator_extern_set_addr:()=>Lr,mixbot_addr_extern:()=>lr,parrot_PIN_init:()=>Pr,parrot_move_speed:()=>Yr,pin_led_bright:()=>Dr,player_insert_music:()=>pr,player_play_music:()=>or,player_set_mode:()=>_r,player_set_play:()=>nr,player_set_volume:()=>sr,player_whether_stop:()=>ir,robot_led_extern:()=>hr,robot_led_extern_get_value:()=>mr,robot_motor_extern:()=>Ir,robot_motor_extern_get_speed:()=>Tr,robot_servo_extern_absolute_run:()=>cr,robot_servo_extern_get_status:()=>Er,robot_servo_extern_relative_continue:()=>Sr,robot_servo_extern_relative_origin:()=>gr,robot_servo_extern_relative_run:()=>Cr,robot_servo_extern_stop:()=>Rr,robot_servo_extern_stop_mode:()=>Or,robot_traffic_light_extern:()=>Mr,servo_PIN_init:()=>fr,servo_get_angle:()=>Ku,servo_get_speed:()=>Ju,servo_init:()=>Uu,servo_move:()=>wu,servo_move_angle:()=>Fr,servo_set_angle:()=>Hu,servo_set_speed:()=>Wu,servo_speed_360:()=>ku,syn6288_builtin_voice:()=>rr,syn6288_get_voice:()=>ur,syn6288_set_voice:()=>ar,syn6288_tts_play:()=>dr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>rd,actuator_dc_motor_stop:()=>dd,actuator_get_led_bright:()=>br,actuator_get_led_state:()=>Vr,actuator_led_bright:()=>yr,actuator_led_brightness:()=>Br,actuator_mixbot_buzzer_on_off:()=>hd,actuator_mixgo_nova_mic_get:()=>cd,actuator_mixgo_nova_mic_set:()=>Rd,actuator_mixgo_nova_onboard_music_pitch:()=>Nd,actuator_mixgo_nova_onboard_music_stop:()=>Dd,actuator_mixgo_nova_play_audio:()=>Ad,actuator_mixgo_nova_play_online_audio:()=>Ld,actuator_mixgo_nova_record_audio:()=>Sd,actuator_mixgo_nova_voice_get:()=>Cd,actuator_mixgo_nova_voice_set:()=>gd,actuator_mixgo_zero_led_color:()=>Gr,actuator_onboard_neopixel_rgb:()=>Kr,actuator_onboard_neopixel_rgb_all:()=>Jr,actuator_onboard_neopixel_rgb_show_all_chase:()=>qr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>Qr,actuator_onboard_neopixel_write:()=>zr,actuator_rm_onboard_neopixel_rgb:()=>jr,actuator_rm_onboard_neopixel_rgb_all:()=>Zr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>$r,actuator_stepper_keep:()=>ad,actuator_stepper_stop:()=>ud,analog_ble_keyboard_init:()=>Ud,analog_ble_keyboard_input:()=>Hd,analog_ble_keyboard_mouse_init:()=>Zd,analog_ble_keyboard_mouse_input:()=>il,analog_ble_keyboard_mouse_send_battery:()=>el,analog_ble_keyboard_mouse_str:()=>nl,analog_ble_keyboard_send_battery:()=>Kd,analog_ble_keyboard_str:()=>Wd,analog_ble_mouse_init:()=>Jd,analog_ble_mouse_input:()=>zd,analog_ble_mouse_keyboard_input:()=>sl,analog_ble_mouse_send_battery:()=>jd,analog_keyboard_input:()=>Yd,analog_keyboard_str:()=>Gd,analog_mouse_input:()=>Vd,bitbot_motor:()=>Od,bitbot_move:()=>md,bitbot_stop:()=>Ed,ble_keyboard_connect:()=>kd,ble_keyboard_get_mac:()=>wd,ble_keyboard_mouse_connect:()=>tl,ble_keyboard_mouse_get_mac:()=>$d,ble_mouse_connect:()=>qd,ble_mouse_get_mac:()=>Qd,cc_number:()=>Wr,educore_ble_keyboard_input:()=>Tl,educore_ble_sensor_connected:()=>Il,educore_ble_sensor_init:()=>ll,educore_buzzer:()=>_l,educore_buzzer_play_tone:()=>ol,educore_buzzer_play_tone_time:()=>pl,educore_buzzer_stop:()=>al,educore_neopixel_clear:()=>dl,educore_neopixel_rgb:()=>rl,educore_rgb_light:()=>ul,esp32_music_get_tempo:()=>ed,esp32_music_reset:()=>id,esp32_music_set_tempo:()=>td,esp32_onboard_music_pitch:()=>nd,esp32_onboard_music_pitch_with_time:()=>sd,esp32_onboard_music_play_list:()=>od,esp32_onboard_music_stop:()=>_d,general_key:()=>Xd,general_key_tuple:()=>xd,generalkey_container:()=>yd,generalkey_create_with_item:()=>bd,get_power_output:()=>Fd,ledswitch:()=>xr,mixbot_motor:()=>Md,mixbot_motor_status:()=>ld,mixbot_move:()=>Id,mixbot_stop:()=>Td,mouse_key:()=>Bd,number:()=>Xr,rm_actuator_get_led_bright:()=>wr,rm_actuator_get_led_state:()=>kr,rm_actuator_led_bright:()=>Ur,rm_actuator_led_brightness:()=>Hr,rm_motor:()=>pd,set_all_power_output:()=>Pd,set_power_output:()=>fd,special_key:()=>vd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>Ql,ai_sensor_ailocal_class:()=>bl,ai_sensor_ailocal_class_result:()=>Vl,ai_sensor_ailocal_train:()=>yl,ai_sensor_asr_recognize:()=>kl,ai_sensor_audio_play:()=>Gl,ai_sensor_audio_record:()=>Bl,ai_sensor_barcode:()=>gl,ai_sensor_circle:()=>Dl,ai_sensor_classifier_faces:()=>Jl,ai_sensor_color:()=>Yl,ai_sensor_color_chases:()=>xl,ai_sensor_color_chases_result:()=>Xl,ai_sensor_config:()=>Rl,ai_sensor_face:()=>Kl,ai_sensor_find_20objects:()=>ql,ai_sensor_find_barcodes:()=>Cl,ai_sensor_find_circles:()=>fl,ai_sensor_find_colors:()=>vl,ai_sensor_find_licenseplates:()=>Wl,ai_sensor_find_lines:()=>Nl,ai_sensor_find_qrcodes:()=>Ol,ai_sensor_find_rects:()=>Pl,ai_sensor_find_tags:()=>Al,ai_sensor_licenseplate:()=>Hl,ai_sensor_line:()=>Ll,ai_sensor_qrcode:()=>ml,ai_sensor_qrcode_lite:()=>El,ai_sensor_rect:()=>Fl,ai_sensor_rgb:()=>cl,ai_sensor_tag:()=>Sl,ai_sensor_use_uart_init:()=>hl,ai_sensor_yolo_recognize:()=>Ul,ai_sensor_yolo_recognize_result:()=>wl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Zl,MICROPYTHON_AI_Speech_unit:()=>jl,MICROPYTHON_AI_client:()=>zl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>II,mpython_blynk_app_notify:()=>oI,mpython_blynk_email:()=>uI,mpython_blynk_get_timers:()=>rI,mpython_blynk_on_connected:()=>nI,mpython_blynk_on_disconnected:()=>iI,mpython_blynk_run:()=>_I,mpython_blynk_sensor_data_to_app:()=>lI,mpython_blynk_set_property:()=>aI,mpython_blynk_setup:()=>TI,mpython_blynk_stop_timers:()=>pI,mpython_blynk_sync_virtual:()=>eI,mpython_blynk_terminal_widget_vpin:()=>tI,mpython_blynktimer:()=>dI,mpython_blynktimer_run:()=>sI});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>zI,communicate_bluetooth_connect:()=>tT,communicate_bluetooth_disconnect:()=>eT,communicate_bluetooth_handle:()=>oT,communicate_bluetooth_is_connected:()=>nT,communicate_bluetooth_mac:()=>$I,communicate_bluetooth_peripheral_init:()=>jI,communicate_bluetooth_recv:()=>sT,communicate_bluetooth_recv_only:()=>_T,communicate_bluetooth_scan:()=>ZI,communicate_bluetooth_send:()=>iT,communicate_espnow_init:()=>pT,communicate_espnow_init_new:()=>aT,communicate_i2c_available:()=>YI,communicate_i2c_init:()=>EI,communicate_i2c_master_read:()=>PI,communicate_i2c_onboard:()=>hI,communicate_i2c_read:()=>OI,communicate_i2c_scan:()=>cI,communicate_i2c_write:()=>RI,communicate_ir_recv_init:()=>GI,communicate_ir_send_init:()=>WI,communicate_ow_init:()=>XI,communicate_ow_read:()=>yI,communicate_ow_reset:()=>BI,communicate_ow_scan:()=>xI,communicate_ow_select:()=>VI,communicate_ow_write:()=>bI,communicate_spi_buffer:()=>SI,communicate_spi_init:()=>gI,communicate_spi_onboard:()=>mI,communicate_spi_read:()=>AI,communicate_spi_read_output:()=>LI,communicate_spi_readinto:()=>NI,communicate_spi_readinto_output:()=>DI,communicate_spi_set:()=>CI,communicate_spi_write:()=>fI,communicate_spi_write_readinto:()=>FI,espnow_radio_channel:()=>TT,espnow_radio_channel_new:()=>hT,espnow_radio_on_off:()=>mT,espnow_radio_rec:()=>OT,espnow_radio_recv:()=>cT,espnow_radio_recv_certain_msg:()=>gT,espnow_radio_recv_certain_msg_new:()=>ST,espnow_radio_recv_msg:()=>RT,espnow_radio_recv_new:()=>CT,espnow_radio_send:()=>ET,espnow_radio_txpower:()=>MT,i2c_available:()=>KT,i2c_init:()=>YT,i2c_master_reader2:()=>WT,i2c_read:()=>vT,i2c_scan:()=>xT,i2c_slave_onreceive:()=>vI,i2c_write:()=>XT,internal_variable:()=>UI,ir_recv_timeout:()=>HI,ir_transmit_busy:()=>qI,ir_transmit_conventional_data:()=>KI,ir_transmit_raw_code:()=>QI,ir_transmit_study_code:()=>JI,ir_whether_recv:()=>kI,lora_init:()=>AT,lora_packet:()=>LT,lora_recv:()=>DT,lora_send:()=>NT,network_espnow_info:()=>rT,network_espnow_mac:()=>uT,network_espnow_recv:()=>dT,network_espnow_recv_handle:()=>IT,network_espnow_send:()=>lT,recv_fun:()=>wI,spi_buffer:()=>VT,spi_init:()=>yT,spi_read:()=>BT,spi_read_output:()=>GT,spi_readinto:()=>UT,spi_readinto_output:()=>wT,spi_set:()=>bT,spi_write:()=>kT,spi_write_readinto:()=>HT,urequests_attribute:()=>FT,urequests_get:()=>fT,urequests_method:()=>PT});var v={};t.r(v),t.d(v,{display_animate:()=>gM,display_blink_rate:()=>EM,display_circle:()=>CM,display_color_seclet:()=>xM,display_draw_4strings:()=>lM,display_fill:()=>cM,display_get_screen_image:()=>mM,display_help:()=>AM,display_image_size:()=>IM,display_lcd_use_i2c_init:()=>UM,display_line:()=>MM,display_line_arbitrarily:()=>hM,display_matrix_extern_bright_point:()=>sM,display_matrix_extern_bright_screen:()=>oM,display_matrix_extern_clear:()=>pM,display_matrix_extern_get_pixel:()=>nM,display_matrix_extern_get_screen_pixel:()=>_M,display_matrix_extern_image_builtins:()=>aM,display_matrix_extern_scroll_string:()=>ZT,display_matrix_extern_scroll_string_delay:()=>$T,display_matrix_extern_shift:()=>iM,display_matrix_extern_show_frame_string:()=>tM,display_matrix_extern_show_frame_string_delay:()=>eM,display_matrix_extern_show_image:()=>zT,display_matrix_extern_show_image_or_string_delay:()=>jT,display_matrix_use_i2c_init:()=>qT,display_oled_drawPixel:()=>NM,display_oled_showBitmap:()=>LM,display_oled_use_i2c_init:()=>KM,display_onoff:()=>RM,display_rect:()=>TM,display_rgb_color:()=>OM,display_tm1650_power:()=>fM,display_tm1650_set_brightness:()=>YM,display_tm1650_show_dot:()=>PM,display_tm1650_show_num:()=>FM,display_tm_use_i2c_init:()=>DM,display_triangle:()=>SM,display_use_i2c_init:()=>dM,extern_oled_bright_point:()=>nh,extern_oled_clear:()=>sh,extern_oled_get_pixel:()=>ih,extern_oled_hvline:()=>oh,extern_oled_line:()=>ph,extern_oled_scroll_string:()=>jM,extern_oled_scroll_string_delay:()=>ZM,extern_oled_shape_rect:()=>_h,extern_oled_shift:()=>eh,extern_oled_show_frame_string:()=>$M,extern_oled_show_frame_string_delay:()=>th,extern_oled_show_image:()=>JM,extern_oled_show_image_or_string_delay:()=>zM,extern_oled_show_image_xy:()=>QM,extern_oled_show_string:()=>qM,lcd_backlight:()=>HM,lcd_clear:()=>WM,lcd_print_string:()=>kM,lcd_show_image_or_string_delay:()=>wM,matrix_extern_image_arithmetic:()=>uM,matrix_extern_image_invert:()=>rM,tft_fill:()=>BM,tft_line_arbitrarily:()=>GM,tft_scroll_string_delay:()=>bM,tft_show_frame_string_delay:()=>VM,tft_show_image_or_string_delay:()=>yM,tft_show_image_xy:()=>XM,tft_use_spi_init:()=>vM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>Kh,display_bright_point:()=>gh,display_bright_screen:()=>Sh,display_clear:()=>Ah,display_get_pixel:()=>ch,display_get_screen_pixel:()=>Ch,display_image_builtins:()=>hh,display_image_builtins_all:()=>mh,display_image_create:()=>Mh,display_scroll_string:()=>dh,display_scroll_string_delay:()=>lh,display_shift:()=>Rh,display_show_frame_string:()=>Ih,display_show_frame_string_delay:()=>Th,display_show_image:()=>uh,display_show_image_or_string_delay:()=>rh,draw_pointer:()=>hm,image_arithmetic:()=>Eh,image_invert:()=>Oh,mixbot_display_bright_screen:()=>Hh,mixbot_display_get_ambientbright:()=>kh,mixbot_display_get_screen_pixel:()=>wh,mixbot_display_image_create:()=>Uh,mixbot_display_rotate:()=>Wh,mixgo_display_image_create_new:()=>Dh,mixgome_display_font:()=>fh,mixgome_display_image_create:()=>Lh,mixgomini_display_image_create:()=>Nh,mpython_display_hvline:()=>Vh,mpython_display_line:()=>Bh,mpython_display_shape_rect:()=>bh,mpython_pbm_image:()=>Gh,onboard_oled_bright_point:()=>yh,onboard_oled_scroll_string_delay:()=>Xh,onboard_oled_show_frame_string_delay:()=>xh,onboard_oled_show_image:()=>Fh,onboard_oled_show_image_or_string_delay:()=>vh,onboard_oled_show_image_xy:()=>Ph,onboard_oled_show_string:()=>Yh,onboard_tft_bright_point:()=>_m,onboard_tft_bright_screen:()=>am,onboard_tft_clear:()=>om,onboard_tft_clock_clear:()=>Tm,onboard_tft_clock_draw:()=>Im,onboard_tft_clock_get_rtctime:()=>dm,onboard_tft_clock_init:()=>rm,onboard_tft_clock_set_time:()=>lm,onboard_tft_display_hvline:()=>em,onboard_tft_display_line:()=>im,onboard_tft_display_shape_circle:()=>Mm,onboard_tft_display_shape_rect:()=>tm,onboard_tft_fill:()=>um,onboard_tft_get_pixel:()=>sm,onboard_tft_get_screen_pixel:()=>pm,onboard_tft_scroll_string:()=>zh,onboard_tft_scroll_string_delay:()=>jh,onboard_tft_shift:()=>nm,onboard_tft_show_frame_string:()=>Zh,onboard_tft_show_frame_string_delay:()=>$h,onboard_tft_show_image:()=>Jh,onboard_tft_show_image_or_string_delay:()=>qh,onboard_tft_show_image_xy:()=>Qh});var x={};t.r(x),t.d(x,{factory_block:()=>Nm,factory_block_return:()=>Dm,factory_block_return_with_textarea:()=>Fm,factory_block_with_textarea:()=>fm,factory_callMethod_noreturn:()=>Am,factory_callMethod_return:()=>Lm,factory_create_with_container:()=>cm,factory_create_with_item:()=>gm,factory_declare:()=>Sm,factory_from_import:()=>Em,factory_function_noreturn:()=>Rm,factory_function_return:()=>Cm,factory_import:()=>Om,folding_block:()=>Pm});var y={};t.r(y),t.d(y,{controls_pin_attachInterrupt:()=>$m,inout_analog_atten:()=>Um,inout_analog_read:()=>Gm,inout_analog_read_init:()=>Jm,inout_analog_write:()=>bm,inout_analog_write_init:()=>Km,inout_analog_write_set:()=>Vm,inout_analog_write_set_freq:()=>zm,inout_digital_init:()=>Hm,inout_digital_read:()=>xm,inout_digital_write:()=>Xm,inout_highlow:()=>vm,inout_pinMode:()=>qm,inout_pin_attachInterrupt:()=>km,inout_pin_pressed:()=>wm,inout_pin_pressed_init:()=>Qm,inout_pwm_analog_write:()=>ym,inout_pwm_analog_write_init:()=>Wm,inout_pwm_analog_write_set_freq:()=>Bm,pin_pressed:()=>Zm,pin_pressed_init:()=>jm});var b={};t.r(b),t.d(b,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>CE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>gE,IOT_EMQX_PING:()=>RE,IOT_FORMATTING:()=>EE,IOT_FORMAT_STRING:()=>OE,IOT_MIXIO_NTP:()=>cE,IOT_MIXIO_PUBLISH:()=>dE,IOT_MIXIO_SUBSCRIBE:()=>lE,iot_checkonenet:()=>vE,iot_client_onboard:()=>AE,iot_create_with_item:()=>uE,iot_http_client:()=>LE,iot_http_data:()=>NE,iot_mixio_check:()=>ME,iot_mixio_connect:()=>rE,iot_mixio_connect_only:()=>TE,iot_mixio_disconnect:()=>IE,iot_mixio_format_msg:()=>mE,iot_mixio_format_topic:()=>hE,iot_mixly_key:()=>SE,iot_mqtt_client:()=>DE,iot_mqtt_data:()=>fE,iot_onenet_check:()=>sE,iot_onenet_connect:()=>iE,iot_onenet_disconnect:()=>nE,iot_onenet_publish:()=>oE,iot_onenet_publish_dict:()=>_E,iot_onenetconnect:()=>PE,iot_onenetdisconnect:()=>YE,iot_publish:()=>XE,iot_publish_container:()=>pE,iot_publish_item:()=>aE,iot_wifi_connect:()=>eE,iot_wificonnect:()=>FE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>IO,educore_mqtt_connect_success:()=>mO,educore_mqtt_subscribe_message:()=>TO,educore_mqtt_topic_publish:()=>hO,educore_mqtt_topic_subscribe:()=>MO,educore_wifi_connect:()=>lO,network_ap_connect:()=>WE,network_connect:()=>GE,network_get_connect:()=>wE,network_get_wifi:()=>HE,network_init:()=>yE,network_is_active:()=>VE,network_open:()=>bE,network_scan:()=>BE,network_server:()=>KE,network_socket_accept:()=>jE,network_socket_bind:()=>QE,network_socket_close:()=>iO,network_socket_connect:()=>qE,network_socket_init:()=>JE,network_socket_listen:()=>zE,network_socket_receive:()=>ZE,network_socket_receive_from:()=>tO,network_socket_send:()=>$E,network_socket_send_to:()=>eO,network_stop:()=>kE,network_wifi_connect:()=>UE,ntptime_address:()=>pO,ntptime_time:()=>oO,requests_attribute:()=>sO,requests_attribute2:()=>dO,requests_get:()=>nO,requests_get2:()=>uO,requests_method:()=>_O,requests_post:()=>rO});var B={};t.r(B),t.d(B,{get_potential_num:()=>OO,nova_g1_motor:()=>RO,nova_g1_spk_en:()=>gO,nova_g1_usb:()=>cO});var G={};t.r(G),t.d(G,{pe_g1_battery_left:()=>AO,pe_g1_dc_motor:()=>LO,pe_g1_dc_motor_speed:()=>NO,pe_g1_servo_get_angle:()=>FO,pe_g1_servo_get_speed:()=>PO,pe_g1_servo_set_angle:()=>DO,pe_g1_servo_set_speed:()=>fO,pe_g1_use_i2c_init:()=>SO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>iR,CI130X_GET_THE_RECOGNIZED_CMD:()=>eR,CI130X_GET_WHETHER_IDENTIFY:()=>tR,CI130X_IDENTIFY_AND_SAVE:()=>$O,CI130X_SET_SYSTEM_CMD:()=>nR,HCSR04:()=>kR,PS2_Button:()=>JR,PS2_Buttons:()=>qR,PS2_Buttons_new:()=>$R,PS2_State:()=>QR,PS2_init:()=>HR,PS2_init_new:()=>jR,PS2_stk:()=>zR,PS2_stk_new:()=>tc,PS2_vibration:()=>KR,PS2_vibration_new:()=>ZR,camera_sensor_init:()=>fc,camera_sensor_result:()=>Fc,educore_body_sensor:()=>Oc,educore_button_sensor_extern:()=>Cc,educore_camera_sensor:()=>Dc,educore_infrared_sensor:()=>gc,educore_soilhum_sensor:()=>Rc,educore_temp_sensor:()=>Nc,educore_temphum_sensor:()=>cc,educore_ultrasonic_sensor:()=>Ac,esp32_s2_weather_init:()=>BR,esp32_s2_weather_rain:()=>UR,esp32_s2_weather_wd:()=>GR,esp32_s2_weather_ws:()=>wR,extern_rfid_read:()=>AR,extern_rfid_readcontent:()=>NR,extern_rfid_readid:()=>LR,extern_rfid_status:()=>FR,extern_rfid_write:()=>DR,extern_rfid_write_return:()=>fR,gnss_get_data:()=>sc,gnss_have_data:()=>nc,interaction_whether_to_interaction:()=>jO,interaction_whether_to_interaction_SANT:()=>ZO,mixbot_sensor_extern_get_addr:()=>dc,mixbot_sensor_extern_set_addr:()=>lc,pm25_get_data:()=>ic,radar_set_DETECTION_THRESHOLD:()=>qO,radar_set_DETECTION_THRESHOLD_SANT:()=>zO,robot_button_extern_get_value:()=>_c,robot_color_extern_get_value:()=>rc,robot_infrared_extern_get_value:()=>pc,robot_infrared_extern_grey_get_value:()=>ac,robot_potentiometer_extern_get_value:()=>uc,robot_sonar_extern_get_value:()=>Ic,robot_sonar_extern_led:()=>Tc,robot_touch_extern_get_value:()=>oc,sensor_APDS9960_extern:()=>_R,sensor_DS18X20:()=>KO,sensor_LTR308_extern:()=>oR,sensor_LTR390UV_extern:()=>uR,sensor_MAX30102_extern:()=>sR,sensor_QMC5883L_extern:()=>MR,sensor_VL530LX_extern:()=>rR,sensor_adxl345_get_acceleration:()=>VO,sensor_aht11_extern:()=>lR,sensor_bmp:()=>HO,sensor_compass_reset:()=>CR,sensor_dht11:()=>GO,sensor_hp203_extern:()=>IR,sensor_light_level:()=>BO,sensor_lm35:()=>JO,sensor_ltr381_extern:()=>pR,sensor_mixgo_extern_button_attachInterrupt:()=>yO,sensor_mixgo_extern_button_get_presses:()=>xO,sensor_mixgo_extern_button_is_pressed:()=>vO,sensor_mixgo_extern_button_was_pressed:()=>XO,sensor_mixgo_extern_light:()=>UO,sensor_mixgo_extern_pin_near:()=>kO,sensor_mixgo_extern_sound:()=>wO,sensor_mixgoce_hot_wheel_degrees:()=>VR,sensor_mixgoce_hot_wheel_is_touched:()=>bR,sensor_mpu9250_attachGestureInterrupt:()=>bO,sensor_mpu9250_calibrate_compass:()=>RR,sensor_mpu9250_field_strength:()=>gR,sensor_mpu9250_gesture:()=>hR,sensor_mpu9250_get_acceleration:()=>mR,sensor_mpu9250_get_gyro:()=>OR,sensor_mpu9250_get_magnetic:()=>ER,sensor_mpu9250_temperature:()=>cR,sensor_read_humiture:()=>Sc,sensor_sht:()=>WO,sensor_shtc3_extern:()=>dR,sensor_spl06_001_extern:()=>TR,sensor_ucs12071_extern:()=>aR,sensor_use_i2c_init:()=>QO,sensor_use_spi_init:()=>SR,sensor_use_uart_init:()=>ec,sensor_weather_solo_init:()=>Mc,sensor_weather_solo_rain:()=>Ec,sensor_weather_solo_wd:()=>hc,sensor_weather_solo_ws:()=>mc,sensor_weigh_init:()=>Pc,ultrasonic_sensor_read_distance:()=>Lc,weather_data:()=>PR,weather_have_data:()=>YR,weather_set_label:()=>XR,weather_set_label_container:()=>xR,weather_set_label_item:()=>yR,weather_uart_mixio:()=>vR,weigh_sensor_get_weight:()=>Yc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>LC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>AC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>SC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>CC,CI130X_SET_SYSTEM_CMD_SANT:()=>NC,HCSR04:()=>qc,RTC_set_date:()=>Qc,RTC_set_time:()=>Jc,bitbot_als_num:()=>iC,dht11:()=>uC,educore_button_sensor:()=>EC,educore_button_was_pressed:()=>OC,educore_gyroscope_sensor:()=>MC,educore_gyroscope_sensor_read:()=>hC,educore_gyroscope_sensor_shake:()=>mC,educore_light_sensor:()=>TC,educore_rfid_sensor:()=>RC,educore_rfid_sensor_scan:()=>cC,educore_rfid_sensor_scan_data:()=>gC,educore_voice_sensor:()=>lC,number1:()=>jc,number2:()=>Zc,number3:()=>$c,number4:()=>tg,number5:()=>eg,number6:()=>ig,number7:()=>ng,onboard_RTC_get_time:()=>dg,onboard_RTC_get_time_str:()=>mg,onboard_RTC_get_timestamp:()=>lg,onboard_RTC_set_datetime:()=>Mg,onboard_RTC_settime_string:()=>Tg,onboard_RTC_timestamp_totuple:()=>Ig,rfid_readcontent:()=>Sg,rfid_readid:()=>Cg,rfid_write:()=>Ag,rfid_write_return:()=>Lg,sensor_LTR308:()=>Eg,sensor_aht11:()=>Rg,sensor_bitbot_ALS:()=>eC,sensor_button_get_presses:()=>_C,sensor_button_is_pressed:()=>nC,sensor_button_was_pressed:()=>sC,sensor_distance_hrsc04:()=>Kc,sensor_eulerangles:()=>Dg,sensor_field_strength:()=>rC,sensor_get_acceleration:()=>Ng,sensor_get_temperature:()=>cg,sensor_hp203:()=>gg,sensor_light:()=>aC,sensor_mixbot_get_gyro:()=>tC,sensor_mixbot_patrol_calibrate:()=>jg,sensor_mixbot_patrol_value:()=>Zg,sensor_mixbot_temperature:()=>$g,sensor_mixgo_LTR308:()=>ug,sensor_mixgo_button_attachInterrupt:()=>bc,sensor_mixgo_button_get_presses:()=>yc,sensor_mixgo_button_is_pressed:()=>Xc,sensor_mixgo_button_was_pressed:()=>xc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Bg,sensor_mixgo_cc_mmc5603_get_angle:()=>Vg,sensor_mixgo_cc_mmc5603_get_magnetic:()=>bg,sensor_mixgo_light:()=>zc,sensor_mixgo_nova_LTR308:()=>ag,sensor_mixgo_nova_pin_near:()=>pg,sensor_mixgo_pin_near:()=>og,sensor_mixgo_pin_near_double:()=>_g,sensor_mixgo_pin_near_single:()=>sg,sensor_mixgo_pin_pressed:()=>wc,sensor_mixgo_sant_color:()=>rg,sensor_mixgo_touch_slide:()=>Wc,sensor_mixgocar42_button_attachInterrupt:()=>Uc,sensor_mixgocar42_button_get_presses:()=>Gc,sensor_mixgocar42_button_is_pressed:()=>Vc,sensor_mixgocar42_button_was_pressed:()=>Bc,sensor_mixgocar_battery_left:()=>zg,sensor_mixgocar_pin_near:()=>Qg,sensor_mixgocar_pin_near_line:()=>Jg,sensor_mixgocar_pin_near_state_change:()=>qg,sensor_mixgoce_pin_pressed:()=>kc,sensor_mixgoce_temperature:()=>Ug,sensor_mixgome_temperature:()=>Gg,sensor_mpython_pin_pressed:()=>Hc,sensor_mpython_qmi8658_get_gyro:()=>wg,sensor_mpython_qmi8658_temperature:()=>kg,sensor_onboard_compass_reset:()=>yg,sensor_onboard_mpu9250_calibrate_compass:()=>vg,sensor_onboard_mpu9250_field_strength:()=>xg,sensor_onboard_mpu9250_gesture:()=>fg,sensor_onboard_mpu9250_get_acceleration:()=>Fg,sensor_onboard_mpu9250_get_gyro:()=>Yg,sensor_onboard_mpu9250_get_magnetic:()=>Pg,sensor_onboard_mpu9250_temperature:()=>Xg,sensor_pin_near:()=>pC,sensor_pin_pressed:()=>oC,sensor_read:()=>IC,sensor_rm_acc:()=>Kg,sensor_rm_battery_left:()=>Wg,sensor_rm_pin_near_double:()=>Hg,sensor_rtc_init:()=>hg,sensor_sound:()=>Og,sensor_temperature:()=>dC});var k={};t.r(k),t.d(k,{serial_any:()=>xC,serial_begin:()=>GC,serial_print:()=>FC,serial_print_byte:()=>fC,serial_print_hex:()=>YC,serial_println:()=>PC,serial_read_from_ai:()=>qC,serial_readline:()=>yC,serial_readstr:()=>XC,serial_readstr_until:()=>bC,serial_receive_data_event:()=>vC,serial_send_to_ai:()=>QC,serial_softserial:()=>BC,serial_softserial_new:()=>VC,system_input:()=>UC,system_print:()=>wC,system_print_container:()=>KC,system_print_end:()=>HC,system_print_inline:()=>kC,system_print_item:()=>JC,system_print_many:()=>WC});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>$C,Timer_init:()=>lS,base_delay:()=>MS,controls_delay:()=>ZC,controls_delay_new:()=>jC,controls_millis:()=>eS,controls_uname:()=>nS,raw_block:()=>iS,reset:()=>tS,system_bitbot_shutdown:()=>dS,system_machine_reset:()=>rS,system_ticks_diff:()=>oS,system_timer:()=>_S,system_timer_init:()=>pS,system_wdt_feed:()=>uS,system_wdt_init:()=>aS,time_ticks_diff:()=>TS,timer:()=>sS,timer2:()=>IS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>fS,Air_now_content:()=>gS,Geo_moon_content:()=>PS,Geo_sun_content:()=>FS,Life_suggestion_content:()=>SS,Location_search_content:()=>LS,Tide_daily_content:()=>AS,WEATHER_DAILY:()=>ES,WEATHER_HOUR:()=>OS,WEATHER_NOW:()=>mS,Weather_alarm_content:()=>CS,Weather_daily:()=>NS,Weather_daily_content:()=>DS,Weather_now:()=>RS,Weather_now_content:()=>cS});var K={};t.r(K),t.d(K,{PIN_init:()=>fA,actuator_extern_get_led_bright:()=>jS,actuator_extern_get_led_state:()=>ZS,actuator_extern_led_bright:()=>zS,actuator_extern_led_brightness:()=>$S,actuator_ms32006_dcmotor:()=>BS,actuator_ms32006_init:()=>VS,actuator_ms32006_stepper:()=>GS,actuator_neopixel_init:()=>tA,actuator_neopixel_rgb:()=>nA,actuator_neopixel_rgb_all:()=>eA,actuator_neopixel_write:()=>iA,actuator_use_uart_init:()=>sA,esp32_music_get_tempo_extern:()=>KS,esp32_music_pitch:()=>wS,esp32_music_pitch_init:()=>US,esp32_music_pitch_with_time:()=>kS,esp32_music_play_list:()=>JS,esp32_music_reset_extern:()=>QS,esp32_music_set_tempo_extern:()=>WS,esp32_music_stop:()=>HS,mixbot_actuator_extern_get_addr:()=>NA,mixbot_actuator_extern_set_addr:()=>DA,mixbot_addr_extern:()=>TA,parrot_PIN_init:()=>vA,parrot_move_speed:()=>XA,pin_led_bright:()=>FA,player_play_music:()=>uA,player_set_mode:()=>aA,player_set_play:()=>oA,player_set_volume:()=>pA,player_whether_stop:()=>_A,robot_led_extern:()=>EA,robot_led_extern_get_value:()=>OA,robot_motor_extern:()=>MA,robot_motor_extern_get_speed:()=>hA,robot_servo_extern_absolute_run:()=>CA,robot_servo_extern_get_status:()=>RA,robot_servo_extern_relative_continue:()=>LA,robot_servo_extern_relative_origin:()=>SA,robot_servo_extern_relative_run:()=>AA,robot_servo_extern_stop:()=>gA,robot_servo_extern_stop_mode:()=>cA,robot_traffic_light_extern:()=>mA,servo_PIN_init:()=>PA,servo_get_angle:()=>yS,servo_get_speed:()=>bS,servo_init:()=>YS,servo_move:()=>qS,servo_move_angle:()=>YA,servo_set_angle:()=>XS,servo_set_speed:()=>xS,servo_speed_360:()=>vS,syn6288_builtin_voice:()=>lA,syn6288_get_voice:()=>dA,syn6288_set_voice:()=>rA,syn6288_tts_play:()=>IA});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>aL,actuator_dc_motor_stop:()=>uL,actuator_get_led_bright:()=>WA,actuator_get_led_state:()=>KA,actuator_led_bright:()=>HA,actuator_led_brightness:()=>JA,actuator_mixbot_buzzer_on_off:()=>TL,actuator_mixgo_nova_mic_get:()=>OL,actuator_mixgo_nova_mic_set:()=>EL,actuator_mixgo_nova_onboard_music_pitch:()=>AL,actuator_mixgo_nova_onboard_music_stop:()=>LL,actuator_mixgo_nova_play_audio:()=>CL,actuator_mixgo_nova_play_online_audio:()=>SL,actuator_mixgo_nova_record_audio:()=>gL,actuator_mixgo_nova_voice_get:()=>cL,actuator_mixgo_nova_voice_set:()=>RL,actuator_mixgo_zero_led_color:()=>QA,actuator_onboard_neopixel_rgb:()=>eL,actuator_onboard_neopixel_rgb_all:()=>iL,actuator_onboard_neopixel_rgb_show_all_chase:()=>nL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>sL,actuator_onboard_neopixel_write:()=>tL,actuator_stepper_keep:()=>oL,actuator_stepper_stop:()=>pL,analog_ble_keyboard_init:()=>bL,analog_ble_keyboard_input:()=>GL,analog_ble_keyboard_mouse_init:()=>QL,analog_ble_keyboard_mouse_input:()=>ZL,analog_ble_keyboard_mouse_send_battery:()=>jL,analog_ble_keyboard_mouse_str:()=>$L,analog_ble_keyboard_send_battery:()=>wL,analog_ble_keyboard_str:()=>UL,analog_ble_mouse_init:()=>kL,analog_ble_mouse_input:()=>KL,analog_ble_mouse_keyboard_input:()=>tN,analog_ble_mouse_send_battery:()=>JL,analog_keyboard_input:()=>FL,analog_keyboard_str:()=>xL,analog_mouse_input:()=>vL,bitbot_motor:()=>mL,bitbot_move:()=>ML,bitbot_stop:()=>hL,ble_keyboard_connect:()=>BL,ble_keyboard_get_mac:()=>VL,ble_keyboard_mouse_connect:()=>zL,ble_keyboard_mouse_get_mac:()=>qL,ble_mouse_connect:()=>WL,ble_mouse_get_mac:()=>HL,cc_number:()=>qA,educore_ble_keyboard_input:()=>rN,educore_ble_sensor_connected:()=>uN,educore_ble_sensor_init:()=>aN,educore_buzzer:()=>eN,educore_buzzer_play_tone:()=>iN,educore_buzzer_play_tone_time:()=>nN,educore_buzzer_stop:()=>sN,educore_neopixel_clear:()=>pN,educore_neopixel_rgb:()=>oN,educore_rgb_light:()=>_N,esp32_music_get_tempo:()=>yA,esp32_music_reset:()=>UA,esp32_music_set_tempo:()=>xA,esp32_onboard_music_pitch:()=>bA,esp32_onboard_music_pitch_with_time:()=>VA,esp32_onboard_music_play_list:()=>GA,esp32_onboard_music_stop:()=>BA,general_key:()=>YL,general_key_tuple:()=>yL,get_power_output:()=>DL,ledswitch:()=>kA,mixbot_motor:()=>IL,mixbot_motor_status:()=>rL,mixbot_move:()=>dL,mixbot_stop:()=>lL,mouse_key:()=>XL,number:()=>wA,rm_actuator_get_led_bright:()=>jA,rm_actuator_get_led_state:()=>ZA,rm_actuator_led_bright:()=>zA,rm_actuator_led_brightness:()=>$A,rm_motor:()=>_L,set_all_power_output:()=>fL,set_power_output:()=>NL,special_key:()=>PL});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>kN,ai_sensor_ailocal_class:()=>YN,ai_sensor_ailocal_class_result:()=>vN,ai_sensor_ailocal_train:()=>PN,ai_sensor_asr_recognize:()=>VN,ai_sensor_audio_play:()=>xN,ai_sensor_audio_record:()=>XN,ai_sensor_barcode:()=>mN,ai_sensor_circle:()=>CN,ai_sensor_classifier_faces:()=>wN,ai_sensor_color:()=>NN,ai_sensor_color_chases:()=>FN,ai_sensor_color_chases_result:()=>fN,ai_sensor_config:()=>IN,ai_sensor_face:()=>UN,ai_sensor_find_20objects:()=>HN,ai_sensor_find_barcodes:()=>EN,ai_sensor_find_circles:()=>SN,ai_sensor_find_colors:()=>DN,ai_sensor_find_licenseplates:()=>GN,ai_sensor_find_lines:()=>gN,ai_sensor_find_qrcodes:()=>hN,ai_sensor_find_rects:()=>LN,ai_sensor_find_tags:()=>RN,ai_sensor_licenseplate:()=>BN,ai_sensor_line:()=>cN,ai_sensor_qrcode:()=>MN,ai_sensor_qrcode_lite:()=>lN,ai_sensor_rect:()=>AN,ai_sensor_rgb:()=>TN,ai_sensor_tag:()=>ON,ai_sensor_use_uart_init:()=>dN,ai_sensor_yolo_recognize:()=>yN,ai_sensor_yolo_recognize_result:()=>bN});var q={};t.r(q),t.d(q,{MICROPYTHON_AI_Speech_asr:()=>JN,MICROPYTHON_AI_Speech_unit:()=>KN,MICROPYTHON_AI_client:()=>WN});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>_D,mpython_blynk_app_notify:()=>tD,mpython_blynk_email:()=>oD,mpython_blynk_get_timers:()=>iD,mpython_blynk_on_connected:()=>jN,mpython_blynk_on_disconnected:()=>zN,mpython_blynk_run:()=>$N,mpython_blynk_sensor_data_to_app:()=>sD,mpython_blynk_set_property:()=>pD,mpython_blynk_setup:()=>aD,mpython_blynk_stop_timers:()=>eD,mpython_blynk_sync_virtual:()=>qN,mpython_blynk_terminal_widget_vpin:()=>QN,mpython_blynktimer:()=>nD,mpython_blynktimer_run:()=>ZN});var j={};t.r(j),t.d(j,{communicate_bluetooth_central_init:()=>kD,communicate_bluetooth_connect:()=>KD,communicate_bluetooth_disconnect:()=>JD,communicate_bluetooth_handle:()=>$D,communicate_bluetooth_is_connected:()=>qD,communicate_bluetooth_mac:()=>QD,communicate_bluetooth_peripheral_init:()=>HD,communicate_bluetooth_recv:()=>ZD,communicate_bluetooth_recv_only:()=>jD,communicate_bluetooth_scan:()=>WD,communicate_bluetooth_send:()=>zD,communicate_espnow_init:()=>tf,communicate_espnow_init_new:()=>ef,communicate_i2c_available:()=>hD,communicate_i2c_init:()=>dD,communicate_i2c_master_read:()=>MD,communicate_i2c_onboard:()=>uD,communicate_i2c_read:()=>lD,communicate_i2c_scan:()=>TD,communicate_i2c_write:()=>ID,communicate_ir_recv_init:()=>vD,communicate_ir_send_init:()=>VD,communicate_ow_init:()=>ND,communicate_ow_read:()=>FD,communicate_ow_reset:()=>fD,communicate_ow_scan:()=>DD,communicate_ow_select:()=>YD,communicate_ow_write:()=>PD,communicate_spi_buffer:()=>RD,communicate_spi_init:()=>ED,communicate_spi_onboard:()=>rD,communicate_spi_read:()=>cD,communicate_spi_read_output:()=>gD,communicate_spi_readinto:()=>CD,communicate_spi_readinto_output:()=>SD,communicate_spi_set:()=>OD,communicate_spi_write:()=>AD,communicate_spi_write_readinto:()=>LD,espnow_radio_channel:()=>af,espnow_radio_channel_new:()=>rf,espnow_radio_on_off:()=>df,espnow_radio_rec:()=>If,espnow_radio_recv:()=>Mf,espnow_radio_recv_certain_msg:()=>hf,espnow_radio_recv_certain_msg_new:()=>Ef,espnow_radio_recv_msg:()=>Tf,espnow_radio_recv_new:()=>mf,espnow_radio_send:()=>lf,espnow_radio_txpower:()=>uf,i2c_slave_onreceive:()=>mD,internal_variable:()=>XD,ir_recv_timeout:()=>bD,ir_transmit_busy:()=>wD,ir_transmit_conventional_data:()=>BD,ir_transmit_raw_code:()=>UD,ir_transmit_study_code:()=>GD,ir_whether_recv:()=>yD,lora_init:()=>Of,lora_packet:()=>Rf,lora_recv:()=>gf,lora_send:()=>cf,network_espnow_info:()=>sf,network_espnow_mac:()=>nf,network_espnow_recv:()=>_f,network_espnow_recv_handle:()=>pf,network_espnow_send:()=>of,recv_fun:()=>xD,urequests_attribute:()=>Sf,urequests_get:()=>Cf,urequests_method:()=>Af});var Z={};t.r(Z),t.d(Z,{display_animate:()=>zf,display_circle:()=>jf,display_color_seclet:()=>aF,display_draw_4strings:()=>kf,display_fill:()=>qf,display_lcd_use_i2c_init:()=>TF,display_line:()=>Kf,display_line_arbitrarily:()=>Hf,display_matrix_extern_bright_point:()=>yf,display_matrix_extern_bright_screen:()=>Vf,display_matrix_extern_clear:()=>vf,display_matrix_extern_get_pixel:()=>xf,display_matrix_extern_get_screen_pixel:()=>bf,display_matrix_extern_image_builtins:()=>Bf,display_matrix_extern_scroll_string:()=>Pf,display_matrix_extern_scroll_string_delay:()=>Yf,display_matrix_extern_shift:()=>Xf,display_matrix_extern_show_frame_string:()=>ff,display_matrix_extern_show_frame_string_delay:()=>Ff,display_matrix_extern_show_image:()=>Nf,display_matrix_extern_show_image_or_string_delay:()=>Df,display_matrix_use_i2c_init:()=>Lf,display_oled_drawPixel:()=>tF,display_oled_showBitmap:()=>$f,display_oled_use_i2c_init:()=>OF,display_onoff:()=>Jf,display_rect:()=>Wf,display_tm1650_power:()=>iF,display_tm1650_set_brightness:()=>_F,display_tm1650_show_dot:()=>sF,display_tm1650_show_num:()=>nF,display_tm_use_i2c_init:()=>eF,display_triangle:()=>Zf,display_use_i2c_init:()=>wf,extern_oled_bright_point:()=>PF,extern_oled_clear:()=>DF,extern_oled_get_pixel:()=>FF,extern_oled_hvline:()=>vF,extern_oled_line:()=>XF,extern_oled_scroll_string:()=>LF,extern_oled_scroll_string_delay:()=>NF,extern_oled_shape_rect:()=>YF,extern_oled_shift:()=>fF,extern_oled_show_frame_string:()=>SF,extern_oled_show_frame_string_delay:()=>AF,extern_oled_show_image:()=>RF,extern_oled_show_image_or_string_delay:()=>CF,extern_oled_show_image_xy:()=>cF,extern_oled_show_string:()=>gF,image_shift:()=>Qf,lcd_backlight:()=>mF,lcd_clear:()=>EF,lcd_print_string:()=>hF,lcd_show_image_or_string_delay:()=>MF,matrix_extern_image_arithmetic:()=>Gf,matrix_extern_image_invert:()=>Uf,tft_fill:()=>lF,tft_line_arbitrarily:()=>IF,tft_scroll_string_delay:()=>dF,tft_show_frame_string_delay:()=>rF,tft_show_image_or_string_delay:()=>uF,tft_show_image_xy:()=>pF,tft_use_spi_init:()=>oF});var $={};t.r($),t.d($,{bitbot_display_image_create:()=>EP,display_bright_point:()=>qF,display_bright_screen:()=>jF,display_clear:()=>HF,display_get_pixel:()=>QF,display_get_screen_pixel:()=>zF,display_image_builtins:()=>UF,display_image_builtins_all:()=>wF,display_image_create:()=>kF,display_scroll_string:()=>BF,display_scroll_string_delay:()=>GF,display_shift:()=>JF,display_show_frame_string:()=>bF,display_show_frame_string_delay:()=>VF,display_show_image:()=>xF,display_show_image_or_string_delay:()=>yF,draw_pointer:()=>wP,image_arithmetic:()=>WF,image_invert:()=>KF,mixbot_display_bright_screen:()=>hP,mixbot_display_get_ambientbright:()=>MP,mixbot_display_get_screen_pixel:()=>TP,mixbot_display_image_create:()=>IP,mixbot_display_rotate:()=>mP,mixgo_display_image_create_new:()=>eP,mixgome_display_font:()=>tP,mixgome_display_image_create:()=>ZF,mixgomini_display_image_create:()=>$F,mpython_display_hvline:()=>dP,mpython_display_line:()=>lP,mpython_display_shape_rect:()=>rP,mpython_pbm_image:()=>iP,onboard_oled_bright_point:()=>uP,onboard_oled_scroll_string_delay:()=>aP,onboard_oled_show_frame_string_delay:()=>pP,onboard_oled_show_image:()=>nP,onboard_oled_show_image_or_string_delay:()=>oP,onboard_oled_show_image_xy:()=>sP,onboard_oled_show_string:()=>_P,onboard_tft_bright_point:()=>YP,onboard_tft_bright_screen:()=>XP,onboard_tft_clear:()=>fP,onboard_tft_clock_clear:()=>GP,onboard_tft_clock_draw:()=>BP,onboard_tft_clock_get_rtctime:()=>bP,onboard_tft_clock_init:()=>yP,onboard_tft_clock_set_time:()=>VP,onboard_tft_display_hvline:()=>NP,onboard_tft_display_line:()=>DP,onboard_tft_display_shape_circle:()=>UP,onboard_tft_display_shape_rect:()=>LP,onboard_tft_fill:()=>xP,onboard_tft_get_pixel:()=>PP,onboard_tft_get_screen_pixel:()=>vP,onboard_tft_scroll_string:()=>SP,onboard_tft_scroll_string_delay:()=>AP,onboard_tft_shift:()=>FP,onboard_tft_show_frame_string:()=>gP,onboard_tft_show_frame_string_delay:()=>CP,onboard_tft_show_image:()=>OP,onboard_tft_show_image_or_string_delay:()=>cP,onboard_tft_show_image_xy:()=>RP});var tt={};t.r(tt),t.d(tt,{factory_block:()=>zP,factory_block_return:()=>jP,factory_block_return_with_textarea:()=>$P,factory_block_with_textarea:()=>ZP,factory_callMethod_noreturn:()=>QP,factory_callMethod_return:()=>qP,factory_declare:()=>JP,factory_from_import:()=>kP,factory_function_noreturn:()=>WP,factory_function_return:()=>KP,factory_import:()=>HP,folding_block:()=>tY});var et={};t.r(et),t.d(et,{inout_analog_atten:()=>MY,inout_analog_read:()=>aY,inout_analog_read_init:()=>TY,inout_analog_write:()=>_Y,inout_analog_write_init:()=>IY,inout_analog_write_set:()=>oY,inout_digital_init:()=>dY,inout_digital_read:()=>nY,inout_digital_write:()=>iY,inout_highlow:()=>eY,inout_pin_attachInterrupt:()=>rY,inout_pin_pressed:()=>uY,inout_pin_pressed_init:()=>hY,inout_pwm_analog_write:()=>sY,inout_pwm_analog_write_init:()=>lY,inout_pwm_analog_write_set_freq:()=>pY});var it={};t.r(it),t.d(it,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>xY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>vY,IOT_EMQX_PING:()=>yY,IOT_FORMATTING:()=>PY,IOT_FORMAT_STRING:()=>YY,IOT_MIXIO_NTP:()=>bY,IOT_MIXIO_PUBLISH:()=>SY,IOT_MIXIO_SUBSCRIBE:()=>AY,iot_client_onboard:()=>VY,iot_http_client:()=>BY,iot_http_data:()=>GY,iot_mixio_check:()=>DY,iot_mixio_connect:()=>CY,iot_mixio_connect_only:()=>NY,iot_mixio_disconnect:()=>LY,iot_mixio_format_msg:()=>FY,iot_mixio_format_topic:()=>fY,iot_mixly_key:()=>XY,iot_mqtt_client:()=>UY,iot_mqtt_data:()=>wY,iot_onenet_check:()=>cY,iot_onenet_connect:()=>EY,iot_onenet_disconnect:()=>OY,iot_onenet_publish:()=>gY,iot_onenet_publish_dict:()=>RY,iot_wifi_connect:()=>mY});var nt={};t.r(nt),t.d(nt,{educore_mqtt_connect:()=>Ov,educore_mqtt_connect_success:()=>Cv,educore_mqtt_subscribe_message:()=>Rv,educore_mqtt_topic_publish:()=>gv,educore_mqtt_topic_subscribe:()=>cv,educore_wifi_connect:()=>Ev,network_ap_connect:()=>jY,network_connect:()=>HY,network_get_connect:()=>KY,network_get_wifi:()=>zY,network_init:()=>kY,network_is_active:()=>qY,network_open:()=>QY,network_scan:()=>ZY,network_server:()=>$Y,network_socket_accept:()=>sv,network_socket_bind:()=>ev,network_socket_close:()=>uv,network_socket_connect:()=>iv,network_socket_init:()=>tv,network_socket_listen:()=>nv,network_socket_receive:()=>_v,network_socket_receive_from:()=>pv,network_socket_send:()=>ov,network_socket_send_to:()=>av,network_stop:()=>JY,network_wifi_connect:()=>WY,ntptime_address:()=>Tv,ntptime_time:()=>Iv,requests_attribute:()=>dv,requests_attribute2:()=>hv,requests_get:()=>rv,requests_get2:()=>Mv,requests_method:()=>lv,requests_post:()=>mv});var st={};t.r(st),t.d(st,{get_potential_num:()=>Sv,nova_g1_motor:()=>Av,nova_g1_spk_en:()=>Nv,nova_g1_usb:()=>Lv});var _t={};t.r(_t),t.d(_t,{pe_g1_battery_left:()=>fv,pe_g1_dc_motor:()=>Fv,pe_g1_dc_motor_speed:()=>Pv,pe_g1_servo_get_angle:()=>Xv,pe_g1_servo_get_speed:()=>xv,pe_g1_servo_set_angle:()=>Yv,pe_g1_servo_set_speed:()=>vv,pe_g1_use_i2c_init:()=>Dv});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>sX,CI130X_GET_THE_RECOGNIZED_CMD:()=>nX,CI130X_GET_WHETHER_IDENTIFY:()=>iX,CI130X_IDENTIFY_AND_SAVE:()=>eX,CI130X_SET_SYSTEM_CMD:()=>_X,HCSR04:()=>xX,PS2_Button:()=>VX,PS2_Buttons:()=>BX,PS2_Buttons_new:()=>JX,PS2_State:()=>GX,PS2_init:()=>yX,PS2_init_new:()=>WX,PS2_stk:()=>UX,PS2_stk_new:()=>QX,PS2_vibration:()=>bX,PS2_vibration_new:()=>KX,RTC_get_time:()=>kX,RTC_set_date:()=>kv,RTC_set_datetime:()=>wX,RTC_set_time:()=>wv,camera_sensor_init:()=>Sx,camera_sensor_result:()=>Ax,educore_body_sensor:()=>Tx,educore_button_sensor_extern:()=>Ex,educore_camera_sensor:()=>Cx,educore_infrared_sensor:()=>mx,educore_soilhum_sensor:()=>Mx,educore_temp_sensor:()=>gx,educore_temphum_sensor:()=>hx,educore_ultrasonic_sensor:()=>Rx,esp32_s2_weather_init:()=>PX,esp32_s2_weather_rain:()=>vX,esp32_s2_weather_wd:()=>YX,esp32_s2_weather_ws:()=>XX,extern_rfid_read:()=>OX,extern_rfid_readcontent:()=>cX,extern_rfid_readid:()=>RX,extern_rfid_status:()=>SX,extern_rfid_write:()=>gX,extern_rfid_write_return:()=>CX,gnss_get_data:()=>jX,gnss_have_data:()=>ZX,interaction_whether_to_interaction:()=>$v,interaction_whether_to_interaction_SANT:()=>tX,mixbot_sensor_extern_get_addr:()=>px,mixbot_sensor_extern_set_addr:()=>ax,pm25_get_data:()=>zX,radar_set_DETECTION_THRESHOLD:()=>jv,radar_set_DETECTION_THRESHOLD_SANT:()=>Zv,robot_button_extern_get_value:()=>$X,robot_color_extern_get_value:()=>sx,robot_infrared_extern_get_value:()=>ex,robot_infrared_extern_grey_get_value:()=>ix,robot_potentiometer_extern_get_value:()=>nx,robot_sonar_extern_get_value:()=>_x,robot_sonar_extern_led:()=>ox,robot_touch_extern_get_value:()=>tx,sensor_APDS9960_extern:()=>pX,sensor_DS18X20:()=>Ix,sensor_LTR308_extern:()=>aX,sensor_LTR390UV_extern:()=>IX,sensor_MAX30102_extern:()=>oX,sensor_QMC5883L_extern:()=>TX,sensor_VL530LX_extern:()=>mX,sensor_aht11_extern:()=>hX,sensor_bmp:()=>Qv,sensor_dht11:()=>HX,sensor_distance_hrsc04:()=>Uv,sensor_hp203_extern:()=>uX,sensor_ltr381_extern:()=>dX,sensor_mixgo_extern_button_attachInterrupt:()=>Bv,sensor_mixgo_extern_button_get_presses:()=>Vv,sensor_mixgo_extern_button_is_pressed:()=>yv,sensor_mixgo_extern_button_was_pressed:()=>bv,sensor_mixgo_extern_light:()=>Hv,sensor_mixgo_extern_pin_near:()=>Kv,sensor_mixgo_extern_sound:()=>Wv,sensor_mixgoce_hot_wheel_degrees:()=>FX,sensor_mixgoce_hot_wheel_is_touched:()=>fX,sensor_mpu9250_attachGestureInterrupt:()=>Gv,sensor_read_humiture:()=>Ox,sensor_rtc_init:()=>Jv,sensor_sht:()=>qv,sensor_shtc3_extern:()=>MX,sensor_spl06_001_extern:()=>rX,sensor_ucs12071_extern:()=>lX,sensor_use_i2c_init:()=>zv,sensor_use_spi_init:()=>EX,sensor_use_uart_init:()=>qX,sensor_weather_solo_init:()=>ux,sensor_weather_solo_rain:()=>lx,sensor_weather_solo_wd:()=>rx,sensor_weather_solo_ws:()=>dx,sensor_weigh_init:()=>Lx,ultrasonic_sensor_read_distance:()=>cx,weather_data:()=>AX,weather_have_data:()=>LX,weather_set_label:()=>DX,weather_uart_mixio:()=>NX,weigh_sensor_get_weight:()=>Nx});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>Ab,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Sb,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>Cb,CI130X_IDENTIFY_AND_SAVE_SANT:()=>gb,CI130X_SET_SYSTEM_CMD_SANT:()=>Lb,HCSR04:()=>yx,bitbot_als_num:()=>ib,dht11:()=>rb,educore_button_sensor:()=>mb,educore_button_was_pressed:()=>Eb,educore_gyroscope_sensor:()=>Tb,educore_gyroscope_sensor_read:()=>Mb,educore_gyroscope_sensor_shake:()=>hb,educore_light_sensor:()=>Ib,educore_rfid_sensor:()=>Ob,educore_rfid_sensor_scan:()=>Rb,educore_rfid_sensor_scan_data:()=>cb,educore_voice_sensor:()=>db,number1:()=>bx,number2:()=>Vx,number3:()=>Bx,number4:()=>Gx,number5:()=>Ux,number6:()=>wx,number7:()=>kx,onboard_RTC_get_time:()=>vy,onboard_RTC_get_time_str:()=>yy,onboard_RTC_get_timestamp:()=>Xy,onboard_RTC_set_datetime:()=>Py,onboard_RTC_settime_string:()=>Yy,onboard_RTC_timestamp_totuple:()=>xy,rfid_readcontent:()=>_y,rfid_readid:()=>sy,rfid_write:()=>oy,rfid_write_return:()=>py,sensor_LTR308:()=>$x,sensor_adxl345_get_acceleration:()=>hy,sensor_aht11:()=>iy,sensor_bitbot_ALS:()=>eb,sensor_button_get_presses:()=>_b,sensor_button_is_pressed:()=>nb,sensor_button_was_pressed:()=>sb,sensor_compass_reset:()=>gy,sensor_ds18x20:()=>jx,sensor_eulerangles:()=>uy,sensor_get_acceleration:()=>ay,sensor_get_temperature:()=>ny,sensor_hp203:()=>ey,sensor_light:()=>ub,sensor_lm35:()=>Zx,sensor_mixbot_get_gyro:()=>tb,sensor_mixbot_patrol_calibrate:()=>jy,sensor_mixbot_patrol_value:()=>Zy,sensor_mixbot_temperature:()=>$y,sensor_mixgo_LTR308:()=>Qx,sensor_mixgo_button_attachInterrupt:()=>Px,sensor_mixgo_button_get_presses:()=>Fx,sensor_mixgo_button_is_pressed:()=>Dx,sensor_mixgo_button_was_pressed:()=>fx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>By,sensor_mixgo_cc_mmc5603_get_angle:()=>Vy,sensor_mixgo_cc_mmc5603_get_magnetic:()=>by,sensor_mixgo_light:()=>ab,sensor_mixgo_nova_LTR308:()=>zx,sensor_mixgo_nova_pin_near:()=>Jx,sensor_mixgo_pin_near:()=>Kx,sensor_mixgo_pin_near_double:()=>Wx,sensor_mixgo_pin_near_single:()=>Hx,sensor_mixgo_pin_pressed:()=>Ty,sensor_mixgo_sant_color:()=>qx,sensor_mixgo_touch_slide:()=>Iy,sensor_mixgocar42_button_attachInterrupt:()=>xx,sensor_mixgocar42_button_get_presses:()=>Xx,sensor_mixgocar42_button_is_pressed:()=>Yx,sensor_mixgocar42_button_was_pressed:()=>vx,sensor_mixgocar_battery_left:()=>zy,sensor_mixgocar_pin_near:()=>Qy,sensor_mixgocar_pin_near_line:()=>Jy,sensor_mixgocar_pin_near_state_change:()=>qy,sensor_mixgoce_pin_pressed:()=>ly,sensor_mixgoce_temperature:()=>Uy,sensor_mixgome_temperature:()=>Gy,sensor_mpu9250_calibrate_compass:()=>Oy,sensor_mpu9250_field_strength:()=>cy,sensor_mpu9250_gesture:()=>ry,sensor_mpu9250_get_acceleration:()=>dy,sensor_mpu9250_get_gyro:()=>Ey,sensor_mpu9250_get_magnetic:()=>my,sensor_mpu9250_temperature:()=>Ry,sensor_mpython_pin_pressed:()=>My,sensor_mpython_qmi8658_get_gyro:()=>wy,sensor_mpython_qmi8658_temperature:()=>ky,sensor_onboard_compass_reset:()=>Fy,sensor_onboard_mpu9250_calibrate_compass:()=>Ny,sensor_onboard_mpu9250_field_strength:()=>fy,sensor_onboard_mpu9250_gesture:()=>Cy,sensor_onboard_mpu9250_get_acceleration:()=>Sy,sensor_onboard_mpu9250_get_gyro:()=>Ly,sensor_onboard_mpu9250_get_magnetic:()=>Ay,sensor_onboard_mpu9250_temperature:()=>Dy,sensor_pin_near:()=>pb,sensor_pin_pressed:()=>ob,sensor_read:()=>lb,sensor_rm_acc:()=>Ky,sensor_rm_battery_left:()=>Wy,sensor_rm_pin_near_double:()=>Hy,sensor_sound:()=>ty});var at={};t.r(at),t.d(at,{serial_any:()=>Pb,serial_print:()=>Nb,serial_print_byte:()=>Db,serial_print_hex:()=>Fb,serial_println:()=>fb,serial_read_from_ai:()=>wb,serial_readline:()=>vb,serial_readstr:()=>Yb,serial_send_to_ai:()=>Ub,serial_softserial:()=>Xb,serial_softserial_new:()=>xb,system_input:()=>yb,system_print:()=>bb,system_print_end:()=>Bb,system_print_inline:()=>Vb,system_print_many:()=>Gb});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>tV,Timer_init:()=>MV,base_delay:()=>EV,controls_delay:()=>_V,controls_delay_new:()=>oV,controls_end_program:()=>iV,controls_millis:()=>eV,controls_uname:()=>sV,reset:()=>nV,system_bitbot_shutdown:()=>TV,system_device_name:()=>Zb,system_device_serial_number:()=>$b,system_event_bus_source:()=>zb,system_event_bus_value:()=>jb,system_machine_reset:()=>IV,system_on_event:()=>Jb,system_raise_event:()=>Kb,system_reset:()=>Hb,system_run_in_background:()=>kb,system_ticks_diff:()=>uV,system_timer:()=>aV,system_timer_init:()=>rV,system_timestamp:()=>Qb,system_value:()=>qb,system_wait:()=>Wb,system_wdt_feed:()=>lV,system_wdt_init:()=>dV,time_ticks_diff:()=>mV,timer:()=>pV,timer2:()=>hV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>PV,Air_now_content:()=>SV,Geo_moon_content:()=>vV,Geo_sun_content:()=>YV,Life_suggestion_content:()=>LV,Location_search_content:()=>DV,Tide_daily_content:()=>NV,WEATHER_DAILY:()=>RV,WEATHER_HOUR:()=>cV,WEATHER_NOW:()=>OV,Weather_alarm_content:()=>AV,Weather_daily:()=>fV,Weather_daily_content:()=>FV,Weather_now:()=>gV,Weather_now_content:()=>CV});var dt={};t.r(dt),t.d(dt,{controls_pin_attachInterrupt:()=>ZV,inout_analog_atten:()=>wV,inout_analog_write:()=>GV,inout_analog_write_init:()=>KV,inout_analog_write_set:()=>UV,inout_analog_write_set_freq:()=>QV,inout_digital_init:()=>WV,inout_digital_read:()=>BV,inout_digital_write:()=>VV,inout_highlow:()=>bV,inout_pinMode:()=>qV,inout_pin_attachInterrupt:()=>HV,inout_pin_pressed:()=>kV,inout_pin_pressed_init:()=>JV,pin_pressed:()=>jV,pin_pressed_init:()=>zV});var lt={};t.r(lt),t.d(lt,{analog_input:()=>pB,analog_output:()=>uB,espnow_channel:()=>sB,haskylens_model:()=>_B,i2c_A_pin:()=>rB,i2c_B_pin:()=>dB,pins_analog:()=>hB,pins_analog_pin:()=>mB,pins_axis:()=>XB,pins_brightness:()=>xB,pins_builtinimg:()=>NB,pins_builtinimg_extern:()=>DB,pins_button:()=>RB,pins_buttonB:()=>cB,pins_dac:()=>EB,pins_dac_pin:()=>OB,pins_digital:()=>tB,pins_digital_dot:()=>kB,pins_digital_pin:()=>eB,pins_exlcdh:()=>YB,pins_exlcdv:()=>vB,pins_imglist:()=>fB,pins_input_pin:()=>iB,pins_one_more:()=>wB,pins_output_pin:()=>nB,pins_playlist:()=>FB,pins_playlist_extern:()=>PB,pins_pwm:()=>gB,pins_pwm_pin:()=>CB,pins_radio_datarate:()=>UB,pins_radio_power:()=>GB,pins_serial:()=>LB,pins_tone_notes:()=>BB,pins_touch:()=>AB,pins_touch_pin:()=>SB,pins_tts_bgmusic:()=>VB,pins_tts_builtin_music:()=>bB,pins_tts_voice:()=>yB,pwm_input:()=>oB,pwm_output:()=>aB,spi_A_pin:()=>lB,spi_B_pin:()=>IB,spi_C_pin:()=>TB,spi_D_pin:()=>MB});var It={};t.r(It),t.d(It,{mini_g2_rfid_readcontent:()=>WB,mini_g2_rfid_readid:()=>HB,mini_g2_rfid_status:()=>QB,mini_g2_rfid_write:()=>KB,mini_g2_rfid_write_outcome:()=>JB});var Tt={};t.r(Tt),t.d(Tt,{inout_analog_atten:()=>sG,inout_analog_write:()=>ZB,inout_analog_write_init:()=>nG,inout_analog_write_set:()=>$B,inout_digital_init:()=>iG,inout_digital_read:()=>jB,inout_digital_write:()=>zB,inout_highlow:()=>qB,inout_pin_attachInterrupt:()=>eG,inout_pin_pressed:()=>tG,inout_pin_pressed_init:()=>_G});var Mt={};t.r(Mt),t.d(Mt,{analog_input:()=>MG,analog_output:()=>mG,espnow_channel:()=>IG,haskylens_model:()=>TG,i2c_A_pin:()=>EG,i2c_B_pin:()=>OG,pins_analog:()=>AG,pins_analog_pin:()=>SG,pins_axis:()=>BG,pins_brightness:()=>wG,pins_builtinimg:()=>XG,pins_builtinimg_extern:()=>xG,pins_button:()=>pG,pins_buttonB:()=>aG,pins_dac:()=>fG,pins_dac_pin:()=>DG,pins_digital:()=>oG,pins_digital_dot:()=>zG,pins_digital_pin:()=>uG,pins_exlcdh:()=>GG,pins_exlcdv:()=>UG,pins_imglist:()=>yG,pins_input_pin:()=>rG,pins_interrupt:()=>YG,pins_one_more:()=>qG,pins_output_pin:()=>dG,pins_playlist:()=>bG,pins_playlist_extern:()=>VG,pins_pwm:()=>NG,pins_pwm_input:()=>lG,pins_pwm_pin:()=>LG,pins_radio_datarate:()=>QG,pins_radio_power:()=>JG,pins_serial:()=>vG,pins_tone_notes:()=>KG,pins_touch:()=>PG,pins_touch_pin:()=>FG,pins_tts_bgmusic:()=>WG,pins_tts_builtin_music:()=>HG,pins_tts_voice:()=>kG,pwm_output:()=>hG,spi_A_pin:()=>RG,spi_B_pin:()=>cG,spi_C_pin:()=>gG,spi_D_pin:()=>CG});var ht={};t.r(ht),t.d(ht,{mini_g2_rfid_readcontent:()=>ZG,mini_g2_rfid_readid:()=>jG,mini_g2_rfid_status:()=>eU,mini_g2_rfid_write:()=>$G,mini_g2_rfid_write_outcome:()=>tU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Dt,controls_typeLists:()=>ft,lists_zip:()=>Ft,lists_zip_container:()=>Pt,lists_zip_item:()=>Yt,unpack_iterable_object:()=>vt,variables_change:()=>Lt,variables_get:()=>St,variables_global:()=>Nt,variables_set:()=>At});var i={};t.r(i),t.d(i,{base_setup:()=>yt,controls_delay:()=>bt,controls_end_program:()=>Vt,controls_except:()=>jt,controls_finally:()=>Zt,controls_flow_statements:()=>Ht,controls_for:()=>Wt,controls_forEach:()=>Ut,controls_for_range:()=>Kt,controls_if:()=>Bt,controls_if_else:()=>qt,controls_if_elseif:()=>Qt,controls_if_if:()=>Jt,controls_lambda:()=>te,controls_main:()=>xt,controls_pass:()=>ee,controls_range:()=>Gt,controls_repeat_ext:()=>$t,controls_thread:()=>ie,controls_try:()=>zt,controls_try_finally:()=>kt,controls_whileUntil:()=>wt,datetime_fromtimestamp:()=>ae,do_while:()=>ne,garbage_collection:()=>se,gene_unique_identifier:()=>ue,get_mem_alloc:()=>_e,get_mem_free:()=>oe,get_unique_identifier:()=>pe});var n={};t.r(n),t.d(n,{base_map:()=>Fe,generate_cartesian_product:()=>Ye,math_arithmetic:()=>Te,math_bit:()=>he,math_constant:()=>le,math_constant_mp:()=>Ie,math_constrain:()=>Ce,math_dec:()=>Ee,math_indexer_number:()=>Ae,math_map:()=>Se,math_max_min:()=>Re,math_number:()=>de,math_number_base_conversion:()=>ce,math_random:()=>ge,math_random_seed:()=>Le,math_round:()=>Ne,math_selfcalcu:()=>Me,math_to_int:()=>Oe,math_trig:()=>me,text_to_number:()=>De,text_to_number_skulpt:()=>fe,turn_to_int:()=>Pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ve,char_to_ascii:()=>Be,number_to_text:()=>Ge,os_system:()=>di,text:()=>Xe,text_capital:()=>qe,text_center:()=>ze,text_char:()=>ye,text_char_at:()=>ke,text_char_at2:()=>we,text_char_at3:()=>pi,text_compareTo:()=>oi,text_compare_to:()=>Qe,text_create_with_container:()=>ni,text_create_with_item:()=>si,text_encode:()=>ui,text_equals_starts_ends:()=>Je,text_eval:()=>ri,text_find:()=>je,text_format:()=>ii,text_format_noreturn:()=>ai,text_join:()=>be,text_join_seq:()=>Ze,text_length:()=>Ue,text_random_char:()=>He,text_replace:()=>$e,text_split:()=>ti,text_strip:()=>ei,text_substring:()=>Ke,text_substring2:()=>We,text_substring3:()=>_i,text_textarea:()=>xe});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Ji,content_in_lists:()=>qi,enumerate:()=>Qi,list_many_input:()=>Xi,list_tolist:()=>Vi,list_tolist2:()=>Ki,list_trig:()=>Pi,lists_2d_get_col_row_data:()=>hi,lists_2d_get_data_with_col_row:()=>Mi,lists_append_extend:()=>gi,lists_change_to:()=>vi,lists_change_to_general:()=>yi,lists_clear:()=>Ni,lists_create_with:()=>mi,lists_create_with2:()=>Bi,lists_create_with_container:()=>Oi,lists_create_with_item:()=>Ri,lists_create_with_noreturn:()=>xi,lists_create_with_text:()=>Ei,lists_create_with_text2:()=>Gi,lists_del_general:()=>bi,lists_find:()=>Fi,lists_getIndex3:()=>Ui,lists_getSublist3:()=>wi,lists_get_index:()=>Ii,lists_get_random_item:()=>Ci,lists_get_random_sublist:()=>Si,lists_get_sublist:()=>Ti,lists_insert_value:()=>Ai,lists_insert_value2:()=>Hi,lists_pop:()=>fi,lists_remove_at:()=>Di,lists_remove_at2:()=>Wi,lists_reverse:()=>Li,lists_setIndex3:()=>ki,lists_set_index:()=>ci,lists_sort:()=>Yi});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>ln,dicts_add_or_change:()=>sn,dicts_clear:()=>pn,dicts_create_with:()=>ji,dicts_create_with_container:()=>Zi,dicts_create_with_item:()=>$i,dicts_create_with_noreturn:()=>Mn,dicts_deldict:()=>dn,dicts_delete:()=>_n,dicts_get:()=>en,dicts_get_default:()=>nn,dicts_items:()=>an,dicts_keys:()=>tn,dicts_length:()=>rn,dicts_pop:()=>In,dicts_setdefault:()=>Tn,dicts_to_json:()=>mn,dicts_to_json2:()=>Rn,dicts_to_to:()=>On,dicts_todict:()=>hn,dicts_update:()=>on,dicts_values:()=>un,json_to_dicts:()=>En});var p={};t.r(p),t.d(p,{logic_boolean:()=>Ln,logic_compare:()=>gn,logic_compare_continous:()=>Cn,logic_is:()=>Fn,logic_is_in:()=>fn,logic_negate:()=>An,logic_null:()=>Nn,logic_operation:()=>Sn,logic_tobool:()=>Pn,logic_true_or_false:()=>Dn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>ts,sdcard_use_spi_init:()=>$n,storage_can_write_ornot:()=>Gn,storage_change_dir:()=>jn,storage_close_file:()=>wn,storage_delete_file:()=>Hn,storage_file_seek:()=>Jn,storage_file_tell:()=>Kn,storage_file_write:()=>yn,storage_fileopen:()=>vn,storage_fileopen_new:()=>Xn,storage_fileopen_new_encoding:()=>xn,storage_get_a_line:()=>Bn,storage_get_contents:()=>Vn,storage_get_contents_without_para:()=>bn,storage_get_current_dir:()=>Qn,storage_get_file_size:()=>Wn,storage_get_filename:()=>Un,storage_is_file:()=>Zn,storage_list_all_files:()=>kn,storage_make_dir:()=>qn,storage_open_file_with_os:()=>Yn,storage_rename:()=>zn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>ps,procedures_callreturn:()=>as,procedures_defnoreturn:()=>ns,procedures_defreturn:()=>ss,procedures_ifreturn:()=>us,procedures_mutatorarg:()=>os,procedures_mutatorcontainer:()=>_s,procedures_return:()=>rs});var r={};t.r(r),t.d(r,{tuple_change_to:()=>gs,tuple_create_with:()=>ls,tuple_create_with_container:()=>Is,tuple_create_with_item:()=>Ts,tuple_create_with_noreturn:()=>Ls,tuple_create_with_text2:()=>Ms,tuple_create_with_text_return:()=>hs,tuple_del:()=>Os,tuple_find:()=>Cs,tuple_getIndex:()=>ms,tuple_getSublist:()=>As,tuple_get_random_item:()=>Ds,tuple_get_sublist:()=>Ns,tuple_input:()=>Fs,tuple_join:()=>Rs,tuple_length:()=>Es,tuple_max:()=>cs,tuple_totuple:()=>fs,tuple_trig:()=>Ss});var d={};t.r(d),t.d(d,{set_add_discard:()=>Gs,set_clear:()=>bs,set_create_with:()=>Ys,set_create_with_container:()=>vs,set_create_with_item:()=>Xs,set_create_with_text_return:()=>ks,set_length:()=>xs,set_operate:()=>Vs,set_operate_update:()=>Bs,set_pop:()=>ys,set_sub:()=>Us,set_toset:()=>Hs,set_update:()=>ws});var l={};t.r(l),t.d(l,{html_content:()=>qs,html_content_more:()=>zs,html_document:()=>Ks,html_form:()=>Zs,html_head_body:()=>Qs,html_style:()=>js,html_style_color:()=>t_,html_style_content:()=>$s,html_text:()=>e_,html_title:()=>Js});var I={};t.r(I),t.d(I,{attribute_access:()=>M_,function_call:()=>l_,function_call_container:()=>I_,function_call_item:()=>T_,raw_block:()=>s_,raw_empty:()=>o_,raw_expression:()=>__,raw_table:()=>n_,text_comment:()=>p_,text_print_multiple:()=>u_,text_print_multiple_container:()=>r_,text_print_multiple_item:()=>d_,type_check:()=>a_});var T={};t.r(T),t.d(T,{controls_type:()=>R_,controls_typeLists:()=>c_,lists_zip:()=>g_,unpack_iterable_object:()=>C_,variables_change:()=>E_,variables_get:()=>h_,variables_global:()=>O_,variables_set:()=>m_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>v_,base_setup:()=>A_,controls_delay:()=>Y_,controls_flow_statements:()=>P_,controls_for:()=>D_,controls_forEach:()=>V_,controls_for_range:()=>f_,controls_if:()=>L_,controls_interrupts:()=>y_,controls_lambda:()=>G_,controls_main:()=>S_,controls_millis:()=>X_,controls_nointerrupts:()=>b_,controls_pass:()=>w_,controls_range:()=>B_,controls_repeat:()=>z_,controls_repeat_ext:()=>W_,controls_thread:()=>k_,controls_try_finally:()=>N_,controls_whileUntil:()=>F_,datetime_fromtimestamp:()=>j_,do_while:()=>H_,garbage_collection:()=>K_,gene_unique_identifier:()=>Z_,get_mem_alloc:()=>J_,get_mem_free:()=>Q_,get_unique_identifier:()=>q_,reset:()=>x_,time_sleep:()=>U_});var h={};t.r(h),t.d(h,{base_map:()=>Ro,generate_cartesian_product:()=>go,math_arithmetic:()=>no,math_bit:()=>io,math_constant:()=>to,math_constant_mp:()=>eo,math_constrain:()=>Io,math_dec:()=>po,math_indexer_number:()=>ho,math_map:()=>lo,math_max_min:()=>uo,math_number:()=>$_,math_number_base_conversion:()=>To,math_random:()=>ro,math_random_seed:()=>Mo,math_round:()=>mo,math_selfcalcu:()=>so,math_single:()=>_o,math_to_int:()=>ao,math_trig:()=>oo,text_to_number:()=>Eo,text_to_number_skulpt:()=>Oo,turn_to_int:()=>co});var m={};t.r(m),t.d(m,{ascii_to_char:()=>No,char_to_ascii:()=>Do,number_to_text:()=>fo,os_system:()=>Zo,text:()=>Co,text_capital:()=>Vo,text_center:()=>Bo,text_char:()=>Ao,text_char_at:()=>Yo,text_char_at2:()=>Po,text_char_at3:()=>qo,text_compareTo:()=>Qo,text_compare_to:()=>xo,text_encode:()=>zo,text_equals_starts_ends:()=>Xo,text_eval:()=>jo,text_find:()=>Go,text_format:()=>Wo,text_format_noreturn:()=>Ko,text_join:()=>Lo,text_join_seq:()=>Uo,text_length:()=>Fo,text_random_char:()=>vo,text_replace:()=>wo,text_split:()=>ko,text_strip:()=>Ho,text_substring:()=>bo,text_substring2:()=>yo,text_substring3:()=>Jo,text_textarea:()=>So});var E={};t.r(E),t.d(E,{content_in_lists:()=>Yp,enumerate:()=>Pp,list_many_input:()=>Ep,list_tolist:()=>fp,list_tolist2:()=>Fp,list_trig:()=>Mp,lists_2d_get_col_row_data:()=>ep,lists_2d_get_data_with_col_row:()=>tp,lists_append_extend:()=>op,lists_change_to:()=>mp,lists_change_to_general:()=>Rp,lists_clear:()=>dp,lists_create_with:()=>ip,lists_create_with2:()=>gp,lists_create_with_noreturn:()=>Op,lists_create_with_text:()=>np,lists_create_with_text2:()=>Cp,lists_del_general:()=>cp,lists_find:()=>lp,lists_getIndex3:()=>Sp,lists_getSublist3:()=>Ap,lists_get_index:()=>sp,lists_get_random_item:()=>pp,lists_get_random_sublist:()=>ap,lists_get_sublist:()=>$o,lists_insert_value:()=>up,lists_insert_value2:()=>Np,lists_pop:()=>Tp,lists_remove_at:()=>Ip,lists_remove_at2:()=>Dp,lists_reverse:()=>rp,lists_setIndex3:()=>Lp,lists_set_index:()=>_p,lists_sort:()=>hp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>Wp,dicts_add_or_change:()=>bp,dicts_clear:()=>Gp,dicts_create_with:()=>vp,dicts_create_with_noreturn:()=>Qp,dicts_deldict:()=>Hp,dicts_delete:()=>Vp,dicts_get:()=>xp,dicts_get_default:()=>yp,dicts_items:()=>Up,dicts_keys:()=>Xp,dicts_length:()=>kp,dicts_pop:()=>Kp,dicts_setdefault:()=>Jp,dicts_to_json:()=>zp,dicts_to_json2:()=>$p,dicts_to_to:()=>Zp,dicts_todict:()=>qp,dicts_update:()=>Bp,dicts_values:()=>wp,json_to_dicts:()=>jp});var R={};t.r(R),t.d(R,{logic_boolean:()=>sa,logic_compare:()=>ta,logic_compare_continous:()=>ea,logic_is:()=>aa,logic_is_in:()=>pa,logic_negate:()=>na,logic_null:()=>_a,logic_operation:()=>ia,logic_tobool:()=>ua,logic_true_or_false:()=>oa});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Ya,sdcard_use_spi_init:()=>Pa,storage_can_write_ornot:()=>Ea,storage_change_dir:()=>La,storage_close_file:()=>Ra,storage_delete_file:()=>ga,storage_file_seek:()=>Aa,storage_file_tell:()=>Sa,storage_file_write:()=>Ta,storage_fileopen:()=>da,storage_fileopen_new:()=>la,storage_fileopen_new_encoding:()=>Ia,storage_get_a_line:()=>ma,storage_get_contents:()=>ha,storage_get_contents_without_para:()=>Ma,storage_get_current_dir:()=>Na,storage_get_file_size:()=>Ca,storage_get_filename:()=>Oa,storage_is_file:()=>Fa,storage_list_all_files:()=>ca,storage_make_dir:()=>Da,storage_open_file_with_os:()=>ra,storage_rename:()=>fa});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>ya,procedures_callreturn:()=>xa,procedures_defnoreturn:()=>Xa,procedures_defreturn:()=>va,procedures_ifreturn:()=>ba,procedures_return:()=>Va});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ja,tuple_create_with:()=>Ba,tuple_create_with_noreturn:()=>ja,tuple_create_with_text2:()=>Ga,tuple_create_with_text_return:()=>Ua,tuple_del:()=>Ha,tuple_find:()=>Qa,tuple_getIndex:()=>wa,tuple_getSublist:()=>za,tuple_get_random_item:()=>$a,tuple_get_sublist:()=>Za,tuple_input:()=>eu,tuple_join:()=>Wa,tuple_length:()=>ka,tuple_max:()=>Ka,tuple_totuple:()=>tu,tuple_trig:()=>qa});var S={};t.r(S),t.d(S,{set_add_discard:()=>au,set_clear:()=>_u,set_create_with:()=>iu,set_create_with_text_return:()=>du,set_length:()=>nu,set_operate:()=>ou,set_operate_update:()=>pu,set_pop:()=>su,set_sub:()=>uu,set_toset:()=>lu,set_update:()=>ru});var A={};t.r(A),t.d(A,{html_content:()=>hu,html_content_more:()=>mu,html_document:()=>Iu,html_form:()=>Ou,html_head_body:()=>Mu,html_style:()=>Eu,html_style_content:()=>Ru,html_text:()=>cu,html_title:()=>Tu});var L={};t.r(L),t.d(L,{attribute_access:()=>Du,function_call:()=>Nu,raw_block:()=>gu,raw_empty:()=>Su,raw_expression:()=>Cu,raw_table:()=>Au,type_check:()=>Lu});var N={};t.r(N),t.d(N,{PIN_init:()=>fr,actuator_extern_get_led_bright:()=>Gu,actuator_extern_get_led_state:()=>Uu,actuator_extern_led_bright:()=>Bu,actuator_extern_led_brightness:()=>wu,actuator_ms32006_dcmotor:()=>ju,actuator_ms32006_init:()=>zu,actuator_ms32006_stepper:()=>Zu,actuator_neopixel_init:()=>$u,actuator_neopixel_rgb:()=>tr,actuator_neopixel_rgb_all:()=>er,actuator_neopixel_write:()=>ir,actuator_use_uart_init:()=>nr,esp32_music_get_tempo_extern:()=>yu,esp32_music_pitch:()=>Yu,esp32_music_pitch_init:()=>Pu,esp32_music_pitch_with_time:()=>vu,esp32_music_play_list:()=>Xu,esp32_music_reset_extern:()=>bu,esp32_music_set_tempo_extern:()=>xu,esp32_music_stop:()=>Vu,mixbot_actuator_extern_get_addr:()=>Nr,mixbot_actuator_extern_set_addr:()=>Dr,mixbot_addr_extern:()=>Tr,parrot_PIN_init:()=>vr,parrot_move_speed:()=>Xr,pin_led_bright:()=>Fr,player_insert_music:()=>ur,player_play_music:()=>ar,player_set_mode:()=>pr,player_set_play:()=>_r,player_set_volume:()=>or,player_whether_stop:()=>sr,robot_led_extern:()=>Er,robot_led_extern_get_value:()=>Or,robot_motor_extern:()=>Mr,robot_motor_extern_get_speed:()=>hr,robot_servo_extern_absolute_run:()=>Cr,robot_servo_extern_get_status:()=>Rr,robot_servo_extern_relative_continue:()=>Lr,robot_servo_extern_relative_origin:()=>Sr,robot_servo_extern_relative_run:()=>Ar,robot_servo_extern_stop:()=>gr,robot_servo_extern_stop_mode:()=>cr,robot_traffic_light_extern:()=>mr,servo_PIN_init:()=>Pr,servo_get_angle:()=>Qu,servo_get_speed:()=>qu,servo_init:()=>ku,servo_move:()=>Hu,servo_move_angle:()=>Yr,servo_set_angle:()=>Ku,servo_set_speed:()=>Ju,servo_speed_360:()=>Wu,syn6288_builtin_voice:()=>lr,syn6288_get_voice:()=>dr,syn6288_set_voice:()=>rr,syn6288_tts_play:()=>Ir});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>ld,actuator_dc_motor_stop:()=>Id,actuator_get_led_bright:()=>Br,actuator_get_led_state:()=>Gr,actuator_led_bright:()=>Vr,actuator_led_brightness:()=>Ur,actuator_mixbot_buzzer_on_off:()=>Ed,actuator_mixgo_nova_mic_get:()=>Cd,actuator_mixgo_nova_mic_set:()=>gd,actuator_mixgo_nova_onboard_music_pitch:()=>fd,actuator_mixgo_nova_onboard_music_stop:()=>Fd,actuator_mixgo_nova_play_audio:()=>Nd,actuator_mixgo_nova_play_online_audio:()=>Dd,actuator_mixgo_nova_record_audio:()=>Ld,actuator_mixgo_nova_voice_get:()=>Ad,actuator_mixgo_nova_voice_set:()=>Sd,actuator_mixgo_zero_led_color:()=>wr,actuator_onboard_neopixel_rgb:()=>Qr,actuator_onboard_neopixel_rgb_all:()=>qr,actuator_onboard_neopixel_rgb_show_all_chase:()=>jr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>zr,actuator_onboard_neopixel_write:()=>Zr,actuator_rm_onboard_neopixel_rgb:()=>$r,actuator_rm_onboard_neopixel_rgb_all:()=>td,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>ed,actuator_stepper_keep:()=>rd,actuator_stepper_stop:()=>dd,analog_ble_keyboard_init:()=>kd,analog_ble_keyboard_input:()=>Kd,analog_ble_keyboard_mouse_init:()=>tl,analog_ble_keyboard_mouse_input:()=>sl,analog_ble_keyboard_mouse_send_battery:()=>nl,analog_ble_keyboard_mouse_str:()=>_l,analog_ble_keyboard_send_battery:()=>Qd,analog_ble_keyboard_str:()=>Jd,analog_ble_mouse_init:()=>qd,analog_ble_mouse_input:()=>Zd,analog_ble_mouse_keyboard_input:()=>ol,analog_ble_mouse_send_battery:()=>$d,analog_keyboard_input:()=>Xd,analog_keyboard_str:()=>wd,analog_mouse_input:()=>Gd,bitbot_motor:()=>cd,bitbot_move:()=>Od,bitbot_stop:()=>Rd,ble_keyboard_connect:()=>Wd,ble_keyboard_get_mac:()=>Hd,ble_keyboard_mouse_connect:()=>il,ble_keyboard_mouse_get_mac:()=>el,ble_mouse_connect:()=>jd,ble_mouse_get_mac:()=>zd,cc_number:()=>Jr,educore_ble_keyboard_input:()=>hl,educore_ble_sensor_connected:()=>Ml,educore_ble_sensor_init:()=>Tl,educore_buzzer:()=>pl,educore_buzzer_play_tone:()=>al,educore_buzzer_play_tone_time:()=>ul,educore_buzzer_stop:()=>rl,educore_neopixel_clear:()=>Il,educore_neopixel_rgb:()=>ll,educore_rgb_light:()=>dl,esp32_music_get_tempo:()=>nd,esp32_music_reset:()=>sd,esp32_music_set_tempo:()=>id,esp32_onboard_music_pitch:()=>_d,esp32_onboard_music_pitch_with_time:()=>od,esp32_onboard_music_play_list:()=>ad,esp32_onboard_music_stop:()=>pd,general_key:()=>yd,general_key_tuple:()=>bd,generalkey_container:()=>Vd,generalkey_create_with_item:()=>Bd,get_power_output:()=>Yd,ledswitch:()=>br,mixbot_motor:()=>md,mixbot_motor_status:()=>Td,mixbot_move:()=>Md,mixbot_stop:()=>hd,mouse_key:()=>Ud,number:()=>yr,rm_actuator_get_led_bright:()=>Hr,rm_actuator_get_led_state:()=>Wr,rm_actuator_led_bright:()=>kr,rm_actuator_led_brightness:()=>Kr,rm_motor:()=>ud,set_all_power_output:()=>vd,set_power_output:()=>Pd,special_key:()=>xd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>zl,ai_sensor_ailocal_class:()=>Bl,ai_sensor_ailocal_class_result:()=>Gl,ai_sensor_ailocal_train:()=>Vl,ai_sensor_asr_recognize:()=>Wl,ai_sensor_audio_play:()=>wl,ai_sensor_audio_record:()=>Ul,ai_sensor_barcode:()=>Sl,ai_sensor_circle:()=>Fl,ai_sensor_classifier_faces:()=>ql,ai_sensor_color:()=>Xl,ai_sensor_color_chases:()=>bl,ai_sensor_color_chases_result:()=>yl,ai_sensor_config:()=>gl,ai_sensor_face:()=>Ql,ai_sensor_find_20objects:()=>jl,ai_sensor_find_barcodes:()=>Al,ai_sensor_find_circles:()=>Pl,ai_sensor_find_colors:()=>xl,ai_sensor_find_licenseplates:()=>Jl,ai_sensor_find_lines:()=>fl,ai_sensor_find_qrcodes:()=>cl,ai_sensor_find_rects:()=>vl,ai_sensor_find_tags:()=>Nl,ai_sensor_licenseplate:()=>Kl,ai_sensor_line:()=>Dl,ai_sensor_qrcode:()=>Ol,ai_sensor_qrcode_lite:()=>Rl,ai_sensor_rect:()=>Yl,ai_sensor_rgb:()=>Cl,ai_sensor_tag:()=>Ll,ai_sensor_use_uart_init:()=>El,ai_sensor_yolo_recognize:()=>kl,ai_sensor_yolo_recognize_result:()=>Hl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>tI,MICROPYTHON_AI_Speech_unit:()=>$l,MICROPYTHON_AI_client:()=>Zl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>MI,mpython_blynk_app_notify:()=>aI,mpython_blynk_email:()=>dI,mpython_blynk_get_timers:()=>lI,mpython_blynk_on_connected:()=>_I,mpython_blynk_on_disconnected:()=>sI,mpython_blynk_run:()=>pI,mpython_blynk_sensor_data_to_app:()=>TI,mpython_blynk_set_property:()=>rI,mpython_blynk_setup:()=>hI,mpython_blynk_stop_timers:()=>uI,mpython_blynk_sync_virtual:()=>nI,mpython_blynk_terminal_widget_vpin:()=>iI,mpython_blynktimer:()=>II,mpython_blynktimer_run:()=>oI});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>ZI,communicate_bluetooth_connect:()=>iT,communicate_bluetooth_disconnect:()=>nT,communicate_bluetooth_handle:()=>aT,communicate_bluetooth_is_connected:()=>_T,communicate_bluetooth_mac:()=>eT,communicate_bluetooth_peripheral_init:()=>$I,communicate_bluetooth_recv:()=>oT,communicate_bluetooth_recv_only:()=>pT,communicate_bluetooth_scan:()=>tT,communicate_bluetooth_send:()=>sT,communicate_espnow_init:()=>uT,communicate_espnow_init_new:()=>rT,communicate_i2c_available:()=>XI,communicate_i2c_init:()=>RI,communicate_i2c_master_read:()=>vI,communicate_i2c_onboard:()=>EI,communicate_i2c_read:()=>cI,communicate_i2c_scan:()=>CI,communicate_i2c_write:()=>gI,communicate_ir_recv_init:()=>wI,communicate_ir_send_init:()=>JI,communicate_ow_init:()=>yI,communicate_ow_read:()=>VI,communicate_ow_reset:()=>UI,communicate_ow_scan:()=>bI,communicate_ow_select:()=>GI,communicate_ow_write:()=>BI,communicate_spi_buffer:()=>LI,communicate_spi_init:()=>SI,communicate_spi_onboard:()=>OI,communicate_spi_read:()=>NI,communicate_spi_read_output:()=>DI,communicate_spi_readinto:()=>fI,communicate_spi_readinto_output:()=>FI,communicate_spi_set:()=>AI,communicate_spi_write:()=>PI,communicate_spi_write_readinto:()=>YI,espnow_radio_channel:()=>hT,espnow_radio_channel_new:()=>ET,espnow_radio_on_off:()=>OT,espnow_radio_rec:()=>cT,espnow_radio_recv:()=>CT,espnow_radio_recv_certain_msg:()=>ST,espnow_radio_recv_certain_msg_new:()=>LT,espnow_radio_recv_msg:()=>gT,espnow_radio_recv_new:()=>AT,espnow_radio_send:()=>RT,espnow_radio_txpower:()=>mT,i2c_available:()=>QT,i2c_init:()=>XT,i2c_master_reader2:()=>JT,i2c_read:()=>xT,i2c_scan:()=>bT,i2c_slave_onreceive:()=>xI,i2c_write:()=>yT,internal_variable:()=>kI,ir_recv_timeout:()=>KI,ir_transmit_busy:()=>jI,ir_transmit_conventional_data:()=>QI,ir_transmit_raw_code:()=>zI,ir_transmit_study_code:()=>qI,ir_whether_recv:()=>WI,lora_init:()=>NT,lora_packet:()=>DT,lora_recv:()=>FT,lora_send:()=>fT,network_espnow_info:()=>lT,network_espnow_mac:()=>dT,network_espnow_recv:()=>IT,network_espnow_recv_handle:()=>MT,network_espnow_send:()=>TT,recv_fun:()=>HI,spi_buffer:()=>GT,spi_init:()=>VT,spi_read:()=>UT,spi_read_output:()=>wT,spi_readinto:()=>kT,spi_readinto_output:()=>HT,spi_set:()=>BT,spi_write:()=>WT,spi_write_readinto:()=>KT,urequests_attribute:()=>YT,urequests_get:()=>PT,urequests_method:()=>vT});var v={};t.r(v),t.d(v,{display_animate:()=>SM,display_blink_rate:()=>RM,display_circle:()=>AM,display_color_seclet:()=>bM,display_draw_4strings:()=>TM,display_fill:()=>CM,display_get_screen_image:()=>OM,display_help:()=>NM,display_image_size:()=>MM,display_lcd_use_i2c_init:()=>kM,display_line:()=>mM,display_line_arbitrarily:()=>EM,display_matrix_extern_bright_point:()=>oM,display_matrix_extern_bright_screen:()=>aM,display_matrix_extern_clear:()=>uM,display_matrix_extern_get_pixel:()=>_M,display_matrix_extern_get_screen_pixel:()=>pM,display_matrix_extern_image_builtins:()=>rM,display_matrix_extern_scroll_string:()=>tM,display_matrix_extern_scroll_string_delay:()=>eM,display_matrix_extern_shift:()=>sM,display_matrix_extern_show_frame_string:()=>iM,display_matrix_extern_show_frame_string_delay:()=>nM,display_matrix_extern_show_image:()=>ZT,display_matrix_extern_show_image_or_string_delay:()=>$T,display_matrix_use_i2c_init:()=>jT,display_oled_drawPixel:()=>fM,display_oled_showBitmap:()=>DM,display_oled_use_i2c_init:()=>QM,display_onoff:()=>gM,display_rect:()=>hM,display_rgb_color:()=>cM,display_tm1650_power:()=>PM,display_tm1650_set_brightness:()=>XM,display_tm1650_show_dot:()=>vM,display_tm1650_show_num:()=>YM,display_tm_use_i2c_init:()=>FM,display_triangle:()=>LM,display_use_i2c_init:()=>IM,extern_oled_bright_point:()=>_h,extern_oled_clear:()=>oh,extern_oled_get_pixel:()=>sh,extern_oled_hvline:()=>ah,extern_oled_line:()=>uh,extern_oled_scroll_string:()=>$M,extern_oled_scroll_string_delay:()=>th,extern_oled_shape_rect:()=>ph,extern_oled_shift:()=>nh,extern_oled_show_frame_string:()=>eh,extern_oled_show_frame_string_delay:()=>ih,extern_oled_show_image:()=>qM,extern_oled_show_image_or_string_delay:()=>ZM,extern_oled_show_image_xy:()=>zM,extern_oled_show_string:()=>jM,lcd_backlight:()=>KM,lcd_clear:()=>JM,lcd_print_string:()=>WM,lcd_show_image_or_string_delay:()=>HM,matrix_extern_image_arithmetic:()=>dM,matrix_extern_image_invert:()=>lM,tft_fill:()=>UM,tft_line_arbitrarily:()=>wM,tft_scroll_string_delay:()=>BM,tft_show_frame_string_delay:()=>GM,tft_show_image_or_string_delay:()=>VM,tft_show_image_xy:()=>yM,tft_use_spi_init:()=>xM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>Qh,display_bright_point:()=>Sh,display_bright_screen:()=>Lh,display_clear:()=>Nh,display_get_pixel:()=>Ch,display_get_screen_pixel:()=>Ah,display_image_builtins:()=>Eh,display_image_builtins_all:()=>Oh,display_image_create:()=>mh,display_scroll_string:()=>Ih,display_scroll_string_delay:()=>Th,display_shift:()=>gh,display_show_frame_string:()=>Mh,display_show_frame_string_delay:()=>hh,display_show_image:()=>dh,display_show_image_or_string_delay:()=>lh,draw_pointer:()=>Em,image_arithmetic:()=>Rh,image_invert:()=>ch,mixbot_display_bright_screen:()=>Kh,mixbot_display_get_ambientbright:()=>Wh,mixbot_display_get_screen_pixel:()=>Hh,mixbot_display_image_create:()=>kh,mixbot_display_rotate:()=>Jh,mixgo_display_image_create_new:()=>Fh,mixgome_display_font:()=>Ph,mixgome_display_image_create:()=>Dh,mixgomini_display_image_create:()=>fh,mpython_display_hvline:()=>Gh,mpython_display_line:()=>Uh,mpython_display_shape_rect:()=>Bh,mpython_pbm_image:()=>wh,onboard_oled_bright_point:()=>Vh,onboard_oled_scroll_string_delay:()=>yh,onboard_oled_show_frame_string_delay:()=>bh,onboard_oled_show_image:()=>Yh,onboard_oled_show_image_or_string_delay:()=>xh,onboard_oled_show_image_xy:()=>vh,onboard_oled_show_string:()=>Xh,onboard_tft_bright_point:()=>pm,onboard_tft_bright_screen:()=>rm,onboard_tft_clear:()=>am,onboard_tft_clock_clear:()=>hm,onboard_tft_clock_draw:()=>Mm,onboard_tft_clock_get_rtctime:()=>Im,onboard_tft_clock_init:()=>lm,onboard_tft_clock_set_time:()=>Tm,onboard_tft_display_hvline:()=>nm,onboard_tft_display_line:()=>sm,onboard_tft_display_shape_circle:()=>mm,onboard_tft_display_shape_rect:()=>im,onboard_tft_fill:()=>dm,onboard_tft_get_pixel:()=>om,onboard_tft_get_screen_pixel:()=>um,onboard_tft_scroll_string:()=>Zh,onboard_tft_scroll_string_delay:()=>$h,onboard_tft_shift:()=>_m,onboard_tft_show_frame_string:()=>tm,onboard_tft_show_frame_string_delay:()=>em,onboard_tft_show_image:()=>qh,onboard_tft_show_image_or_string_delay:()=>jh,onboard_tft_show_image_xy:()=>zh});var x={};t.r(x),t.d(x,{factory_block:()=>fm,factory_block_return:()=>Fm,factory_block_return_with_textarea:()=>Ym,factory_block_with_textarea:()=>Pm,factory_callMethod_noreturn:()=>Nm,factory_callMethod_return:()=>Dm,factory_create_with_container:()=>Cm,factory_create_with_item:()=>Sm,factory_declare:()=>Lm,factory_from_import:()=>Rm,factory_function_noreturn:()=>gm,factory_function_return:()=>Am,factory_import:()=>cm,folding_block:()=>vm});var y={};t.r(y),t.d(y,{controls_pin_attachInterrupt:()=>eE,inout_analog_atten:()=>km,inout_analog_read:()=>wm,inout_analog_read_init:()=>qm,inout_analog_write:()=>Bm,inout_analog_write_init:()=>Qm,inout_analog_write_set:()=>Gm,inout_analog_write_set_freq:()=>Zm,inout_digital_init:()=>Km,inout_digital_read:()=>bm,inout_digital_write:()=>ym,inout_highlow:()=>xm,inout_pinMode:()=>jm,inout_pin_attachInterrupt:()=>Wm,inout_pin_pressed:()=>Hm,inout_pin_pressed_init:()=>zm,inout_pwm_analog_write:()=>Vm,inout_pwm_analog_write_init:()=>Jm,inout_pwm_analog_write_set_freq:()=>Um,pin_pressed:()=>tE,pin_pressed_init:()=>$m});var b={};t.r(b),t.d(b,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>AE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>SE,IOT_EMQX_PING:()=>gE,IOT_FORMATTING:()=>RE,IOT_FORMAT_STRING:()=>cE,IOT_MIXIO_NTP:()=>CE,IOT_MIXIO_PUBLISH:()=>IE,IOT_MIXIO_SUBSCRIBE:()=>TE,iot_checkonenet:()=>xE,iot_client_onboard:()=>NE,iot_create_with_item:()=>dE,iot_http_client:()=>DE,iot_http_data:()=>fE,iot_mixio_check:()=>mE,iot_mixio_connect:()=>lE,iot_mixio_connect_only:()=>hE,iot_mixio_disconnect:()=>ME,iot_mixio_format_msg:()=>OE,iot_mixio_format_topic:()=>EE,iot_mixly_key:()=>LE,iot_mqtt_client:()=>FE,iot_mqtt_data:()=>PE,iot_onenet_check:()=>oE,iot_onenet_connect:()=>sE,iot_onenet_disconnect:()=>_E,iot_onenet_publish:()=>aE,iot_onenet_publish_dict:()=>pE,iot_onenetconnect:()=>vE,iot_onenetdisconnect:()=>XE,iot_publish:()=>yE,iot_publish_container:()=>uE,iot_publish_item:()=>rE,iot_wifi_connect:()=>nE,iot_wificonnect:()=>YE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>MO,educore_mqtt_connect_success:()=>OO,educore_mqtt_subscribe_message:()=>hO,educore_mqtt_topic_publish:()=>EO,educore_mqtt_topic_subscribe:()=>mO,educore_wifi_connect:()=>TO,network_ap_connect:()=>JE,network_connect:()=>wE,network_get_connect:()=>HE,network_get_wifi:()=>KE,network_init:()=>VE,network_is_active:()=>GE,network_open:()=>BE,network_scan:()=>UE,network_server:()=>QE,network_socket_accept:()=>$E,network_socket_bind:()=>zE,network_socket_close:()=>sO,network_socket_connect:()=>jE,network_socket_init:()=>qE,network_socket_listen:()=>ZE,network_socket_receive:()=>tO,network_socket_receive_from:()=>iO,network_socket_send:()=>eO,network_socket_send_to:()=>nO,network_stop:()=>WE,network_wifi_connect:()=>kE,ntptime_address:()=>uO,ntptime_time:()=>aO,requests_attribute:()=>oO,requests_attribute2:()=>IO,requests_get:()=>_O,requests_get2:()=>dO,requests_method:()=>pO,requests_post:()=>lO});var B={};t.r(B),t.d(B,{get_potential_num:()=>cO,nova_g1_motor:()=>gO,nova_g1_spk_en:()=>SO,nova_g1_usb:()=>CO});var G={};t.r(G),t.d(G,{pe_g1_battery_left:()=>NO,pe_g1_dc_motor:()=>DO,pe_g1_dc_motor_speed:()=>fO,pe_g1_servo_get_angle:()=>YO,pe_g1_servo_get_speed:()=>vO,pe_g1_servo_set_angle:()=>FO,pe_g1_servo_set_speed:()=>PO,pe_g1_use_i2c_init:()=>LO});var U={};t.r(U),t.d(U,{CI130X_BROADCAST:()=>sR,CI130X_GET_THE_RECOGNIZED_CMD:()=>nR,CI130X_GET_WHETHER_IDENTIFY:()=>iR,CI130X_IDENTIFY_AND_SAVE:()=>eR,CI130X_SET_SYSTEM_CMD:()=>_R,HCSR04:()=>WR,PS2_Button:()=>qR,PS2_Buttons:()=>jR,PS2_Buttons_new:()=>ec,PS2_State:()=>zR,PS2_init:()=>KR,PS2_init_new:()=>$R,PS2_stk:()=>ZR,PS2_stk_new:()=>ic,PS2_vibration:()=>QR,PS2_vibration_new:()=>tc,camera_sensor_init:()=>Pc,camera_sensor_result:()=>Yc,educore_body_sensor:()=>cc,educore_button_sensor_extern:()=>Ac,educore_camera_sensor:()=>Fc,educore_infrared_sensor:()=>Sc,educore_soilhum_sensor:()=>gc,educore_temp_sensor:()=>fc,educore_temphum_sensor:()=>Cc,educore_ultrasonic_sensor:()=>Nc,esp32_s2_weather_init:()=>UR,esp32_s2_weather_rain:()=>kR,esp32_s2_weather_wd:()=>wR,esp32_s2_weather_ws:()=>HR,extern_rfid_read:()=>NR,extern_rfid_readcontent:()=>fR,extern_rfid_readid:()=>DR,extern_rfid_status:()=>YR,extern_rfid_write:()=>FR,extern_rfid_write_return:()=>PR,gnss_get_data:()=>oc,gnss_have_data:()=>_c,interaction_whether_to_interaction:()=>$O,interaction_whether_to_interaction_SANT:()=>tR,mixbot_sensor_extern_get_addr:()=>Ic,mixbot_sensor_extern_set_addr:()=>Tc,pm25_get_data:()=>sc,radar_set_DETECTION_THRESHOLD:()=>jO,radar_set_DETECTION_THRESHOLD_SANT:()=>ZO,robot_button_extern_get_value:()=>pc,robot_color_extern_get_value:()=>lc,robot_infrared_extern_get_value:()=>uc,robot_infrared_extern_grey_get_value:()=>rc,robot_potentiometer_extern_get_value:()=>dc,robot_sonar_extern_get_value:()=>Mc,robot_sonar_extern_led:()=>hc,robot_touch_extern_get_value:()=>ac,sensor_APDS9960_extern:()=>pR,sensor_DS18X20:()=>QO,sensor_LTR308_extern:()=>aR,sensor_LTR390UV_extern:()=>dR,sensor_MAX30102_extern:()=>oR,sensor_QMC5883L_extern:()=>mR,sensor_VL530LX_extern:()=>lR,sensor_adxl345_get_acceleration:()=>GO,sensor_aht11_extern:()=>TR,sensor_bmp:()=>KO,sensor_compass_reset:()=>AR,sensor_dht11:()=>wO,sensor_hp203_extern:()=>MR,sensor_light_level:()=>UO,sensor_lm35:()=>qO,sensor_ltr381_extern:()=>uR,sensor_mixgo_extern_button_attachInterrupt:()=>VO,sensor_mixgo_extern_button_get_presses:()=>bO,sensor_mixgo_extern_button_is_pressed:()=>xO,sensor_mixgo_extern_button_was_pressed:()=>yO,sensor_mixgo_extern_light:()=>kO,sensor_mixgo_extern_pin_near:()=>WO,sensor_mixgo_extern_sound:()=>HO,sensor_mixgoce_hot_wheel_degrees:()=>GR,sensor_mixgoce_hot_wheel_is_touched:()=>BR,sensor_mpu9250_attachGestureInterrupt:()=>BO,sensor_mpu9250_calibrate_compass:()=>gR,sensor_mpu9250_field_strength:()=>SR,sensor_mpu9250_gesture:()=>ER,sensor_mpu9250_get_acceleration:()=>OR,sensor_mpu9250_get_gyro:()=>cR,sensor_mpu9250_get_magnetic:()=>RR,sensor_mpu9250_temperature:()=>CR,sensor_read_humiture:()=>Lc,sensor_sht:()=>JO,sensor_shtc3_extern:()=>IR,sensor_spl06_001_extern:()=>hR,sensor_ucs12071_extern:()=>rR,sensor_use_i2c_init:()=>zO,sensor_use_spi_init:()=>LR,sensor_use_uart_init:()=>nc,sensor_weather_solo_init:()=>mc,sensor_weather_solo_rain:()=>Rc,sensor_weather_solo_wd:()=>Ec,sensor_weather_solo_ws:()=>Oc,sensor_weigh_init:()=>vc,ultrasonic_sensor_read_distance:()=>Dc,weather_data:()=>vR,weather_have_data:()=>XR,weather_set_label:()=>yR,weather_set_label_container:()=>bR,weather_set_label_item:()=>VR,weather_uart_mixio:()=>xR,weigh_sensor_get_weight:()=>Xc});var w={};t.r(w),t.d(w,{CI130X_BROADCAST_SANT:()=>fC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>DC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>NC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>LC,CI130X_SET_SYSTEM_CMD_SANT:()=>FC,HCSR04:()=>jc,RTC_set_date:()=>zc,RTC_set_time:()=>qc,bitbot_als_num:()=>_C,dht11:()=>lC,educore_button_sensor:()=>cC,educore_button_was_pressed:()=>gC,educore_gyroscope_sensor:()=>EC,educore_gyroscope_sensor_read:()=>OC,educore_gyroscope_sensor_shake:()=>RC,educore_light_sensor:()=>mC,educore_rfid_sensor:()=>CC,educore_rfid_sensor_scan:()=>SC,educore_rfid_sensor_scan_data:()=>AC,educore_voice_sensor:()=>MC,number1:()=>$c,number2:()=>tg,number3:()=>eg,number4:()=>ig,number5:()=>ng,number6:()=>sg,number7:()=>_g,onboard_RTC_get_time:()=>Ig,onboard_RTC_get_time_str:()=>Og,onboard_RTC_get_timestamp:()=>Tg,onboard_RTC_get_timetuple_to_str:()=>Rg,onboard_RTC_set_datetime:()=>mg,onboard_RTC_settime_string:()=>hg,onboard_RTC_timestamp_totuple:()=>Mg,rfid_readcontent:()=>Ng,rfid_readid:()=>Lg,rfid_write:()=>Dg,rfid_write_return:()=>fg,sensor_LTR308:()=>cg,sensor_aht11:()=>Cg,sensor_bitbot_ALS:()=>sC,sensor_button_get_presses:()=>aC,sensor_button_is_pressed:()=>oC,sensor_button_was_pressed:()=>pC,sensor_distance_hrsc04:()=>Qc,sensor_eulerangles:()=>Pg,sensor_field_strength:()=>IC,sensor_get_acceleration:()=>Fg,sensor_get_temperature:()=>Sg,sensor_hp203:()=>Ag,sensor_light:()=>dC,sensor_mixbot_get_gyro:()=>nC,sensor_mixbot_patrol_calibrate:()=>tC,sensor_mixbot_patrol_value:()=>eC,sensor_mixbot_temperature:()=>iC,sensor_mixgo_LTR308:()=>dg,sensor_mixgo_button_attachInterrupt:()=>Bc,sensor_mixgo_button_get_presses:()=>Vc,sensor_mixgo_button_is_pressed:()=>yc,sensor_mixgo_button_was_pressed:()=>bc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>wg,sensor_mixgo_cc_mmc5603_get_angle:()=>Ug,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Gg,sensor_mixgo_light:()=>Zc,sensor_mixgo_nova_LTR308:()=>rg,sensor_mixgo_nova_pin_near:()=>ug,sensor_mixgo_pin_near:()=>ag,sensor_mixgo_pin_near_double:()=>pg,sensor_mixgo_pin_near_single:()=>og,sensor_mixgo_pin_pressed:()=>Hc,sensor_mixgo_sant_color:()=>lg,sensor_mixgo_touch_slide:()=>Jc,sensor_mixgocar42_button_attachInterrupt:()=>kc,sensor_mixgocar42_button_get_presses:()=>wc,sensor_mixgocar42_button_is_pressed:()=>Gc,sensor_mixgocar42_button_was_pressed:()=>Uc,sensor_mixgocar_battery_left:()=>$g,sensor_mixgocar_pin_near:()=>jg,sensor_mixgocar_pin_near_line:()=>zg,sensor_mixgocar_pin_near_state_change:()=>Zg,sensor_mixgoce_pin_pressed:()=>Wc,sensor_mixgoce_temperature:()=>Hg,sensor_mixgome_temperature:()=>kg,sensor_mpython_pin_pressed:()=>Kc,sensor_mpython_qmi8658_get_gyro:()=>Wg,sensor_mpython_qmi8658_temperature:()=>Kg,sensor_onboard_compass_reset:()=>Bg,sensor_onboard_mpu9250_calibrate_compass:()=>yg,sensor_onboard_mpu9250_field_strength:()=>Vg,sensor_onboard_mpu9250_gesture:()=>Yg,sensor_onboard_mpu9250_get_acceleration:()=>vg,sensor_onboard_mpu9250_get_gyro:()=>xg,sensor_onboard_mpu9250_get_magnetic:()=>Xg,sensor_onboard_mpu9250_temperature:()=>bg,sensor_pin_near:()=>rC,sensor_pin_pressed:()=>uC,sensor_read:()=>hC,sensor_rm_acc:()=>qg,sensor_rm_battery_left:()=>Qg,sensor_rm_pin_near_double:()=>Jg,sensor_rtc_init:()=>Eg,sensor_sound:()=>gg,sensor_temperature:()=>TC});var k={};t.r(k),t.d(k,{serial_any:()=>VC,serial_begin:()=>kC,serial_print:()=>vC,serial_print_byte:()=>YC,serial_print_hex:()=>xC,serial_println:()=>XC,serial_read_from_ai:()=>ZC,serial_readline:()=>BC,serial_readstr:()=>bC,serial_readstr_until:()=>GC,serial_receive_data_event:()=>yC,serial_send_to_ai:()=>jC,serial_softserial:()=>wC,serial_softserial_new:()=>UC,system_input:()=>HC,system_print:()=>WC,system_print_container:()=>qC,system_print_end:()=>JC,system_print_inline:()=>KC,system_print_item:()=>zC,system_print_many:()=>QC});var H={};t.r(H),t.d(H,{Panic_with_status_code:()=>iS,Timer_init:()=>MS,base_delay:()=>ES,controls_delay:()=>eS,controls_delay_new:()=>tS,controls_millis:()=>sS,controls_uname:()=>oS,raw_block:()=>_S,reset:()=>nS,system_bitbot_shutdown:()=>TS,system_machine_reset:()=>IS,system_ticks_diff:()=>uS,system_timer:()=>aS,system_timer_init:()=>rS,system_wdt_feed:()=>lS,system_wdt_init:()=>dS,time_ticks_diff:()=>mS,timer:()=>pS,timer2:()=>hS});var W={};t.r(W),t.d(W,{Air_daily_content:()=>YS,Air_now_content:()=>AS,Geo_moon_content:()=>XS,Geo_sun_content:()=>vS,Life_suggestion_content:()=>NS,Location_search_content:()=>fS,Tide_daily_content:()=>DS,WEATHER_DAILY:()=>cS,WEATHER_HOUR:()=>gS,WEATHER_NOW:()=>RS,Weather_alarm_content:()=>LS,Weather_daily:()=>FS,Weather_daily_content:()=>PS,Weather_now:()=>CS,Weather_now_content:()=>SS});var K={};t.r(K),t.d(K,{PIN_init:()=>YA,actuator_extern_get_led_bright:()=>tA,actuator_extern_get_led_state:()=>eA,actuator_extern_led_bright:()=>$S,actuator_extern_led_brightness:()=>iA,actuator_ms32006_dcmotor:()=>wS,actuator_ms32006_init:()=>US,actuator_ms32006_stepper:()=>kS,actuator_neopixel_init:()=>nA,actuator_neopixel_rgb:()=>oA,actuator_neopixel_rgb_all:()=>sA,actuator_neopixel_write:()=>_A,actuator_use_uart_init:()=>pA,esp32_music_get_tempo_extern:()=>qS,esp32_music_pitch:()=>WS,esp32_music_pitch_init:()=>HS,esp32_music_pitch_with_time:()=>KS,esp32_music_play_list:()=>zS,esp32_music_reset_extern:()=>jS,esp32_music_set_tempo_extern:()=>QS,esp32_music_stop:()=>JS,mixbot_actuator_extern_get_addr:()=>FA,mixbot_actuator_extern_set_addr:()=>PA,mixbot_addr_extern:()=>mA,parrot_PIN_init:()=>yA,parrot_move_speed:()=>bA,pin_led_bright:()=>vA,player_play_music:()=>lA,player_set_mode:()=>dA,player_set_play:()=>uA,player_set_volume:()=>rA,player_whether_stop:()=>aA,robot_led_extern:()=>cA,robot_led_extern_get_value:()=>gA,robot_motor_extern:()=>EA,robot_motor_extern_get_speed:()=>OA,robot_servo_extern_absolute_run:()=>LA,robot_servo_extern_get_status:()=>CA,robot_servo_extern_relative_continue:()=>fA,robot_servo_extern_relative_origin:()=>NA,robot_servo_extern_relative_run:()=>DA,robot_servo_extern_stop:()=>AA,robot_servo_extern_stop_mode:()=>SA,robot_traffic_light_extern:()=>RA,servo_PIN_init:()=>XA,servo_get_angle:()=>BS,servo_get_speed:()=>GS,servo_init:()=>xS,servo_move:()=>ZS,servo_move_angle:()=>xA,servo_set_angle:()=>bS,servo_set_speed:()=>VS,servo_speed_360:()=>yS,syn6288_builtin_voice:()=>MA,syn6288_get_voice:()=>TA,syn6288_set_voice:()=>IA,syn6288_tts_play:()=>hA});var J={};t.r(J),t.d(J,{actuator_dc_motor:()=>dL,actuator_dc_motor_stop:()=>lL,actuator_get_led_bright:()=>QA,actuator_get_led_state:()=>qA,actuator_led_bright:()=>JA,actuator_led_brightness:()=>zA,actuator_mixbot_buzzer_on_off:()=>mL,actuator_mixgo_nova_mic_get:()=>gL,actuator_mixgo_nova_mic_set:()=>cL,actuator_mixgo_nova_onboard_music_pitch:()=>DL,actuator_mixgo_nova_onboard_music_stop:()=>fL,actuator_mixgo_nova_play_audio:()=>LL,actuator_mixgo_nova_play_online_audio:()=>NL,actuator_mixgo_nova_record_audio:()=>AL,actuator_mixgo_nova_voice_get:()=>SL,actuator_mixgo_nova_voice_set:()=>CL,actuator_mixgo_zero_led_color:()=>jA,actuator_onboard_neopixel_rgb:()=>sL,actuator_onboard_neopixel_rgb_all:()=>_L,actuator_onboard_neopixel_rgb_show_all_chase:()=>oL,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>pL,actuator_onboard_neopixel_write:()=>nL,actuator_stepper_keep:()=>uL,actuator_stepper_stop:()=>rL,analog_ble_keyboard_init:()=>GL,analog_ble_keyboard_input:()=>kL,analog_ble_keyboard_mouse_init:()=>jL,analog_ble_keyboard_mouse_input:()=>eN,analog_ble_keyboard_mouse_send_battery:()=>tN,analog_ble_keyboard_mouse_str:()=>iN,analog_ble_keyboard_send_battery:()=>WL,analog_ble_keyboard_str:()=>HL,analog_ble_mouse_init:()=>KL,analog_ble_mouse_input:()=>qL,analog_ble_mouse_keyboard_input:()=>nN,analog_ble_mouse_send_battery:()=>zL,analog_keyboard_input:()=>vL,analog_keyboard_str:()=>VL,analog_mouse_input:()=>yL,bitbot_motor:()=>RL,bitbot_move:()=>EL,bitbot_stop:()=>OL,ble_keyboard_connect:()=>wL,ble_keyboard_get_mac:()=>UL,ble_keyboard_mouse_connect:()=>$L,ble_keyboard_mouse_get_mac:()=>ZL,ble_mouse_connect:()=>QL,ble_mouse_get_mac:()=>JL,cc_number:()=>ZA,educore_ble_keyboard_input:()=>IN,educore_ble_sensor_connected:()=>lN,educore_ble_sensor_init:()=>dN,educore_buzzer:()=>sN,educore_buzzer_play_tone:()=>_N,educore_buzzer_play_tone_time:()=>oN,educore_buzzer_stop:()=>pN,educore_neopixel_clear:()=>rN,educore_neopixel_rgb:()=>uN,educore_rgb_light:()=>aN,esp32_music_get_tempo:()=>BA,esp32_music_reset:()=>HA,esp32_music_set_tempo:()=>VA,esp32_onboard_music_pitch:()=>GA,esp32_onboard_music_pitch_with_time:()=>UA,esp32_onboard_music_play_list:()=>kA,esp32_onboard_music_stop:()=>wA,general_key:()=>xL,general_key_tuple:()=>BL,get_power_output:()=>PL,ledswitch:()=>KA,mixbot_motor:()=>hL,mixbot_motor_status:()=>IL,mixbot_move:()=>TL,mixbot_stop:()=>ML,mouse_key:()=>bL,number:()=>WA,rm_actuator_get_led_bright:()=>tL,rm_actuator_get_led_state:()=>eL,rm_actuator_led_bright:()=>$A,rm_actuator_led_brightness:()=>iL,rm_motor:()=>aL,set_all_power_output:()=>YL,set_power_output:()=>FL,special_key:()=>XL});var Q={};t.r(Q),t.d(Q,{ai_sensor_20object:()=>KN,ai_sensor_ailocal_class:()=>xN,ai_sensor_ailocal_class_result:()=>yN,ai_sensor_ailocal_train:()=>XN,ai_sensor_asr_recognize:()=>UN,ai_sensor_audio_play:()=>VN,ai_sensor_audio_record:()=>bN,ai_sensor_barcode:()=>RN,ai_sensor_circle:()=>LN,ai_sensor_classifier_faces:()=>WN,ai_sensor_color:()=>FN,ai_sensor_color_chases:()=>vN,ai_sensor_color_chases_result:()=>YN,ai_sensor_config:()=>hN,ai_sensor_face:()=>HN,ai_sensor_find_20objects:()=>JN,ai_sensor_find_barcodes:()=>cN,ai_sensor_find_circles:()=>NN,ai_sensor_find_colors:()=>PN,ai_sensor_find_licenseplates:()=>kN,ai_sensor_find_lines:()=>AN,ai_sensor_find_qrcodes:()=>ON,ai_sensor_find_rects:()=>fN,ai_sensor_find_tags:()=>CN,ai_sensor_licenseplate:()=>wN,ai_sensor_line:()=>SN,ai_sensor_qrcode:()=>EN,ai_sensor_qrcode_lite:()=>MN,ai_sensor_rect:()=>DN,ai_sensor_rgb:()=>mN,ai_sensor_tag:()=>gN,ai_sensor_use_uart_init:()=>TN,ai_sensor_yolo_recognize:()=>BN,ai_sensor_yolo_recognize_result:()=>GN});var q={};t.r(q),t.d(q,{MICROPYTHON_AI_Speech_asr:()=>zN,MICROPYTHON_AI_Speech_unit:()=>qN,MICROPYTHON_AI_client:()=>QN});var z={};t.r(z),t.d(z,{mpython_blynk_app_data:()=>aD,mpython_blynk_app_notify:()=>nD,mpython_blynk_email:()=>uD,mpython_blynk_get_timers:()=>_D,mpython_blynk_on_connected:()=>tD,mpython_blynk_on_disconnected:()=>$N,mpython_blynk_run:()=>iD,mpython_blynk_sensor_data_to_app:()=>pD,mpython_blynk_set_property:()=>rD,mpython_blynk_setup:()=>dD,mpython_blynk_stop_timers:()=>sD,mpython_blynk_sync_virtual:()=>ZN,mpython_blynk_terminal_widget_vpin:()=>jN,mpython_blynktimer:()=>oD,mpython_blynktimer_run:()=>eD});var j={};t.r(j),t.d(j,{communicate_bluetooth_central_init:()=>KD,communicate_bluetooth_connect:()=>qD,communicate_bluetooth_disconnect:()=>zD,communicate_bluetooth_handle:()=>nf,communicate_bluetooth_is_connected:()=>ZD,communicate_bluetooth_mac:()=>jD,communicate_bluetooth_peripheral_init:()=>JD,communicate_bluetooth_recv:()=>ef,communicate_bluetooth_recv_only:()=>tf,communicate_bluetooth_scan:()=>QD,communicate_bluetooth_send:()=>$D,communicate_espnow_init:()=>sf,communicate_espnow_init_new:()=>_f,communicate_i2c_available:()=>OD,communicate_i2c_init:()=>TD,communicate_i2c_master_read:()=>ED,communicate_i2c_onboard:()=>lD,communicate_i2c_read:()=>MD,communicate_i2c_scan:()=>mD,communicate_i2c_write:()=>hD,communicate_ir_recv_init:()=>yD,communicate_ir_send_init:()=>UD,communicate_ow_init:()=>FD,communicate_ow_read:()=>vD,communicate_ow_reset:()=>YD,communicate_ow_scan:()=>PD,communicate_ow_select:()=>xD,communicate_ow_write:()=>XD,communicate_spi_buffer:()=>CD,communicate_spi_init:()=>cD,communicate_spi_onboard:()=>ID,communicate_spi_read:()=>SD,communicate_spi_read_output:()=>AD,communicate_spi_readinto:()=>LD,communicate_spi_readinto_output:()=>ND,communicate_spi_set:()=>gD,communicate_spi_write:()=>DD,communicate_spi_write_readinto:()=>fD,espnow_radio_channel:()=>df,espnow_radio_channel_new:()=>If,espnow_radio_on_off:()=>Tf,espnow_radio_rec:()=>hf,espnow_radio_recv:()=>Ef,espnow_radio_recv_certain_msg:()=>Of,espnow_radio_recv_certain_msg_new:()=>cf,espnow_radio_recv_msg:()=>mf,espnow_radio_recv_new:()=>Rf,espnow_radio_send:()=>Mf,espnow_radio_txpower:()=>lf,i2c_slave_onreceive:()=>RD,internal_variable:()=>bD,ir_recv_timeout:()=>GD,ir_transmit_busy:()=>WD,ir_transmit_conventional_data:()=>wD,ir_transmit_raw_code:()=>HD,ir_transmit_study_code:()=>kD,ir_whether_recv:()=>BD,lora_init:()=>gf,lora_packet:()=>Cf,lora_recv:()=>Af,lora_send:()=>Sf,network_espnow_info:()=>pf,network_espnow_mac:()=>of,network_espnow_recv:()=>af,network_espnow_recv_handle:()=>rf,network_espnow_send:()=>uf,recv_fun:()=>VD,urequests_attribute:()=>Nf,urequests_get:()=>Lf,urequests_method:()=>Df});var Z={};t.r(Z),t.d(Z,{display_animate:()=>$f,display_circle:()=>tF,display_color_seclet:()=>dF,display_draw_4strings:()=>Kf,display_fill:()=>Zf,display_lcd_use_i2c_init:()=>mF,display_line:()=>qf,display_line_arbitrarily:()=>Jf,display_matrix_extern_bright_point:()=>Bf,display_matrix_extern_bright_screen:()=>Uf,display_matrix_extern_clear:()=>yf,display_matrix_extern_get_pixel:()=>Vf,display_matrix_extern_get_screen_pixel:()=>Gf,display_matrix_extern_image_builtins:()=>wf,display_matrix_extern_scroll_string:()=>Xf,display_matrix_extern_scroll_string_delay:()=>xf,display_matrix_extern_shift:()=>bf,display_matrix_extern_show_frame_string:()=>Yf,display_matrix_extern_show_frame_string_delay:()=>vf,display_matrix_extern_show_image:()=>Ff,display_matrix_extern_show_image_or_string_delay:()=>Pf,display_matrix_use_i2c_init:()=>ff,display_oled_drawPixel:()=>nF,display_oled_showBitmap:()=>iF,display_oled_use_i2c_init:()=>gF,display_onoff:()=>zf,display_rect:()=>Qf,display_tm1650_power:()=>_F,display_tm1650_set_brightness:()=>aF,display_tm1650_show_dot:()=>pF,display_tm1650_show_num:()=>oF,display_tm_use_i2c_init:()=>sF,display_triangle:()=>eF,display_use_i2c_init:()=>Wf,extern_oled_bright_point:()=>XF,extern_oled_clear:()=>PF,extern_oled_get_pixel:()=>vF,extern_oled_hvline:()=>yF,extern_oled_line:()=>bF,extern_oled_scroll_string:()=>fF,extern_oled_scroll_string_delay:()=>FF,extern_oled_shape_rect:()=>xF,extern_oled_shift:()=>YF,extern_oled_show_frame_string:()=>NF,extern_oled_show_frame_string_delay:()=>DF,extern_oled_show_image:()=>CF,extern_oled_show_image_or_string_delay:()=>LF,extern_oled_show_image_xy:()=>SF,extern_oled_show_string:()=>AF,image_shift:()=>jf,lcd_backlight:()=>RF,lcd_clear:()=>cF,lcd_print_string:()=>OF,lcd_show_image_or_string_delay:()=>EF,matrix_extern_image_arithmetic:()=>kf,matrix_extern_image_invert:()=>Hf,tft_fill:()=>MF,tft_line_arbitrarily:()=>hF,tft_scroll_string_delay:()=>TF,tft_show_frame_string_delay:()=>IF,tft_show_image_or_string_delay:()=>lF,tft_show_image_xy:()=>rF,tft_use_spi_init:()=>uF});var $={};t.r($),t.d($,{bitbot_display_image_create:()=>cP,display_bright_point:()=>ZF,display_bright_screen:()=>tP,display_clear:()=>JF,display_get_pixel:()=>jF,display_get_screen_pixel:()=>$F,display_image_builtins:()=>HF,display_image_builtins_all:()=>WF,display_image_create:()=>KF,display_scroll_string:()=>wF,display_scroll_string_delay:()=>kF,display_shift:()=>zF,display_show_frame_string:()=>GF,display_show_frame_string_delay:()=>UF,display_show_image:()=>VF,display_show_image_or_string_delay:()=>BF,draw_pointer:()=>WP,image_arithmetic:()=>QF,image_invert:()=>qF,mixbot_display_bright_screen:()=>OP,mixbot_display_get_ambientbright:()=>EP,mixbot_display_get_screen_pixel:()=>mP,mixbot_display_image_create:()=>hP,mixbot_display_rotate:()=>RP,mixgo_display_image_create_new:()=>sP,mixgome_display_font:()=>nP,mixgome_display_image_create:()=>eP,mixgomini_display_image_create:()=>iP,mpython_display_hvline:()=>TP,mpython_display_line:()=>MP,mpython_display_shape_rect:()=>IP,mpython_pbm_image:()=>_P,onboard_oled_bright_point:()=>lP,onboard_oled_scroll_string_delay:()=>dP,onboard_oled_show_frame_string_delay:()=>rP,onboard_oled_show_image:()=>oP,onboard_oled_show_image_or_string_delay:()=>uP,onboard_oled_show_image_xy:()=>pP,onboard_oled_show_string:()=>aP,onboard_tft_bright_point:()=>xP,onboard_tft_bright_screen:()=>bP,onboard_tft_clear:()=>YP,onboard_tft_clock_clear:()=>kP,onboard_tft_clock_draw:()=>wP,onboard_tft_clock_get_rtctime:()=>GP,onboard_tft_clock_init:()=>BP,onboard_tft_clock_set_time:()=>UP,onboard_tft_display_hvline:()=>FP,onboard_tft_display_line:()=>PP,onboard_tft_display_shape_circle:()=>HP,onboard_tft_display_shape_rect:()=>fP,onboard_tft_fill:()=>VP,onboard_tft_get_pixel:()=>XP,onboard_tft_get_screen_pixel:()=>yP,onboard_tft_scroll_string:()=>NP,onboard_tft_scroll_string_delay:()=>DP,onboard_tft_shift:()=>vP,onboard_tft_show_frame_string:()=>AP,onboard_tft_show_frame_string_delay:()=>LP,onboard_tft_show_image:()=>gP,onboard_tft_show_image_or_string_delay:()=>SP,onboard_tft_show_image_xy:()=>CP});var tt={};t.r(tt),t.d(tt,{factory_block:()=>$P,factory_block_return:()=>tY,factory_block_return_with_textarea:()=>iY,factory_block_with_textarea:()=>eY,factory_callMethod_noreturn:()=>jP,factory_callMethod_return:()=>ZP,factory_declare:()=>zP,factory_from_import:()=>KP,factory_function_noreturn:()=>QP,factory_function_return:()=>qP,factory_import:()=>JP,folding_block:()=>nY});var et={};t.r(et),t.d(et,{inout_analog_atten:()=>EY,inout_analog_read:()=>dY,inout_analog_read_init:()=>mY,inout_analog_write:()=>aY,inout_analog_write_init:()=>hY,inout_analog_write_set:()=>uY,inout_digital_init:()=>TY,inout_digital_read:()=>oY,inout_digital_write:()=>_Y,inout_highlow:()=>sY,inout_pin_attachInterrupt:()=>IY,inout_pin_pressed:()=>lY,inout_pin_pressed_init:()=>OY,inout_pwm_analog_write:()=>pY,inout_pwm_analog_write_init:()=>MY,inout_pwm_analog_write_set_freq:()=>rY});var it={};t.r(it),t.d(it,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>VY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>yY,IOT_EMQX_PING:()=>BY,IOT_FORMATTING:()=>XY,IOT_FORMAT_STRING:()=>xY,IOT_MIXIO_NTP:()=>GY,IOT_MIXIO_PUBLISH:()=>NY,IOT_MIXIO_SUBSCRIBE:()=>DY,iot_client_onboard:()=>UY,iot_http_client:()=>wY,iot_http_data:()=>kY,iot_mixio_check:()=>PY,iot_mixio_connect:()=>LY,iot_mixio_connect_only:()=>FY,iot_mixio_disconnect:()=>fY,iot_mixio_format_msg:()=>vY,iot_mixio_format_topic:()=>YY,iot_mixly_key:()=>bY,iot_mqtt_client:()=>HY,iot_mqtt_data:()=>WY,iot_onenet_check:()=>SY,iot_onenet_connect:()=>cY,iot_onenet_disconnect:()=>gY,iot_onenet_publish:()=>AY,iot_onenet_publish_dict:()=>CY,iot_wifi_connect:()=>RY});var nt={};t.r(nt),t.d(nt,{educore_mqtt_connect:()=>gv,educore_mqtt_connect_success:()=>Lv,educore_mqtt_subscribe_message:()=>Cv,educore_mqtt_topic_publish:()=>Av,educore_mqtt_topic_subscribe:()=>Sv,educore_wifi_connect:()=>cv,network_ap_connect:()=>tv,network_connect:()=>JY,network_get_connect:()=>qY,network_get_wifi:()=>$Y,network_init:()=>KY,network_is_active:()=>ZY,network_open:()=>jY,network_scan:()=>ev,network_server:()=>iv,network_socket_accept:()=>pv,network_socket_bind:()=>sv,network_socket_close:()=>lv,network_socket_connect:()=>_v,network_socket_init:()=>nv,network_socket_listen:()=>ov,network_socket_receive:()=>av,network_socket_receive_from:()=>rv,network_socket_send:()=>uv,network_socket_send_to:()=>dv,network_stop:()=>zY,network_wifi_connect:()=>QY,ntptime_address:()=>mv,ntptime_time:()=>hv,requests_attribute:()=>Tv,requests_attribute2:()=>Ov,requests_get:()=>Iv,requests_get2:()=>Ev,requests_method:()=>Mv,requests_post:()=>Rv});var st={};t.r(st),t.d(st,{get_potential_num:()=>Nv,nova_g1_motor:()=>Dv,nova_g1_spk_en:()=>Fv,nova_g1_usb:()=>fv});var _t={};t.r(_t),t.d(_t,{pe_g1_battery_left:()=>Yv,pe_g1_dc_motor:()=>vv,pe_g1_dc_motor_speed:()=>Xv,pe_g1_servo_get_angle:()=>bv,pe_g1_servo_get_speed:()=>Vv,pe_g1_servo_set_angle:()=>xv,pe_g1_servo_set_speed:()=>yv,pe_g1_use_i2c_init:()=>Pv});var ot={};t.r(ot),t.d(ot,{CI130X_BROADCAST:()=>pX,CI130X_GET_THE_RECOGNIZED_CMD:()=>oX,CI130X_GET_WHETHER_IDENTIFY:()=>_X,CI130X_IDENTIFY_AND_SAVE:()=>sX,CI130X_SET_SYSTEM_CMD:()=>aX,HCSR04:()=>VX,PS2_Button:()=>UX,PS2_Buttons:()=>wX,PS2_Buttons_new:()=>zX,PS2_State:()=>kX,PS2_init:()=>BX,PS2_init_new:()=>QX,PS2_stk:()=>HX,PS2_stk_new:()=>jX,PS2_vibration:()=>GX,PS2_vibration_new:()=>qX,RTC_get_time:()=>KX,RTC_set_date:()=>Kv,RTC_set_datetime:()=>WX,RTC_set_time:()=>Wv,camera_sensor_init:()=>Nx,camera_sensor_result:()=>Dx,educore_body_sensor:()=>mx,educore_button_sensor_extern:()=>cx,educore_camera_sensor:()=>Lx,educore_infrared_sensor:()=>Rx,educore_soilhum_sensor:()=>Ex,educore_temp_sensor:()=>Ax,educore_temphum_sensor:()=>Ox,educore_ultrasonic_sensor:()=>Cx,esp32_s2_weather_init:()=>XX,esp32_s2_weather_rain:()=>yX,esp32_s2_weather_wd:()=>xX,esp32_s2_weather_ws:()=>bX,extern_rfid_read:()=>gX,extern_rfid_readcontent:()=>SX,extern_rfid_readid:()=>CX,extern_rfid_status:()=>NX,extern_rfid_write:()=>AX,extern_rfid_write_return:()=>LX,gnss_get_data:()=>tx,gnss_have_data:()=>ex,interaction_whether_to_interaction:()=>iX,interaction_whether_to_interaction_SANT:()=>nX,mixbot_sensor_extern_get_addr:()=>rx,mixbot_sensor_extern_set_addr:()=>dx,pm25_get_data:()=>$X,radar_set_DETECTION_THRESHOLD:()=>tX,radar_set_DETECTION_THRESHOLD_SANT:()=>eX,robot_button_extern_get_value:()=>ix,robot_color_extern_get_value:()=>px,robot_infrared_extern_get_value:()=>sx,robot_infrared_extern_grey_get_value:()=>_x,robot_potentiometer_extern_get_value:()=>ox,robot_sonar_extern_get_value:()=>ax,robot_sonar_extern_led:()=>ux,robot_touch_extern_get_value:()=>nx,sensor_APDS9960_extern:()=>rX,sensor_DS18X20:()=>hx,sensor_LTR308_extern:()=>dX,sensor_LTR390UV_extern:()=>hX,sensor_MAX30102_extern:()=>uX,sensor_QMC5883L_extern:()=>mX,sensor_VL530LX_extern:()=>RX,sensor_aht11_extern:()=>OX,sensor_bmp:()=>jv,sensor_dht11:()=>JX,sensor_distance_hrsc04:()=>Hv,sensor_hp203_extern:()=>lX,sensor_ltr381_extern:()=>TX,sensor_mixgo_extern_button_attachInterrupt:()=>wv,sensor_mixgo_extern_button_get_presses:()=>Uv,sensor_mixgo_extern_button_is_pressed:()=>Bv,sensor_mixgo_extern_button_was_pressed:()=>Gv,sensor_mixgo_extern_light:()=>Jv,sensor_mixgo_extern_pin_near:()=>qv,sensor_mixgo_extern_sound:()=>Qv,sensor_mixgoce_hot_wheel_degrees:()=>vX,sensor_mixgoce_hot_wheel_is_touched:()=>YX,sensor_mpu9250_attachGestureInterrupt:()=>kv,sensor_read_humiture:()=>gx,sensor_rtc_init:()=>zv,sensor_sht:()=>Zv,sensor_shtc3_extern:()=>EX,sensor_spl06_001_extern:()=>IX,sensor_ucs12071_extern:()=>MX,sensor_use_i2c_init:()=>$v,sensor_use_spi_init:()=>cX,sensor_use_uart_init:()=>ZX,sensor_weather_solo_init:()=>lx,sensor_weather_solo_rain:()=>Mx,sensor_weather_solo_wd:()=>Ix,sensor_weather_solo_ws:()=>Tx,sensor_weigh_init:()=>fx,ultrasonic_sensor_read_distance:()=>Sx,weather_data:()=>DX,weather_have_data:()=>fX,weather_set_label:()=>PX,weather_uart_mixio:()=>FX,weigh_sensor_get_weight:()=>Fx});var pt={};t.r(pt),t.d(pt,{CI130X_BROADCAST_SANT:()=>fb,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Db,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>Nb,CI130X_IDENTIFY_AND_SAVE_SANT:()=>Lb,CI130X_SET_SYSTEM_CMD_SANT:()=>Fb,HCSR04:()=>Bx,bitbot_als_num:()=>ob,dht11:()=>Tb,educore_button_sensor:()=>cb,educore_button_was_pressed:()=>gb,educore_gyroscope_sensor:()=>Eb,educore_gyroscope_sensor_read:()=>Ob,educore_gyroscope_sensor_shake:()=>Rb,educore_light_sensor:()=>mb,educore_rfid_sensor:()=>Cb,educore_rfid_sensor_scan:()=>Sb,educore_rfid_sensor_scan_data:()=>Ab,educore_voice_sensor:()=>Mb,number1:()=>Gx,number2:()=>Ux,number3:()=>wx,number4:()=>kx,number5:()=>Hx,number6:()=>Wx,number7:()=>Kx,onboard_RTC_get_time:()=>yy,onboard_RTC_get_time_str:()=>By,onboard_RTC_get_timestamp:()=>by,onboard_RTC_get_timetuple_to_str:()=>Gy,onboard_RTC_set_datetime:()=>Xy,onboard_RTC_settime_string:()=>xy,onboard_RTC_timestamp_totuple:()=>Vy,rfid_readcontent:()=>ay,rfid_readid:()=>py,rfid_write:()=>uy,rfid_write_return:()=>ry,sensor_LTR308:()=>iy,sensor_adxl345_get_acceleration:()=>Oy,sensor_aht11:()=>_y,sensor_bitbot_ALS:()=>_b,sensor_button_get_presses:()=>ub,sensor_button_is_pressed:()=>pb,sensor_button_was_pressed:()=>ab,sensor_compass_reset:()=>Ay,sensor_ds18x20:()=>ty,sensor_eulerangles:()=>ly,sensor_get_acceleration:()=>dy,sensor_get_temperature:()=>oy,sensor_hp203:()=>sy,sensor_light:()=>Ib,sensor_lm35:()=>ey,sensor_mixbot_get_gyro:()=>sb,sensor_mixbot_patrol_calibrate:()=>eb,sensor_mixbot_patrol_value:()=>ib,sensor_mixbot_temperature:()=>nb,sensor_mixgo_LTR308:()=>jx,sensor_mixgo_button_attachInterrupt:()=>Xx,sensor_mixgo_button_get_presses:()=>vx,sensor_mixgo_button_is_pressed:()=>Px,sensor_mixgo_button_was_pressed:()=>Yx,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>ky,sensor_mixgo_cc_mmc5603_get_angle:()=>wy,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Uy,sensor_mixgo_light:()=>lb,sensor_mixgo_nova_LTR308:()=>$x,sensor_mixgo_nova_pin_near:()=>zx,sensor_mixgo_pin_near:()=>qx,sensor_mixgo_pin_near_double:()=>Qx,sensor_mixgo_pin_near_single:()=>Jx,sensor_mixgo_pin_pressed:()=>my,sensor_mixgo_sant_color:()=>Zx,sensor_mixgo_touch_slide:()=>hy,sensor_mixgocar42_button_attachInterrupt:()=>Vx,sensor_mixgocar42_button_get_presses:()=>bx,sensor_mixgocar42_button_is_pressed:()=>xx,sensor_mixgocar42_button_was_pressed:()=>yx,sensor_mixgocar_battery_left:()=>tb,sensor_mixgocar_pin_near:()=>Zy,sensor_mixgocar_pin_near_line:()=>jy,sensor_mixgocar_pin_near_state_change:()=>$y,sensor_mixgoce_pin_pressed:()=>My,sensor_mixgoce_temperature:()=>Wy,sensor_mixgome_temperature:()=>Hy,sensor_mpu9250_calibrate_compass:()=>gy,sensor_mpu9250_field_strength:()=>Sy,sensor_mpu9250_gesture:()=>Iy,sensor_mpu9250_get_acceleration:()=>Ty,sensor_mpu9250_get_gyro:()=>cy,sensor_mpu9250_get_magnetic:()=>Ry,sensor_mpu9250_temperature:()=>Cy,sensor_mpython_pin_pressed:()=>Ey,sensor_mpython_qmi8658_get_gyro:()=>Ky,sensor_mpython_qmi8658_temperature:()=>Jy,sensor_onboard_compass_reset:()=>vy,sensor_onboard_mpu9250_calibrate_compass:()=>Fy,sensor_onboard_mpu9250_field_strength:()=>Yy,sensor_onboard_mpu9250_gesture:()=>Ly,sensor_onboard_mpu9250_get_acceleration:()=>Ny,sensor_onboard_mpu9250_get_gyro:()=>fy,sensor_onboard_mpu9250_get_magnetic:()=>Dy,sensor_onboard_mpu9250_temperature:()=>Py,sensor_pin_near:()=>db,sensor_pin_pressed:()=>rb,sensor_read:()=>hb,sensor_rm_acc:()=>zy,sensor_rm_battery_left:()=>qy,sensor_rm_pin_near_double:()=>Qy,sensor_sound:()=>ny});var at={};t.r(at),t.d(at,{serial_any:()=>xb,serial_print:()=>Pb,serial_print_byte:()=>Yb,serial_print_hex:()=>Xb,serial_println:()=>vb,serial_read_from_ai:()=>Kb,serial_readline:()=>bb,serial_readstr:()=>yb,serial_send_to_ai:()=>Wb,serial_softserial:()=>Vb,serial_softserial_new:()=>Bb,system_input:()=>Gb,system_print:()=>Ub,system_print_end:()=>kb,system_print_inline:()=>wb,system_print_many:()=>Hb});var ut={};t.r(ut),t.d(ut,{Panic_with_status_code:()=>sV,Timer_init:()=>OV,base_delay:()=>gV,controls_delay:()=>uV,controls_delay_new:()=>rV,controls_end_program:()=>oV,controls_millis:()=>_V,controls_uname:()=>aV,reset:()=>pV,system_bitbot_shutdown:()=>EV,system_device_name:()=>iV,system_device_serial_number:()=>nV,system_event_bus_source:()=>tV,system_event_bus_value:()=>eV,system_machine_reset:()=>mV,system_on_event:()=>jb,system_raise_event:()=>zb,system_reset:()=>Qb,system_run_in_background:()=>Jb,system_ticks_diff:()=>IV,system_timer:()=>lV,system_timer_init:()=>TV,system_timestamp:()=>Zb,system_value:()=>$b,system_wait:()=>qb,system_wdt_feed:()=>hV,system_wdt_init:()=>MV,time_ticks_diff:()=>cV,timer:()=>dV,timer2:()=>RV});var rt={};t.r(rt),t.d(rt,{Air_daily_content:()=>xV,Air_now_content:()=>DV,Geo_moon_content:()=>bV,Geo_sun_content:()=>yV,Life_suggestion_content:()=>FV,Location_search_content:()=>YV,Tide_daily_content:()=>PV,WEATHER_DAILY:()=>SV,WEATHER_HOUR:()=>AV,WEATHER_NOW:()=>CV,Weather_alarm_content:()=>fV,Weather_daily:()=>vV,Weather_daily_content:()=>XV,Weather_now:()=>LV,Weather_now_content:()=>NV});var dt={};t.r(dt),t.d(dt,{controls_pin_attachInterrupt:()=>iB,inout_analog_atten:()=>KV,inout_analog_write:()=>HV,inout_analog_write_init:()=>zV,inout_analog_write_set:()=>WV,inout_analog_write_set_freq:()=>ZV,inout_digital_init:()=>qV,inout_digital_read:()=>kV,inout_digital_write:()=>wV,inout_highlow:()=>UV,inout_pinMode:()=>$V,inout_pin_attachInterrupt:()=>QV,inout_pin_pressed:()=>JV,inout_pin_pressed_init:()=>jV,pin_pressed:()=>eB,pin_pressed_init:()=>tB});var lt={};t.r(lt),t.d(lt,{analog_input:()=>dB,analog_output:()=>IB,espnow_channel:()=>aB,haskylens_model:()=>uB,i2c_A_pin:()=>TB,i2c_B_pin:()=>MB,pins_analog:()=>RB,pins_analog_pin:()=>cB,pins_axis:()=>VB,pins_brightness:()=>BB,pins_builtinimg:()=>PB,pins_builtinimg_extern:()=>YB,pins_button:()=>SB,pins_buttonB:()=>AB,pins_dac:()=>gB,pins_dac_pin:()=>CB,pins_digital:()=>sB,pins_digital_dot:()=>JB,pins_digital_pin:()=>_B,pins_exlcdh:()=>yB,pins_exlcdv:()=>bB,pins_imglist:()=>vB,pins_input_pin:()=>oB,pins_one_more:()=>KB,pins_output_pin:()=>pB,pins_playlist:()=>XB,pins_playlist_extern:()=>xB,pins_pwm:()=>LB,pins_pwm_pin:()=>NB,pins_radio_datarate:()=>WB,pins_radio_power:()=>HB,pins_serial:()=>FB,pins_tone_notes:()=>kB,pins_touch:()=>fB,pins_touch_pin:()=>DB,pins_tts_bgmusic:()=>wB,pins_tts_builtin_music:()=>UB,pins_tts_voice:()=>GB,pwm_input:()=>rB,pwm_output:()=>lB,spi_A_pin:()=>hB,spi_B_pin:()=>mB,spi_C_pin:()=>EB,spi_D_pin:()=>OB});var It={};t.r(It),t.d(It,{mini_g2_rfid_readcontent:()=>qB,mini_g2_rfid_readid:()=>QB,mini_g2_rfid_status:()=>ZB,mini_g2_rfid_write:()=>zB,mini_g2_rfid_write_outcome:()=>jB});var Tt={};t.r(Tt),t.d(Tt,{inout_analog_atten:()=>aG,inout_analog_write:()=>iG,inout_analog_write_init:()=>pG,inout_analog_write_set:()=>nG,inout_digital_init:()=>oG,inout_digital_read:()=>eG,inout_digital_write:()=>tG,inout_highlow:()=>$B,inout_pin_attachInterrupt:()=>_G,inout_pin_pressed:()=>sG,inout_pin_pressed_init:()=>uG});var Mt={};t.r(Mt),t.d(Mt,{analog_input:()=>OG,analog_output:()=>cG,espnow_channel:()=>mG,haskylens_model:()=>EG,i2c_A_pin:()=>gG,i2c_B_pin:()=>CG,pins_analog:()=>fG,pins_analog_pin:()=>DG,pins_axis:()=>kG,pins_brightness:()=>KG,pins_builtinimg:()=>VG,pins_builtinimg_extern:()=>BG,pins_button:()=>dG,pins_buttonB:()=>lG,pins_dac:()=>vG,pins_dac_pin:()=>YG,pins_digital:()=>rG,pins_digital_dot:()=>tU,pins_digital_pin:()=>IG,pins_exlcdh:()=>HG,pins_exlcdv:()=>WG,pins_imglist:()=>GG,pins_input_pin:()=>TG,pins_interrupt:()=>yG,pins_one_more:()=>$G,pins_output_pin:()=>MG,pins_playlist:()=>UG,pins_playlist_extern:()=>wG,pins_pwm:()=>PG,pins_pwm_input:()=>hG,pins_pwm_pin:()=>FG,pins_radio_datarate:()=>ZG,pins_radio_power:()=>jG,pins_serial:()=>bG,pins_tone_notes:()=>zG,pins_touch:()=>xG,pins_touch_pin:()=>XG,pins_tts_bgmusic:()=>qG,pins_tts_builtin_music:()=>QG,pins_tts_voice:()=>JG,pwm_output:()=>RG,spi_A_pin:()=>SG,spi_B_pin:()=>AG,spi_C_pin:()=>LG,spi_D_pin:()=>NG});var ht={};t.r(ht),t.d(ht,{mini_g2_rfid_readcontent:()=>iU,mini_g2_rfid_readid:()=>eU,mini_g2_rfid_status:()=>_U,mini_g2_rfid_write:()=>nU,mini_g2_rfid_write_outcome:()=>sU});const mt=Blockly,Et=Mixly,Ot={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},Rt=Ot; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const de={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const ye={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},js={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Hs),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_=160,i_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},n_={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},s_={init:function(){this.setColour(e_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},__={init:function(){this.setColour(e_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},o_={init:function(){this.setColour(e_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},p_={init:function(){this.setColour(e_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},a_={init:function(){this.setColour(e_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ea=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},ia=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},na=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},sa=function(t,e){return["None",e.ORDER_ATOMIC]},_a=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ua=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},da=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},la=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ia=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ta=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ha=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Oa=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ra=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ca=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ca=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Sa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Aa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Na=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Da=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},lu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Iu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},hu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},mu=function(t,e){return'"},Eu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Ou=function(){return this.getFieldValue("TEXT")+"\n"},Ru=function(t){return t.getFieldValue("TEXT")+"\n"},cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},gu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Cu=function(){return""},Su=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Au=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Nu.scrubNakedValue=function(t){return t+"\n"},Nu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Nu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Nu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,Nu.COMMENT_WRAP-3),n+=Nu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Du="#74A55B",fu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Fu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Pu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},vu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},xu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},yu={init:function(){this.setColour(Du),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Vu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Bu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Gu={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Uu={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},ku={init:function(){this.setColour(Du),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Hu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Ku={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ju={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},qu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},zu={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},ju={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Zu={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},$u={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},tr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},er={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ir={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},nr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},_r={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},pr={},ar={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ur={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},rr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},dr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},lr={init:function(){this.setColour(Du),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Ir={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Tr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},hr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},gr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Lr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Dr={init:function(){this.setColour(Du),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pr={init:function(){this.setColour(Du),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Du),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr="#6C9858",Xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},xr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},yr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Br={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Gr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Ur={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},wr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},kr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hr={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Wr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Kr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},qr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},jr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Zr={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},$r={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},td={init:function(){this.setColour(vr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},sd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},_d={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},od={init:function(){this.setColour(vr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ad={init:function(){this.setColour(vr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(vr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},rd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Id={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Td={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},md={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Od={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},gd={init:function(){this.setColour(vr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ld={init:function(){this.setColour(vr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Dd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Fd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Pd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Yd={init:function(){this.setColour(vr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},vd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Xd={init:function(){this.setColour(vr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},xd={init:function(){this.setColour(vr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},pE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},aE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},uE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},rE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},lE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},IE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},mE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},EE={init:function(){this.setColour(tE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},OE={init:function(){this.setColour(tE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},RE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},cE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},gE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CE={init:function(){this.setColour(tE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},SE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(tE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},AE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},LE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},NE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},DE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fE={init:function(){this.setColour(tE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},FE=eE,PE=iE,YE=nE,vE=sE,XE=oE,xE=225,yE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},bE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},VE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},BE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},GE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},UE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},wE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},kE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},HE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},WE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},KE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},JE={init:function(){this.setColour(xE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},QE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},qE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},zE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},jE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},ZE={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},$E={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},tO={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},eO={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},iO={init:function(){this.setColour(xE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},nO={init:function(){this.setColour(xE),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},sO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(xE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},_O={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(xE),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},oO={init:function(){this.setColour(xE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},pO={init:function(){this.setColour(xE),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},aO="#3288dd",uO={init:function(){this.setColour(aO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},rO={init:function(){this.setColour(aO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},dO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(aO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},lO={init:function(){this.setColour(aO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},IO={init:function(){this.setColour(aO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},TO={init:function(){this.setColour(aO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},MO={init:function(){this.setColour(aO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hO={init:function(){this.setColour(aO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mO={init:function(){this.setColour(aO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},EO=100,OO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(EO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},RO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(EO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(EO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(EO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_SPK_STATE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"True"],[mt.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},CO=100,SO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},AO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},LO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},NO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},DO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},fO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},FO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},PO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(CO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},YO="#A58C5B",vO={init:function(){this.setColour(YO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},XO={init:function(){this.setColour(YO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},xO={init:function(){this.setColour(YO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},yO={init:function(){this.setColour(YO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},bO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},VO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},BO={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},GO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(YO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},UO={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},wO={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},kO={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},HO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},WO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},KO={init:function(){this.setColour(YO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},JO={init:function(){this.setColour(YO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},QO={init:function(){this.setColour(YO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},qO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},zO={init:function(){this.setColour(YO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},jO={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},ZO={init:function(){this.setColour(YO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},$O={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},tR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},eR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},iR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},nR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},sR={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oR={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},pR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},aR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rR={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},lR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},IR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},TR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},MR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},mR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ER={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},OR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},RR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},cR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},gR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},CR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},SR={init:function(){this.setColour(YO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},AR={init:function(){this.setColour(YO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},LR={init:function(){this.setColour(YO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},NR={init:function(){this.setColour(YO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},DR={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},fR={init:function(){this.setColour(YO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},FR={init:function(){this.setColour(YO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},PR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},YR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},XR={init:function(){this.setColour(YO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},Nf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Df=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},ff=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Ff=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},Pf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Yf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},vf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Xf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},xf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},yf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},bf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},Vf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},Bf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},Gf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Uf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},wf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},kf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},Hf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},Wf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},Kf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},Jf=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},Qf=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},zf=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},jf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},Zf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},$f=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},tF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},eF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},iF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},nF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},sF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},_F=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},oF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},pF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},aF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},uF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},rF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},dF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},lF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},IF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},TF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},MF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},hF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},mF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},EF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},OF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},RF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},cF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},gF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},CF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},SF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},AF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},NF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},DF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},fF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},FF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},PF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},YF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},vF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},XF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},xF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},yF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},bF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},VF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},BF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},GF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},UF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},wF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},kF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},cP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},gP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},CP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},AP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},LP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},NP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},DP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},fP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},FP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},PP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},YP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},vP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},XP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},xP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},yP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},bP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},VP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},BP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},GP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},UP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},wP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},kP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},HP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},WP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},Hb=function(){return"control.reset()\n"},Wb=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},Kb=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},Jb=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Qb=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},qb=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},zb=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},jb=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Zb=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},$b=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},tV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},eV=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},iV=function(){return"while True:\n pass\n"},nV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},sV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},_V=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},oV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},pV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},aV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},uV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},rV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},dV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},lV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},IV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},TV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},MV=rV,hV=aV,mV=uV,EV=_V,OV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},CV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},SV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},AV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},LV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},NV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},DV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},fV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},FV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},PV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},YV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},vV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},XV={};XV["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},XV["元控自强"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},XV["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const xV=XV,yV=20,bV={init:function(){this.setColour(yV),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},VV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},BV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},GV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},UV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},wV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},kV={init:function(){this.setColour(yV),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},HV={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},WV={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},KV={init:function(){this.setColour(yV),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},JV={init:function(){this.setColour(yV),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},QV={init:function(){this.setColour(yV),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},qV=WV,zV=JV,jV=kV,ZV=HV,$V=230,tB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},eB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},iB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},nB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},sB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},_B={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},pB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},aB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},uB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},rB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},dB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},lB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},IB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},TB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},MB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},hB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},mB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},EB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},OB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},RB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},cB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},CB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},LB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},NB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},DB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},fB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},PB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},YB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},vB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},XB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},xB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},yB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},BB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},wB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},kB={init:function(){this.setColour($V),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},HB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},WB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},KB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},JB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},QB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"True"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qB=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},zB=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},jB=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},ZB=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},$B=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},tG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},eG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},iG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},nG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},sG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},_G=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},oG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},pG=oG,aG=oG,uG=oG,rG=oG,dG=oG,lG=oG,IG=oG,TG=oG,MG=oG,hG=oG,mG=oG,EG=oG,OG=oG,RG=oG,cG=oG,gG=oG,CG=oG,SG=oG,AG=oG,LG=oG,NG=oG,DG=oG,fG=oG,FG=oG,PG=oG,YG=oG,vG=oG,XG=oG,xG=oG,yG=oG,bG=oG,VG=oG,BG=oG,GG=oG,UG=oG,wG=oG,kG=oG,HG=oG,WG=oG,KG=oG,JG=oG,QG=oG,qG=oG,zG=oG,jG=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";n='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";n='mini_g2.ext_rc522.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},ZG=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},$G=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},tU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},eU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]};Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=Nu,mt.generator=Nu,Et.Profile.default={},Object.assign(Et.Profile,xV),Object.assign(Et.Profile.default,xV["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,y,H,k,Y,b,W,f,w,U,G,V,F,D,N,X,v,x,P,B,dt,lt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,et,ut,at,j,it,rt,Q,pt,ot,_t,nt,q,J,K,$,Z,tt,z,st,Tt,Mt,ht)})(); \ No newline at end of file +class ct{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(mt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Gt={init:function(){this.setColour(Xt),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},Ut={init:function(){this.setColour(Xt),this.appendValueInput("LIST").setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(mt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},wt={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new mt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(mt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:mt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(mt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ht={init:function(){this.setColour(Xt);var t=new mt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:mt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Wt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Kt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new mt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return mt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};wt.OPERATORS=[[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ht.OPERATORS=[[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[mt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},qt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(mt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},jt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Zt={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(mt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},$t={init:function(){this.jsonInit({message0:mt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Xt,tooltip:mt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:mt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},te={init:function(){this.setColour(Xt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_STAT),this.setOutput(!0)}},ee={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},ie={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},ne={init:function(){this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+mt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(mt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new mt.FieldDropdown([[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[mt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Xt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},se={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_e={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},oe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},pe={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_GET_UNIQUE_IDEN)}},ae={init:function(){this.setColour(Xt),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(mt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ue={init:function(){this.setColour(Xt),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},re=230;mt.FieldTextInput.math_number_validator=function(t){return String(t)},mt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const de={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},le={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Ie={init:function(){this.setColour(re);this.appendDummyInput("").appendField(mt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new mt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:mt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Te={init:function(){this.setColour(re),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Me={init:function(){this.setColour(re),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:mt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:mt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:mt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:mt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:mt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},he={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new mt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},me={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:mt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:mt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:mt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:mt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:mt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:mt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:mt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Ee={init:function(){var t=[[mt.Msg.MATH_BIN,"bin"],[mt.Msg.MATH_OCT,"oct"],[mt.Msg.MATH_HEX,"hex"]];this.setColour(re),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:mt.Msg.MATH_DEC_TOOLTIP_BIN,oct:mt.Msg.MATH_DEC_TOOLTIP_OCT,hex:mt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Oe={init:function(){var t=[[mt.Msg.LANG_MATH_TO_ROUND,"round"],[mt.Msg.LANG_MATH_TO_CEIL,"ceil"],[mt.Msg.LANG_MATH_TO_FLOOR,"floor"],[mt.Msg.MATH_ABS,"fabs"],[mt.Msg.MATH_SQRT,"sqrt"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).appendField(new mt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:mt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:mt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:mt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:mt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:mt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:mt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Re={init:function(){var t=[[mt.Msg.MIXLY_MAX,"max"],[mt.Msg.MIXLY_MIN,"min"]];this.setColour(re),this.appendValueInput("A").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(mt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:mt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:mt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},ce={init:function(){var t=[[mt.Msg.MATH_TWO,"two"],[mt.Msg.MATH_EIGHT,"eight"],[mt.Msg.MATH_TEN,"ten"],[mt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(re),this.appendDummyInput("").appendField(mt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new mt.FieldDropdown(t),"OP").appendField(mt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MATH_ZHW).appendField(new mt.FieldDropdown(t),"OP2").appendField(mt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:mt.Msg.MATH_Before_two,eight:mt.Msg.MATH_Before_eight,ten:mt.Msg.MATH_Before_ten,sixteen:mt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:mt.Msg.MATH_Behind_two,eight:mt.Msg.MATH_Behind_eight,ten:mt.Msg.MATH_Behind_ten,sixteen:mt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[mt.Msg.LANG_MATH_INT,"int"],[mt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(re),this.setOutput(!0,Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new mt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(mt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:mt.Msg.LANG_MATH_INT,float:mt.Msg.LANG_MATH_FLOAT_RANDOM};return mt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Ce={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(mt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_CONSTRAIN_TOOLTIP)}},Se={init:function(){this.setColour(re),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(mt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(mt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ae={init:function(){this.setColour(re),this.appendDummyInput().appendField(new mt.FieldTextInput("0",mt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(mt.Msg.MATH_NUMBER_TOOLTIP)}},Le={init:function(){this.setColour(re),this.appendValueInput("NUM").setCheck(Number).appendField(mt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Ne={init:function(){this.setColour(re),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MATH_ROUND).appendField(mt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(mt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(mt.Msg.MATH_ROUND_NEW_TOOLTIP)}},De={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"],[mt.Msg.MIXLY_TO_BITES,"b"],[mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:mt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:mt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},fe={init:function(){var t=[[mt.Msg.MIXLY_TO_INT,"int"],[mt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(re),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:mt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:mt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Fe=Se,Pe={init:function(){this.setColour(re),this.appendValueInput("VAR").appendField(mt.Msg.LANG_MATH_BYTE+mt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Ye={init:function(){this.setColour(re),this.itemCount_=1,this.setMutator(new mt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(mt.Msg.MIXLY_PRODUCT+mt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(mt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(mt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(mt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const ye={init:function(){this.setColour(ve),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new mt.FieldTextInput("",mt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(mt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new mt.FieldImage(e,7,12,'"')}},be={init:function(){this.setColour(ve),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(mt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ve={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Be={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String).appendField(mt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ge={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},Ue={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},we={init:function(){this.WHERE_OPTIONS=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.TEXT_GET_INDEX_RANDOM+1+mt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.LISTS_GET_INDEX_GET,"MODE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(mt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=mt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+mt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",mt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:mt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:mt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:mt.Msg.TEXT_GET_INDEX_RANDOM};return mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+mt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==mt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new mt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),mt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.LISTS_GET_INDEX_FROM_START+"n"+mt.Msg.TEXT_CHARAT2)}},He={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(mt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(mt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},We={init:function(){this.WHERE_OPTIONS_1=[[mt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[mt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[mt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[mt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==mt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),mt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(mt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new mt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ke={init:function(){this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(mt.Msg.LISTS_GET_INDEX_GET+" "+mt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(mt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(mt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(mt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Je={init:function(){var t=[[mt.Msg.MIXLY_EQUALS,"==="],[mt.Msg.MIXLY_STARTSWITH,"startswith"],[mt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new mt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Qe={init:function(){this.setColour(ve),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_COMPARETO_HELP)}},qe={init:function(){var t=[[mt.Msg.TEXT_UPPER,"upper"],[mt.Msg.TEXT_TITLE,"title"],[mt.Msg.TEXT_CAPITALIZE,"capitalize"],[mt.Msg.TEXT_SWAPCASE,"swapcase"],[mt.Msg.TEXT_LOWER,"lower"]];this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:mt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:mt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:mt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:mt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:mt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},ze={init:function(){var t=[[mt.Msg.TEXT_LJUST,"ljust"],[mt.Msg.TEXT_CENTER,"center"],[mt.Msg.TEXT_RJUST,"rjust"]];this.setColour(ve),this.appendValueInput("VAR").appendField(new mt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(mt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(mt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},je={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(mt.Msg.MIXLY_MID+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(mt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Ze={init:function(){this.setColour(ve),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},$e={init:function(){this.setColour(ve),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(mt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(mt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ti={init:function(){this.setColour(ve),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(mt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(mt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ei={init:function(){var t=[[mt.Msg.TEXT_TRIM_BOTH,"strip"],[mt.Msg.TEXT_TRIM_LEFT,"lstrip"],[mt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(ve),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(mt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:mt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:mt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:mt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},ii={init:function(){this.setColour(ve),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new mt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Zi={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},$i={init:function(){this.setColour(zi),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_KEYS),this.setTooltip(mt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_TOOLTIP)}},nn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(mt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},sn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(mt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},_n={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(mt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_DELETE_TOOLTIP)}},on={init:function(){this.setColour(zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(mt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(mt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MID),this.setTooltip(mt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_CLEAR),this.setTooltip(mt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},an={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_ITEMS),this.setTooltip(mt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},un={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_VALUES),this.setTooltip(mt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LENGTH),this.setTooltip(mt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},dn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.DICT_DELDICT),this.setTooltip(mt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.MODE=[[mt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[mt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(mt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(mt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=mt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=mt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==mt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new mt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},In={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(mt.Msg.DICTS_ADD_VALUE),this.setTooltip(mt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Tn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(mt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(mt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Mn={init:function(){this.setColour(zi),this.appendDummyInput("").appendField(new mt.FieldLabel(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new mt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},hn={init:function(){this.setColour(zi),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},mn={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},On={init:function(){this.setColour(zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Rn={init:function(){this.setColour(zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TO_JSON),this.setTooltip(mt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},cn=210,gn={init:function(){var t=mt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:mt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:mt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:mt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:mt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Cn={init:function(){var t=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=mt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new mt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Sn={init:function(){var t=[[mt.Msg.LOGIC_OPERATION_AND,"AND"],[mt.Msg.LOGIC_OPERATION_OR,"OR"],[mt.Msg.LOGIC_OPERATION_NOR,"NOR"],[mt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new mt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:mt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:mt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:mt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},An={init:function(){this.setColour(cn),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(mt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(mt.Msg.LOGIC_NEGATE_TOOLTIP)}},Ln={init:function(){var t=[[mt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[mt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(cn),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new mt.FieldDropdown(t),"BOOL"),this.setTooltip(mt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Nn={init:function(){this.setColour(cn),this.setOutput(!0),this.appendDummyInput().appendField(mt.Msg.LOGIC_NULL),this.setTooltip(mt.Msg.LOGIC_NULL_TOOLTIP)}},Dn={init:function(){this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(mt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(mt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},fn={init:function(){var t=[[mt.Msg.TEXT_APPEND_TO,"in"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new mt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(mt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.IN)}},Fn={init:function(){var t=[[mt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[mt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(cn),this.appendValueInput("A"),this.appendValueInput("B").appendField(new mt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Pn={init:function(){this.setColour(cn),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(mt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},xn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXPY_TEXT_ENCODE).appendField(new mt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_USE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=mt.Msg.MIXLY_BELONG,o=mt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},yn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+mt.Msg.MIXLY_MICROBIT_TYPE_STRING+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MICROBIT_PYTHON_TYPE)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.HTML_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Hn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Qn={init:function(){this.setColour(0),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},qn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+mt.Msg.MIXLY_ESP32_SET+{mkdir:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(mt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.HTML_FILE,"isfile"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+mt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},$n={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(mt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ts={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(mt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},es={};es.NAME_TYPE=mt.PROCEDURE_CATEGORY_NAME,es.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},js={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Zs={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_FORM_CONTENT).appendField(new mt.FieldDropdown([[mt.Msg.HTML_TEXT,"text"],[mt.Msg.HTML_EMAIL,"email"],[mt.Msg.HTML_NUMBER,"number"],[mt.Msg.HTML_PASSWORD,"password"],[mt.Msg.HTML_CHECKBOX,"checkbox"],[mt.Msg.HTML_RADIOBUTTON,"radiobutton"],[mt.Msg.HTML_BUTTON,"button"],[mt.Msg.HTML_COLOUR,"colour"],[mt.Msg.HTML_DATE,"date"],[mt.Msg.HTML_LOCALTIME,"local time"],[mt.Msg.HTML_FILE,"file"],[mt.Msg.HTML_HIDDEN,"hidden"],[mt.Msg.HTML_IMAGE,"image"],[mt.Msg.HTML_MONTH,"month"],[mt.Msg.HTML_RANGE,"range"],[mt.Msg.HTML_RESET,"reset"],[mt.Msg.HTML_SEARCH,"search"],[mt.Msg.HTML_SUBMIT,"submit"],[mt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[mt.Msg.HTML_TIME,"time"],[mt.Msg.HTML_URL,"url"],[mt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(mt.Msg.HTML_NAME).appendField(new mt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(mt.Msg.HTML_VALUE).appendField(new mt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(mt.Msg.MIXLY_AIP_ATTR).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},t_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(new mt.FieldTextInput("property"),"KEY").appendField(":").appendField(new mt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},e_={init:function(){this.setColour(Ws),this.appendDummyInput().appendField(mt.Msg.HTML_TEXT).appendField(new mt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},i_=160,n_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new mt.FieldTable(""),"TEXT")}},s_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT")}},__={init:function(){this.setColour(i_),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new mt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},o_={init:function(){this.setColour(i_),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},p_={init:function(){this.setColour(i_),this.appendDummyInput().appendTitle("Comment:").appendTitle(new mt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},a_={init:function(){this.setColour(i_),this.appendValueInput("VALUE").appendField(mt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},u_={init:function(){this.setColour(i_),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new mt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(mt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=mt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},mt.isNumber(n)&&mt.isNumber(s)&&mt.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const ia=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},na=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},sa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},_a=function(t,e){return["None",e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},pa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ua=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ra=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},da=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},la=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ia=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ta=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ha=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ra=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Sa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Aa=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},La=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Na=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Da=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Fa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},va=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),mt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Tu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Mu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},hu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},mu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Eu=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Ou=function(t,e){return'"},Ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},cu=function(){return this.getFieldValue("TEXT")+"\n"},gu=function(t){return t.getFieldValue("TEXT")+"\n"},Cu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Su=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Au=function(){return""},Lu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Nu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},fu.scrubNakedValue=function(t){return t+"\n"},fu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},fu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},fu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=mt.utils.string.wrap(_,fu.COMMENT_WRAP-3),n+=fu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Fu="#74A55B",Pu={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},Yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},xu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},yu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},bu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Vu={init:function(){this.setColour(Fu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Gu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Uu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},wu={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},ku={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Hu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Wu={init:function(){this.setColour(Fu),this.appendValueInput("VAR").appendField("360°"+mt.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETTING+mt.Msg.blockpy_turtle_rotate+mt.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Ku={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Ju={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},qu={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new mt.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(mt.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},ju={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[mt.Msg.MOTOR_N,"ms32006.MOT_N"],[mt.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},Zu={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new mt.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"ms32006.MOT_CW"],[mt.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},$u={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_RGB_PIN_COUNT)}},tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},er={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ir={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},nr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new mt.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["SYN6288"+mt.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+mt.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},sr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_WHETHER).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_STOPPED,"0"],[mt.Msg.MIXLY_PLAYING,"1"],[mt.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},_r={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_PLAY,"1"],[mt.Msg.MIXLY_MP3_PAUSE,"2"],[mt.Msg.MIXLY_STOP,"3"],[mt.Msg.MIXLY_MP3_PREV,"4"],[mt.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},or={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(mt.Msg.MIXLY_MP3_VOL+mt.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},pr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MP3_LOOP_ALL,"0"],[mt.Msg.MIXLY_MP3_LOOP_ONE,"1"],[mt.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[mt.Msg.MIXLY_MP3_LOOP_RAM,"3"],[mt.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[mt.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ar={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[mt.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},ur={},rr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},dr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},lr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},Ir={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(mt.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(mt.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(mt.Msg.MIXLY_PROGRAM_BLOCK).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},Tr={init:function(){this.setColour(Fu),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},Mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},hr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_TRAFFIC_LIGHT).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.LISTS_SET_INDEX_SET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[mt.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_WHITE,"W"],[mt.Msg.COLOUR_RGB_RED,"R"],[mt.Msg.COLOUR_RGB_YELLOW,"Y"],[mt.Msg.COLOUR_RGB_GREEN,"G"],[mt.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[mt.Msg.MIXLY_SPEED,"[1]"],[mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[mt.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[mt.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[mt.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[mt.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MATH_SINGLE_OP_ABSOLUTE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Sr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ar={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Lr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.ME_GO_MOTOR_EXTERN+mt.Msg.MIXLY_SERVO_MOTOR).appendField(mt.Msg.MIXLY_RELATIVE+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+mt.Msg.MSG.run).appendField("("+mt.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LEFT,"0"],[mt.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MODE).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPEED+mt.Msg.MIXLY_MODE,"0"],[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER+mt.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(mt.inputs.Align.RIGHT).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"0"],[mt.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Dr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.ME_GO_MOTOR_EXTERN).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MOTOR,"ext_motor"],[mt.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[mt.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[mt.Msg.COLOUR_RGB_RED+"LED","R_LED"],[mt.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[mt.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[mt.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[mt.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Fr={init:function(){this.setColour(Fu),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Pr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SERVO+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Yr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(mt.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vr={init:function(){this.setColour(Fu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MOTOR+mt.Msg.MIXLY_SETUP+mt.Msg.MIXLY_AT).appendField(mt.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Xr={init:function(){this.setColour(Fu),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+mt.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xr="#6C9858",yr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},br={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_ON,"1"],[mt.Msg.MIXLY_ESP32_OFF,"0"],[mt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Vr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Br={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Gr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ur={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},wr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(mt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(mt.Msg.MIXLY_LCD_SETCOLOR).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_LIGHT_RED,"1"],[mt.Msg.MIXLY_LIGHT_GREEN,"2"],[mt.Msg.MIXLY_LIGHT_BLUE,"3"],[mt.Msg.MIXLY_LIGHT_YELLOW,"4"],[mt.Msg.MIXLY_LIGHT_CYAN,"5"],[mt.Msg.MIXLY_LIGHT_PURPLE,"6"],[mt.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},kr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Hr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Wr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(mt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Kr={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETTING).appendField(mt.Msg.MIXLY_BUILDIN_LED).appendField(new mt.FieldDropdown([[mt.Msg.COLOUR_RGB_RED,"r"],[mt.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_BUILDIN_LED+mt.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Jr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(new mt.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Qr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},qr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},zr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},jr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Zr={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_WRI)}},$r={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(Et.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(mt.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},td={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(mt.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},ed={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(mt.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.PYTHON_RANGE_STEP).appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},id={init:function(){this.setColour(xr),this.appendValueInput("TICKS").setCheck(Number).appendField(mt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(mt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(mt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},nd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},sd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_RESET)}},_d={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},od={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(mt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},pd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ad={init:function(){this.setColour(xr),this.appendValueInput("LIST").appendField(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ud={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rd={init:function(){this.setColour(xr),this.appendDummyInput().appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField("MixGo Car").appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},ld={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MOTOR_DC).appendField(new mt.FieldDropdown([[mt.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[mt.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_STOP).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Td={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},Md={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},hd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},md={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"1"],[mt.Msg.TEXT_TRIM_RIGHT,"2"],[mt.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[mt.Msg.MIXLY_SPEED,"SPEED"],[mt.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},Ed={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[mt.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.blockpy_forward,"F"],[mt.Msg.blockpy_backward,"B"],[mt.Msg.blockpy_left,"L"],[mt.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(new mt.FieldDropdown([[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.BITBOT).appendField(mt.Msg.MIXLY_MOTOR).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"0"],[mt.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gd={init:function(){this.setColour(xr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Cd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Sd={init:function(){this.setColour(xr),this.appendValueInput("bright").appendField(mt.Msg.MIXLY_SETTING+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Ad={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MIXBOT_BUZZER+mt.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ld={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_RECORD_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Nd={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_AUDIO).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Dd={init:function(){this.setColour(xr),this.appendValueInput("PATH").appendField(mt.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},fd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(mt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Fd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Yd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.PIN_NUMBERING).appendField(new mt.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},vd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.ME_GO_MOTOR_EXTERN).appendField(mt.Msg.MIXLY_ALL+mt.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(mt.ALIGN_RIGHT).appendField(mt.Msg.blynk_IOT_IR_POWER+mt.Msg.MIXLY_PINMODEOUT+mt.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Xd={init:function(){this.setColour(xr),this.appendDummyInput().appendField(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(mt.Msg.MIXLY_RELEASE).appendField(new mt.FieldDropdown([[mt.Msg.MICROPYTHON_DISPLAY_YES,"True"],[mt.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.ANALOG+mt.Msg.MIXLY_KEYBOARD_INPUT)}},xd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SPECIAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[mt.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[mt.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[mt.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[mt.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[mt.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[mt.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[mt.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},yd={init:function(){this.setColour(xr),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GENERAL_KEY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},bd={init:function(){this.setColour(xr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new mt.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(mt.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},uE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},rE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},dE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},lE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_PROJECT).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},IE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},TE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},ME={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},OE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},RE={init:function(){this.setColour(iE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},cE={init:function(){this.setColour(iE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},gE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(mt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},CE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(mt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},SE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+mt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},AE={init:function(){this.setColour(iE),this.appendDummyInput().appendField(mt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(mt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},LE={init:function(){this.VISITOR_ID=Et.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(iE),this.appendDummyInput("").appendField(new mt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},NE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MixIO").appendField(mt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},DE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(mt.Msg.MIXLY_REQUESTS_GET).appendField(mt.Msg.MIXLY_GET_CURRENT_TIME).appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("HTTP"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},FE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(mt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(mt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(mt.Msg.MQTT_Topic).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(mt.Msg.MIXLY_OPEN_DEBUG).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[mt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},PE={init:function(){this.setColour(iE),this.appendDummyInput().appendField("MQTT"+mt.Msg.MIXLY_Client).appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[mt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[mt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},YE=nE,vE=sE,XE=_E,xE=oE,yE=aE,bE=225,VE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(mt.Msg.MIXLY_NETWORK_MODE).appendField(new mt.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},BE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[mt.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=mt.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:mt.Msg.MIXLY_NETWORK_WIFI_OPEN,False:mt.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},GE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},UE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return mt.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:mt.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},wE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},kE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_NETWORK_WIFI_CONNECT+mt.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},HE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[mt.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:mt.Msg.MIXLY_ESP32_NETWORK_IP,1:mt.Msg.MIXLY_ESP32_NETWORK_MASK,2:mt.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},WE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},KE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},JE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(mt.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(mt.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},QE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},qE={init:function(){this.setColour(bE),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new mt.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},zE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},jE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},ZE={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},$E={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},tO={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},eO={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},iO={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},nO={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},sO={init:function(){this.setColour(bE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},_O={init:function(){this.setColour(bE),this.appendValueInput("DOMAIN").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS_GET).appendField(new mt.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},oO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(bE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:mt.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:mt.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:mt.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},pO={init:function(){this.appendValueInput("VAR").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(bE),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(mt.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:mt.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:mt.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},aO={init:function(){this.setColour(bE),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(mt.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},uO={init:function(){this.setColour(bE),this.appendDummyInput("").appendField(new mt.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},rO="#3288dd",dO={init:function(){this.setColour(rO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS).appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},lO={init:function(){this.setColour(rO),this.appendValueInput("URL").appendField(mt.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(mt.Msg.blockpy_CONDUCT).appendField(new mt.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(mt.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(mt.Msg.blockpy_REQUESTS+mt.Msg.OLED_STRING),this.appendDummyInput("").appendField(mt.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},IO={init:function(){this.appendValueInput("VAL");var t=[[mt.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[mt.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[mt.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(rO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},TO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(mt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(mt.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(mt.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},MO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_SERVER).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(mt.Msg.MIXLY_EMQX_PORT).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(mt.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(mt.Msg.MIXLY_WIFI_USERNAME).setAlign(mt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(mt.Msg.MIXLY_IOT_PASSWORD).setAlign(mt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hO={init:function(){this.setColour(rO),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(mt.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},mO={init:function(){this.setColour(rO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_SUBSCRIBE+mt.Msg.MIXLY_MICROBIT_MSG).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(mt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EO={init:function(){this.setColour(rO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(mt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(mt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(mt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OO={init:function(){this.setColour(rO),this.appendDummyInput().appendField("mqtt"+mt.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},RO=100,cO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(RO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_MIXGO_NOVA_POTENTIAL_NUM),this.setOutput(!0,Number),this.setInputsInline(!0)}},gO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(RO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},CO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(RO),this.appendValueInput("PIN").appendField(t).appendField(mt.Msg.SET_USB),this.appendValueInput("percent").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_POWER_SUPPLY),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},SO={init:function(){if("mixgo_nova"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="Nova G1";this.setColour(RO),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_SPK_STATE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ON,"True"],[mt.Msg.MIXLY_OFF,"False"]]),"state"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},AO=100,LO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(e),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},NO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0,Number),this.setInputsInline(!0)}},DO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Direction).appendField(new mt.FieldDropdown([[mt.Msg.CLOCKWISE,"CW"],[mt.Msg.ANTI_CLOCKWISE,"CCW"],[mt.Msg.MOTOR_P,"P"],[mt.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField(mt.Msg.MOTOR_DC).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_STEPPER_GET_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},FO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_MOVE)}},PO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(mt.inputs.Align.RIGHT).appendField(mt.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},YO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("180°"+mt.Msg.MIXLY_SERVO),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},vO={init:function(){var t=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_ce"==t)var e="CE G6";else if("mixgo_pe"==t)e="PE G1";this.setColour(AO),this.appendValueInput("SUB").appendField(e).setCheck("var"),this.appendValueInput("PIN").appendField("360°"+mt.Msg.MIXLY_SERVO).appendField(mt.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET+mt.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},XO="#A58C5B",xO={init:function(){this.setColour(XO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_IS_PRESSED)}},yO={init:function(){this.setColour(XO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_SENOR_WAS_PRESSED)}},bO={init:function(){this.setColour(XO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(mt.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.PROCEDURES_DEFRETURN_RETURN+mt.Msg.MIXLY_BUTTON+mt.Msg.MIXLY_GET_PRESSES)}},VO={init:function(){this.setColour(XO),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_BUTTON).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},BO={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"],[mt.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down,freefall:mt.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},GO={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},UO={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},wO={init:function(){var t=[[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(XO),this.appendValueInput("PIN",Number).appendField(new mt.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new mt.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:mt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},kO={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},HO={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},WO={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new mt.FieldDropdown([[mt.Msg.TEXT_TRIM_LEFT,"left"],[mt.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(mt.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=mt.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=mt.Msg.MIXLY_ESP32_NEAR;return i+{left:mt.Msg.TEXT_TRIM_LEFT,right:mt.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},KO={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[mt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":mt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},JO={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[mt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},QO={init:function(){this.setColour(XO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},qO={init:function(){this.setColour(XO),this.appendDummyInput("").appendField("LM35"+mt.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(mt.Msg.MIXLY_TOOLTIP_LM35)}},zO={init:function(){this.setColour(XO),this.appendValueInput("I2CSUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[mt.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[mt.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[mt.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[mt.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[mt.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[mt.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[mt.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[mt.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[mt.Msg.HTML_COLOUR+"、"+mt.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+mt.Msg.MIXLY_NEXT+"、"+mt.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[mt.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[mt.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[mt.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[mt.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},jO={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},ZO={init:function(){this.setColour(XO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(mt.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(mt.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+mt.Msg.MIXLY_DELAY_TIME_RANGE)}},$O={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},tR={init:function(){this.setColour(XO),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RADAR).appendField(mt.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},eR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},iR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HELLO_XIAOZHI,"1"],[mt.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[mt.Msg.MIXLY_THE_FIRST,"3"],[mt.Msg.MIXLY_THE_SECOND,"4"],[mt.Msg.MIXLY_THE_THIRD,"5"],[mt.Msg.MIXLY_THE_FOURTH,"6"],[mt.Msg.MIXLY_THE_FIFTH,"7"],[mt.Msg.MIXLY_THE_SIXTH,"8"],[mt.Msg.MIXLY_THE_SEVENTH,"9"],[mt.Msg.MIXLY_THE_EIGHTH,"10"],[mt.Msg.MIXLY_THE_NINTH,"11"],[mt.Msg.MIXLY_THE_TENTH,"12"],[mt.Msg.MIXLY_THE_ELEVENTH,"13"],[mt.Msg.MIXLY_THE_TWELFTH,"14"],[mt.Msg.MIXLY_THE_13TH,"15"],[mt.Msg.MIXLY_THE_14TH,"16"],[mt.Msg.MIXLY_THE_15TH,"17"],[mt.Msg.MIXLY_THE_16TH,"18"],[mt.Msg.MIXLY_THE_17TH,"19"],[mt.Msg.MIXLY_THE_18TH,"20"],[mt.Msg.MIXLY_THE_19TH,"21"],[mt.Msg.MIXLY_THE_20TH,"22"],[mt.Msg.MIXLY_Turn_on_the_lights,"23"],[mt.Msg.MIXLY_Turn_off_the_lights,"24"],[mt.Msg.MIXLY_Turn_up_the_brightness,"25"],[mt.Msg.MIXLY_Turn_down_the_brightness,"26"],[mt.Msg.MIXLY_Set_it_to_red,"27"],[mt.Msg.MIXLY_Set_it_to_orange,"28"],[mt.Msg.MIXLY_Set_it_to_yellow,"29"],[mt.Msg.MIXLY_Set_it_to_green,"30"],[mt.Msg.MIXLY_Set_it_to_cyan,"31"],[mt.Msg.MIXLY_Set_it_to_blue,"32"],[mt.Msg.MIXLY_Set_it_to_purple,"33"],[mt.Msg.MIXLY_Set_it_to_white,"34"],[mt.Msg.MIXLY_Turn_on_the_fan,"35"],[mt.Msg.MIXLY_Turn_off_the_fan,"36"],[mt.Msg.MIXLY_First_gear,"37"],[mt.Msg.MIXLY_Wind_speed_second,"38"],[mt.Msg.MIXLY_Third_gear,"39"],[mt.Msg.MIXLY_Previous,"40"],[mt.Msg.MIXLY_Next_page,"41"],[mt.Msg.MIXLY_Show_smiley_face,"42"],[mt.Msg.MIXLY_Show_crying_face,"43"],[mt.Msg.MIXLY_Show_love,"44"],[mt.Msg.MIXLY_Close_display,"45"],[mt.Msg.MIXLY_Start_execution,"46"],[mt.Msg.MIXLY_FORWARD,"47"],[mt.Msg.MIXLY_BACKWARD,"48"],[mt.Msg.MIXLY_TURNLEFT,"49"],[mt.Msg.MIXLY_TURNRIGHT,"50"],[mt.Msg.MIXLY_STOP,"51"],[mt.Msg.MIXLY_Accelerate,"52"],[mt.Msg.MIXLY_retard,"53"],[mt.Msg.ROTATION_FORWARD,"54"],[mt.Msg.ROTATION_BACKWARD,"55"],[mt.Msg.MIXLY_Query_temperature,"56"],[mt.Msg.MIXLY_Query_humidity,"57"],[mt.Msg.MIXLY_Query_brightness,"58"],[mt.Msg.MIXLY_Query_sound,"59"],[mt.Msg.MIXLY_Query_time,"60"],[mt.Msg.MIXLY_Query_distance,"61"],[mt.Msg.MIXLY_Query_pressure,"62"],[mt.Msg.MIXLY_Query_key,"63"],[mt.Msg.MIXLY_Query_touch,"64"],[mt.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(mt.Msg.MIXLY_WHETHER+mt.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},nR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[mt.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[mt.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},sR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MP3_PLAY).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_WIND_SPEED,"154"],[mt.Msg.MIXLY_HYETAL,"155"],[mt.Msg.MIXLY_TEMPERATURE,"156"],[mt.Msg.MIXLY_Humidity,"157"],[mt.Msg.MIXLY_Altitude,"158"],[mt.Msg.MIXLY_SOUND,"159"],[mt.Msg.MIXLY_BRIGHTNESS,"160"],[mt.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[mt.Msg.MIXLY_SERVO,"162"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[mt.Msg.MIXLY_BUTTON2,"164"],[mt.Msg.MIXLY_ESP32_TOUCH,"165"],[mt.Msg.MIXLY_PAY,"166"],[mt.Msg.MIXLY_CARSH_CHANGE,"167"],[mt.Msg.MIXLY_COUNTDOWN,"168"],[mt.Msg.MIXLY_TIMING,"169"],[mt.Msg.MIXLY_AT_THE_MOMENT,"170"],[mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[mt.Msg.MIXLY_FORWARD,"172"],[mt.Msg.MIXLY_BACKWARD,"173"],[mt.Msg.MIXLY_TURNLEFT,"174"],[mt.Msg.MIXLY_TURNRIGHT,"175"],[mt.Msg.MIXLY_STOP,"176"],[mt.Msg.MIXLY_Accelerate,"177"],[mt.Msg.MIXLY_retard,"178"],[mt.Msg.ROTATION_FORWARD,"179"],[mt.Msg.ROTATION_BACKWARD,"180"],[mt.Msg.TUPLE_JOIN,"181"],[mt.Msg.MIXLY_SHOW,"182"],[mt.Msg.MIXLY_LAMPLIGHT,"183"],[mt.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(mt.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(mt.Msg.MIXLY_UNIT).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[mt.Msg.MIXLY_YEAR,"117"],[mt.Msg.MIXLY_MONTH,"118"],[mt.Msg.MIXLY_DAY,"119"],[mt.Msg.MIXLY_HOUR,"120"],[mt.Msg.MIXLY_MINUTE,"121"],[mt.Msg.MIXLY_SECOND,"122"],[mt.Msg.MIXLY_WEEK2,"123"],[mt.Msg.MIXLY_RMB_UNIT,"124"],[mt.Msg.blockpy_setheading_degree,"125"],[mt.Msg.MIXLY_GEAR,"126"],[mt.Msg.MIXLY_LAYER,"127"],[mt.Msg.MIXLY_GRAM,"128"],[mt.Msg.MIXLY_METER,"129"],[mt.Msg.MIXLY_CENTIMETER,"130"],[mt.Msg.MIXLY_MILLIMETER,"131"],[mt.Msg.MIXLY_LUMEN,"132"],[mt.Msg.MIXLY_DECIBEL,"133"],[mt.Msg.MIXLY_hectopascal,"134"],[mt.Msg.MIXLY_PERCENT,"135"],[mt.Msg.MIXLY_CELSIUS,"136"],[mt.Msg.MIXLY_METER_PER_SEC,"137"],[mt.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[mt.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[mt.Msg.MIXLY_SUCCESS,"140"],[mt.Msg.MIXLY_FAILED,"141"],[mt.Msg.MIXLY_WRONG,"142"],[mt.Msg.MIXLY_GOOD,"143"],[mt.Msg.MIXLY_blockpy_set_add,"144"],[mt.Msg.MIXLY_DECREASE,"145"],[mt.Msg.COLOUR_RGB_RED,"146"],[mt.Msg.COLOUR_RGB_ORANGE,"147"],[mt.Msg.COLOUR_YELLOW,"148"],[mt.Msg.COLOUR_RGB_GREEN,"149"],[mt.Msg.COLOUR_CYAN,"150"],[mt.Msg.COLOUR_RGB_BLUE,"151"],[mt.Msg.COLOUR_RGB_PURPLE,"152"],[mt.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},_R={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.LISTS_SET_INDEX_SET+mt.Msg.MIXLY_SYSTEM+mt.Msg.MIXLY_CMD).appendField(new mt.FieldDropdown([[mt.Msg.MILXY_ENTER_WAKE_UP,"1"],[mt.Msg.MIXLY_INCREASE_VOLUME,"202"],[mt.Msg.MIXLY_REDUCE_VOLUME,"203"],[mt.Msg.MIXLY_MAX_VOLUME,"204"],[mt.Msg.MIXLY_MINIMUM,"205"],[mt.Msg.MIXLY_OPEN_RESPONSE,"206"],[mt.Msg.MIXLY_CLOSE_RESPONSE,"207"],[mt.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},oR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[mt.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[mt.Msg.MIXLY_ESP32_MAX30102_IR+","+mt.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},pR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[mt.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[mt.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},aR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},uR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+mt.Msg.HTML_COLOUR,"[2]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_IR_STRENGTH,"[1]"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},rR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.HTML_COLOUR+mt.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET+"RGB"+mt.Msg.HTML_COLOUR,"0"],[mt.Msg.MIXLY_GET+mt.Msg.MIXLY_RGB_RAW,"1"],[mt.Msg.MIXLY_GET_ENV_LIGHT+mt.Msg.MIXLY_BRIGHTNESS,"2"],[mt.Msg.GET_IR_STRENGTH+mt.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GET_ENV_LIGHT,"E"],[mt.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},lR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},IR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},TR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETTEMPERATUE,"temperature"],[mt.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:mt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},MR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},hR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_Altitude+mt.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_GETPRESSURE,"pressure()"],[mt.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[mt.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},mR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MIXGOPE_FIELD+mt.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[mt.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ER={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_shake,"shake"],[mt.Msg.MIXLY_UP,"up"],[mt.Msg.MIXLY_DOWN,"down"],[mt.Msg.MIXLY_LEFT,"left"],[mt.Msg.MIXLY_RIGHT,"right"],[mt.Msg.MIXLY_MICROBIT_face_up,"face up"],[mt.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=mt.Msg.MIXLY_MICROBIT_JS_CURRENT,n=mt.Msg.MSG.catSensor,s=mt.Msg.MIXLY_MICROBIT_JS_STATE,_=mt.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:mt.Msg.MIXLY_MICROBIT_shake,up:mt.Msg.MIXLY_UP,down:mt.Msg.MIXLY_DOWN,left:mt.Msg.MIXLY_LEFT,right:mt.Msg.MIXLY_RIGHT,"face up":mt.Msg.MIXLY_MICROBIT_face_up,"face down":mt.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},OR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},RR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET+mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},cR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+mt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new mt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=mt.Msg.MIXLY_MICROBIT_Direction,s=mt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":mt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},gR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},CR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_GETTEMPERATUE)}},SR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return mt.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:mt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:mt.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},AR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},LR={init:function(){this.setColour(XO),this.appendValueInput("SPISUB").appendField(mt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(mt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP+mt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new mt.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},NR={init:function(){this.setColour(XO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[mt.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},DR={init:function(){this.setColour(XO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},fR={init:function(){this.setColour(XO),this.appendDummyInput().appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},FR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},PR={init:function(){this.setColour(XO),this.appendDummyInput().appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},YR={init:function(){this.setColour(XO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"0"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},vR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_JS_GET).appendField(new mt.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},XR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},xR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},yR={init:function(){this.setColour(XO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new mt.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},Ff=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Pf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},Yf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},Xf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},xf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},yf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},bf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},Vf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},Bf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},Gf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},Uf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},wf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},kf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Hf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Wf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},Kf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},Jf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},Qf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},qf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},zf=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},jf=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Zf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},$f=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},tF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},eF=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},iF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},nF=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},sF=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},_F=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},oF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},pF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},aF=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},uF=function(t,e){e.definitions_.import_st7789="import st7789";var i=Et.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},rF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},dF=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},lF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},IF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},TF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},MF=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},hF=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},mF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},EF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},OF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},RF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},cF=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},gF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=Et.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},CF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},SF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},AF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},LF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},NF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},DF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},fF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},FF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},PF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},YF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},vF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},XF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},xF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},yF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},bF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},VF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},BF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},GF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},UF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},wF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},kF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},HF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},WF=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},KF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},SP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},AP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},LP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},NP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},DP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},fP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},FP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},PP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},YP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},vP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},XP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},xP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},yP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},bP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},VP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},BP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},GP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},UP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},wP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},kP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},HP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},WP=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},KP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},JP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},QP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},Qb=function(){return"control.reset()\n"},qb=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},zb=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+")\n"},jb=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Et.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Zb=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},$b=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},tV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},eV=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},iV=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},nV=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},sV=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},_V=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},oV=function(){return"while True:\n pass\n"},pV=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},aV=function(t,e){return e.definitions_.import_os="import os","os.uname()"},uV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},rV=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},dV=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},lV=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},IV=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},TV=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},MV=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},hV=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},mV=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},EV=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},OV=TV,RV=lV,cV=IV,gV=uV,CV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},SV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},AV=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},LV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},NV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},DV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},fV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},FV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},PV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},YV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},vV=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},XV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},xV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},yV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},bV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},VV={};VV["元控青春"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","spk_midi.DADADADUM"],["ENTERTAINER","spk_midi.ENTERTAINER"],["PRELUDE","spk_midi.PRELUDE"],["ODE","spk_midi.ODE"],["NYAN","spk_midi.NYAN"],["RINGTONE","spk_midi.RINGTONE"],["FUNK","spk_midi.FUNK"],["BLUES","spk_midi.BLUES"],["BIRTHDAY","spk_midi.BIRTHDAY"],["WEDDING","spk_midi.WEDDING"],["FUNERAL","spk_midi.FUNERAL"],["PUNCHLINE","spk_midi.PUNCHLINE"],["PYTHON","spk_midi.PYTHON"],["BADDY","spk_midi.BADDY"],["CHASE","spk_midi.CHASE"],["BA_DING","spk_midi.BA_DING"],["WAWAWAWAA","spk_midi.WAWAWAWAA"],["JUMP_UP","spk_midi.JUMP_UP"],["JUMP_DOWN","spk_midi.JUMP_DOWN"],["POWER_UP","spk_midi.POWER_UP"],["POWER_DOWN","spk_midi.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},VV["元控自强"]={description:"MicroPython[ESP32C3 MixGo CE]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]},VV["ESP32S2 Generic"]={description:"MicroPython[ESP32C3 MixGo CC]",digital_pin:Et.Profile.generate(["0-18","21","33-48"]),input_pin:Et.Profile.generate(["0-18","21","33-48"]),output_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm_input:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_input:Et.Profile.generate(["1-18"],"adc","adc"),pwm_output:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_output:Et.Profile.generate(["1-18"],"adc","adc"),espnow_channel:Et.Profile.generate(["1-13"]),haskylens_model:Et.Profile.generate(["0-4"]),digital:Et.Profile.generate(["0-18","21","33-48"],"pin","pin"),pwm_pin:Et.Profile.generate(["0-18","21","33-48"]),pwm:Et.Profile.generate(["0-18","21","33-48"],"pwm","pwm"),analog_pin:Et.Profile.generate(["1-18"]),analog:Et.Profile.generate(["1-18"],"adc","adc"),touch:Et.Profile.generate(["1-14"],"tc","tc"),touch_pin:Et.Profile.generate(["1-14"]),button:[["B1","B1key"],["B2","B2key"],["A1","A1key"],["A2","A2key"],["A3","A3key"],["A4","A4key"]],buttonB:[["B1","B1key"],["B2","B2key"]],axis:Et.Profile.generate(["0-4"]),exlcdh:Et.Profile.generate(["0-15"]),exlcdv:Et.Profile.generate(["0-7"]),brightness:Et.Profile.generate(["0-9"]),tts_voice:Et.Profile.generate(["0-16"]),tts_builtin_music:Et.Profile.generate(["0-47"]),tts_bgmusic:Et.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","matrix.Image.ALL_CLOCKS"],["ALL_ARROWS","matrix.Image.ALL_ARROWS"]],playlist:[["DADADADUM",".DADADADUM"],["ENTERTAINER",".ENTERTAINER"],["PRELUDE",".PRELUDE"],["ODE",".ODE"],["NYAN",".NYAN"],["RINGTONE",".RINGTONE"],["FUNK",".FUNK"],["BLUES",".BLUES"],["BIRTHDAY",".BIRTHDAY"],["WEDDING",".WEDDING"],["FUNERAL",".FUNERAL"],["PUNCHLINE",".PUNCHLINE"],["PYTHON",".PYTHON"],["BADDY",".BADDY"],["CHASE",".CHASE"],["BA_DING",".BA_DING"],["WAWAWAWAA",".WAWAWAWAA"],["JUMP_UP",".JUMP_UP"],["JUMP_DOWN",".JUMP_DOWN"],["POWER_UP",".POWER_UP"],["POWER_DOWN",".POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"]]};const BV=VV,GV=20,UV={init:function(){this.setColour(GV),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_HIGH,"HIGH"],[mt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},wV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(mt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},kV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},HV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_VALUE2).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_TOOLTIP)}},WV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendDummyInput().appendField(mt.Msg.MIXLY_MICROBIT_JS_PERIOD_MIL).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_mSecond,"period"],[mt.Msg.MIXLY_uSecond,"period_microseconds"]]),"key"),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_SET_TOOLTIP)}},KV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_Analog_PINMODEIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_REF_VOLTAGE+mt.Msg.MIXLY_STAT).appendField(new mt.FieldDropdown([["3.3V","machine.ADC.ATTN_11DB"],["2.2V","machine.ADC.ATTN_6DB"],["1.5V","machine.ADC.ATTN_2_5DB"],["1.2V","machine.ADC.ATTN_0DB"]]),"atten"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_ATTEN_TOOLTIP)}},JV={init:function(){this.setColour(GV),this.appendValueInput("pin").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(mt.Msg.MIXLY_ESP32_MACHINE_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_TOOLTIP)}},QV={init:function(){this.setColour(20),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_ATTACHINTERRUPT_PIN).setCheck(Number),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MODE).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[mt.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[mt.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(mt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},qV={init:function(){this.setColour(20),this.appendDummyInput().appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("pin#"),"PIN_OBJ"),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROPYTHON_AS).appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_Digital_PINMODEOUT,"machine.Pin.OUT"],[mt.Msg.MIXLY_Digital_PINMODEIN,"machine.Pin.IN"],[mt.Msg.MIXLY_PINMODEPULLUP,"machine.Pin.IN, machine.Pin.PULL_UP"],[mt.Msg.MIXLY_PINMODEPULLDOWN,"machine.Pin.IN, machine.Pin.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)},getVars:function(){return["pin#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},zV={init:function(){this.setColour(GV),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("dac#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField("DAC"+mt.Msg.MIXLY_Analog_PINMODEOUT),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_ANALOG_WRITE_INIT_TOOLTIP)},getVars:function(){return["dac#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},jV={init:function(){this.setColour(GV),this.appendDummyInput("").appendField(mt.Msg.MIXLY_SETUP).appendField(new mt.FieldTextInput("tc#"),"PIN_OBJ").appendField(mt.Msg.MIXLY_MICROPYTHON_AS),this.appendDummyInput("").appendField(mt.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendValueInput("PIN",Number).appendField(mt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PIN_PRESSED_INIT_TOOLTIP)},getVars:function(){return["tc#"==this.getFieldValue("PIN_OBJ")?null:this.getFieldValue("PIN_OBJ")]},renameVar:function(t,e){mt.Names.equals(t,this.getFieldValue("PIN_OBJ"))&&this.setTitleValue(e,"PIN_OBJ")}},ZV={init:function(){this.setColour(GV),this.appendValueInput("PIN",Number).appendField("PWM"+mt.Msg.MIXLY_Analog_PINMODEOUT).setCheck(Number),this.appendValueInput("NUM",Number).appendField(mt.Msg.MIXLY_FREQUENCY+mt.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(mt.Msg.MIXLY_ESP32_INOUT_PWM_ANALOG_WRITE_SET_FREQ_TOOLTIP)}},$V=qV,tB=jV,eB=JV,iB=QV,nB=230,sB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital),"PIN"),this.setOutput(!0)}},_B={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},oB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},pB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},aB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},uB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},rB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},dB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},lB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},IB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},TB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},MB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},hB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},mB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},EB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},OB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},RB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog),"PIN"),this.setOutput(!0)}},cB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},gB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac),"PIN"),this.setOutput(!0)}},CB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},SB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},AB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.buttonB),"PIN"),this.setOutput(!0,Number)}},LB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm),"PIN"),this.setOutput(!0)}},NB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},DB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},fB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.touch),"PIN"),this.setOutput(!0)}},FB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},PB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},YB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},vB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.imglist),"PIN"),this.setOutput(!0)}},XB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist),"PIN"),this.setOutput(!0)}},xB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},yB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},bB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},VB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},BB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},GB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},UB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},wB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},kB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},HB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},WB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},KB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.one_more),"PIN"),this.setOutput(!0)}},JB={init:function(){this.setColour(nB),this.appendDummyInput("").appendField(new mt.FieldDropdown(Et.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},QB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(mt.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},qB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"+mt.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(mt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},zB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField(mt.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(mt.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(mt.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(mt.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0)}},ZB={init:function(){if("mixgo_me"==Et.Boards.getSelectedBoardKey().split(":")[2])var t="ME G1";this.setColour(40),this.appendDummyInput().appendField(t).appendField("RFID"),this.appendDummyInput("").appendField(new mt.FieldDropdown([[mt.Msg.MIXLY_RFID_SCAN_OK,"True"],[mt.Msg.MIXLY_RFID_SCAN_NOTAGERR,"None"],[mt.Msg.MIXLY_RFID_SCAN_ERROR,"False"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},$B=function(t,e){return["HIGH"==this.getFieldValue("BOOL")?"1":"0",e.ORDER_ATOMIC]},tG=function(t,e){e.definitions_.import_machine="import machine";var i="";return i+=e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value("+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},eG=function(t,e){e.definitions_.import_machine="import machine";return[e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".value()",e.ORDER_ATOMIC]},iG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".write("+e.valueToCode(this,"NUM",e.ORDER_ATOMIC)+")\n"},nG=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return i+".set_analog_"+this.getFieldValue("key")+"("+n+")\n"},sG=function(t,e){return e.definitions_.import_machine="import machine",[e.valueToCode(this,"pin",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},_G=function(t,e){e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"machine.Pin("+i+").irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},oG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"pin#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=this.getFieldValue("MODE");return("pin#"==i?"pin"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.Pin("+n+", "+s+")\n"},pG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"dac#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("dac#"==i?"dac"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.DAC(machine.Pin("+n+"))\n"},aG=function(t,e){return e.definitions_.import_machine="import machine",e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+".atten("+this.getFieldValue("atten")+")\n"},uG=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("PIN_OBJ")||"tc#",n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC);return("tc#"==i?"tc"+n:e.variableDB_.getName(i,mt.Variables.NAME_TYPE))+" = machine.TouchPad(machine.Pin("+n+"))\n"},rG=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},dG=rG,lG=rG,IG=rG,TG=rG,MG=rG,hG=rG,mG=rG,EG=rG,OG=rG,RG=rG,cG=rG,gG=rG,CG=rG,SG=rG,AG=rG,LG=rG,NG=rG,DG=rG,fG=rG,FG=rG,PG=rG,YG=rG,vG=rG,XG=rG,xG=rG,yG=rG,bG=rG,VG=rG,BG=rG,GG=rG,UG=rG,wG=rG,kG=rG,HG=rG,WG=rG,KG=rG,JG=rG,QG=rG,qG=rG,zG=rG,jG=rG,ZG=rG,$G=rG,tU=rG,eU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var n='ext_rfid.read_card(0, x="id")'}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";n='ext_rfid.read_card(0, x="id")'}else{e.definitions_.import_mini_g2="import mini_g2";n='mini_g2.ext_rc522.read_card(0, x="id")'}return[n,e.ORDER_ATOMIC]},iU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.read_card("+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.read_card("+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.read_card("+n+")"}return[s,e.ORDER_ATOMIC]},nU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")\n"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")\n"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")\n"}return _},sU=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var _="ext_rfid.write_card("+s+","+n+")"}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";_="ext_rfid.write_card("+s+","+n+")"}else{e.definitions_.import_mini_g2="import mini_g2";_="mini_g2.ext_rc522.write_card("+s+","+n+")"}return[_,e.ORDER_ATOMIC]},_U=function(t,e){var i=Et.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("mixgo_mini"==i){e.definitions_.import_mini_g2_ext_rfid="from mini_g2 import ext_rfid";var s="ext_rfid.scan_card()=="+n}else if("mixgo_sant"==i){e.definitions_.import_sant_g2_ext_rfid="from sant_g2 import ext_rfid";s="ext_rfid.scan_card()=="+n}else{e.definitions_.import_mini_g2="import mini_g2";s="mini_g2.ext_rc522.scan_card()=="+n}return[s,e.ORDER_ATOMIC]};Object.assign(mt.Variables,Rt),Object.assign(mt.Procedures,is),mt.Python=fu,mt.generator=fu,Et.Profile.default={},Object.assign(Et.Profile,BV),Object.assign(Et.Profile.default,BV["MixGo CE"]),Object.assign(mt.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,y,H,k,Y,b,W,f,w,U,G,V,F,D,N,X,v,x,P,B,dt,lt,It),Object.assign(mt.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,et,ut,at,j,it,rt,Q,pt,ot,_t,nt,q,J,K,$,Z,tt,z,st,Tt,Mt,ht)})(); \ No newline at end of file diff --git a/boards/default/micropython_k210_mixgoai/main.bundle.js b/boards/default/micropython_k210_mixgoai/main.bundle.js index 2e84995c..fbe65417 100644 --- a/boards/default/micropython_k210_mixgoai/main.bundle.js +++ b/boards/default/micropython_k210_mixgoai/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Ft,controls_typeLists:()=>vt,lists_zip:()=>Pt,lists_zip_container:()=>Vt,lists_zip_item:()=>yt,unpack_iterable_object:()=>Yt,variables_change:()=>ft,variables_get:()=>Dt,variables_global:()=>Lt,variables_set:()=>Nt});var i={};t.r(i),t.d(i,{base_setup:()=>xt,controls_delay:()=>Xt,controls_end_program:()=>Gt,controls_except:()=>$t,controls_finally:()=>te,controls_flow_statements:()=>Kt,controls_for:()=>jt,controls_forEach:()=>wt,controls_for_range:()=>Qt,controls_if:()=>Ht,controls_if_else:()=>zt,controls_if_elseif:()=>Jt,controls_if_if:()=>qt,controls_lambda:()=>ie,controls_main:()=>kt,controls_pass:()=>ne,controls_range:()=>Ut,controls_repeat_ext:()=>ee,controls_thread:()=>se,controls_try:()=>Zt,controls_try_finally:()=>Wt,controls_whileUntil:()=>Bt,datetime_fromtimestamp:()=>_e,do_while:()=>oe,garbage_collection:()=>pe,gene_unique_identifier:()=>re,get_mem_alloc:()=>ue,get_mem_free:()=>ae,get_unique_identifier:()=>le});var n={};t.r(n),t.d(n,{base_map:()=>Pe,generate_cartesian_product:()=>ye,math_arithmetic:()=>me,math_bit:()=>Oe,math_constant:()=>Te,math_constant_mp:()=>he,math_constrain:()=>Se,math_dec:()=>Me,math_indexer_number:()=>Ne,math_map:()=>De,math_max_min:()=>Ce,math_number:()=>Ie,math_number_base_conversion:()=>Ae,math_random:()=>ge,math_random_seed:()=>fe,math_round:()=>Le,math_selfcalcu:()=>ce,math_to_int:()=>Ee,math_trig:()=>Re,text_to_number:()=>Fe,text_to_number_skulpt:()=>ve,turn_to_int:()=>Ve});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ge,char_to_ascii:()=>He,number_to_text:()=>Ue,os_system:()=>Ii,text:()=>be,text_capital:()=>ze,text_center:()=>Ze,text_char:()=>xe,text_char_at:()=>We,text_char_at2:()=>Be,text_char_at3:()=>li,text_compareTo:()=>ai,text_compare_to:()=>Je,text_create_with_container:()=>oi,text_create_with_item:()=>pi,text_encode:()=>ri,text_equals_starts_ends:()=>qe,text_eval:()=>di,text_find:()=>$e,text_format:()=>si,text_format_noreturn:()=>_i,text_join:()=>Xe,text_join_seq:()=>ti,text_length:()=>we,text_random_char:()=>Ke,text_replace:()=>ei,text_split:()=>ii,text_strip:()=>ni,text_substring:()=>Qe,text_substring2:()=>je,text_substring3:()=>ui,text_textarea:()=>ke});var o={};t.r(o),t.d(o,{ENUMERATE:()=>qi,content_in_lists:()=>zi,enumerate:()=>Ji,list_many_input:()=>bi,list_tolist:()=>Gi,list_tolist2:()=>Qi,list_trig:()=>Vi,lists_2d_get_col_row_data:()=>Oi,lists_2d_get_data_with_col_row:()=>ci,lists_append_extend:()=>gi,lists_change_to:()=>Yi,lists_change_to_general:()=>xi,lists_clear:()=>Li,lists_create_with:()=>Ri,lists_create_with2:()=>Hi,lists_create_with_container:()=>Ei,lists_create_with_item:()=>Ci,lists_create_with_noreturn:()=>ki,lists_create_with_text:()=>Mi,lists_create_with_text2:()=>Ui,lists_del_general:()=>Xi,lists_find:()=>Pi,lists_getIndex3:()=>wi,lists_getSublist3:()=>Bi,lists_get_index:()=>hi,lists_get_random_item:()=>Si,lists_get_random_sublist:()=>Di,lists_get_sublist:()=>mi,lists_insert_value:()=>Ni,lists_insert_value2:()=>Ki,lists_pop:()=>vi,lists_remove_at:()=>Fi,lists_remove_at2:()=>ji,lists_reverse:()=>fi,lists_setIndex3:()=>Wi,lists_set_index:()=>Ai,lists_sort:()=>yi});var p={};t.r(p),t.d(p,{dicts_add_change_del:()=>Tn,dicts_add_or_change:()=>pn,dicts_clear:()=>ln,dicts_create_with:()=>$i,dicts_create_with_container:()=>tn,dicts_create_with_item:()=>en,dicts_create_with_noreturn:()=>cn,dicts_deldict:()=>In,dicts_delete:()=>un,dicts_get:()=>sn,dicts_get_default:()=>on,dicts_items:()=>_n,dicts_keys:()=>nn,dicts_length:()=>dn,dicts_pop:()=>hn,dicts_setdefault:()=>mn,dicts_to_json:()=>Rn,dicts_to_json2:()=>Cn,dicts_to_to:()=>En,dicts_todict:()=>On,dicts_update:()=>an,dicts_values:()=>rn,json_to_dicts:()=>Mn});var u={};t.r(u),t.d(u,{logic_boolean:()=>fn,logic_compare:()=>gn,logic_compare_continous:()=>Sn,logic_is:()=>Pn,logic_is_in:()=>vn,logic_negate:()=>Nn,logic_null:()=>Ln,logic_operation:()=>Dn,logic_tobool:()=>Vn,logic_true_or_false:()=>Fn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>is,sdcard_use_spi_init:()=>es,storage_can_write_ornot:()=>Un,storage_change_dir:()=>$n,storage_close_file:()=>Bn,storage_delete_file:()=>Kn,storage_file_seek:()=>qn,storage_file_tell:()=>Qn,storage_file_write:()=>xn,storage_fileopen:()=>Yn,storage_fileopen_new:()=>bn,storage_fileopen_new_encoding:()=>kn,storage_get_a_line:()=>Hn,storage_get_contents:()=>Gn,storage_get_contents_without_para:()=>Xn,storage_get_current_dir:()=>Jn,storage_get_file_size:()=>jn,storage_get_filename:()=>wn,storage_is_file:()=>ts,storage_list_all_files:()=>Wn,storage_make_dir:()=>zn,storage_open_file_with_os:()=>yn,storage_rename:()=>Zn});var l={};t.r(l),t.d(l,{procedures_callnoreturn:()=>ls,procedures_callreturn:()=>_s,procedures_defnoreturn:()=>os,procedures_defreturn:()=>ps,procedures_ifreturn:()=>rs,procedures_mutatorarg:()=>as,procedures_mutatorcontainer:()=>us,procedures_return:()=>ds});var _={};t.r(_),t.d(_,{tuple_change_to:()=>gs,tuple_create_with:()=>Ts,tuple_create_with_container:()=>hs,tuple_create_with_item:()=>ms,tuple_create_with_noreturn:()=>fs,tuple_create_with_text2:()=>cs,tuple_create_with_text_return:()=>Os,tuple_del:()=>Es,tuple_find:()=>Ss,tuple_getIndex:()=>Rs,tuple_getSublist:()=>Ns,tuple_get_random_item:()=>Fs,tuple_get_sublist:()=>Ls,tuple_join:()=>Cs,tuple_length:()=>Ms,tuple_max:()=>As,tuple_totuple:()=>vs,tuple_trig:()=>Ds});var r={};t.r(r),t.d(r,{set_add_discard:()=>Hs,set_clear:()=>xs,set_create_with:()=>Vs,set_create_with_container:()=>ys,set_create_with_item:()=>Ys,set_create_with_text_return:()=>Bs,set_length:()=>bs,set_operate:()=>Xs,set_operate_update:()=>Gs,set_pop:()=>ks,set_sub:()=>Us,set_toset:()=>Ws,set_update:()=>ws});var d={};t.r(d),t.d(d,{html_content:()=>Js,html_content_more:()=>zs,html_document:()=>js,html_form:()=>$s,html_head_body:()=>qs,html_style:()=>Zs,html_style_color:()=>eo,html_style_content:()=>to,html_text:()=>io,html_title:()=>Qs});var I={};t.r(I),t.d(I,{attribute_access:()=>co,function_call:()=>To,function_call_container:()=>ho,function_call_item:()=>mo,raw_block:()=>oo,raw_empty:()=>uo,raw_expression:()=>po,raw_table:()=>so,text_comment:()=>ao,text_print_multiple:()=>_o,text_print_multiple_container:()=>ro,text_print_multiple_item:()=>Io,type_check:()=>lo});var T={};t.r(T),t.d(T,{controls_type:()=>Co,controls_typeLists:()=>Ao,lists_zip:()=>go,unpack_iterable_object:()=>So,variables_change:()=>Mo,variables_get:()=>Oo,variables_global:()=>Eo,variables_set:()=>Ro});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>Yo,base_setup:()=>No,controls_delay:()=>yo,controls_flow_statements:()=>Vo,controls_for:()=>Fo,controls_forEach:()=>Go,controls_for_range:()=>vo,controls_if:()=>fo,controls_interrupts:()=>xo,controls_lambda:()=>Uo,controls_main:()=>Do,controls_millis:()=>bo,controls_nointerrupts:()=>Xo,controls_pass:()=>Bo,controls_range:()=>Ho,controls_repeat:()=>Zo,controls_repeat_ext:()=>jo,controls_thread:()=>Wo,controls_try_finally:()=>Lo,controls_whileUntil:()=>Po,datetime_fromtimestamp:()=>$o,do_while:()=>Ko,garbage_collection:()=>Qo,gene_unique_identifier:()=>tp,get_mem_alloc:()=>qo,get_mem_free:()=>Jo,get_unique_identifier:()=>zo,reset:()=>ko,time_sleep:()=>wo});var m={};t.r(m),t.d(m,{base_map:()=>Ep,generate_cartesian_product:()=>Ap,math_arithmetic:()=>op,math_bit:()=>sp,math_constant:()=>ip,math_constant_mp:()=>np,math_constrain:()=>Tp,math_dec:()=>lp,math_indexer_number:()=>cp,math_map:()=>Ip,math_max_min:()=>rp,math_number:()=>ep,math_number_base_conversion:()=>hp,math_random:()=>dp,math_random_seed:()=>mp,math_round:()=>Op,math_selfcalcu:()=>pp,math_single:()=>up,math_to_int:()=>_p,math_trig:()=>ap,text_to_number:()=>Rp,text_to_number_skulpt:()=>Mp,turn_to_int:()=>Cp});var c={};t.r(c),t.d(c,{ascii_to_char:()=>fp,char_to_ascii:()=>Lp,number_to_text:()=>Fp,os_system:()=>$p,text:()=>gp,text_capital:()=>Xp,text_center:()=>Gp,text_char:()=>Dp,text_char_at:()=>Vp,text_char_at2:()=>Pp,text_char_at3:()=>Jp,text_compareTo:()=>qp,text_compare_to:()=>bp,text_encode:()=>zp,text_equals_starts_ends:()=>Yp,text_eval:()=>Zp,text_find:()=>Hp,text_format:()=>Kp,text_format_noreturn:()=>jp,text_join:()=>Np,text_join_seq:()=>Up,text_length:()=>vp,text_random_char:()=>yp,text_replace:()=>wp,text_split:()=>Bp,text_strip:()=>Wp,text_substring:()=>xp,text_substring2:()=>kp,text_substring3:()=>Qp,text_textarea:()=>Sp});var O={};t.r(O),t.d(O,{content_in_lists:()=>Vu,enumerate:()=>Pu,list_many_input:()=>Ru,list_tolist:()=>Fu,list_tolist2:()=>vu,list_trig:()=>mu,lists_2d_get_col_row_data:()=>iu,lists_2d_get_data_with_col_row:()=>eu,lists_append_extend:()=>uu,lists_change_to:()=>Ou,lists_change_to_general:()=>Eu,lists_clear:()=>du,lists_create_with:()=>nu,lists_create_with2:()=>Au,lists_create_with_noreturn:()=>Mu,lists_create_with_text:()=>su,lists_create_with_text2:()=>gu,lists_del_general:()=>Cu,lists_find:()=>Iu,lists_getIndex3:()=>Su,lists_getSublist3:()=>Du,lists_get_index:()=>ou,lists_get_random_item:()=>au,lists_get_random_sublist:()=>lu,lists_get_sublist:()=>tu,lists_insert_value:()=>_u,lists_insert_value2:()=>fu,lists_pop:()=>hu,lists_remove_at:()=>Tu,lists_remove_at2:()=>Lu,lists_reverse:()=>ru,lists_setIndex3:()=>Nu,lists_set_index:()=>pu,lists_sort:()=>cu});var R={};t.r(R),t.d(R,{dicts_add_change_del:()=>Ku,dicts_add_or_change:()=>xu,dicts_clear:()=>Hu,dicts_create_with:()=>yu,dicts_create_with_noreturn:()=>qu,dicts_deldict:()=>Wu,dicts_delete:()=>Xu,dicts_get:()=>bu,dicts_get_default:()=>ku,dicts_items:()=>Uu,dicts_keys:()=>Yu,dicts_length:()=>Bu,dicts_pop:()=>ju,dicts_setdefault:()=>Qu,dicts_to_json:()=>zu,dicts_to_json2:()=>ta,dicts_to_to:()=>$u,dicts_todict:()=>Ju,dicts_update:()=>Gu,dicts_values:()=>wu,json_to_dicts:()=>Zu});var M={};t.r(M),t.d(M,{logic_boolean:()=>oa,logic_compare:()=>ea,logic_compare_continous:()=>ia,logic_is:()=>la,logic_is_in:()=>aa,logic_negate:()=>sa,logic_null:()=>pa,logic_operation:()=>na,logic_tobool:()=>_a,logic_true_or_false:()=>ua});var E={};t.r(E),t.d(E,{sdcard_mount:()=>Va,sdcard_use_spi_init:()=>Pa,storage_can_write_ornot:()=>Ra,storage_change_dir:()=>Na,storage_close_file:()=>Ea,storage_delete_file:()=>Aa,storage_file_seek:()=>Da,storage_file_tell:()=>Sa,storage_file_write:()=>ha,storage_fileopen:()=>da,storage_fileopen_new:()=>Ia,storage_fileopen_new_encoding:()=>Ta,storage_get_a_line:()=>Oa,storage_get_contents:()=>ca,storage_get_contents_without_para:()=>ma,storage_get_current_dir:()=>fa,storage_get_file_size:()=>ga,storage_get_filename:()=>Ma,storage_is_file:()=>va,storage_list_all_files:()=>Ca,storage_make_dir:()=>La,storage_open_file_with_os:()=>ra,storage_rename:()=>Fa});var C={};t.r(C),t.d(C,{procedures_callnoreturn:()=>ka,procedures_callreturn:()=>ba,procedures_defnoreturn:()=>Ya,procedures_defreturn:()=>ya,procedures_ifreturn:()=>xa,procedures_return:()=>Xa});var A={};t.r(A),t.d(A,{tuple_change_to:()=>Qa,tuple_create_with:()=>Ga,tuple_create_with_noreturn:()=>Za,tuple_create_with_text2:()=>Ha,tuple_create_with_text_return:()=>Ua,tuple_del:()=>Wa,tuple_find:()=>qa,tuple_getIndex:()=>wa,tuple_getSublist:()=>za,tuple_get_random_item:()=>tl,tuple_get_sublist:()=>$a,tuple_join:()=>Ka,tuple_length:()=>Ba,tuple_max:()=>ja,tuple_totuple:()=>el,tuple_trig:()=>Ja});var g={};t.r(g),t.d(g,{set_add_discard:()=>al,set_clear:()=>ol,set_create_with:()=>il,set_create_with_text_return:()=>rl,set_length:()=>nl,set_operate:()=>pl,set_operate_update:()=>ul,set_pop:()=>sl,set_sub:()=>ll,set_toset:()=>dl,set_update:()=>_l});var S={};t.r(S),t.d(S,{html_content:()=>ml,html_content_more:()=>cl,html_document:()=>Il,html_form:()=>Rl,html_head_body:()=>hl,html_style:()=>Ol,html_style_content:()=>Ml,html_text:()=>El,html_title:()=>Tl});var D={};t.r(D),t.d(D,{attribute_access:()=>fl,function_call:()=>Nl,raw_block:()=>Cl,raw_empty:()=>gl,raw_expression:()=>Al,raw_table:()=>Sl,type_check:()=>Dl});var N={};t.r(N),t.d(N,{actuator_extern_get_led_bright:()=>Yl,actuator_extern_led_bright:()=>yl,actuator_extern_led_brightness:()=>bl,actuator_get_led_bright:()=>xl,actuator_led_bright:()=>kl,actuator_led_brightness:()=>Xl,actuator_neopixel_init:()=>Zl,actuator_neopixel_rgb:()=>$l,actuator_neopixel_write:()=>t_,actuator_onboard_neopixel_rgb:()=>e_,actuator_onboard_neopixel_rgb_all:()=>i_,actuator_onboard_neopixel_write:()=>n_,esp32_mixgo_music_play_list_show:()=>zl,esp32_music_get_tempo:()=>Bl,esp32_music_pitch:()=>Gl,esp32_music_pitch_with_time:()=>Hl,esp32_music_play_list:()=>Jl,esp32_music_reset:()=>Wl,esp32_music_set_tempo:()=>wl,esp32_music_stop:()=>Ul,esp32_onboard_music_pitch:()=>Kl,esp32_onboard_music_pitch_with_time:()=>jl,esp32_onboard_music_play_list:()=>ql,esp32_onboard_music_stop:()=>Ql,get_led_bright:()=>o_,led_brightness:()=>p_,led_light:()=>s_,ledswitch:()=>Vl,number:()=>Pl,servo_move:()=>vl});var f={};t.r(f),t.d(f,{mpython_blynk_app_data:()=>E_,mpython_blynk_app_notify:()=>T_,mpython_blynk_email:()=>c_,mpython_blynk_get_timers:()=>O_,mpython_blynk_on_connected:()=>r_,mpython_blynk_on_disconnected:()=>__,mpython_blynk_run:()=>I_,mpython_blynk_sensor_data_to_app:()=>M_,mpython_blynk_set_property:()=>m_,mpython_blynk_setup:()=>C_,mpython_blynk_stop_timers:()=>h_,mpython_blynk_sync_virtual:()=>l_,mpython_blynk_terminal_widget_vpin:()=>a_,mpython_blynktimer:()=>R_,mpython_blynktimer_run:()=>d_});var L={};t.r(L),t.d(L,{display_animate:()=>hr,display_blink_rate:()=>nr,display_bright_point:()=>f_,display_bright_screen:()=>ir,display_circle:()=>mr,display_clear:()=>D_,display_draw_4strings:()=>q_,display_fill:()=>_r,display_get_pixel:()=>N_,display_get_screen_image:()=>er,display_get_screen_pixel:()=>tr,display_help:()=>Or,display_image_builtins:()=>X_,display_image_create:()=>G_,display_image_size:()=>J_,display_line:()=>Z_,display_line_arbitrarily:()=>$_,display_matrix_use_i2c_init:()=>Er,display_oled_drawPixel:()=>Mr,display_oled_showBitmap:()=>Rr,display_onoff:()=>lr,display_rect:()=>z_,display_rgb_color:()=>sr,display_scroll_string:()=>pr,display_scroll_string_delay:()=>ar,display_scroll_string_extern:()=>Ar,display_show_image:()=>Cr,display_show_image_or_string:()=>or,display_show_image_or_string_delay:()=>ur,display_show_static:()=>v_,display_tm1650_power:()=>dr,display_tm1650_show_dot:()=>Tr,display_tm1650_show_num:()=>Ir,display_tm_use_i2c_init:()=>rr,display_triangle:()=>cr,display_use_i2c_init:()=>Q_,esp32_display_is_on:()=>x_,esp32_display_off:()=>k_,esp32_display_on:()=>b_,esp32_display_scroll:()=>Y_,esp32_display_show_animation:()=>y_,esp32_display_show_default_image:()=>V_,esp32_display_show_string:()=>w_,group_lcd_init:()=>W_,group_lcd_power:()=>j_,group_lcd_print:()=>B_,group_lcd_print2:()=>K_,image_arithmetic:()=>U_,image_shift:()=>H_,microbit_display_show_image:()=>P_,monitor_show_scroll_string:()=>F_,monitor_show_string:()=>L_});var F={};t.r(F),t.d(F,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>jr,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Kr,IOT_EMQX_PING:()=>Br,IOT_FORMATTING:()=>Ur,IOT_FORMAT_STRING:()=>wr,IOT_MIXIO_NTP:()=>Wr,IOT_MIXIO_PUBLISH:()=>Yr,IOT_MIXIO_SUBSCRIBE:()=>br,iot_checkonenet:()=>nd,iot_client_onboard:()=>qr,iot_create_with_item:()=>Vr,iot_http_client:()=>Jr,iot_http_data:()=>zr,iot_mixio_check:()=>Xr,iot_mixio_connect:()=>yr,iot_mixio_connect_only:()=>xr,iot_mixio_disconnect:()=>kr,iot_mixio_format_msg:()=>Hr,iot_mixio_format_topic:()=>Gr,iot_mixly_key:()=>Qr,iot_mqtt_client:()=>Zr,iot_mqtt_data:()=>$r,iot_onenet_check:()=>fr,iot_onenet_connect:()=>Dr,iot_onenet_disconnect:()=>Nr,iot_onenet_publish:()=>Fr,iot_onenet_publish_dict:()=>Lr,iot_onenetconnect:()=>ed,iot_onenetdisconnect:()=>id,iot_publish:()=>sd,iot_publish_container:()=>vr,iot_publish_item:()=>Pr,iot_wifi_connect:()=>Sr,iot_wificonnect:()=>td});var v={};t.r(v),t.d(v,{actuator_extern_get_led_bright:()=>Ed,actuator_extern_led_bright:()=>Md,actuator_extern_led_brightness:()=>Cd,actuator_get_led_bright:()=>gd,actuator_led_bright:()=>Ad,actuator_led_brightness:()=>Sd,actuator_neopixel_init:()=>Dd,actuator_neopixel_rgb:()=>fd,actuator_neopixel_write:()=>Nd,actuator_onboard_neopixel_rgb:()=>Fd,actuator_onboard_neopixel_rgb_all:()=>vd,actuator_onboard_neopixel_write:()=>Ld,esp32_mixgo_music_play_list_show:()=>hd,esp32_music_get_tempo:()=>ld,esp32_music_pitch:()=>od,esp32_music_pitch_with_time:()=>pd,esp32_music_play_list:()=>Td,esp32_music_reset:()=>md,esp32_music_set_tempo:()=>ad,esp32_music_stop:()=>ud,esp32_onboard_music_pitch:()=>_d,esp32_onboard_music_pitch_with_time:()=>rd,esp32_onboard_music_play_list:()=>Id,esp32_onboard_music_stop:()=>dd,get_led_bright:()=>Vd,led_brightness:()=>yd,led_light:()=>Pd,ledswitch:()=>Rd,number:()=>Od,servo_move:()=>cd});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>Kd,mpython_blynk_app_notify:()=>Hd,mpython_blynk_email:()=>jd,mpython_blynk_get_timers:()=>wd,mpython_blynk_on_connected:()=>xd,mpython_blynk_on_disconnected:()=>kd,mpython_blynk_run:()=>Gd,mpython_blynk_sensor_data_to_app:()=>Wd,mpython_blynk_set_property:()=>Qd,mpython_blynk_setup:()=>qd,mpython_blynk_stop_timers:()=>Ud,mpython_blynk_sync_virtual:()=>bd,mpython_blynk_terminal_widget_vpin:()=>Yd,mpython_blynktimer:()=>Bd,mpython_blynktimer_run:()=>Xd});var V={};t.r(V),t.d(V,{display_animate:()=>AI,display_blink_rate:()=>aI,display_bright_point:()=>sI,display_bright_screen:()=>uI,display_circle:()=>gI,display_clear:()=>lI,display_draw_4strings:()=>rI,display_fill:()=>OI,display_get_pixel:()=>nI,display_get_screen_image:()=>pI,display_get_screen_pixel:()=>oI,display_image_builtins:()=>iI,display_image_create:()=>eI,display_line:()=>hI,display_line_arbitrarily:()=>dI,display_matrix_use_i2c_init:()=>fI,display_oled_drawPixel:()=>NI,display_oled_showBitmap:()=>DI,display_onoff:()=>mI,display_rect:()=>II,display_scroll_string:()=>zd,display_scroll_string_delay:()=>tI,display_scroll_string_extern:()=>FI,display_show_image:()=>LI,display_show_image_or_string:()=>Jd,display_show_image_or_string_delay:()=>$d,display_show_static:()=>Zd,display_tm1650_power:()=>MI,display_tm1650_show_dot:()=>CI,display_tm1650_show_num:()=>EI,display_tm_use_i2c_init:()=>RI,display_triangle:()=>SI,display_use_i2c_init:()=>_I,image_arithmetic:()=>TI,image_shift:()=>cI});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>qI,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>jI,IOT_EMQX_PING:()=>JI,IOT_FORMATTING:()=>WI,IOT_FORMAT_STRING:()=>KI,IOT_MIXIO_NTP:()=>zI,IOT_MIXIO_PUBLISH:()=>xI,IOT_MIXIO_SUBSCRIBE:()=>XI,iot_client_onboard:()=>ZI,iot_http_client:()=>$I,iot_http_data:()=>tT,iot_mixio_check:()=>UI,iot_mixio_connect:()=>kI,iot_mixio_connect_only:()=>HI,iot_mixio_disconnect:()=>GI,iot_mixio_format_msg:()=>BI,iot_mixio_format_topic:()=>wI,iot_mixly_key:()=>QI,iot_mqtt_client:()=>eT,iot_mqtt_data:()=>iT,iot_onenet_check:()=>YI,iot_onenet_connect:()=>PI,iot_onenet_disconnect:()=>VI,iot_onenet_publish:()=>bI,iot_onenet_publish_dict:()=>yI,iot_wifi_connect:()=>vI});var Y={};t.r(Y),t.d(Y,{PID_get_pid:()=>cT,PID_init:()=>mT,actuator_PAC9685_Servo:()=>lT,actuator_PAC9685_init:()=>aT,actuator_Servo:()=>uT,actuator_Servo_init:()=>pT,actuator_ms32006_dcmotor:()=>TT,actuator_ms32006_init:()=>IT,actuator_ms32006_stepper:()=>hT,actuator_rgb_display:()=>dT,actuator_rgb_init:()=>_T,actuator_rgb_set:()=>rT});var b={};t.r(b),t.d(b,{KPU_analysis:()=>DT,KPU_forward:()=>ST,KPU_init_yolo2:()=>AT,KPU_load:()=>ET,KPU_load1:()=>CT,KPU_run_yolo2:()=>gT,ai_face_info:()=>YT,ai_face_init:()=>VT,ai_face_train:()=>yT,ailocal_loading:()=>vT,ailocal_predict:()=>PT,ailocal_training:()=>FT,aionenet_API:()=>LT,aionenet_nic_init:()=>NT,aionenet_token:()=>fT,tuple_anchor:()=>RT,tuple_calss:()=>MT});var k={};t.r(k),t.d(k,{audio_play:()=>XT,audio_record:()=>GT,mic_init:()=>xT,spk_init:()=>kT,video_play:()=>HT,video_record:()=>UT});var x={};t.r(x),t.d(x,{camera_getinfo:()=>nh,camera_init:()=>KT,camera_reset:()=>jT,camera_run:()=>JT,camera_set_colorbar:()=>ih,camera_set_framesize:()=>qT,camera_set_hmirror:()=>th,camera_set_pixformat:()=>QT,camera_set_vflip:()=>eh,camera_set_windowing:()=>oh,camera_setmun:()=>sh,camera_shutdown:()=>$T,camera_skip_frames:()=>zT,camera_snapshot:()=>ZT,mode:()=>BT,size:()=>WT});var X={};t.r(X),t.d(X,{communicate_i2c_available:()=>Ah,communicate_i2c_init:()=>ah,communicate_i2c_master_read:()=>Ch,communicate_i2c_read:()=>_h,communicate_i2c_scan:()=>dh,communicate_i2c_write:()=>rh,communicate_i2s_init:()=>lh,communicate_ir_recv:()=>uh,communicate_ow_init:()=>Sh,communicate_ow_read:()=>Nh,communicate_ow_reset:()=>Fh,communicate_ow_scan:()=>Dh,communicate_ow_select:()=>Lh,communicate_ow_write:()=>fh,communicate_spi_buffer:()=>hh,communicate_spi_init:()=>Ih,communicate_spi_read:()=>mh,communicate_spi_read_output:()=>ch,communicate_spi_readinto:()=>Oh,communicate_spi_readinto_output:()=>Rh,communicate_spi_set:()=>Th,communicate_spi_write:()=>Mh,communicate_spi_write_readinto:()=>Eh,i2c_available:()=>Wh,i2c_init:()=>vh,i2c_master_reader2:()=>Bh,i2c_read:()=>Ph,i2c_scan:()=>yh,i2c_slave_onreceive:()=>gh,i2c_write:()=>Vh,spi_buffer:()=>kh,spi_init:()=>Yh,spi_read:()=>xh,spi_read_output:()=>Xh,spi_readinto:()=>Gh,spi_readinto_output:()=>Hh,spi_set:()=>bh,spi_write:()=>Uh,spi_write_readinto:()=>wh});var G={};t.r(G),t.d(G,{angle:()=>jh,lcd_clear:()=>tm,lcd_color:()=>Qh,lcd_colour:()=>Zh,lcd_display:()=>$h,lcd_draw_string:()=>nm,lcd_init:()=>Jh,lcd_mirror:()=>im,lcd_rotation:()=>em,lcd_width:()=>zh,on_off:()=>qh,touch_calibrate:()=>om,touch_info:()=>um,touch_init:()=>sm,touch_read:()=>pm});var H={};t.r(H),t.d(H,{factory_block:()=>Om,factory_block_notes:()=>Cm,factory_block_return:()=>Rm,factory_block_return_with_textarea:()=>Em,factory_block_with_textarea:()=>Mm,factory_callMethod_noreturn:()=>mm,factory_callMethod_return:()=>cm,factory_create_with_container:()=>dm,factory_create_with_item:()=>Im,factory_declare:()=>hm,factory_from_import:()=>lm,factory_function_noreturn:()=>rm,factory_function_return:()=>Tm,factory_import:()=>_m});var U={};t.r(U),t.d(U,{asrloca_config:()=>Sm,asrloca_del:()=>Nm,asrloca_init:()=>gm,asrloca_recognize:()=>Dm});var w={};t.r(w),t.d(w,{image_Histogram:()=>Nc,image_Image:()=>Fm,image_Image1:()=>vm,image_RGB:()=>Ym,image_apriltag:()=>Ac,image_barcode:()=>Cc,image_binary:()=>mc,image_blob:()=>Dc,image_cartoon:()=>lc,image_circle:()=>oc,image_clear:()=>km,image_compress:()=>bm,image_copy:()=>ym,image_dilate:()=>rc,image_draw_arrow:()=>jm,image_draw_circle:()=>qm,image_draw_cross:()=>Qm,image_draw_image:()=>Zm,image_draw_keypoints:()=>zm,image_draw_line:()=>Km,image_draw_rectangle:()=>Jm,image_draw_string:()=>Wm,image_draw_string_UTF:()=>Bm,image_draw_string_flash:()=>wm,image_erode:()=>_c,image_find_apriltags:()=>Mc,image_find_barcodes:()=>Oc,image_find_blobs:()=>gc,image_find_circles:()=>ec,image_find_hog:()=>yc,image_find_keypoints:()=>Yc,image_find_line_segments:()=>tc,image_find_lines:()=>$m,image_find_qrcodes:()=>Rc,image_find_rects:()=>ic,image_flood_fill:()=>dc,image_font_free:()=>Um,image_font_load:()=>Hm,image_get_histogram:()=>Sc,image_get_pixel:()=>Gm,image_get_regression:()=>nc,image_getinfo:()=>Pm,image_grayscale_to_rgb:()=>Vc,image_histeq:()=>uc,image_invert:()=>Tc,image_kptmatch:()=>kc,image_lab_to_rgb:()=>Fc,image_lens_corr:()=>hc,image_line:()=>sc,image_linpolar:()=>Ic,image_match_descriptor:()=>bc,image_mean:()=>ac,image_morph:()=>cc,image_percentile:()=>fc,image_qrcode:()=>Ec,image_rect:()=>pc,image_rgb_to_grayscale:()=>Pc,image_rgb_to_lab:()=>vc,image_save:()=>Vm,image_set_pixel:()=>Xm,image_threshold:()=>Lc,image_tonew:()=>xm,true_false:()=>Lm});var B={};t.r(B),t.d(B,{inout_digital_init:()=>Gc,inout_digital_read:()=>Uc,inout_digital_write:()=>Hc,inout_highlow:()=>Xc,inout_pin_attachInterrupt:()=>Wc,inout_pin_disirq:()=>Kc,inout_pwm_init:()=>wc,inout_pwm_write:()=>Bc});var W={};t.r(W),t.d(W,{iot_checkonenet:()=>pO,iot_create_with_item:()=>iO,iot_onenet_check:()=>zc,iot_onenet_connect:()=>qc,iot_onenet_disconnect:()=>Jc,iot_onenet_publish:()=>$c,iot_onenet_publish_dict:()=>Zc,iot_onenetconnect:()=>sO,iot_onenetdisconnect:()=>oO,iot_publish:()=>uO,iot_publish_container:()=>tO,iot_publish_item:()=>eO,iot_wifi_connect:()=>Qc,iot_wificonnect:()=>nO});var K={};t.r(K),t.d(K,{base_map:()=>gO,math_arithmetic:()=>rO,math_bit:()=>IO,math_constant:()=>_O,math_constrain:()=>MO,math_indexer_number:()=>CO,math_map:()=>EO,math_max_min:()=>mO,math_max_min1:()=>cO,math_number:()=>lO,math_number_base_conversion:()=>OO,math_random:()=>RO,math_random_seed:()=>AO,math_selfcalcu:()=>dO,math_to_int:()=>hO,math_trig:()=>TO});var j={};t.r(j),t.d(j,{nes_joystick_init:()=>DO,nes_keyboard_init:()=>NO,nes_run:()=>fO});var Q={};t.r(Q),t.d(Q,{network_connect:()=>PO,network_disable_ap:()=>bO,network_disconnect:()=>yO,network_enable_ap:()=>YO,network_ifconfig:()=>VO,network_init:()=>FO,network_scan:()=>vO,network_socket_close:()=>wO,network_socket_connect:()=>XO,network_socket_getaddrinfo:()=>xO,network_socket_init:()=>kO,network_socket_receive:()=>UO,network_socket_send:()=>HO,network_socket_settimeout:()=>GO});var q={};t.r(q),t.d(q,{pins_analog:()=>jO,pins_analog_pin:()=>QO,pins_axis:()=>aR,pins_brightness:()=>lR,pins_builtinimg:()=>nR,pins_button:()=>zO,pins_dac:()=>qO,pins_dac_pin:()=>JO,pins_digital:()=>WO,pins_digital_dot:()=>TR,pins_digital_pin:()=>KO,pins_exlcdh:()=>pR,pins_exlcdv:()=>uR,pins_imglist:()=>sR,pins_one_more:()=>IR,pins_playlist:()=>oR,pins_pwm:()=>ZO,pins_pwm_pin:()=>$O,pins_radio_datarate:()=>dR,pins_radio_power:()=>rR,pins_serial:()=>iR,pins_tone_notes:()=>_R,pins_touch:()=>eR,pins_touch_pin:()=>tR});var J={};t.r(J),t.d(J,{HCSR04:()=>MR,KEY_SELET:()=>mR,sensor_adxl345_get_acceleration:()=>fR,sensor_bmp:()=>AR,sensor_button_init:()=>cR,sensor_button_read:()=>OR,sensor_dht11:()=>RR,sensor_mpu9250_get_acceleration:()=>ER,sensor_mpu9250_get_gyro:()=>DR,sensor_mpu9250_get_magnetic:()=>SR,sensor_mpu9250_temperature:()=>NR,sensor_sht:()=>gR,sensor_use_i2c_init:()=>CR});var z={};t.r(z),t.d(z,{serial_any:()=>YR,serial_print:()=>FR,serial_print_hex:()=>PR,serial_println:()=>vR,serial_read_from_mixgoce:()=>jR,serial_readline:()=>bR,serial_readstr:()=>yR,serial_readstr_until:()=>kR,serial_receive_data_event:()=>VR,serial_send_to_mixgoce:()=>KR,serial_softserial1:()=>xR,system_input:()=>XR,system_print:()=>GR,system_print_container:()=>BR,system_print_end:()=>UR,system_print_inline:()=>HR,system_print_item:()=>WR,system_print_many:()=>wR});var Z={};t.r(Z),t.d(Z,{Panic_with_status_code:()=>zR,TIM_SELET:()=>qR,Timer_init:()=>pM,base_delay:()=>lM,controls_delay:()=>JR,controls_millis:()=>ZR,controls_uname:()=>tM,raw_block:()=>$R,system_gc_collect:()=>nM,system_reset:()=>iM,system_ticks_diff:()=>sM,system_timer:()=>eM,system_timer_init:()=>oM,time_ticks_diff:()=>aM,timer2:()=>uM});var $={};t.r($),t.d($,{LCD_color_seclet:()=>IM,lists_create_with_text1:()=>rM,tuple_create_with_text3:()=>dM});var tt={};t.r(tt),t.d(tt,{PID_get_pid:()=>SM,PID_init:()=>gM,actuator_PAC9685_Servo:()=>cM,actuator_PAC9685_init:()=>mM,actuator_Servo:()=>hM,actuator_Servo_init:()=>TM,actuator_ms32006_dcmotor:()=>CM,actuator_ms32006_init:()=>EM,actuator_ms32006_stepper:()=>AM,actuator_rgb_display:()=>MM,actuator_rgb_init:()=>OM,actuator_rgb_set:()=>RM});var et={};t.r(et),t.d(et,{KPU_analysis:()=>VM,KPU_forward:()=>PM,KPU_init_yolo2:()=>FM,KPU_load:()=>fM,KPU_load1:()=>LM,KPU_run_yolo2:()=>vM,ai_face_info:()=>UM,ai_face_init:()=>GM,ai_face_train:()=>HM,ailocal_loading:()=>xM,ailocal_predict:()=>XM,ailocal_training:()=>kM,aionenet_API:()=>bM,aionenet_nic_init:()=>yM,aionenet_token:()=>YM,tuple_anchor:()=>DM,tuple_calss:()=>NM});var it={};t.r(it),t.d(it,{audio_play:()=>WM,audio_record:()=>KM,mic_init:()=>BM,spk_init:()=>wM,video_play:()=>jM,video_record:()=>QM});var nt={};t.r(nt),t.d(nt,{camera_getinfo:()=>aE,camera_init:()=>zM,camera_reset:()=>ZM,camera_run:()=>eE,camera_set_colorbar:()=>uE,camera_set_framesize:()=>tE,camera_set_hmirror:()=>oE,camera_set_pixformat:()=>$M,camera_set_vflip:()=>pE,camera_set_windowing:()=>_E,camera_setmun:()=>lE,camera_shutdown:()=>sE,camera_skip_frames:()=>iE,camera_snapshot:()=>nE,mode:()=>qM,size:()=>JM});var st={};t.r(st),t.d(st,{communicate_i2c_available:()=>OE,communicate_i2c_init:()=>dE,communicate_i2c_master_read:()=>cE,communicate_i2c_read:()=>TE,communicate_i2c_scan:()=>mE,communicate_i2c_write:()=>hE,communicate_i2s_init:()=>IE,communicate_ir_recv:()=>rE,communicate_ow_init:()=>LE,communicate_ow_read:()=>PE,communicate_ow_reset:()=>vE,communicate_ow_scan:()=>FE,communicate_ow_select:()=>yE,communicate_ow_write:()=>VE,communicate_spi_buffer:()=>CE,communicate_spi_init:()=>ME,communicate_spi_read:()=>AE,communicate_spi_read_output:()=>gE,communicate_spi_readinto:()=>SE,communicate_spi_readinto_output:()=>DE,communicate_spi_set:()=>EE,communicate_spi_write:()=>NE,communicate_spi_write_readinto:()=>fE,i2c_slave_onreceive:()=>RE});var ot={};t.r(ot),t.d(ot,{angle:()=>YE,lcd_clear:()=>UE,lcd_color:()=>bE,lcd_colour:()=>XE,lcd_display:()=>HE,lcd_draw_string:()=>WE,lcd_init:()=>xE,lcd_mirror:()=>BE,lcd_rotation:()=>wE,lcd_width:()=>GE,on_off:()=>kE,touch_calibrate:()=>jE,touch_info:()=>qE,touch_init:()=>KE,touch_read:()=>QE});var pt={};t.r(pt),t.d(pt,{factory_block:()=>nC,factory_block_notes:()=>uC,factory_block_return:()=>sC,factory_block_return_with_textarea:()=>pC,factory_block_with_textarea:()=>oC,factory_callMethod_noreturn:()=>eC,factory_callMethod_return:()=>iC,factory_declare:()=>tC,factory_from_import:()=>JE,factory_function_noreturn:()=>ZE,factory_function_return:()=>$E,factory_import:()=>zE});var ut={};t.r(ut),t.d(ut,{asrloca_config:()=>lC,asrloca_del:()=>rC,asrloca_init:()=>aC,asrloca_recognize:()=>_C});var at={};t.r(at),t.d(at,{image_Histogram:()=>_A,image_Image:()=>TC,image_Image1:()=>hC,image_RGB:()=>IC,image_apriltag:()=>pA,image_barcode:()=>sA,image_binary:()=>$C,image_blob:()=>lA,image_cartoon:()=>KC,image_circle:()=>UC,image_clear:()=>SC,image_compress:()=>gC,image_copy:()=>AC,image_dilate:()=>QC,image_draw_arrow:()=>FC,image_draw_circle:()=>PC,image_draw_cross:()=>vC,image_draw_image:()=>YC,image_draw_keypoints:()=>yC,image_draw_line:()=>LC,image_draw_rectangle:()=>VC,image_draw_string:()=>CC,image_draw_string_UTF:()=>EC,image_draw_string_flash:()=>MC,image_erode:()=>jC,image_find_apriltags:()=>nA,image_find_barcodes:()=>eA,image_find_blobs:()=>uA,image_find_circles:()=>xC,image_find_hog:()=>cA,image_find_keypoints:()=>OA,image_find_line_segments:()=>kC,image_find_lines:()=>bC,image_find_qrcodes:()=>iA,image_find_rects:()=>XC,image_flood_fill:()=>qC,image_font_free:()=>OC,image_font_load:()=>RC,image_get_histogram:()=>aA,image_get_pixel:()=>fC,image_get_regression:()=>GC,image_getinfo:()=>mC,image_grayscale_to_rgb:()=>mA,image_histeq:()=>BC,image_invert:()=>zC,image_kptmatch:()=>MA,image_lab_to_rgb:()=>IA,image_lens_corr:()=>ZC,image_line:()=>HC,image_linpolar:()=>JC,image_match_descriptor:()=>RA,image_mean:()=>WC,image_morph:()=>tA,image_percentile:()=>rA,image_qrcode:()=>oA,image_rect:()=>wC,image_rgb_to_grayscale:()=>hA,image_rgb_to_lab:()=>TA,image_save:()=>cC,image_set_pixel:()=>NC,image_threshold:()=>dA,image_tonew:()=>DC,true_false:()=>dC});var lt={};t.r(lt),t.d(lt,{PGA_SELET:()=>EA,inout_adc_Vread:()=>FA,inout_adc_init:()=>fA,inout_adc_read:()=>LA,inout_digital_init:()=>AA,inout_digital_read:()=>SA,inout_digital_write:()=>gA,inout_highlow:()=>CA,inout_pin_attachInterrupt:()=>vA,inout_pin_disirq:()=>PA,inout_pwm_init:()=>DA,inout_pwm_write:()=>NA});var _t={};t.r(_t),t.d(_t,{iot_onenet_check:()=>kA,iot_onenet_connect:()=>yA,iot_onenet_disconnect:()=>YA,iot_onenet_publish:()=>xA,iot_onenet_publish_dict:()=>bA,iot_wifi_connect:()=>VA});var rt={};t.r(rt),t.d(rt,{base_map:()=>eg,math_arithmetic:()=>UA,math_bit:()=>HA,math_constant:()=>GA,math_constrain:()=>zA,math_indexer_number:()=>tg,math_map:()=>JA,math_max_min:()=>jA,math_max_min1:()=>QA,math_number:()=>XA,math_number_base_conversion:()=>ZA,math_random:()=>qA,math_random_seed:()=>$A,math_selfcalcu:()=>wA,math_single:()=>BA,math_to_int:()=>KA,math_trig:()=>WA});var dt={};t.r(dt),t.d(dt,{nes_joystick_init:()=>ig,nes_keyboard_init:()=>ng,nes_run:()=>sg});var It={};t.r(It),t.d(It,{network_connect:()=>ug,network_disable_ap:()=>rg,network_disconnect:()=>lg,network_enable_ap:()=>_g,network_ifconfig:()=>ag,network_init:()=>og,network_scan:()=>pg,network_server:()=>dg,network_socket_close:()=>Rg,network_socket_connect:()=>hg,network_socket_getaddrinfo:()=>Tg,network_socket_init:()=>Ig,network_socket_receive:()=>cg,network_socket_send:()=>Og,network_socket_settimeout:()=>mg});var Tt={};t.r(Tt),t.d(Tt,{pins_analog:()=>gg,pins_analog_pin:()=>Ag,pins_axis:()=>bg,pins_brightness:()=>Xg,pins_builtinimg:()=>Vg,pins_button:()=>Eg,pins_dac:()=>fg,pins_dac_pin:()=>Ng,pins_digital:()=>Mg,pins_digital_dot:()=>Bg,pins_digital_pin:()=>Cg,pins_exlcdh:()=>kg,pins_exlcdv:()=>xg,pins_imglist:()=>yg,pins_interrupt:()=>vg,pins_one_more:()=>wg,pins_playlist:()=>Yg,pins_pwm:()=>Dg,pins_pwm_pin:()=>Sg,pins_radio_datarate:()=>Ug,pins_radio_power:()=>Hg,pins_serial:()=>Pg,pins_tone_notes:()=>Gg,pins_touch:()=>Fg,pins_touch_pin:()=>Lg});var ht={};t.r(ht),t.d(ht,{HCSR04:()=>qg,KEY_SELET:()=>Wg,sensor_adxl345_get_acceleration:()=>$g,sensor_bmp:()=>uS,sensor_button_init:()=>Kg,sensor_button_read:()=>jg,sensor_compass_reset:()=>oS,sensor_dht11:()=>Qg,sensor_mpu9250_attachGestureInterrupt:()=>Jg,sensor_mpu9250_calibrate_compass:()=>iS,sensor_mpu9250_field_strength:()=>sS,sensor_mpu9250_gesture:()=>zg,sensor_mpu9250_get_acceleration:()=>Zg,sensor_mpu9250_get_gyro:()=>eS,sensor_mpu9250_get_magnetic:()=>tS,sensor_mpu9250_temperature:()=>nS,sensor_sht:()=>aS,sensor_use_i2c_init:()=>pS});var mt={};t.r(mt),t.d(mt,{UART_SELET:()=>lS,serial_any:()=>IS,serial_print:()=>_S,serial_print_hex:()=>dS,serial_println:()=>rS,serial_read_from_mixgoce:()=>AS,serial_readline:()=>hS,serial_readstr:()=>TS,serial_send_to_mixgoce:()=>CS,serial_softserial1:()=>mS,system_input:()=>cS,system_print:()=>OS,system_print_end:()=>MS,system_print_inline:()=>RS,system_print_many:()=>ES});var ct={};t.r(ct),t.d(ct,{Panic_with_status_code:()=>YS,TIM_SELET:()=>gS,Timer_init:()=>KS,base_delay:()=>qS,controls_delay:()=>US,controls_end_program:()=>kS,controls_millis:()=>bS,controls_uname:()=>HS,reset:()=>xS,system_device_name:()=>VS,system_device_serial_number:()=>yS,system_event_bus_source:()=>vS,system_event_bus_value:()=>PS,system_gc_collect:()=>GS,system_on_event:()=>fS,system_raise_event:()=>NS,system_reset:()=>XS,system_run_in_background:()=>SS,system_ticks_diff:()=>BS,system_timer:()=>wS,system_timer_init:()=>WS,system_timestamp:()=>LS,system_value:()=>FS,system_wait:()=>DS,time_ticks_diff:()=>QS,timer2:()=>jS});var Ot={};t.r(Ot),t.d(Ot,{LCD_color_seclet:()=>$S,LCD_color_seclet1:()=>ZS,lists_create_with_text1:()=>JS,tuple_create_with_text3:()=>zS});const Rt=Blockly,Mt=Mixly,Et={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(p+=n)):i=p}else i="i";return i}},Ct=Et; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Ft,controls_typeLists:()=>vt,lists_zip:()=>Pt,lists_zip_container:()=>Vt,lists_zip_item:()=>yt,unpack_iterable_object:()=>Yt,variables_change:()=>ft,variables_get:()=>Dt,variables_global:()=>Lt,variables_set:()=>Nt});var i={};t.r(i),t.d(i,{base_setup:()=>xt,controls_delay:()=>Xt,controls_end_program:()=>Gt,controls_except:()=>$t,controls_finally:()=>te,controls_flow_statements:()=>Kt,controls_for:()=>jt,controls_forEach:()=>wt,controls_for_range:()=>Qt,controls_if:()=>Ht,controls_if_else:()=>zt,controls_if_elseif:()=>Jt,controls_if_if:()=>qt,controls_lambda:()=>ie,controls_main:()=>kt,controls_pass:()=>ne,controls_range:()=>Ut,controls_repeat_ext:()=>ee,controls_thread:()=>se,controls_try:()=>Zt,controls_try_finally:()=>Wt,controls_whileUntil:()=>Bt,datetime_fromtimestamp:()=>_e,do_while:()=>oe,garbage_collection:()=>pe,gene_unique_identifier:()=>re,get_mem_alloc:()=>ue,get_mem_free:()=>ae,get_unique_identifier:()=>le});var n={};t.r(n),t.d(n,{base_map:()=>Pe,generate_cartesian_product:()=>ye,math_arithmetic:()=>me,math_bit:()=>Oe,math_constant:()=>Te,math_constant_mp:()=>he,math_constrain:()=>Se,math_dec:()=>Me,math_indexer_number:()=>Ne,math_map:()=>De,math_max_min:()=>Ce,math_number:()=>Ie,math_number_base_conversion:()=>Ae,math_random:()=>ge,math_random_seed:()=>fe,math_round:()=>Le,math_selfcalcu:()=>ce,math_to_int:()=>Ee,math_trig:()=>Re,text_to_number:()=>Fe,text_to_number_skulpt:()=>ve,turn_to_int:()=>Ve});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Ge,char_to_ascii:()=>He,number_to_text:()=>Ue,os_system:()=>Ii,text:()=>be,text_capital:()=>ze,text_center:()=>Ze,text_char:()=>xe,text_char_at:()=>We,text_char_at2:()=>Be,text_char_at3:()=>li,text_compareTo:()=>ai,text_compare_to:()=>Je,text_create_with_container:()=>oi,text_create_with_item:()=>pi,text_encode:()=>ri,text_equals_starts_ends:()=>qe,text_eval:()=>di,text_find:()=>$e,text_format:()=>si,text_format_noreturn:()=>_i,text_join:()=>Xe,text_join_seq:()=>ti,text_length:()=>we,text_random_char:()=>Ke,text_replace:()=>ei,text_split:()=>ii,text_strip:()=>ni,text_substring:()=>Qe,text_substring2:()=>je,text_substring3:()=>ui,text_textarea:()=>ke});var o={};t.r(o),t.d(o,{ENUMERATE:()=>qi,content_in_lists:()=>zi,enumerate:()=>Ji,list_many_input:()=>bi,list_tolist:()=>Gi,list_tolist2:()=>Qi,list_trig:()=>Vi,lists_2d_get_col_row_data:()=>Oi,lists_2d_get_data_with_col_row:()=>ci,lists_append_extend:()=>gi,lists_change_to:()=>Yi,lists_change_to_general:()=>xi,lists_clear:()=>Li,lists_create_with:()=>Ri,lists_create_with2:()=>Hi,lists_create_with_container:()=>Ei,lists_create_with_item:()=>Ci,lists_create_with_noreturn:()=>ki,lists_create_with_text:()=>Mi,lists_create_with_text2:()=>Ui,lists_del_general:()=>Xi,lists_find:()=>Pi,lists_getIndex3:()=>wi,lists_getSublist3:()=>Bi,lists_get_index:()=>hi,lists_get_random_item:()=>Si,lists_get_random_sublist:()=>Di,lists_get_sublist:()=>mi,lists_insert_value:()=>Ni,lists_insert_value2:()=>Ki,lists_pop:()=>vi,lists_remove_at:()=>Fi,lists_remove_at2:()=>ji,lists_reverse:()=>fi,lists_setIndex3:()=>Wi,lists_set_index:()=>Ai,lists_sort:()=>yi});var p={};t.r(p),t.d(p,{dicts_add_change_del:()=>Tn,dicts_add_or_change:()=>pn,dicts_clear:()=>ln,dicts_create_with:()=>$i,dicts_create_with_container:()=>tn,dicts_create_with_item:()=>en,dicts_create_with_noreturn:()=>cn,dicts_deldict:()=>In,dicts_delete:()=>un,dicts_get:()=>sn,dicts_get_default:()=>on,dicts_items:()=>_n,dicts_keys:()=>nn,dicts_length:()=>dn,dicts_pop:()=>hn,dicts_setdefault:()=>mn,dicts_to_json:()=>Rn,dicts_to_json2:()=>Cn,dicts_to_to:()=>En,dicts_todict:()=>On,dicts_update:()=>an,dicts_values:()=>rn,json_to_dicts:()=>Mn});var u={};t.r(u),t.d(u,{logic_boolean:()=>fn,logic_compare:()=>gn,logic_compare_continous:()=>Sn,logic_is:()=>Pn,logic_is_in:()=>vn,logic_negate:()=>Nn,logic_null:()=>Ln,logic_operation:()=>Dn,logic_tobool:()=>Vn,logic_true_or_false:()=>Fn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>is,sdcard_use_spi_init:()=>es,storage_can_write_ornot:()=>Un,storage_change_dir:()=>$n,storage_close_file:()=>Bn,storage_delete_file:()=>Kn,storage_file_seek:()=>qn,storage_file_tell:()=>Qn,storage_file_write:()=>xn,storage_fileopen:()=>Yn,storage_fileopen_new:()=>bn,storage_fileopen_new_encoding:()=>kn,storage_get_a_line:()=>Hn,storage_get_contents:()=>Gn,storage_get_contents_without_para:()=>Xn,storage_get_current_dir:()=>Jn,storage_get_file_size:()=>jn,storage_get_filename:()=>wn,storage_is_file:()=>ts,storage_list_all_files:()=>Wn,storage_make_dir:()=>zn,storage_open_file_with_os:()=>yn,storage_rename:()=>Zn});var l={};t.r(l),t.d(l,{procedures_callnoreturn:()=>ls,procedures_callreturn:()=>_s,procedures_defnoreturn:()=>os,procedures_defreturn:()=>ps,procedures_ifreturn:()=>rs,procedures_mutatorarg:()=>as,procedures_mutatorcontainer:()=>us,procedures_return:()=>ds});var _={};t.r(_),t.d(_,{tuple_change_to:()=>gs,tuple_create_with:()=>Ts,tuple_create_with_container:()=>hs,tuple_create_with_item:()=>ms,tuple_create_with_noreturn:()=>fs,tuple_create_with_text2:()=>cs,tuple_create_with_text_return:()=>Os,tuple_del:()=>Es,tuple_find:()=>Ss,tuple_getIndex:()=>Rs,tuple_getSublist:()=>Ns,tuple_get_random_item:()=>Fs,tuple_get_sublist:()=>Ls,tuple_input:()=>Ps,tuple_join:()=>Cs,tuple_length:()=>Ms,tuple_max:()=>As,tuple_totuple:()=>vs,tuple_trig:()=>Ds});var r={};t.r(r),t.d(r,{set_add_discard:()=>Us,set_clear:()=>Xs,set_create_with:()=>ys,set_create_with_container:()=>Ys,set_create_with_item:()=>bs,set_create_with_text_return:()=>Ws,set_length:()=>ks,set_operate:()=>Gs,set_operate_update:()=>Hs,set_pop:()=>xs,set_sub:()=>ws,set_toset:()=>Ks,set_update:()=>Bs});var d={};t.r(d),t.d(d,{html_content:()=>zs,html_content_more:()=>Zs,html_document:()=>Qs,html_form:()=>to,html_head_body:()=>Js,html_style:()=>$s,html_style_color:()=>io,html_style_content:()=>eo,html_text:()=>no,html_title:()=>qs});var I={};t.r(I),t.d(I,{attribute_access:()=>Oo,function_call:()=>ho,function_call_container:()=>mo,function_call_item:()=>co,raw_block:()=>po,raw_empty:()=>ao,raw_expression:()=>uo,raw_table:()=>oo,text_comment:()=>lo,text_print_multiple:()=>ro,text_print_multiple_container:()=>Io,text_print_multiple_item:()=>To,type_check:()=>_o});var T={};t.r(T),t.d(T,{controls_type:()=>Ao,controls_typeLists:()=>go,lists_zip:()=>So,unpack_iterable_object:()=>Do,variables_change:()=>Eo,variables_get:()=>Ro,variables_global:()=>Co,variables_set:()=>Mo});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>bo,base_setup:()=>fo,controls_delay:()=>Yo,controls_flow_statements:()=>yo,controls_for:()=>vo,controls_forEach:()=>Ho,controls_for_range:()=>Po,controls_if:()=>Lo,controls_interrupts:()=>Xo,controls_lambda:()=>wo,controls_main:()=>No,controls_millis:()=>ko,controls_nointerrupts:()=>Go,controls_pass:()=>Wo,controls_range:()=>Uo,controls_repeat:()=>$o,controls_repeat_ext:()=>Qo,controls_thread:()=>Ko,controls_try_finally:()=>Fo,controls_whileUntil:()=>Vo,datetime_fromtimestamp:()=>tp,do_while:()=>jo,garbage_collection:()=>qo,gene_unique_identifier:()=>ep,get_mem_alloc:()=>Jo,get_mem_free:()=>zo,get_unique_identifier:()=>Zo,reset:()=>xo,time_sleep:()=>Bo});var m={};t.r(m),t.d(m,{base_map:()=>Cp,generate_cartesian_product:()=>gp,math_arithmetic:()=>pp,math_bit:()=>op,math_constant:()=>np,math_constant_mp:()=>sp,math_constrain:()=>hp,math_dec:()=>_p,math_indexer_number:()=>Op,math_map:()=>Tp,math_max_min:()=>dp,math_number:()=>ip,math_number_base_conversion:()=>mp,math_random:()=>Ip,math_random_seed:()=>cp,math_round:()=>Rp,math_selfcalcu:()=>up,math_single:()=>ap,math_to_int:()=>rp,math_trig:()=>lp,text_to_number:()=>Mp,text_to_number_skulpt:()=>Ep,turn_to_int:()=>Ap});var c={};t.r(c),t.d(c,{ascii_to_char:()=>Lp,char_to_ascii:()=>Fp,number_to_text:()=>vp,os_system:()=>tu,text:()=>Sp,text_capital:()=>Gp,text_center:()=>Hp,text_char:()=>Np,text_char_at:()=>yp,text_char_at2:()=>Vp,text_char_at3:()=>zp,text_compareTo:()=>Jp,text_compare_to:()=>kp,text_encode:()=>Zp,text_equals_starts_ends:()=>bp,text_eval:()=>$p,text_find:()=>Up,text_format:()=>jp,text_format_noreturn:()=>Qp,text_join:()=>fp,text_join_seq:()=>wp,text_length:()=>Pp,text_random_char:()=>Yp,text_replace:()=>Bp,text_split:()=>Wp,text_strip:()=>Kp,text_substring:()=>Xp,text_substring2:()=>xp,text_substring3:()=>qp,text_textarea:()=>Dp});var O={};t.r(O),t.d(O,{content_in_lists:()=>yu,enumerate:()=>Vu,list_many_input:()=>Mu,list_tolist:()=>vu,list_tolist2:()=>Pu,list_trig:()=>cu,lists_2d_get_col_row_data:()=>nu,lists_2d_get_data_with_col_row:()=>iu,lists_append_extend:()=>au,lists_change_to:()=>Ru,lists_change_to_general:()=>Cu,lists_clear:()=>Iu,lists_create_with:()=>su,lists_create_with2:()=>gu,lists_create_with_noreturn:()=>Eu,lists_create_with_text:()=>ou,lists_create_with_text2:()=>Su,lists_del_general:()=>Au,lists_find:()=>Tu,lists_getIndex3:()=>Du,lists_getSublist3:()=>Nu,lists_get_index:()=>pu,lists_get_random_item:()=>lu,lists_get_random_sublist:()=>_u,lists_get_sublist:()=>eu,lists_insert_value:()=>ru,lists_insert_value2:()=>Lu,lists_pop:()=>mu,lists_remove_at:()=>hu,lists_remove_at2:()=>Fu,lists_reverse:()=>du,lists_setIndex3:()=>fu,lists_set_index:()=>uu,lists_sort:()=>Ou});var R={};t.r(R),t.d(R,{dicts_add_change_del:()=>ju,dicts_add_or_change:()=>Xu,dicts_clear:()=>Uu,dicts_create_with:()=>Yu,dicts_create_with_noreturn:()=>Ju,dicts_deldict:()=>Ku,dicts_delete:()=>Gu,dicts_get:()=>ku,dicts_get_default:()=>xu,dicts_items:()=>wu,dicts_keys:()=>bu,dicts_length:()=>Wu,dicts_pop:()=>Qu,dicts_setdefault:()=>qu,dicts_to_json:()=>Zu,dicts_to_json2:()=>ea,dicts_to_to:()=>ta,dicts_todict:()=>zu,dicts_update:()=>Hu,dicts_values:()=>Bu,json_to_dicts:()=>$u});var M={};t.r(M),t.d(M,{logic_boolean:()=>pa,logic_compare:()=>ia,logic_compare_continous:()=>na,logic_is:()=>_a,logic_is_in:()=>la,logic_negate:()=>oa,logic_null:()=>ua,logic_operation:()=>sa,logic_tobool:()=>ra,logic_true_or_false:()=>aa});var E={};t.r(E),t.d(E,{sdcard_mount:()=>ya,sdcard_use_spi_init:()=>Va,storage_can_write_ornot:()=>Ma,storage_change_dir:()=>fa,storage_close_file:()=>Ca,storage_delete_file:()=>ga,storage_file_seek:()=>Na,storage_file_tell:()=>Da,storage_file_write:()=>ma,storage_fileopen:()=>Ia,storage_fileopen_new:()=>Ta,storage_fileopen_new_encoding:()=>ha,storage_get_a_line:()=>Ra,storage_get_contents:()=>Oa,storage_get_contents_without_para:()=>ca,storage_get_current_dir:()=>La,storage_get_file_size:()=>Sa,storage_get_filename:()=>Ea,storage_is_file:()=>Pa,storage_list_all_files:()=>Aa,storage_make_dir:()=>Fa,storage_open_file_with_os:()=>da,storage_rename:()=>va});var C={};t.r(C),t.d(C,{procedures_callnoreturn:()=>xa,procedures_callreturn:()=>ka,procedures_defnoreturn:()=>ba,procedures_defreturn:()=>Ya,procedures_ifreturn:()=>Xa,procedures_return:()=>Ga});var A={};t.r(A),t.d(A,{tuple_change_to:()=>qa,tuple_create_with:()=>Ha,tuple_create_with_noreturn:()=>$a,tuple_create_with_text2:()=>Ua,tuple_create_with_text_return:()=>wa,tuple_del:()=>Ka,tuple_find:()=>Ja,tuple_getIndex:()=>Ba,tuple_getSublist:()=>Za,tuple_get_random_item:()=>el,tuple_get_sublist:()=>tl,tuple_input:()=>nl,tuple_join:()=>ja,tuple_length:()=>Wa,tuple_max:()=>Qa,tuple_totuple:()=>il,tuple_trig:()=>za});var g={};t.r(g),t.d(g,{set_add_discard:()=>_l,set_clear:()=>ul,set_create_with:()=>sl,set_create_with_text_return:()=>Il,set_length:()=>ol,set_operate:()=>al,set_operate_update:()=>ll,set_pop:()=>pl,set_sub:()=>rl,set_toset:()=>Tl,set_update:()=>dl});var S={};t.r(S),t.d(S,{html_content:()=>Ol,html_content_more:()=>Rl,html_document:()=>hl,html_form:()=>El,html_head_body:()=>cl,html_style:()=>Ml,html_style_content:()=>Cl,html_text:()=>Al,html_title:()=>ml});var D={};t.r(D),t.d(D,{attribute_access:()=>Fl,function_call:()=>Ll,raw_block:()=>gl,raw_empty:()=>Dl,raw_expression:()=>Sl,raw_table:()=>Nl,type_check:()=>fl});var N={};t.r(N),t.d(N,{actuator_extern_get_led_bright:()=>kl,actuator_extern_led_bright:()=>bl,actuator_extern_led_brightness:()=>xl,actuator_get_led_bright:()=>Gl,actuator_led_bright:()=>Xl,actuator_led_brightness:()=>Hl,actuator_neopixel_init:()=>t_,actuator_neopixel_rgb:()=>e_,actuator_neopixel_write:()=>i_,actuator_onboard_neopixel_rgb:()=>n_,actuator_onboard_neopixel_rgb_all:()=>s_,actuator_onboard_neopixel_write:()=>o_,esp32_mixgo_music_play_list_show:()=>$l,esp32_music_get_tempo:()=>Kl,esp32_music_pitch:()=>Ul,esp32_music_pitch_with_time:()=>wl,esp32_music_play_list:()=>Zl,esp32_music_reset:()=>jl,esp32_music_set_tempo:()=>Wl,esp32_music_stop:()=>Bl,esp32_onboard_music_pitch:()=>Ql,esp32_onboard_music_pitch_with_time:()=>ql,esp32_onboard_music_play_list:()=>zl,esp32_onboard_music_stop:()=>Jl,get_led_bright:()=>u_,led_brightness:()=>a_,led_light:()=>p_,ledswitch:()=>Yl,number:()=>yl,servo_move:()=>Vl});var f={};t.r(f),t.d(f,{mpython_blynk_app_data:()=>A_,mpython_blynk_app_notify:()=>m_,mpython_blynk_email:()=>R_,mpython_blynk_get_timers:()=>M_,mpython_blynk_on_connected:()=>I_,mpython_blynk_on_disconnected:()=>d_,mpython_blynk_run:()=>h_,mpython_blynk_sensor_data_to_app:()=>C_,mpython_blynk_set_property:()=>O_,mpython_blynk_setup:()=>g_,mpython_blynk_stop_timers:()=>c_,mpython_blynk_sync_virtual:()=>r_,mpython_blynk_terminal_widget_vpin:()=>__,mpython_blynktimer:()=>E_,mpython_blynktimer_run:()=>T_});var L={};t.r(L),t.d(L,{display_animate:()=>cr,display_blink_rate:()=>or,display_bright_point:()=>F_,display_bright_screen:()=>sr,display_circle:()=>Or,display_clear:()=>f_,display_draw_4strings:()=>z_,display_fill:()=>dr,display_get_pixel:()=>L_,display_get_screen_image:()=>nr,display_get_screen_pixel:()=>ir,display_help:()=>Mr,display_image_builtins:()=>H_,display_image_create:()=>U_,display_image_size:()=>Z_,display_line:()=>tr,display_line_arbitrarily:()=>er,display_matrix_use_i2c_init:()=>Ar,display_oled_drawPixel:()=>Cr,display_oled_showBitmap:()=>Er,display_onoff:()=>rr,display_rect:()=>$_,display_rgb_color:()=>pr,display_scroll_string:()=>ar,display_scroll_string_delay:()=>_r,display_scroll_string_extern:()=>Sr,display_show_image:()=>gr,display_show_image_or_string:()=>ur,display_show_image_or_string_delay:()=>lr,display_show_static:()=>V_,display_tm1650_power:()=>Tr,display_tm1650_show_dot:()=>mr,display_tm1650_show_num:()=>hr,display_tm_use_i2c_init:()=>Ir,display_triangle:()=>Rr,display_use_i2c_init:()=>J_,esp32_display_is_on:()=>G_,esp32_display_off:()=>X_,esp32_display_on:()=>x_,esp32_display_scroll:()=>k_,esp32_display_show_animation:()=>b_,esp32_display_show_default_image:()=>Y_,esp32_display_show_string:()=>W_,group_lcd_init:()=>j_,group_lcd_power:()=>q_,group_lcd_print:()=>K_,group_lcd_print2:()=>Q_,image_arithmetic:()=>B_,image_shift:()=>w_,microbit_display_show_image:()=>y_,monitor_show_scroll_string:()=>P_,monitor_show_string:()=>v_});var F={};t.r(F),t.d(F,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>qr,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>Qr,IOT_EMQX_PING:()=>Kr,IOT_FORMATTING:()=>Br,IOT_FORMAT_STRING:()=>Wr,IOT_MIXIO_NTP:()=>jr,IOT_MIXIO_PUBLISH:()=>kr,IOT_MIXIO_SUBSCRIBE:()=>xr,iot_checkonenet:()=>od,iot_client_onboard:()=>zr,iot_create_with_item:()=>Yr,iot_http_client:()=>Zr,iot_http_data:()=>$r,iot_mixio_check:()=>Hr,iot_mixio_connect:()=>br,iot_mixio_connect_only:()=>Gr,iot_mixio_disconnect:()=>Xr,iot_mixio_format_msg:()=>wr,iot_mixio_format_topic:()=>Ur,iot_mixly_key:()=>Jr,iot_mqtt_client:()=>td,iot_mqtt_data:()=>ed,iot_onenet_check:()=>Fr,iot_onenet_connect:()=>fr,iot_onenet_disconnect:()=>Lr,iot_onenet_publish:()=>Pr,iot_onenet_publish_dict:()=>vr,iot_onenetconnect:()=>nd,iot_onenetdisconnect:()=>sd,iot_publish:()=>pd,iot_publish_container:()=>Vr,iot_publish_item:()=>yr,iot_wifi_connect:()=>Nr,iot_wificonnect:()=>id});var v={};t.r(v),t.d(v,{actuator_extern_get_led_bright:()=>Ad,actuator_extern_led_bright:()=>Cd,actuator_extern_led_brightness:()=>gd,actuator_get_led_bright:()=>Dd,actuator_led_bright:()=>Sd,actuator_led_brightness:()=>Nd,actuator_neopixel_init:()=>fd,actuator_neopixel_rgb:()=>Fd,actuator_neopixel_write:()=>Ld,actuator_onboard_neopixel_rgb:()=>Pd,actuator_onboard_neopixel_rgb_all:()=>Vd,actuator_onboard_neopixel_write:()=>vd,esp32_mixgo_music_play_list_show:()=>cd,esp32_music_get_tempo:()=>rd,esp32_music_pitch:()=>ud,esp32_music_pitch_with_time:()=>ad,esp32_music_play_list:()=>md,esp32_music_reset:()=>Od,esp32_music_set_tempo:()=>_d,esp32_music_stop:()=>ld,esp32_onboard_music_pitch:()=>dd,esp32_onboard_music_pitch_with_time:()=>Id,esp32_onboard_music_play_list:()=>hd,esp32_onboard_music_stop:()=>Td,get_led_bright:()=>Yd,led_brightness:()=>bd,led_light:()=>yd,ledswitch:()=>Ed,number:()=>Md,servo_move:()=>Rd});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>Qd,mpython_blynk_app_notify:()=>wd,mpython_blynk_email:()=>qd,mpython_blynk_get_timers:()=>Wd,mpython_blynk_on_connected:()=>Gd,mpython_blynk_on_disconnected:()=>Xd,mpython_blynk_run:()=>Ud,mpython_blynk_sensor_data_to_app:()=>jd,mpython_blynk_set_property:()=>Jd,mpython_blynk_setup:()=>zd,mpython_blynk_stop_timers:()=>Bd,mpython_blynk_sync_virtual:()=>xd,mpython_blynk_terminal_widget_vpin:()=>kd,mpython_blynktimer:()=>Kd,mpython_blynktimer_run:()=>Hd});var V={};t.r(V),t.d(V,{display_animate:()=>SI,display_blink_rate:()=>_I,display_bright_point:()=>pI,display_bright_screen:()=>lI,display_circle:()=>DI,display_clear:()=>rI,display_draw_4strings:()=>II,display_fill:()=>MI,display_get_pixel:()=>oI,display_get_screen_image:()=>aI,display_get_screen_pixel:()=>uI,display_image_builtins:()=>sI,display_image_create:()=>nI,display_line:()=>cI,display_line_arbitrarily:()=>TI,display_matrix_use_i2c_init:()=>FI,display_oled_drawPixel:()=>LI,display_oled_showBitmap:()=>fI,display_onoff:()=>OI,display_rect:()=>hI,display_scroll_string:()=>$d,display_scroll_string_delay:()=>iI,display_scroll_string_extern:()=>PI,display_show_image:()=>vI,display_show_image_or_string:()=>Zd,display_show_image_or_string_delay:()=>eI,display_show_static:()=>tI,display_tm1650_power:()=>CI,display_tm1650_show_dot:()=>gI,display_tm1650_show_num:()=>AI,display_tm_use_i2c_init:()=>EI,display_triangle:()=>NI,display_use_i2c_init:()=>dI,image_arithmetic:()=>mI,image_shift:()=>RI});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>zI,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>qI,IOT_EMQX_PING:()=>ZI,IOT_FORMATTING:()=>jI,IOT_FORMAT_STRING:()=>QI,IOT_MIXIO_NTP:()=>$I,IOT_MIXIO_PUBLISH:()=>GI,IOT_MIXIO_SUBSCRIBE:()=>HI,iot_client_onboard:()=>tT,iot_http_client:()=>eT,iot_http_data:()=>iT,iot_mixio_check:()=>BI,iot_mixio_connect:()=>XI,iot_mixio_connect_only:()=>wI,iot_mixio_disconnect:()=>UI,iot_mixio_format_msg:()=>KI,iot_mixio_format_topic:()=>WI,iot_mixly_key:()=>JI,iot_mqtt_client:()=>nT,iot_mqtt_data:()=>sT,iot_onenet_check:()=>kI,iot_onenet_connect:()=>yI,iot_onenet_disconnect:()=>YI,iot_onenet_publish:()=>xI,iot_onenet_publish_dict:()=>bI,iot_wifi_connect:()=>VI});var Y={};t.r(Y),t.d(Y,{PID_get_pid:()=>RT,PID_init:()=>OT,actuator_PAC9685_Servo:()=>rT,actuator_PAC9685_init:()=>_T,actuator_Servo:()=>lT,actuator_Servo_init:()=>aT,actuator_ms32006_dcmotor:()=>mT,actuator_ms32006_init:()=>hT,actuator_ms32006_stepper:()=>cT,actuator_rgb_display:()=>TT,actuator_rgb_init:()=>dT,actuator_rgb_set:()=>IT});var b={};t.r(b),t.d(b,{KPU_analysis:()=>fT,KPU_forward:()=>NT,KPU_init_yolo2:()=>ST,KPU_load:()=>AT,KPU_load1:()=>gT,KPU_run_yolo2:()=>DT,ai_face_info:()=>kT,ai_face_init:()=>YT,ai_face_train:()=>bT,ailocal_loading:()=>VT,ailocal_predict:()=>yT,ailocal_training:()=>PT,aionenet_API:()=>vT,aionenet_nic_init:()=>LT,aionenet_token:()=>FT,tuple_anchor:()=>ET,tuple_calss:()=>CT});var k={};t.r(k),t.d(k,{audio_play:()=>HT,audio_record:()=>UT,mic_init:()=>GT,spk_init:()=>XT,video_play:()=>wT,video_record:()=>BT});var x={};t.r(x),t.d(x,{camera_getinfo:()=>oh,camera_init:()=>QT,camera_reset:()=>qT,camera_run:()=>ZT,camera_set_colorbar:()=>sh,camera_set_framesize:()=>zT,camera_set_hmirror:()=>ih,camera_set_pixformat:()=>JT,camera_set_vflip:()=>nh,camera_set_windowing:()=>uh,camera_setmun:()=>ph,camera_shutdown:()=>eh,camera_skip_frames:()=>$T,camera_snapshot:()=>th,mode:()=>KT,size:()=>jT});var X={};t.r(X),t.d(X,{communicate_i2c_available:()=>Sh,communicate_i2c_init:()=>_h,communicate_i2c_master_read:()=>gh,communicate_i2c_read:()=>dh,communicate_i2c_scan:()=>Th,communicate_i2c_write:()=>Ih,communicate_i2s_init:()=>rh,communicate_ir_recv:()=>lh,communicate_ow_init:()=>Nh,communicate_ow_read:()=>Lh,communicate_ow_reset:()=>Ph,communicate_ow_scan:()=>fh,communicate_ow_select:()=>vh,communicate_ow_write:()=>Fh,communicate_spi_buffer:()=>ch,communicate_spi_init:()=>hh,communicate_spi_read:()=>Oh,communicate_spi_read_output:()=>Rh,communicate_spi_readinto:()=>Mh,communicate_spi_readinto_output:()=>Eh,communicate_spi_set:()=>mh,communicate_spi_write:()=>Ch,communicate_spi_write_readinto:()=>Ah,i2c_available:()=>jh,i2c_init:()=>Vh,i2c_master_reader2:()=>Kh,i2c_read:()=>yh,i2c_scan:()=>bh,i2c_slave_onreceive:()=>Dh,i2c_write:()=>Yh,spi_buffer:()=>Xh,spi_init:()=>kh,spi_read:()=>Gh,spi_read_output:()=>Hh,spi_readinto:()=>Uh,spi_readinto_output:()=>wh,spi_set:()=>xh,spi_write:()=>Bh,spi_write_readinto:()=>Wh});var G={};t.r(G),t.d(G,{angle:()=>qh,lcd_clear:()=>im,lcd_color:()=>Jh,lcd_colour:()=>tm,lcd_display:()=>em,lcd_draw_string:()=>om,lcd_init:()=>Zh,lcd_mirror:()=>sm,lcd_rotation:()=>nm,lcd_width:()=>$h,on_off:()=>zh,touch_calibrate:()=>um,touch_info:()=>lm,touch_init:()=>pm,touch_read:()=>am});var H={};t.r(H),t.d(H,{factory_block:()=>Mm,factory_block_notes:()=>gm,factory_block_return:()=>Em,factory_block_return_with_textarea:()=>Am,factory_block_with_textarea:()=>Cm,factory_callMethod_noreturn:()=>Om,factory_callMethod_return:()=>Rm,factory_create_with_container:()=>Tm,factory_create_with_item:()=>hm,factory_declare:()=>cm,factory_from_import:()=>rm,factory_function_noreturn:()=>Im,factory_function_return:()=>mm,factory_import:()=>dm});var U={};t.r(U),t.d(U,{asrloca_config:()=>Nm,asrloca_del:()=>Lm,asrloca_init:()=>Dm,asrloca_recognize:()=>fm});var w={};t.r(w),t.d(w,{image_Histogram:()=>Lc,image_Image:()=>Pm,image_Image1:()=>Vm,image_RGB:()=>km,image_apriltag:()=>Sc,image_barcode:()=>gc,image_binary:()=>Oc,image_blob:()=>fc,image_cartoon:()=>rc,image_circle:()=>uc,image_clear:()=>Xm,image_compress:()=>xm,image_copy:()=>bm,image_dilate:()=>Ic,image_draw_arrow:()=>qm,image_draw_circle:()=>zm,image_draw_cross:()=>Jm,image_draw_image:()=>tc,image_draw_keypoints:()=>$m,image_draw_line:()=>Qm,image_draw_rectangle:()=>Zm,image_draw_string:()=>jm,image_draw_string_UTF:()=>Km,image_draw_string_flash:()=>Wm,image_erode:()=>dc,image_find_apriltags:()=>Cc,image_find_barcodes:()=>Mc,image_find_blobs:()=>Dc,image_find_circles:()=>nc,image_find_hog:()=>bc,image_find_keypoints:()=>kc,image_find_line_segments:()=>ic,image_find_lines:()=>ec,image_find_qrcodes:()=>Ec,image_find_rects:()=>sc,image_flood_fill:()=>Tc,image_font_free:()=>Bm,image_font_load:()=>wm,image_get_histogram:()=>Nc,image_get_pixel:()=>Um,image_get_regression:()=>oc,image_getinfo:()=>ym,image_grayscale_to_rgb:()=>Yc,image_histeq:()=>lc,image_invert:()=>mc,image_kptmatch:()=>Xc,image_lab_to_rgb:()=>Pc,image_lens_corr:()=>cc,image_line:()=>pc,image_linpolar:()=>hc,image_match_descriptor:()=>xc,image_mean:()=>_c,image_morph:()=>Rc,image_percentile:()=>Fc,image_qrcode:()=>Ac,image_rect:()=>ac,image_rgb_to_grayscale:()=>yc,image_rgb_to_lab:()=>Vc,image_save:()=>Ym,image_set_pixel:()=>Hm,image_threshold:()=>vc,image_tonew:()=>Gm,true_false:()=>vm});var B={};t.r(B),t.d(B,{inout_digital_init:()=>Uc,inout_digital_read:()=>Bc,inout_digital_write:()=>wc,inout_highlow:()=>Hc,inout_pin_attachInterrupt:()=>jc,inout_pin_disirq:()=>Qc,inout_pwm_init:()=>Wc,inout_pwm_write:()=>Kc});var W={};t.r(W),t.d(W,{iot_checkonenet:()=>aO,iot_create_with_item:()=>sO,iot_onenet_check:()=>$c,iot_onenet_connect:()=>zc,iot_onenet_disconnect:()=>Zc,iot_onenet_publish:()=>eO,iot_onenet_publish_dict:()=>tO,iot_onenetconnect:()=>pO,iot_onenetdisconnect:()=>uO,iot_publish:()=>lO,iot_publish_container:()=>iO,iot_publish_item:()=>nO,iot_wifi_connect:()=>Jc,iot_wificonnect:()=>oO});var K={};t.r(K),t.d(K,{base_map:()=>DO,math_arithmetic:()=>IO,math_bit:()=>hO,math_constant:()=>dO,math_constrain:()=>CO,math_indexer_number:()=>gO,math_map:()=>AO,math_max_min:()=>OO,math_max_min1:()=>RO,math_number:()=>rO,math_number_base_conversion:()=>MO,math_random:()=>EO,math_random_seed:()=>SO,math_selfcalcu:()=>TO,math_to_int:()=>cO,math_trig:()=>mO});var j={};t.r(j),t.d(j,{nes_joystick_init:()=>fO,nes_keyboard_init:()=>LO,nes_run:()=>FO});var Q={};t.r(Q),t.d(Q,{network_connect:()=>yO,network_disable_ap:()=>xO,network_disconnect:()=>bO,network_enable_ap:()=>kO,network_ifconfig:()=>YO,network_init:()=>PO,network_scan:()=>VO,network_socket_close:()=>WO,network_socket_connect:()=>HO,network_socket_getaddrinfo:()=>GO,network_socket_init:()=>XO,network_socket_receive:()=>BO,network_socket_send:()=>wO,network_socket_settimeout:()=>UO});var q={};t.r(q),t.d(q,{pins_analog:()=>qO,pins_analog_pin:()=>JO,pins_axis:()=>_R,pins_brightness:()=>rR,pins_builtinimg:()=>oR,pins_button:()=>$O,pins_dac:()=>zO,pins_dac_pin:()=>ZO,pins_digital:()=>jO,pins_digital_dot:()=>mR,pins_digital_pin:()=>QO,pins_exlcdh:()=>aR,pins_exlcdv:()=>lR,pins_imglist:()=>pR,pins_one_more:()=>hR,pins_playlist:()=>uR,pins_pwm:()=>tR,pins_pwm_pin:()=>eR,pins_radio_datarate:()=>TR,pins_radio_power:()=>IR,pins_serial:()=>sR,pins_tone_notes:()=>dR,pins_touch:()=>nR,pins_touch_pin:()=>iR});var J={};t.r(J),t.d(J,{HCSR04:()=>CR,KEY_SELET:()=>OR,sensor_adxl345_get_acceleration:()=>FR,sensor_bmp:()=>SR,sensor_button_init:()=>RR,sensor_button_read:()=>MR,sensor_dht11:()=>ER,sensor_mpu9250_get_acceleration:()=>AR,sensor_mpu9250_get_gyro:()=>fR,sensor_mpu9250_get_magnetic:()=>NR,sensor_mpu9250_temperature:()=>LR,sensor_sht:()=>DR,sensor_use_i2c_init:()=>gR});var z={};t.r(z),t.d(z,{serial_any:()=>kR,serial_print:()=>PR,serial_print_hex:()=>yR,serial_println:()=>VR,serial_read_from_mixgoce:()=>qR,serial_readline:()=>xR,serial_readstr:()=>bR,serial_readstr_until:()=>XR,serial_receive_data_event:()=>YR,serial_send_to_mixgoce:()=>QR,serial_softserial1:()=>GR,system_input:()=>HR,system_print:()=>UR,system_print_container:()=>KR,system_print_end:()=>BR,system_print_inline:()=>wR,system_print_item:()=>jR,system_print_many:()=>WR});var Z={};t.r(Z),t.d(Z,{Panic_with_status_code:()=>$R,TIM_SELET:()=>zR,Timer_init:()=>aM,base_delay:()=>rM,controls_delay:()=>ZR,controls_millis:()=>tM,controls_uname:()=>iM,raw_block:()=>eM,system_gc_collect:()=>oM,system_reset:()=>sM,system_ticks_diff:()=>pM,system_timer:()=>nM,system_timer_init:()=>uM,time_ticks_diff:()=>_M,timer2:()=>lM});var $={};t.r($),t.d($,{LCD_color_seclet:()=>hM,lists_create_with_text1:()=>IM,tuple_create_with_text3:()=>TM});var tt={};t.r(tt),t.d(tt,{PID_get_pid:()=>NM,PID_init:()=>DM,actuator_PAC9685_Servo:()=>RM,actuator_PAC9685_init:()=>OM,actuator_Servo:()=>cM,actuator_Servo_init:()=>mM,actuator_ms32006_dcmotor:()=>gM,actuator_ms32006_init:()=>AM,actuator_ms32006_stepper:()=>SM,actuator_rgb_display:()=>CM,actuator_rgb_init:()=>MM,actuator_rgb_set:()=>EM});var et={};t.r(et),t.d(et,{KPU_analysis:()=>YM,KPU_forward:()=>yM,KPU_init_yolo2:()=>PM,KPU_load:()=>FM,KPU_load1:()=>vM,KPU_run_yolo2:()=>VM,ai_face_info:()=>BM,ai_face_init:()=>UM,ai_face_train:()=>wM,ailocal_loading:()=>GM,ailocal_predict:()=>HM,ailocal_training:()=>XM,aionenet_API:()=>xM,aionenet_nic_init:()=>bM,aionenet_token:()=>kM,tuple_anchor:()=>fM,tuple_calss:()=>LM});var it={};t.r(it),t.d(it,{audio_play:()=>jM,audio_record:()=>QM,mic_init:()=>KM,spk_init:()=>WM,video_play:()=>qM,video_record:()=>JM});var nt={};t.r(nt),t.d(nt,{camera_getinfo:()=>_E,camera_init:()=>$M,camera_reset:()=>tE,camera_run:()=>nE,camera_set_colorbar:()=>lE,camera_set_framesize:()=>iE,camera_set_hmirror:()=>uE,camera_set_pixformat:()=>eE,camera_set_vflip:()=>aE,camera_set_windowing:()=>dE,camera_setmun:()=>rE,camera_shutdown:()=>pE,camera_skip_frames:()=>sE,camera_snapshot:()=>oE,mode:()=>zM,size:()=>ZM});var st={};t.r(st),t.d(st,{communicate_i2c_available:()=>ME,communicate_i2c_init:()=>TE,communicate_i2c_master_read:()=>RE,communicate_i2c_read:()=>mE,communicate_i2c_scan:()=>OE,communicate_i2c_write:()=>cE,communicate_i2s_init:()=>hE,communicate_ir_recv:()=>IE,communicate_ow_init:()=>vE,communicate_ow_read:()=>yE,communicate_ow_reset:()=>VE,communicate_ow_scan:()=>PE,communicate_ow_select:()=>bE,communicate_ow_write:()=>YE,communicate_spi_buffer:()=>gE,communicate_spi_init:()=>CE,communicate_spi_read:()=>SE,communicate_spi_read_output:()=>DE,communicate_spi_readinto:()=>NE,communicate_spi_readinto_output:()=>fE,communicate_spi_set:()=>AE,communicate_spi_write:()=>LE,communicate_spi_write_readinto:()=>FE,i2c_slave_onreceive:()=>EE});var ot={};t.r(ot),t.d(ot,{angle:()=>kE,lcd_clear:()=>BE,lcd_color:()=>xE,lcd_colour:()=>HE,lcd_display:()=>wE,lcd_draw_string:()=>jE,lcd_init:()=>GE,lcd_mirror:()=>KE,lcd_rotation:()=>WE,lcd_width:()=>UE,on_off:()=>XE,touch_calibrate:()=>qE,touch_info:()=>zE,touch_init:()=>QE,touch_read:()=>JE});var pt={};t.r(pt),t.d(pt,{factory_block:()=>oC,factory_block_notes:()=>lC,factory_block_return:()=>pC,factory_block_return_with_textarea:()=>aC,factory_block_with_textarea:()=>uC,factory_callMethod_noreturn:()=>nC,factory_callMethod_return:()=>sC,factory_declare:()=>iC,factory_from_import:()=>ZE,factory_function_noreturn:()=>tC,factory_function_return:()=>eC,factory_import:()=>$E});var ut={};t.r(ut),t.d(ut,{asrloca_config:()=>rC,asrloca_del:()=>IC,asrloca_init:()=>_C,asrloca_recognize:()=>dC});var at={};t.r(at),t.d(at,{image_Histogram:()=>dA,image_Image:()=>mC,image_Image1:()=>cC,image_RGB:()=>hC,image_apriltag:()=>aA,image_barcode:()=>pA,image_binary:()=>eA,image_blob:()=>rA,image_cartoon:()=>QC,image_circle:()=>BC,image_clear:()=>NC,image_compress:()=>DC,image_copy:()=>SC,image_dilate:()=>JC,image_draw_arrow:()=>PC,image_draw_circle:()=>yC,image_draw_cross:()=>VC,image_draw_image:()=>kC,image_draw_keypoints:()=>bC,image_draw_line:()=>vC,image_draw_rectangle:()=>YC,image_draw_string:()=>gC,image_draw_string_UTF:()=>AC,image_draw_string_flash:()=>CC,image_erode:()=>qC,image_find_apriltags:()=>oA,image_find_barcodes:()=>nA,image_find_blobs:()=>lA,image_find_circles:()=>GC,image_find_hog:()=>RA,image_find_keypoints:()=>MA,image_find_line_segments:()=>XC,image_find_lines:()=>xC,image_find_qrcodes:()=>sA,image_find_rects:()=>HC,image_flood_fill:()=>zC,image_font_free:()=>MC,image_font_load:()=>EC,image_get_histogram:()=>_A,image_get_pixel:()=>FC,image_get_regression:()=>UC,image_getinfo:()=>OC,image_grayscale_to_rgb:()=>OA,image_histeq:()=>KC,image_invert:()=>$C,image_kptmatch:()=>CA,image_lab_to_rgb:()=>hA,image_lens_corr:()=>tA,image_line:()=>wC,image_linpolar:()=>ZC,image_match_descriptor:()=>EA,image_mean:()=>jC,image_morph:()=>iA,image_percentile:()=>IA,image_qrcode:()=>uA,image_rect:()=>WC,image_rgb_to_grayscale:()=>cA,image_rgb_to_lab:()=>mA,image_save:()=>RC,image_set_pixel:()=>LC,image_threshold:()=>TA,image_tonew:()=>fC,true_false:()=>TC});var lt={};t.r(lt),t.d(lt,{PGA_SELET:()=>AA,inout_adc_Vread:()=>PA,inout_adc_init:()=>FA,inout_adc_read:()=>vA,inout_digital_init:()=>SA,inout_digital_read:()=>NA,inout_digital_write:()=>DA,inout_highlow:()=>gA,inout_pin_attachInterrupt:()=>VA,inout_pin_disirq:()=>yA,inout_pwm_init:()=>fA,inout_pwm_write:()=>LA});var _t={};t.r(_t),t.d(_t,{iot_onenet_check:()=>XA,iot_onenet_connect:()=>bA,iot_onenet_disconnect:()=>kA,iot_onenet_publish:()=>GA,iot_onenet_publish_dict:()=>xA,iot_wifi_connect:()=>YA});var rt={};t.r(rt),t.d(rt,{base_map:()=>ng,math_arithmetic:()=>BA,math_bit:()=>wA,math_constant:()=>UA,math_constrain:()=>$A,math_indexer_number:()=>ig,math_map:()=>ZA,math_max_min:()=>qA,math_max_min1:()=>JA,math_number:()=>HA,math_number_base_conversion:()=>tg,math_random:()=>zA,math_random_seed:()=>eg,math_selfcalcu:()=>WA,math_single:()=>KA,math_to_int:()=>QA,math_trig:()=>jA});var dt={};t.r(dt),t.d(dt,{nes_joystick_init:()=>sg,nes_keyboard_init:()=>og,nes_run:()=>pg});var It={};t.r(It),t.d(It,{network_connect:()=>lg,network_disable_ap:()=>Ig,network_disconnect:()=>rg,network_enable_ap:()=>dg,network_ifconfig:()=>_g,network_init:()=>ug,network_scan:()=>ag,network_server:()=>Tg,network_socket_close:()=>Eg,network_socket_connect:()=>cg,network_socket_getaddrinfo:()=>mg,network_socket_init:()=>hg,network_socket_receive:()=>Rg,network_socket_send:()=>Mg,network_socket_settimeout:()=>Og});var Tt={};t.r(Tt),t.d(Tt,{pins_analog:()=>Dg,pins_analog_pin:()=>Sg,pins_axis:()=>xg,pins_brightness:()=>Hg,pins_builtinimg:()=>Yg,pins_button:()=>Ag,pins_dac:()=>Fg,pins_dac_pin:()=>Lg,pins_digital:()=>Cg,pins_digital_dot:()=>Kg,pins_digital_pin:()=>gg,pins_exlcdh:()=>Xg,pins_exlcdv:()=>Gg,pins_imglist:()=>bg,pins_interrupt:()=>Vg,pins_one_more:()=>Wg,pins_playlist:()=>kg,pins_pwm:()=>fg,pins_pwm_pin:()=>Ng,pins_radio_datarate:()=>Bg,pins_radio_power:()=>wg,pins_serial:()=>yg,pins_tone_notes:()=>Ug,pins_touch:()=>Pg,pins_touch_pin:()=>vg});var ht={};t.r(ht),t.d(ht,{HCSR04:()=>zg,KEY_SELET:()=>jg,sensor_adxl345_get_acceleration:()=>eS,sensor_bmp:()=>lS,sensor_button_init:()=>Qg,sensor_button_read:()=>qg,sensor_compass_reset:()=>uS,sensor_dht11:()=>Jg,sensor_mpu9250_attachGestureInterrupt:()=>Zg,sensor_mpu9250_calibrate_compass:()=>sS,sensor_mpu9250_field_strength:()=>pS,sensor_mpu9250_gesture:()=>$g,sensor_mpu9250_get_acceleration:()=>tS,sensor_mpu9250_get_gyro:()=>nS,sensor_mpu9250_get_magnetic:()=>iS,sensor_mpu9250_temperature:()=>oS,sensor_sht:()=>_S,sensor_use_i2c_init:()=>aS});var mt={};t.r(mt),t.d(mt,{UART_SELET:()=>rS,serial_any:()=>hS,serial_print:()=>dS,serial_print_hex:()=>TS,serial_println:()=>IS,serial_read_from_mixgoce:()=>SS,serial_readline:()=>cS,serial_readstr:()=>mS,serial_send_to_mixgoce:()=>gS,serial_softserial1:()=>OS,system_input:()=>RS,system_print:()=>MS,system_print_end:()=>CS,system_print_inline:()=>ES,system_print_many:()=>AS});var ct={};t.r(ct),t.d(ct,{Panic_with_status_code:()=>kS,TIM_SELET:()=>DS,Timer_init:()=>QS,base_delay:()=>zS,controls_delay:()=>BS,controls_end_program:()=>XS,controls_millis:()=>xS,controls_uname:()=>wS,reset:()=>GS,system_device_name:()=>YS,system_device_serial_number:()=>bS,system_event_bus_source:()=>VS,system_event_bus_value:()=>yS,system_gc_collect:()=>US,system_on_event:()=>FS,system_raise_event:()=>LS,system_reset:()=>HS,system_run_in_background:()=>NS,system_ticks_diff:()=>KS,system_timer:()=>WS,system_timer_init:()=>jS,system_timestamp:()=>vS,system_value:()=>PS,system_wait:()=>fS,time_ticks_diff:()=>JS,timer2:()=>qS});var Ot={};t.r(Ot),t.d(Ot,{LCD_color_seclet:()=>eD,LCD_color_seclet1:()=>tD,lists_create_with_text1:()=>ZS,tuple_create_with_text3:()=>$S});const Rt=Blockly,Mt=Mixly,Et={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(p+=n)):i=p}else i="i";return i}},Ct=Et; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class At{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Rt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Rt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Rt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Rt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ut={init:function(){this.setColour(bt),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.PYTHON_RANGE).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},wt={init:function(){this.setColour(bt),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Rt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Rt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bt={init:function(){this.setColour(bt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Rt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Rt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Rt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(bt);var t=new Rt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},jt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Rt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Rt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Rt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Rt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Bt.OPERATORS=[[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const qt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Jt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Rt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(bt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},$t={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Rt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:bt,tooltip:Rt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Rt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(bt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},oe={init:function(){this.appendDummyInput().appendField(Rt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Rt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Rt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Rt.FieldDropdown([[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(bt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},pe={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ue={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},le={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET+Rt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_GET_UNIQUE_IDEN)}},_e={init:function(){this.setColour(bt),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},re={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Rt.FieldTextInput.math_number_validator=function(t){return String(t)},Rt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},me={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ce={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Rt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Re={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Rt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Rt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Rt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Rt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Rt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Rt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Rt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Me={init:function(){var t=[[Rt.Msg.MATH_BIN,"bin"],[Rt.Msg.MATH_OCT,"oct"],[Rt.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Rt.Msg.MATH_DEC_TOOLTIP_BIN,oct:Rt.Msg.MATH_DEC_TOOLTIP_OCT,hex:Rt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ee={init:function(){var t=[[Rt.Msg.LANG_MATH_TO_ROUND,"round"],[Rt.Msg.LANG_MATH_TO_CEIL,"ceil"],[Rt.Msg.LANG_MATH_TO_FLOOR,"floor"],[Rt.Msg.MATH_ABS,"fabs"],[Rt.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Rt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Rt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Rt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Rt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Rt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Rt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ce={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ae={init:function(){var t=[[Rt.Msg.MATH_TWO,"two"],[Rt.Msg.MATH_EIGHT,"eight"],[Rt.Msg.MATH_TEN,"ten"],[Rt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Rt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Rt.FieldDropdown(t),"OP").appendField(Rt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MATH_ZHW).appendField(new Rt.FieldDropdown(t),"OP2").appendField(Rt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Rt.Msg.MATH_Before_two,eight:Rt.Msg.MATH_Before_eight,ten:Rt.Msg.MATH_Before_ten,sixteen:Rt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Rt.Msg.MATH_Behind_two,eight:Rt.Msg.MATH_Behind_eight,ten:Rt.Msg.MATH_Behind_ten,sixteen:Rt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[Rt.Msg.LANG_MATH_INT,"int"],[Rt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Rt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Rt.Msg.LANG_MATH_INT,float:Rt.Msg.LANG_MATH_FLOAT_RANDOM};return Rt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Se={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_CONSTRAIN_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Rt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Rt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Rt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},fe={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Rt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Le={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Rt.Msg.MATH_ROUND).appendField(Rt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Rt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Rt.Msg.MIXLY_TO_INT,"int"],[Rt.Msg.MIXLY_TO_FLOAT,"float"],[Rt.Msg.MIXLY_TO_BITES,"b"],[Rt.Msg.LANG_MATH_BYTE+Rt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ve={init:function(){var t=[[Rt.Msg.MIXLY_TO_INT,"int"],[Rt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Pe=De,Ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Rt.Msg.LANG_MATH_BYTE+Rt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ye={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Rt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Rt.Msg.MIXLY_PRODUCT+Rt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Rt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Rt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const xe={init:function(){this.setColour(Ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Rt.FieldTextInput("",Rt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Rt.FieldImage(e,7,12,'"')}},Xe={init:function(){this.setColour(Ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Rt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(Number).appendField(Rt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},He={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(String).appendField(Rt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ue={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},we={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Be={init:function(){this.WHERE_OPTIONS=[[Rt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Rt.Msg.TEXT_GET_INDEX_RANDOM+1+Rt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.LISTS_GET_INDEX_GET,"MODE"),Rt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Rt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Rt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Rt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Rt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Rt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Rt.Msg.TEXT_GET_INDEX_RANDOM};return Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Rt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Rt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Rt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Rt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Rt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Rt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Rt.Msg.LISTS_GET_INDEX_GET+" "+Rt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Rt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+Rt.Msg.LISTS_GET_INDEX_FROM_START+"n"+Rt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Rt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Rt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},je={init:function(){this.WHERE_OPTIONS_1=[[Rt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Rt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Rt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Rt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Rt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Rt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Rt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Rt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Rt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Rt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Qe={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Rt.Msg.LISTS_GET_INDEX_GET+" "+Rt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Rt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Rt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Rt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},qe={init:function(){var t=[[Rt.Msg.MIXLY_EQUALS,"==="],[Rt.Msg.MIXLY_STARTSWITH,"startswith"],[Rt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Rt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Je={init:function(){this.setColour(Ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Rt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_COMPARETO_HELP)}},ze={init:function(){var t=[[Rt.Msg.TEXT_UPPER,"upper"],[Rt.Msg.TEXT_TITLE,"title"],[Rt.Msg.TEXT_CAPITALIZE,"capitalize"],[Rt.Msg.TEXT_SWAPCASE,"swapcase"],[Rt.Msg.TEXT_LOWER,"lower"]];this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Rt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Rt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Rt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Rt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Rt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Rt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ze={init:function(){var t=[[Rt.Msg.TEXT_LJUST,"ljust"],[Rt.Msg.TEXT_CENTER,"center"],[Rt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ye),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Rt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Rt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},$e={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Rt.Msg.MIXLY_MID+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Rt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Rt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Rt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(Ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Rt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Rt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[Rt.Msg.TEXT_TRIM_BOTH,"strip"],[Rt.Msg.TEXT_TRIM_LEFT,"lstrip"],[Rt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Rt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Rt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Rt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Rt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Rt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(Ye),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Rt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Rt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_KEYS),this.setTooltip(Rt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Rt.Msg.DICTS_GET_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Rt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Rt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour(Zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(Rt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Rt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MID),this.setTooltip(Rt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_CLEAR),this.setTooltip(Rt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_ITEMS),this.setTooltip(Rt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_VALUES),this.setTooltip(Rt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_LENGTH),this.setTooltip(Rt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_DELDICT),this.setTooltip(Rt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[Rt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Rt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Rt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Rt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Rt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Rt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Rt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},hn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setTooltip(Rt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},mn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Rt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},cn={init:function(){this.setColour(Zi),this.appendDummyInput("").appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Rt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},On={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn={init:function(){this.setColour(Zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,gn={init:function(){var t=Rt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Rt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Rt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Rt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Rt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Rt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Rt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Sn={init:function(){var t=Rt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Rt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Rt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Rt.Msg.LOGIC_OPERATION_AND,"AND"],[Rt.Msg.LOGIC_OPERATION_OR,"OR"],[Rt.Msg.LOGIC_OPERATION_NOR,"NOR"],[Rt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Rt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Rt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Rt.Msg.LOGIC_NEGATE_TOOLTIP)}},fn={init:function(){var t=[[Rt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Rt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Rt.FieldDropdown(t),"BOOL"),this.setTooltip(Rt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Ln={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Rt.Msg.LOGIC_NULL),this.setTooltip(Rt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Rt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Rt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Rt.Msg.TEXT_APPEND_TO,"in"],[Rt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Rt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Rt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Rt.Msg.IN)}},Pn={init:function(){var t=[[Rt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Rt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Vn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Rt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG,p=Rt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Rt.Msg.MIXPY_TEXT_ENCODE).appendField(new Rt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG,p=Rt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},xn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MICROBIT_PYTHON_TYPE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.HTML_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Rt.Msg.MIXLY_ESP32_SET+{mkdir:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Rt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.HTML_FILE,"isfile"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Rt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Rt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={};ns.NAME_TYPE=Rt.PROCEDURE_CATEGORY_NAME,ns.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(Rt.Msg.MIXLY_AIP_ATTR).setAlign(Rt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zs={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Rt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},$s={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Rt.Msg.HTML_FORM_CONTENT).appendField(new Rt.FieldDropdown([[Rt.Msg.HTML_TEXT,"text"],[Rt.Msg.HTML_EMAIL,"email"],[Rt.Msg.HTML_NUMBER,"number"],[Rt.Msg.HTML_PASSWORD,"password"],[Rt.Msg.HTML_CHECKBOX,"checkbox"],[Rt.Msg.HTML_RADIOBUTTON,"radiobutton"],[Rt.Msg.HTML_BUTTON,"button"],[Rt.Msg.HTML_COLOUR,"colour"],[Rt.Msg.HTML_DATE,"date"],[Rt.Msg.HTML_LOCALTIME,"local time"],[Rt.Msg.HTML_FILE,"file"],[Rt.Msg.HTML_HIDDEN,"hidden"],[Rt.Msg.HTML_IMAGE,"image"],[Rt.Msg.HTML_MONTH,"month"],[Rt.Msg.HTML_RANGE,"range"],[Rt.Msg.HTML_RESET,"reset"],[Rt.Msg.HTML_SEARCH,"search"],[Rt.Msg.HTML_SUBMIT,"submit"],[Rt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Rt.Msg.HTML_TIME,"time"],[Rt.Msg.HTML_URL,"url"],[Rt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Rt.Msg.HTML_NAME).appendField(new Rt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Rt.Msg.HTML_VALUE).appendField(new Rt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Rt.Msg.MIXLY_AIP_ATTR).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},to={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(new Rt.FieldTextInput("property"),"KEY").appendField(":").appendField(new Rt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eo={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(new Rt.FieldTextInput("property"),"KEY").appendField(":").appendField(new Rt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},io={init:function(){this.setColour(Ks),this.appendDummyInput().appendField(Rt.Msg.HTML_TEXT).appendField(new Rt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},no=160,so={init:function(){this.setColour(no),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Rt.FieldTable(""),"TEXT")}},oo={init:function(){this.setColour(no),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Rt.FieldMultilineInput(""),"TEXT")}},po={init:function(){this.setColour(no),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Rt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},uo={init:function(){this.setColour(no),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},ao={init:function(){this.setColour(no),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Rt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},lo={init:function(){this.setColour(no),this.appendValueInput("VALUE").appendField(Rt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},_o={init:function(){this.setColour(no),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Rt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+l()+"("+t+", "+e+", "+i+")"},Rt.isNumber(n)&&Rt.isNumber(s)&&Rt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const na=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var p=s+" and "+o;else if("OR"==i)p=s+" or "+o;else if("NOR"==i)p="not("+s+"^"+o+")";else p=s+"^"+o;return[p,n]},sa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},oa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},pa=function(t,e){return["None",e.ORDER_ATOMIC]},ua=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},_a=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ra=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},da=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ia=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ha=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ma=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},ca=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Oa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ea=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ca=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Aa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Sa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Da=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Na=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},fa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},La=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Fa=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},va=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Rt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],p=0;p\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Tl=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},hl=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},ml=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},cl=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ol=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},Rl=function(t,e){return'"},Ml=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},El=function(){return this.getFieldValue("TEXT")+"\n"},Cl=function(t){return t.getFieldValue("TEXT")+"\n"},Al=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},gl=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Sl=function(){return""},Dl=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Nl=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+p.join("\n")+u.join("")+t+"while True:\n"+a.join("")+l.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+p.join("\n")+u.join("")+t+l.join("\n")},Ll.scrubNakedValue=function(t){return t+"\n"},Ll.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Ll.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Ll.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=Rt.utils.string.wrap(o,Ll.COMMENT_WRAP-3),n+=Ll.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const Fl=100,vl={init:function(){this.setColour(Fl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_SERVO).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SERVO_MOVE)}},Pl={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["1","1"],["2","2"]]),"op"),this.setOutput(!0)}},Vl={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ESP32_ON,"1"],[Rt.Msg.MIXLY_ESP32_OFF,"0"],[Rt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},yl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Yl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},bl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},kl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_SETONOFF)}},xl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Xl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_SETBRIGHT)}},Gl={init:function(){this.setColour(Fl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_TONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Hl={init:function(){this.setColour(Fl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_TONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Ul={init:function(){this.setColour(Fl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_NOTONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wl={init:function(){this.setColour(Fl),this.appendValueInput("TICKS").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Rt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Rt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Bl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Wl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Kl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},jl={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Ql={init:function(){this.setColour(Fl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ql={init:function(){this.setColour(Fl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Jl={init:function(){this.setColour(Fl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Rt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},zl={init:function(){this.setColour(Fl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Rt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_MIXGO_MUSIC_PLAY_TONE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAYSHOW)}},Zl={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_RGB_PIN_COUNT)}},$l={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},t_={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_WRI)}},e_={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},i_={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},n_={init:function(){this.setColour(Fl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_WRI)}},s_=kl,o_=xl,p_=Xl,u_="#2FAD7A",a_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},l_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},__={init:function(){this.jsonInit({inputsInline:!0,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},r_={init:function(){this.jsonInit({inputsInline:!0,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},d_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},I_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},T_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},h_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},m_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},c_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},O_={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},R_={init:function(){this.jsonInit({message0:Rt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[Rt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[Rt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},M_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},E_={init:function(){this.jsonInit({inputsInline:!0,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},C_={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:u_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},A_=120;({init:function(){this.setColour(A_),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Rt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new Rt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(A_);var t=new Rt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const g_=180,S_={colourOptions:["#f00","#000"],columns:2},D_={init:function(){this.jsonInit({colour:g_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:Rt.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Clear_display)}},N_={init:function(){this.setColour(g_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},f_={init:function(){this.setColour(g_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},L_={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck(String).appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Rt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},F_={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck(String).appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Rt.Msg.OLED_DRAWSTR),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DELAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},v_={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_MONITOR_SHOW_STATIC),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_SHOW_STATIC)}},P_={init:function(){this.setColour(g_),this.appendValueInput("PIN",String).setCheck("esp32_image").appendField(Rt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP)}},V_={init:function(){this.jsonInit({colour:g_,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:Rt.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}]})}},y_={init:function(){this.jsonInit({colour:g_,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:Rt.Msg.MIXLY_MICROBIT_Animate_images,args0:[{check:"List",type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+Rt.Msg.MIXLY_MICROBIT_Animate_images1)}},Y_={init:function(){this.jsonInit({colour:g_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:Rt.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},b_={init:function(){this.setColour(g_),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[Rt.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(Rt.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=Rt.Msg.MIXLY_MICROBIT_monitor;return{on:Rt.Msg.MIXLY_MICROBIT_Turn_on_display,off:Rt.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},k_={init:function(){this.jsonInit({colour:g_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:Rt.Msg.MIXLY_MICROBIT_Turn_off_display})}},x_={init:function(){this.jsonInit({colour:g_,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:Rt.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Display_is_on1)}},X_={init:function(){this.jsonInit({colour:g_,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Rt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Rt.Msg.MIXLY_MICROBIT_Built_in_image})}},G_={init:function(){this.jsonInit({colour:g_,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{colour:"#000000",type:"field_colour",name:"05"},{colour:"#000000",type:"field_colour",name:"06"},{colour:"#000000",type:"field_colour",name:"07"},{colour:"#000000",type:"field_colour",name:"08"},{colour:"#000000",type:"field_colour",name:"09"},{colour:"#000000",type:"field_colour",name:"0a"},{colour:"#000000",type:"field_colour",name:"0b"},{colour:"#000000",type:"field_colour",name:"0c"},{colour:"#000000",type:"field_colour",name:"0d"},{colour:"#000000",type:"field_colour",name:"0e"},{colour:"#000000",type:"field_colour",name:"0f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{colour:"#000000",type:"field_colour",name:"15"},{colour:"#000000",type:"field_colour",name:"16"},{colour:"#000000",type:"field_colour",name:"17"},{colour:"#000000",type:"field_colour",name:"18"},{colour:"#000000",type:"field_colour",name:"19"},{colour:"#000000",type:"field_colour",name:"1a"},{colour:"#000000",type:"field_colour",name:"1b"},{colour:"#000000",type:"field_colour",name:"1c"},{colour:"#000000",type:"field_colour",name:"1d"},{colour:"#000000",type:"field_colour",name:"1e"},{colour:"#000000",type:"field_colour",name:"1f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{colour:"#000000",type:"field_colour",name:"25"},{colour:"#000000",type:"field_colour",name:"26"},{colour:"#000000",type:"field_colour",name:"27"},{colour:"#000000",type:"field_colour",name:"28"},{colour:"#000000",type:"field_colour",name:"29"},{colour:"#000000",type:"field_colour",name:"2a"},{colour:"#000000",type:"field_colour",name:"2b"},{colour:"#000000",type:"field_colour",name:"2c"},{colour:"#000000",type:"field_colour",name:"2d"},{colour:"#000000",type:"field_colour",name:"2e"},{colour:"#000000",type:"field_colour",name:"2f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{colour:"#000000",type:"field_colour",name:"35"},{colour:"#000000",type:"field_colour",name:"36"},{colour:"#000000",type:"field_colour",name:"37"},{colour:"#000000",type:"field_colour",name:"38"},{colour:"#000000",type:"field_colour",name:"39"},{colour:"#000000",type:"field_colour",name:"3a"},{colour:"#000000",type:"field_colour",name:"3b"},{colour:"#000000",type:"field_colour",name:"3c"},{colour:"#000000",type:"field_colour",name:"3d"},{colour:"#000000",type:"field_colour",name:"3e"},{colour:"#000000",type:"field_colour",name:"3f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"},{colour:"#000000",type:"field_colour",name:"45"},{colour:"#000000",type:"field_colour",name:"46"},{colour:"#000000",type:"field_colour",name:"47"},{colour:"#000000",type:"field_colour",name:"48"},{colour:"#000000",type:"field_colour",name:"49"},{colour:"#000000",type:"field_colour",name:"4a"},{colour:"#000000",type:"field_colour",name:"4b"},{colour:"#000000",type:"field_colour",name:"4c"},{colour:"#000000",type:"field_colour",name:"4d"},{colour:"#000000",type:"field_colour",name:"4e"},{colour:"#000000",type:"field_colour",name:"4f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"50"},{colour:"#000000",type:"field_colour",name:"51"},{colour:"#000000",type:"field_colour",name:"52"},{colour:"#000000",type:"field_colour",name:"53"},{colour:"#000000",type:"field_colour",name:"54"},{colour:"#000000",type:"field_colour",name:"55"},{colour:"#000000",type:"field_colour",name:"56"},{colour:"#000000",type:"field_colour",name:"57"},{colour:"#000000",type:"field_colour",name:"58"},{colour:"#000000",type:"field_colour",name:"59"},{colour:"#000000",type:"field_colour",name:"5a"},{colour:"#000000",type:"field_colour",name:"5b"},{colour:"#000000",type:"field_colour",name:"5c"},{colour:"#000000",type:"field_colour",name:"5d"},{colour:"#000000",type:"field_colour",name:"5e"},{colour:"#000000",type:"field_colour",name:"5f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"60"},{colour:"#000000",type:"field_colour",name:"61"},{colour:"#000000",type:"field_colour",name:"62"},{colour:"#000000",type:"field_colour",name:"63"},{colour:"#000000",type:"field_colour",name:"64"},{colour:"#000000",type:"field_colour",name:"65"},{colour:"#000000",type:"field_colour",name:"66"},{colour:"#000000",type:"field_colour",name:"67"},{colour:"#000000",type:"field_colour",name:"68"},{colour:"#000000",type:"field_colour",name:"69"},{colour:"#000000",type:"field_colour",name:"6a"},{colour:"#000000",type:"field_colour",name:"6b"},{colour:"#000000",type:"field_colour",name:"6c"},{colour:"#000000",type:"field_colour",name:"6d"},{colour:"#000000",type:"field_colour",name:"6e"},{colour:"#000000",type:"field_colour",name:"6f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"70"},{colour:"#000000",type:"field_colour",name:"71"},{colour:"#000000",type:"field_colour",name:"72"},{colour:"#000000",type:"field_colour",name:"73"},{colour:"#000000",type:"field_colour",name:"74"},{colour:"#000000",type:"field_colour",name:"75"},{colour:"#000000",type:"field_colour",name:"76"},{colour:"#000000",type:"field_colour",name:"77"},{colour:"#000000",type:"field_colour",name:"78"},{colour:"#000000",type:"field_colour",name:"79"},{colour:"#000000",type:"field_colour",name:"7a"},{colour:"#000000",type:"field_colour",name:"7b"},{colour:"#000000",type:"field_colour",name:"7c"},{colour:"#000000",type:"field_colour",name:"7d"},{colour:"#000000",type:"field_colour",name:"7e"},{colour:"#000000",type:"field_colour",name:"7f"}],output:"esp32_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:Rt.Msg.MIXLY_ESP32_Create_image}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Create_image1)}},H_={init:function(){var t=[[Rt.Msg.MIXLY_UP,"up"],[Rt.Msg.MIXLY_DOWN,"down"],[Rt.Msg.MIXLY_LEFT,"left"],[Rt.Msg.MIXLY_RIGHT,"right"]];this.setColour(g_),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Rt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Rt.Msg.DISPLAY_IMAGE_LET2).appendField(new Rt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(Rt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=Rt.Msg.DISPLAY_IMAGE_LET,n=Rt.Msg.DISPLAY_IMAGE_LET2,s=Rt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Rt.Msg.MIXLY_UP,down:Rt.Msg.MIXLY_DOWN,left:Rt.Msg.MIXLY_LEFT,right:Rt.Msg.MIXLY_RIGHT}[t]+s}))}},U_={init:function(){var t=[[Rt.Msg.MICROBIT_DISPLAY_UNION,"+"],[Rt.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(g_),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Rt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":Rt.Msg.MIXLY_MICROBIT_image_add,"-":Rt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},w_={init:function(){this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING,"scroll"]]),"MODE"),this.jsonInit({colour:g_,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:Rt.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},B_={init:function(){this.setColour(g_),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},W_={init:function(){this.setColour(g_),this.appendValueInput("device").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_SETUP).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_SETUP+Rt.Msg.MIXLY_DF_LCD+Rt.Msg.MIXLY_LCD_ADDRESS)}},K_={init:function(){this.setColour(g_),this.appendValueInput("row",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},j_={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ON,"on()"],[Rt.Msg.MIXLY_OFF,"off()"],[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[Rt.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(off)"],[Rt.Msg.MIXLY_LCD_BACKLIGHT,"backlight(on)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return Rt.Msg.LISTS_SET_INDEX_SET+Rt.Msg.MIXLY_DF_LCD+{"on()":Rt.Msg.MIXLY_ON,"off()":Rt.Msg.MIXLY_OFF,"clear()":Rt.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":Rt.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":Rt.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Q_={init:function(){this.setColour(g_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},q_={init:function(){this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.OLEDDISPLAY+Rt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(g_),this.setTooltip(Rt.Msg.MIXLY_DF_LCD+Rt.Msg.OLEDDISPLAY+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},J_={init:function(){var t=[[Rt.Msg.MIXLY_HEIGHT,"height"],[Rt.Msg.MIXLY_WIDTH,"width"]];this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_MICROBIT_IMAGE+{height:Rt.Msg.MIXLY_HEIGHT,width:Rt.Msg.MIXLY_WIDTH}[t]}))}},z_={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RECT).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_OLED_RECT)}},Z_={init:function(){this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_DISPLAY_DRAW).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[Rt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_OLED_LINE)}},$_={init:function(){this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_OLED_LINE_ARBIT)}},tr={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},er={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(Rt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},ir={init:function(){this.setColour(g_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)}},nr={init:function(){this.setColour(g_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},sr={init:function(){this.setColour(g_),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(Rt.Msg.LISTS_SET_INDEX_SET+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new Rt.FieldColour("#f00",null,S_),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},or={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP_OR_STRING)}},pr={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ur={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},ar={init:function(){this.setColour(g_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},lr={init:function(){this.setColour(g_),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ESP32_ON,"ON"],[Rt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},_r={init:function(){this.setColour(g_),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[Rt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:Rt.Msg.MIXLY_LCD_STAT_CLEAR,1:Rt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return Rt.Msg.MIXLY_DF_LCD+i[e]}))}},rr={init:function(){this.setColour(g_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return Rt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},dr={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ON,"_on"],[Rt.Msg.MIXLY_OFF,"_off"],[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"_clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},Ir={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Tr={init:function(){this.setColour(g_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(Rt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(Rt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+Rt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},hr={init:function(){this.setColour(g_),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new Rt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},mr={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},cr={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_DISPLAY_DRAW+Rt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_DISPLAY_DRAW+Rt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},Or={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(Rt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},Rr={init:function(){this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(Rt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(Rt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(Rt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(Rt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(Rt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.OLED_SHOW_BMP_TOOLTIP)}},Mr={init:function(){this.setColour(g_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED),this.appendDummyInput("").appendField(Rt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(Rt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(Rt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},Er={init:function(){this.setColour(g_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["32x12 Matrix","32x12 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Cr={init:function(){this.setColour(g_),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP_OR_STRING)}},Ar={init:function(){this.setColour(g_),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},gr="#526FC3",Sr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Rt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},Dr={init:function(){this.setColour(gr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Rt.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},Nr={init:function(){this.setColour(gr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},fr={init:function(){this.setColour(gr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},Lr={init:function(){this.setColour(gr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Rt.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},Fr={init:function(){this.setColour(gr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Rt.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_publish_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Pr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Vr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},yr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Rt.Msg.MIXLY_WIFI_USERNAME).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.MIXLY_IOT_PASSWORD).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Rt.Msg.MIXLY_EMQX_PROJECT).setAlign(Rt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Yr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Rt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},br={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Rt.Msg.MIXLY_EMQX_SUBSCRIBE+Rt.Msg.MIXLY_MICROBIT_MSG).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Rt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},kr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Rt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},Hr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Ur={init:function(){this.setColour(gr),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},wr={init:function(){this.setColour(gr),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Br={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},Wr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO").appendField(Rt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Rt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Kr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+Rt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jr={init:function(){this.setColour(gr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qr={init:function(){this.VISITOR_ID=Mt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(gr),this.appendDummyInput("").appendField(new Rt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},qr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MixIO").appendField(Rt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Jr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("HTTP"+Rt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Rt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Rt.Msg.MIXLY_REQUESTS_GET).appendField(Rt.Msg.MIXLY_GET_CURRENT_TIME).appendField(Rt.Msg.MIXLY_OPEN_DEBUG).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("HTTP"+Rt.Msg.MIXLY_Client).appendField(Rt.Msg.MIXLY_GET).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Rt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Rt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MQTT"+Rt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Rt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Rt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Rt.Msg.MQTT_Topic).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Rt.Msg.MIXLY_OPEN_DEBUG).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$r={init:function(){this.setColour(gr),this.appendDummyInput().appendField("MQTT"+Rt.Msg.MIXLY_Client).appendField(Rt.Msg.MIXLY_GET).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Rt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Rt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},td=Sr,ed=Dr,id=Nr,nd=fr,sd=Fr;Rt.Msg.PS2_TRIANGLE,Rt.Msg.PS2_CIRCLE,Rt.Msg.PS2_CROSS,Rt.Msg.PS2_SQUARE,Rt.Msg.PS2_L1,Rt.Msg.PS2_L2,Rt.Msg.PS2_R1,Rt.Msg.PS2_R2,Rt.Msg.PS2_UP,Rt.Msg.PS2_RIGHT,Rt.Msg.PS2_DOWN,Rt.Msg.PS2_LEFT,Rt.Msg.PS2_SELECT,Rt.Msg.PS2_START;const od=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"pitch",e.ORDER_ATOMIC);return"music.pitch("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+", "+i+")\n"},pd=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"pitch",e.ORDER_ATOMIC),n=e.valueToCode(this,"time",e.ORDER_ATOMIC);return"music.pitch_time("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+", "+i+", "+n+")\n"},ud=function(t,e){return e.definitions_.import_music="import music","music.stop("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")\n"},ad=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"BPM",e.ORDER_ASSIGNMENT);return"music.set_tempo("+e.valueToCode(this,"TICKS",e.ORDER_ASSIGNMENT)+", "+i+")\n"},ld=function(t,e){e.definitions_.import_music="import music";return["music.get_tempo()",e.ORDER_ATOMIC]},_d=function(t,e){return e.definitions_.import_music="import music","music.pitch("+e.valueToCode(this,"pitch",e.ORDER_ATOMIC)+")\n"},rd=function(t,e){return e.definitions_.import_music="import music","music.pitch_time("+e.valueToCode(this,"pitch",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"time",e.ORDER_ATOMIC)+")\n"},dd=function(t,e){e.definitions_.import_music="import music";return"music.stop()\n"},Id=function(t,e){return e.definitions_.import_music="import music","music.play("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+")\n"},Td=function(t,e){return e.definitions_.import_music="import music","music.play("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN",e.ORDER_ASSIGNMENT)+")\n"},hd=function(t,e){return e.definitions_.import_music="import music",e.definitions_.import_matrix="import matrix","music.play_show("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN",e.ORDER_ASSIGNMENT)+")\n"},md=function(t,e){return e.definitions_.import_music="import music","music.reset()\n"},cd=function(t,e){return e.definitions_.import_servo="import servo",e.definitions_.import_machine="import machine","servo.servo_write_angle("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DEGREE",e.ORDER_ATOMIC)+")\n"},Od=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Rd=function(t,e){return[this.getFieldValue("flag"),e.ORDER_ATOMIC]},Md=function(t,e){e.definitions_.import_mixgo="import mixgo";var i=e.valueToCode(this,"bright",e.ORDER_ATOMIC);return"mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").setonoff("+i+")\n"},Ed=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").getonoff()",e.ORDER_ATOMIC]},Cd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").setbrightness("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},Ad=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".setonoff("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},gd=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".getonoff()",e.ORDER_ATOMIC]},Sd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".setbrightness("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},Dd=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=e.valueToCode(this,"LEDCOUNT",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",i+" = neopixel.NeoPixel(machine.Pin("+n+"), "+s+", timing = True)\n"},Nd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".write()\n"},fd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"["+e.valueToCode(this,"_LED_",e.ORDER_ATOMIC)+"] = ("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+")\n"},Ld=function(t,e){e.definitions_.import_mixgo="import mixgo";return"mixgo.rgb.write()\n"},Fd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.rgb["+e.valueToCode(this,"_LED_",e.ORDER_ATOMIC)+"] = ("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+")\n"},vd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.rgb.fill(("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+"))\n"},Pd=Ad,Vd=gd,yd=Sd,Yd=function(t,e){var i=e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC);e.functions_["terminal_widget_vpin_"+i]=`\nALLOWED_COMMANDS_LIST = ['ls', 'lsusb', 'ip a', 'ip abc']\n\n@blynk.handle_event('write V${i}')\ndef write_handler(pin, _values):\n header = ''\n result = ''\n delimiter = '{}\\n'.format('=' * 30)\n if _values and _values[0] in ALLOWED_COMMANDS_LIST:\n cmd_params = _values[0].split(' ')\n try:\n result = subprocess.check_output(cmd_params).decode('utf-8')\n header = '[output]\\n'\n except subprocess.CalledProcessError as exe_err:\n header = '[error]\\n'\n result = 'Return Code: {}\\n'.format(exe_err.returncode)\n except Exception as g_err:\n print("Command caused '{}'".format(g_err))\n elif _values and _values[0] == 'help':\n header = '[help -> allowed commands]\\n'\n result = '{}\\n'.format('\\n'.join(ALLOWED_COMMANDS_LIST))\n\n # communicate with terminal if help or some allowed command\n if result:\n output = '{}{}{}{}'.format(header, delimiter, result, delimiter)\n print(output)\n blynk.virtual_write(pin, output)\n blynk.virtual_write(pin, '\\n')\n`;return""},bd=function(t,e){return"blynk.virtual_sync("+e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC)+")\n"},kd=function(t,e){var i=e.statementToCode(this,"DO");return i=e.addLoopTrap(i,this.id)||e.PASS,e.definitions_.blynk_on_disconnected="@blynk.handle_event(\"disconnect\")\ndef connect_handler():\n print('Blynk disconnected')\n"+i,""},xd=function(t,e){var i=e.statementToCode(this,"DO");return i=e.addLoopTrap(i,this.id)||e.PASS,e.definitions_.blynk_on_connected="@blynk.handle_event(\"connect\")\ndef connect_handler():\n print('Blynk connected')\n"+i,""},Xd=function(){return"blynk_timer.run()\n"},Gd=function(){return"blynk.run()\n"},Hd=function(t,e){return"blynk.notify("+e.valueToCode(this,"notification",e.ORDER_ATOMIC)+")\n"},Ud=function(t,e){e.definitions_.import_blynktimer="import blynktimer",e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)";var i=e.valueToCode(this,"timer_num",e.ORDER_ATOMIC);return`blynk_timer.stop('${i}_blynk_timer${i}')\n`},wd=function(t,e){e.definitions_.import_blynktimer="import blynktimer",e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)";return["blynk_timer.get_timers()",e.ORDER_ATOMIC]},Bd=function(t,e){e.definitions_.import_blynktimer="import blynktimer";var i=e.valueToCode(this,"Num",e.ORDER_ATOMIC),n=e.valueToCode(this,"period",e.ORDER_ATOMIC),s=this.getFieldValue("Timer_mode"),o=e.statementToCode(this,"DO");return o=e.addLoopTrap(o,this.id)||e.PASS,e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)",e.definitions_["blynktimer_event"+i]=`\n@blynk_timer.register(interval=${n}, run_once=${s})\ndef blynk_timer${i}():\n`+o,""},Wd=function(t,e){var i=e.valueToCode(this,"sensor_data",e.ORDER_ATOMIC);return"blynk.virtual_write("+e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC)+", "+i+")\n"},Kd=function(t,e){var i=e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC),n=e.statementToCode(this,"DO");return n=e.addLoopTrap(n,this.id)||e.PASS,e.definitions_["blynk_VIRTUAL_WRITE_"+i]="@blynk.handle_event('write V"+i+"')\ndef write_virtual_pin_handler(pin, _value):\n for i in range(0, len(_value)):\n try: _value[i] = eval(_value[i])\n except: pass\n if len(_value) == 1: _value = _value[0]\n"+n,""},jd=function(t,e){var i=e.valueToCode(this,"body",e.ORDER_ATOMIC),n=e.valueToCode(this,"subject",e.ORDER_ATOMIC);return`blynk.email(${e.valueToCode(this,"TargetEmail",e.ORDER_ATOMIC)}, ${n}, ${i})\n`},Qd=function(t,e){var i=e.valueToCode(this,"attribute_value",e.ORDER_ATOMIC);return`blynk.set_property(pin, ${e.valueToCode(this,"attribute_name",e.ORDER_ATOMIC)}, ${i})\n`},qd=function(t,e){e.definitions_.import_BlynkLib="import blynklib";var i=e.valueToCode(this,"server",e.ORDER_ATOMIC),n=e.valueToCode(this,"auth",e.ORDER_ATOMIC),s=e.valueToCode(this,"port",e.ORDER_ATOMIC);return e.definitions_.mpython_blynk_setup="blynk = blynklib.Blynk("+n+", server="+i+", port="+s+")",e.definitions_.blynk_on_connected="\n@blynk.handle_event(\"connect\")\ndef connect_handler():\n print('Blynk connected')\n",e.definitions_.blynk_on_disconnected="\n@blynk.handle_event(\"disconnect\")\ndef connect_handler():\n print('Blynk disconnected')\n",""};const Jd=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.show("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},zd=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},Zd=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.showstatic("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},$d=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.show("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},tI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},eI=function(t,e){e.definitions_.import_matrix="import matrix";var i={"#000000":"0","#ff0000":"1"};return['matrix.Image("'+i[t.getFieldValue("00")]+i[t.getFieldValue("01")]+i[t.getFieldValue("02")]+i[t.getFieldValue("03")]+i[t.getFieldValue("04")]+i[t.getFieldValue("05")]+i[t.getFieldValue("06")]+i[t.getFieldValue("07")]+i[t.getFieldValue("08")]+i[t.getFieldValue("09")]+i[t.getFieldValue("0a")]+i[t.getFieldValue("0b")]+i[t.getFieldValue("0c")]+i[t.getFieldValue("0d")]+i[t.getFieldValue("0e")]+i[t.getFieldValue("0f")]+":"+i[t.getFieldValue("10")]+i[t.getFieldValue("11")]+i[t.getFieldValue("12")]+i[t.getFieldValue("13")]+i[t.getFieldValue("14")]+i[t.getFieldValue("15")]+i[t.getFieldValue("16")]+i[t.getFieldValue("17")]+i[t.getFieldValue("18")]+i[t.getFieldValue("19")]+i[t.getFieldValue("1a")]+i[t.getFieldValue("1b")]+i[t.getFieldValue("1c")]+i[t.getFieldValue("1d")]+i[t.getFieldValue("1e")]+i[t.getFieldValue("1f")]+":"+i[t.getFieldValue("20")]+i[t.getFieldValue("21")]+i[t.getFieldValue("22")]+i[t.getFieldValue("23")]+i[t.getFieldValue("24")]+i[t.getFieldValue("25")]+i[t.getFieldValue("26")]+i[t.getFieldValue("27")]+i[t.getFieldValue("28")]+i[t.getFieldValue("29")]+i[t.getFieldValue("2a")]+i[t.getFieldValue("2b")]+i[t.getFieldValue("2c")]+i[t.getFieldValue("2d")]+i[t.getFieldValue("2e")]+i[t.getFieldValue("2f")]+":"+i[t.getFieldValue("30")]+i[t.getFieldValue("31")]+i[t.getFieldValue("32")]+i[t.getFieldValue("33")]+i[t.getFieldValue("34")]+i[t.getFieldValue("35")]+i[t.getFieldValue("36")]+i[t.getFieldValue("37")]+i[t.getFieldValue("38")]+i[t.getFieldValue("39")]+i[t.getFieldValue("3a")]+i[t.getFieldValue("3b")]+i[t.getFieldValue("3c")]+i[t.getFieldValue("3d")]+i[t.getFieldValue("3e")]+i[t.getFieldValue("3f")]+":"+i[t.getFieldValue("40")]+i[t.getFieldValue("41")]+i[t.getFieldValue("42")]+i[t.getFieldValue("43")]+i[t.getFieldValue("44")]+i[t.getFieldValue("45")]+i[t.getFieldValue("46")]+i[t.getFieldValue("47")]+i[t.getFieldValue("48")]+i[t.getFieldValue("49")]+i[t.getFieldValue("4a")]+i[t.getFieldValue("4b")]+i[t.getFieldValue("4c")]+i[t.getFieldValue("4d")]+i[t.getFieldValue("4e")]+i[t.getFieldValue("4f")]+":"+i[t.getFieldValue("50")]+i[t.getFieldValue("51")]+i[t.getFieldValue("52")]+i[t.getFieldValue("53")]+i[t.getFieldValue("54")]+i[t.getFieldValue("55")]+i[t.getFieldValue("56")]+i[t.getFieldValue("57")]+i[t.getFieldValue("58")]+i[t.getFieldValue("59")]+i[t.getFieldValue("5a")]+i[t.getFieldValue("5b")]+i[t.getFieldValue("5c")]+i[t.getFieldValue("5d")]+i[t.getFieldValue("5e")]+i[t.getFieldValue("5f")]+":"+i[t.getFieldValue("60")]+i[t.getFieldValue("61")]+i[t.getFieldValue("62")]+i[t.getFieldValue("63")]+i[t.getFieldValue("64")]+i[t.getFieldValue("65")]+i[t.getFieldValue("66")]+i[t.getFieldValue("67")]+i[t.getFieldValue("68")]+i[t.getFieldValue("69")]+i[t.getFieldValue("6a")]+i[t.getFieldValue("6b")]+i[t.getFieldValue("6c")]+i[t.getFieldValue("6d")]+i[t.getFieldValue("6e")]+i[t.getFieldValue("6f")]+":"+i[t.getFieldValue("70")]+i[t.getFieldValue("71")]+i[t.getFieldValue("72")]+i[t.getFieldValue("73")]+i[t.getFieldValue("74")]+i[t.getFieldValue("75")]+i[t.getFieldValue("76")]+i[t.getFieldValue("77")]+i[t.getFieldValue("78")]+i[t.getFieldValue("79")]+i[t.getFieldValue("7a")]+i[t.getFieldValue("7b")]+i[t.getFieldValue("7c")]+i[t.getFieldValue("7d")]+i[t.getFieldValue("7e")]+i[t.getFieldValue("7f")]+'")',e.ORDER_ATOMIC]},iI=function(t,e){return e.definitions_.import_matrix="import matrix",["matrix.Image."+t.getFieldValue("image"),e.ORDER_ATOMIC]},nI=function(t,e){return e.definitions_.import_matrix="import matrix",["matrix.get_pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},sI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.set_pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},oI=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_brightness()",e.ORDER_ATOMIC]},pI=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_screenimage()",e.ORDER_ATOMIC]},uI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},aI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.blink_rate("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},lI=function(t,e){e.definitions_.import_matrix="import matrix";return"matrix.clear()\n"},_I=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},rI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},dI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},II=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),p=e.valueToCode(this,"height",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP"),l="";switch(u){case"True":l=i+".show_fill_rect("+n+", "+s+", "+o+", "+p+","+a+")\n";break;case"False":l=i+".show_rect("+n+", "+s+", "+o+", "+p+","+a+")\n"}return l},TI=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP"),n=e.valueToCode(t,"A",e.ORDER_ATOMIC),s=e.valueToCode(t,"B",e.ORDER_ATOMIC);return["INTERSECTION"==i?n+"-("+n+"-"+s+")":n+i+s,e.ORDER_ATOMIC]},hI=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},mI=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},cI=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OI=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},RI=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},MI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+this.getFieldValue("STAT")+"()\n"},EI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+"_show_num("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},CI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+"_show_dot("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},AI=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},gI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",u=this.getFieldValue("OP"),a="";switch(p){case"True":a=i+".show_fill_circle("+n+", "+s+", "+o+", "+u+")\n";break;case"False":a=i+".show_circle("+n+", "+s+", "+o+", "+u+")\n"}return a},SI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),p=e.valueToCode(this,"y1",e.ORDER_ATOMIC),u=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),l="TRUE"==this.getFieldValue("fill")?"True":"False",_=this.getFieldValue("OP"),r="";switch(l){case"True":r=i+".show_fill_triangle("+n+", "+s+", "+o+", "+p+", "+u+", "+a+", "+_+")\n";break;case"False":r=i+".show_triangle("+n+", "+s+", "+o+", "+p+", "+u+", "+a+", "+_+")\n"}return r},DI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},NI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},fI=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=n+" = matrix32x12.Matrix("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},LI=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_matrix32x12="import matrix32x12",i+".set_buffer("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},FI=function(t,e){return e.definitions_.import_matrix32x12="import matrix32x12",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},vI=function(t,e){return e.definitions_.import_mixiot="import mixiot","mixiot.wlan_connect("+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},PI=function(t,e){return e.definitions_.import_onenet="import onenet",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = onenet.init_MQTT_client("+e.valueToCode(this,"CLIENT",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+", "+(e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)||"None")+")\n"},VI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".do_disconnect()\n"},yI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"DICT",e.ORDER_ATOMIC),s="TRUE"==this.getFieldValue("is_print")?"True":"False";return e.definitions_.import_onenet="import onenet",i+".publish("+n+", is_print = "+s+")\n"},YI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".check_msg()\n"},bI=function(t,e){e.definitions_.import_onenet="import onenet";var i=new Array(this.itemCount_),n=new Array(this.itemCount_),s=new Array(this.itemCount_),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);for(let t=0;te?t[e]:"ni-hao"),"KEY"+e).appendField("”:")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Dm={init:function(){this.setColour(Am),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("启动识别 返回结果"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("语音识别,获取识别结果")}},Nm={init:function(){this.setColour(Am),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("注销识别 内存释放"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("语音识别,注销语音识别,释放内存")}},fm="#90A244",Lm={init:function(){this.setColour(fm),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["否","0"],["是","1"]]),"flag"),this.setOutput(!0),this.setTooltip()}},Fm={init:function(){this.setColour(fm),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("path").appendField("打开路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("打开一个新的图像对象")}},vm={init:function(){this.setColour(fm),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField("打开空图"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("打开一个空的图像对象")}},Pm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像信息"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["宽度","width"],["高度","height"],["格式","format"],["大小","size"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取图像的宽度、高度、格式、大小")}},Vm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像保存"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("path").setAlign(Rt.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("图像的副本保存到文件系统")}},ym={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像截取"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("复制一个图像图像的副本")}},Ym={init:function(){this.setColour(fm),this.appendDummyInput().appendField("RGB"),this.appendDummyInput().appendField("["),this.appendValueInput("R").setCheck(Number),this.appendValueInput("G").appendField(",").setCheck(Number),this.appendValueInput("B").appendField(",").setCheck(Number),this.appendDummyInput().appendField("]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("对图像进行适当压缩")}},bm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像压缩"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("quality").setAlign(Rt.inputs.Align.RIGHT).appendField("压缩率").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("对图像进行适当压缩")}},km={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像清除"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("将图像中的所有像素设置为零")}},xm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像转换"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("转换为").appendField(new Rt.FieldDropdown([["灰度图","to_grayscale"],["彩色图","to_rgb565"],["彩虹图","to_rainbow"],["AI格式","pix_to_ai"],["字节块","to_bytes"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("将图像转换为灰度图、彩色图、彩虹图像")}},Xm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("修改点颜色"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("设置图像某点像素值")}},Gm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("获取点颜色"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("获取图像某点像素值")}},Hm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("字库加载"),this.appendValueInput("path").setAlign(Rt.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("从SD中加载需要显示文字的字库")}},Um={init:function(){this.setColour(fm),this.appendDummyInput().appendField("字库释放"),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("释放字库所占的内存")}},wm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制文本(中)"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个文本")}},Bm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制文本"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个中文文本")}},Wm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制文本(英)"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个字符文本")}},Km={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制直线"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一条从(x0,y0)到(x1,y1)的线")}},jm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制箭头"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个箭头")}},Qm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制十字"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("延伸").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个十字")}},qm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制圆形"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyr"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个圆形")}},Jm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制矩形"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xywh"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个矩形")}},zm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制特征点"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("keypoints").setAlign(Rt.inputs.Align.RIGHT).appendField("对象"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setTooltip("绘制一个特征点对象的各个点")}},Zm={init:function(){this.setColour(fm),this.appendDummyInput().appendField("绘制图像"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("x_scale").setAlign(Rt.inputs.Align.RIGHT).appendField("x缩放").setCheck(Number),this.appendValueInput("y_scale").setAlign(Rt.inputs.Align.RIGHT).appendField("y缩放").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("绘制一个image图像")}},$m={init:function(){this.setColour(fm),this.appendDummyInput().appendField("直线识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("theta_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendValueInput("rho_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并斜率").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别直线,返回image.line对象列表")}},tc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("线段识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("distance").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.appendValueInput("difference").setAlign(Rt.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别线段,返回image.line对象列表")}},ec={init:function(){this.setColour(fm),this.appendDummyInput().appendField("圆形识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("r_min").setAlign(Rt.inputs.Align.RIGHT).appendField("最小r").setCheck(Number),this.appendValueInput("r_max").setAlign(Rt.inputs.Align.RIGHT).appendField("最大r").setCheck(Number),this.appendValueInput("r_step").setAlign(Rt.inputs.Align.RIGHT).appendField("步长r").setCheck(Number),this.appendValueInput("x_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并x值").setCheck(Number),this.appendValueInput("y_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并y值").setCheck(Number),this.appendValueInput("r_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并r值").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[circle]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别圆形,返回image.cirle对象列表")}},ic={init:function(){this.setColour(fm),this.appendDummyInput().appendField("矩形识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[rect]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用四元检测识别矩形,返回image.rect对象列表")}},nc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("线性回归"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("robust").setAlign(Rt.inputs.Align.RIGHT).appendField("泰尔指数").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("计算线性回归,返回image.line对象列表")}},sc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("直线解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","line"],["x1分量","x1"],["y1分量","y1"],["x2分量","x2"],["y2分量","y2"],["长度","length"],["角度","theta"],["斜率","rho"],["模","magnitude"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.line列表,获取直线信息")}},oc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("圆形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xyr","circle"],["x分量","x"],["y分量","y"],["r分量","r"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.circle列表,获取圆形信息")}},pc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("矩形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.rect列表,获取矩形信息")}},uc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("直方图均衡"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("limit").setAlign(Rt.inputs.Align.RIGHT).appendField("对比度").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单直方图均衡化")}},ac={init:function(){this.setColour(fm),this.appendDummyInput().appendField("模糊滤波"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("offset").setAlign(Rt.inputs.Align.RIGHT).appendField("补偿").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单模糊滤波")}},lc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("卡通化滤波"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("seed").setAlign(Rt.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Rt.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单卡通滤波器")}},_c={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像腐蚀"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像腐蚀,从分割区域的边缘删除像素(白色目标区域)")}},rc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像膨胀"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像膨胀,将像素添加到分割区域的边缘中(白色目标区域)")}},dc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像填充"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("开始坐标"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("seed").setAlign(Rt.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Rt.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("反转"),this.appendValueInput("clear").setAlign(Rt.inputs.Align.RIGHT).appendField("清除"),this.setOutput(!0),this.setTooltip("像洪水一样填充图像中低矮凹陷的地方(洪水填充)")}},Ic={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像投影"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("垂直投影"),this.setOutput(!0),this.setTooltip("图像从笛卡尔坐标到线性极坐标重新投影")}},Tc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像反转"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("翻转图像中的所有像素值")}},hc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("校正缩放"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendValueInput("strength").appendField("校正值").setCheck(Number),this.appendValueInput("zoom").appendField("缩放值").setCheck(Number),this.setOutput(!0),this.setTooltip("翻转图像中的所有像素值")}},mc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像二值化"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("zero").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值像素为零"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("根据像素是否在阈值列表 thresholds 中的阈值内,将图像中的所有像素设置为黑色或白色。")}},cc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("图像边缘检测"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("kernel").setAlign(Rt.inputs.Align.RIGHT).appendField("内核"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("通过过滤器内核对图像进行卷积。")}},Oc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("条形码识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[barcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setOutput(!0),this.setTooltip("使用条形码识别,返回image.barcode对象列表")}},Rc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("二维码识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[qrcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用二维码识别,返回image.line对象列表")}},Mc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("AprilTag识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[apriltag]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用image.TAG36H11识别,返回image.apriltag对象列表")}},Ec={init:function(){this.setColour(fm),this.appendDummyInput().appendField("二维码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["版本","version"],["掩码","mask"],["类型","data_type"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.qrcode列表,获取二维码信息")}},Cc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("条形码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["类型","type"],["角度","rotation"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},Ac={init:function(){this.setColour(fm),this.appendDummyInput().appendField("AprilTag解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["号码","id"],["家族","family"],["弧度","rotation"],["x向距离","x_translation"],["y向距离","y_translation"],["z向距离","z_translation"],["x向弧度","x_rotation"],["y向弧度","y_rotation"],["z向弧度","z_rotation"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.apriltag列表,获取Apriltag信息")}},gc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("色块追踪"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值LAB"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("area").setAlign(Rt.inputs.Align.RIGHT).appendField("滤掉区域").setCheck(Number),this.appendValueInput("pixel").setAlign(Rt.inputs.Align.RIGHT).appendField("滤掉素数").setCheck(Number),this.appendValueInput("margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并").setCheck(Number),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("重叠"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[blob]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用色块追踪,返回image.blob对象列表")}},Sc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("颜色识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[histogram]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用直方图识别颜色,返回image.histogram对象列表")}},Dc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("追踪解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["像素量","pixels"],["弧度","rotation"],["号码数","code"],["合并量","count"],["面积","area"],["密度比","density"]]),"key"),this.setOutput(!0),this.setTooltip("通过image.blob列表,获取追踪色块信息")}},Nc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("色阈浮点"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图浮点列表","bins"],["LAB的L浮点列表","l_bins"],["LAB的A浮点列表","a_bins"],["LAB的B浮点列表","b_bins"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},fc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("颜色解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendValueInput("percentile").appendField("CDF").setCheck(Number),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过histogram列表,获取识别颜色信息")}},Lc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("色阈解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},Fc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("RGB888值"),this.appendValueInput("LIST").appendField("由LAB"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("LAB转RGB888")}},vc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("LAB值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转LAB")}},Pc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("灰度值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转灰度图")}},Vc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("RGB888"),this.appendValueInput("g_value").appendField("由灰度值").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("灰度图转RGB888")}},yc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("定向梯度图"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("线长").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("用HOG(定向梯度直方图)线替换ROI中的像素,仅支持灰度图像")}},Yc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("特征识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("max_keypoints").setAlign(Rt.inputs.Align.RIGHT).appendField("关键点数").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("角点数").setCheck(Number),this.appendValueInput("scale_factor").setAlign(Rt.inputs.Align.RIGHT).appendField("比例因子").setCheck(Number),this.appendValueInput("normalized").setAlign(Rt.inputs.Align.RIGHT).appendField("多比例"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[keypoints]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},bc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("特征比较"),this.appendValueInput("VAR1").setAlign(Rt.inputs.Align.RIGHT).appendField("对象1").setCheck("var"),this.appendValueInput("VAR2").setAlign(Rt.inputs.Align.RIGHT).appendField("对象2").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("相似度").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[kptmatch]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},kc={init:function(){this.setColour(fm),this.appendDummyInput().appendField("特征信息"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["匹配量","count"],["弧度","theta"],["匹配点-xy","match"]]),"key"),this.setOutput(!0),this.setTooltip("通过image.kptmatch列表,获取追踪特征信息")}},xc=20,Xc={init:function(){this.setColour(xc),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_HIGH,"HIGH"],[Rt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},Gc={init:function(){this.setColour(xc),this.appendDummyInput().appendField("初始化 "),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_Digital_PINMODEOUT,"GPIO.OUT"],[Rt.Msg.MIXLY_Digital_PINMODEIN,"GPIO.IN"],[Rt.Msg.MIXLY_PINMODEPULLUP,"GPIO.IN, board.GPIO.PULL_UP"],[Rt.Msg.MIXLY_PINMODEPULLDOWN,"GPIO.IN, board.GPIO.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)}},Hc={init:function(){this.setColour(xc),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Rt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},Uc={init:function(){this.setColour(xc),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Rt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField("值"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},wc={init:function(){this.setColour(xc),this.appendDummyInput().appendField("初始化 PWM输出"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.appendValueInput("freq").appendField("频率").setCheck(Number),this.appendValueInput("VAR").appendField("定时器").setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化PWM输出设置,需要调用定时器")}},Bc={init:function(){this.setColour(xc),this.appendValueInput("PIN",Number).appendField("PWM输出").setCheck(Number),this.appendValueInput("pwm").appendField("占空比").setCheck(Number),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("PWM输出,值范围为0-100%,可以为小数")}},Wc={init:function(){this.setColour(xc),this.appendDummyInput().appendField("硬件中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_RISING,"GPIO.IRQ_RISING"],[Rt.Msg.MIXLY_FALLING,"GPIO.IRQ_FALLING"],[Rt.Msg.MIXLY_CHANGE,"GPIO.IRQ_BOTH"]]),"mode"),this.appendValueInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},Kc={init:function(){this.setColour(xc),this.appendDummyInput().appendField("取消中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("取消中断")}},jc="#637AAC",Qc={init:function(){this.setColour(jc),this.appendDummyInput().appendField("OneNET 连接WiFi"),this.appendValueInput("WIFINAME").setCheck(String).appendField(Rt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},qc={init:function(){this.setColour(jc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Rt.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},Jc={init:function(){this.setColour(jc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},zc={init:function(){this.setColour(jc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},Zc={init:function(){this.setColour(jc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Rt.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},$c={init:function(){this.setColour(jc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Rt.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_publish_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tO={init:function(){this.setColour(jc),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},eO={init:function(){this.setColour(jc),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iO={init:function(){this.setColour(jc),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nO=Qc,sO=qc,oO=Jc,pO=zc,uO=$c,aO=230;Rt.FieldTextInput.math_number_validator=function(t){return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null},Rt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const lO={init:function(){this.setColour(aO),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},_O={init:function(){this.setColour(aO);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},rO={init:function(){this.setColour(aO),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},dO={init:function(){this.setColour(aO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},IO={init:function(){this.setColour(aO),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Rt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},TO={init:function(){this.setColour(aO),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Rt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Rt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Rt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Rt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Rt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Rt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Rt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},hO={init:function(){var t=[[Rt.Msg.LANG_MATH_TO_ROUND,"round"],[Rt.Msg.LANG_MATH_TO_CEIL,"ceil"],[Rt.Msg.LANG_MATH_TO_FLOOR,"floor"],[Rt.Msg.MATH_ABS,"fabs"],[Rt.Msg.MATH_SQRT,"sqrt"]];this.setColour(aO),this.appendValueInput("A").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Rt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Rt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Rt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Rt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Rt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Rt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},mO={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(aO),this.appendValueInput("A").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},cO={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(aO),this.appendValueInput("LIST").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},OO={init:function(){var t=[[Rt.Msg.MATH_TWO,"two"],[Rt.Msg.MATH_EIGHT,"eight"],[Rt.Msg.MATH_TEN,"ten"],[Rt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(aO),this.appendDummyInput("").appendField(Rt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Rt.FieldDropdown(t),"OP").appendField(Rt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MATH_ZHW).appendField(new Rt.FieldDropdown(t),"OP2").appendField(Rt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Rt.Msg.MATH_Before_two,eight:Rt.Msg.MATH_Before_eight,ten:Rt.Msg.MATH_Before_ten,sixteen:Rt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Rt.Msg.MATH_Behind_two,eight:Rt.Msg.MATH_Behind_eight,ten:Rt.Msg.MATH_Behind_ten,sixteen:Rt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},RO={init:function(){var t=[[Rt.Msg.LANG_MATH_INT,"int"],[Rt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(aO),this.setOutput(!0,Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Rt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Rt.Msg.LANG_MATH_INT,float:Rt.Msg.LANG_MATH_FLOAT_RANDOM};return Rt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},MO={init:function(){this.setColour(aO),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_CONSTRAIN_TOOLTIP)}},EO={init:function(){this.setColour(aO),this.appendValueInput("NUM",Number).appendField(Rt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Rt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Rt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},CO={init:function(){this.setColour(aO),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},AO={init:function(){this.setColour(aO),this.appendValueInput("NUM").setCheck(Number).appendField(Rt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},gO=EO,SO="#2E9883",DO={init:function(){this.setColour(SO),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("PS2手柄"),this.appendValueInput("miso_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("DAT#").setCheck(Number),this.appendValueInput("mosi_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("CMD#").setCheck(Number),this.appendValueInput("cs_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("SEL#").setCheck(Number),this.appendValueInput("clk_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("CLK#").setCheck(Number),this.appendValueInput("vol").setAlign(Rt.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用PS2手柄控制")}},NO={init:function(){this.setColour(SO),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("UART键盘"),this.appendValueInput("vol").setAlign(Rt.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用串口键盘控制")}},fO={init:function(){this.setColour(SO),this.appendDummyInput().appendField("NES 运行游戏"),this.appendValueInput("path").appendField("路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("运行NES游戏ROM")}},LO="#5B6DA5",FO={init:function(){this.setColour(LO),this.appendDummyInput().appendField("ESP-AT 初始化"),this.appendValueInput("RX",Number).appendField("RX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("使用串口连接ESP-AT设备,并初始化配置")}},vO={init:function(){this.setColour(LO),this.appendDummyInput().appendField("WiFi扫描"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("扫描附近可用的WiFi信息-返回多信息列表")}},PO={init:function(){this.setColour(LO),this.appendDummyInput("").appendField("WiFi连接"),this.appendValueInput("account").appendField("名称").setCheck(String),this.appendValueInput("password").appendField("密码").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("配置WiFi名称及密码,连接WiFi上网")}},VO={init:function(){this.setColour(LO),this.appendDummyInput().appendField("WiFi").appendField(new Rt.FieldDropdown([["连接信息","1"],["连接状态","2"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("查看wifi连接信息或者连接状态")}},yO={init:function(){this.setColour(LO),this.appendDummyInput().appendField("WiFi断开连接"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("断开wifi连接")}},YO={init:function(){this.setColour(LO),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField("打开热点"),this.appendValueInput("account").setAlign(Rt.inputs.Align.RIGHT).appendField("名称").setCheck(String),this.appendValueInput("password").setAlign(Rt.inputs.Align.RIGHT).appendField("密码").setCheck(String),this.appendValueInput("chl").setAlign(Rt.inputs.Align.RIGHT).appendField("通道").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("加密").appendField(new Rt.FieldDropdown([["WPA2_PSK","WPA2_PSK"],["OPEN","OPEN"],["WPA_PSK","WPA_PSK"],["WPA_WPA2_PSK","WPA_WPA2_PSK"]]),"mode"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("打开WiFi热点并配置")}},bO={init:function(){this.setColour(LO),this.appendDummyInput().appendField("关闭热点"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("关闭热点")}},kO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("套接字 初始化"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("套接字初始化")}},xO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("获取地址"),this.appendValueInput("addr").setAlign(Rt.inputs.Align.RIGHT).appendField("域名").setCheck(String),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接字根据域名解析地址IP信息")}},XO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("创建连接"),this.appendValueInput("address").appendField("地址"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("套接字创建目标IP地址连接")}},GO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("超时时间"),this.appendValueInput("time").setAlign(Rt.inputs.Align.RIGHT).appendField("").setCheck(Number),this.appendDummyInput().appendField("s"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("设置阻塞套接字超时时间")}},HO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendValueInput("content").appendField("发送数据"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("套接发送数据")}},UO={init:function(){this.setColour(LO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("接收数据"),this.appendValueInput("size").appendField("字节").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接接收数据,返回接收到的数据对象")}},wO={init:function(){this.setColour(LO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},BO=230,WO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital),"PIN"),this.setOutput(!0)}},KO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},jO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.analog),"PIN"),this.setOutput(!0)}},QO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},qO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.dac),"PIN"),this.setOutput(!0)}},JO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},zO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},ZO={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},$O={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},tR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},eR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.touch),"PIN"),this.setOutput(!0)}},iR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},nR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},sR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},oR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},pR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},uR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},aR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},lR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},_R={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},rR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},dR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},IR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},TR={init:function(){this.setColour(BO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},hR=40,mR={init:function(){this.setColour(hR),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["A","17"],["B","16"]]),"KEY"),this.setOutput(!0),this.setTooltip()}},cR={init:function(){this.setColour(hR),this.appendDummyInput().appendField("初始化"),this.appendValueInput("key").appendField("按键"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化按键")}},OR={init:function(){this.setColour(hR),this.appendValueInput("key").appendField("按键"),this.appendDummyInput().appendField("被按下?"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip("获取按键值")}},RR={init:function(){this.setColour(hR),this.appendDummyInput().appendField("DHT11"),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField("获取").appendField(new Rt.FieldDropdown([["温度-℃","0"],["湿度-%","1"],["温湿度","2"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("dht11,获取温湿度")}},MR={init:function(){this.setColour(hR),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},ER={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},CR={init:function(){this.setColour(hR),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("MPU9250","key");var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return Rt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{MPU9250:"MPU9250",SHT20:"SHT20",BMP280:"BMP280",ADXL345:"ADXL345"}[e]}))}},AR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Rt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Rt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Rt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},gR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Rt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Rt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Rt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},SR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_GET+Rt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},DR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},NR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_GETTEMPERATUE)}},fR={init:function(){this.setColour(hR),this.appendValueInput("SUB").appendField("ADXL345").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},LR=65,FR={init:function(){this.setColour(LR),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)}},vR={init:function(){this.setColour(LR),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_Huanhang_TOOLTIP+Rt.Msg.TEXT_PRINT_TOOLTIP)}},PR={init:function(){this.setColour(LR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.appendValueInput("CONTENT",Number).appendField(new Rt.FieldDropdown([[Rt.Msg.MATH_BIN,"bin"],[Rt.Msg.MATH_OCT,"oct"],[Rt.Msg.MATH_DEC,"int"],[Rt.Msg.MATH_HEX,"hex"]]),"STAT").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setFieldValue("hex","STAT"),this.setTooltip(Rt.Msg.TEXT_PRINT_HEX_TOOLTIP)}},VR={init:function(){this.setColour(LR),this.appendValueInput("char_marker").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_SERIAL_WHEN_CONTAIN_DATA),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO)}},yR={init:function(){this.setColour(LR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_READSTR),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERIAL_READ_STR)}},YR={init:function(){this.setColour(LR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_SERIAL_AVAILABLE1)}},bR={init:function(){this.setColour(LR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_ESP32_READ_LINE),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_SERIAL_READ_LINE1)}},kR={init:function(){this.setColour(LR),this.appendDummyInput().appendField("Serial "+Rt.Msg.MIXLY_SERIAL_READSTR_UNTIL).appendField(new Rt.FieldDropdown([["new line","serial.delimiters(Delimiters.NewLine)"],[",","serial.delimiters(Delimiters.Comma)"],["$","serial.delimiters(Delimiters.Dollar)"],[":","serial.delimiters(Delimiters.Colon)"],[".","serial.delimiters(Delimiters.Fullstop)"],["#","serial.delimiters(Delimiters.Hash)"]]),"char_marker"),this.setInputsInline(!0),this.setOutput(!0,String)}},xR={init:function(){this.setColour(LR),this.appendValueInput("RX",Number).appendField(Rt.Msg.MIXLY_SETUP).appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField("RX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SERIAL_BEGIN).appendField(new Rt.FieldDropdown([["115200","115200"],["57600","57600"],["37400","38400"],["31250","31250"],["28800","28800"],["19200","19200"],["14400","14400"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["300","300"]]),"baudrate"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_SERIAL_softserial)}},XR={init:function(){this.setColour(LR),this.appendValueInput("VAR").appendField(Rt.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(Rt.Msg.INOUT_input_TOOLTIP)}},GR={init:function(){this.setColour(LR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.BLOCKPY_PRINT_TOOLTIP)}},HR={init:function(){this.setColour(LR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)}},UR={init:function(){this.setColour(LR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(Rt.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},wR={init:function(){this.setColour(LR),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Rt.icons.MutatorIcon(["system_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("system_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n {\n"+e.statementToCode(this,"do")+"})\n"},DS=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},NS=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},fS=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},LS=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},FS=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},vS=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},PS=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},VS=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},yS=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},YS=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},bS=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},kS=function(){return"while True:\n pass\n"},xS=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},XS=function(t,e){e.definitions_["import machine"]="import machine";return"machine.reset()\n"},GS=function(t,e){return e.definitions_["import gc"]="import gc",this.getFieldValue("gc")+"\n"},HS=function(t,e){return e.definitions_.import_os="import os","os.uname()"},US=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},wS=function(t,e){e.definitions_["from machine import Timer"]="from machine import Timer";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=i%3,s=parseInt(i/3),o=e.valueToCode(this,"period",e.ORDER_NONE);return"tim"+i+" =Timer(Timer.TIMER"+n+",Timer.CHANNEL"+s+",mode=Timer.MODE_"+this.getFieldValue("mode")+",period = "+o+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},BS=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},WS=function(t,e){e.definitions_["from machine import Timer"]="from machine import Timer";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"tim"+i+" = Timer(Timer.TIMER"+i%3+",Timer.CHANNEL"+parseInt(i/3)+", mode=Timer.MODE_PWM)\n"},KS=WS,jS=wS,QS=BS,qS=US;const JS=function(t,e){return["["+this.getFieldValue("TEXT")+"]",e.ORDER_ATOMIC]},zS=function(t,e){return["("+this.getFieldValue("TEXT")+")",e.ORDER_ATOMIC]},ZS=function(t,e){var i=this.getFieldValue("COLOR");return["("+("0x"+(i=i.substr(1)).substr(0,2))+","+("0x"+i.substr(2,2))+","+("0x"+i.substr(4,2))+")",e.ORDER_ATOMIC]},$S=function(t,e){var i=this.getFieldValue("COLOR");return[i=function(t){var e,i,n;e=(t=t.substr(1)).substr(0,2),i=t.substr(2,2),n=t.substr(4,2);var s=(64512&(t="0x"+(t=e+i+n)))>>10;return((248&t)>>3<<8)+((7&s)<<13)+((16252928&t)>>19<<3)+((56&s)>>3)}(i),e.ORDER_ATOMIC]};Object.assign(Rt.Variables,Ct),Object.assign(Rt.Procedures,ss),Rt.Python=Ll,Rt.generator=Ll,Mt.Profile.default={},Object.assign(Mt.Profile,sT),Object.assign(Mt.Profile.default,sT.k210),Object.assign(Rt.Blocks,e,i,n,s,o,p,u,a,l,_,r,d,I,F,L,f,N,Y,b,k,x,X,G,H,U,w,B,W,K,j,Q,q,J,z,Z,$),Object.assign(Rt.Python.forBlock,T,h,m,c,O,R,M,E,C,A,g,S,D,y,V,P,v,tt,et,it,nt,st,ot,pt,ut,at,lt,_t,rt,dt,It,Tt,ht,mt,ct,Ot)})(); \ No newline at end of file +class At{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Rt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(Rt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Rt.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(Rt.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ut={init:function(){this.setColour(bt),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.PYTHON_RANGE).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},wt={init:function(){this.setColour(bt),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(Rt.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return Rt.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Bt={init:function(){this.setColour(bt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Rt.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new Rt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Rt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Wt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(Rt.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Kt={init:function(){this.setColour(bt);var t=new Rt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},jt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Rt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Rt.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new Rt.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return Rt.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Bt.OPERATORS=[[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Kt.OPERATORS=[[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const qt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Jt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},zt={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(Rt.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Zt={init:function(){this.setColour(bt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},$t={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},te={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(Rt.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},ee={init:function(){this.jsonInit({message0:Rt.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:bt,tooltip:Rt.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:Rt.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},ie={init:function(){this.setColour(bt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_STAT),this.setOutput(!0)}},ne={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},se={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},oe={init:function(){this.appendDummyInput().appendField(Rt.Msg.CONTROLS_REPEAT_TITLE_REPEAT+Rt.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(Rt.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new Rt.FieldDropdown([[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(bt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},pe={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ue={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},ae={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},le={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET+Rt.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_GET_UNIQUE_IDEN)}},_e={init:function(){this.setColour(bt),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},re={init:function(){this.setColour(bt),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},de=230;Rt.FieldTextInput.math_number_validator=function(t){return String(t)},Rt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ie={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},Te={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},he={init:function(){this.setColour(de);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},me={init:function(){this.setColour(de),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ce={init:function(){this.setColour(de),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Oe={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Rt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},Re={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Rt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Rt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Rt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Rt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Rt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Rt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Rt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},Me={init:function(){var t=[[Rt.Msg.MATH_BIN,"bin"],[Rt.Msg.MATH_OCT,"oct"],[Rt.Msg.MATH_HEX,"hex"]];this.setColour(de),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:Rt.Msg.MATH_DEC_TOOLTIP_BIN,oct:Rt.Msg.MATH_DEC_TOOLTIP_OCT,hex:Rt.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},Ee={init:function(){var t=[[Rt.Msg.LANG_MATH_TO_ROUND,"round"],[Rt.Msg.LANG_MATH_TO_CEIL,"ceil"],[Rt.Msg.LANG_MATH_TO_FLOOR,"floor"],[Rt.Msg.MATH_ABS,"fabs"],[Rt.Msg.MATH_SQRT,"sqrt"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Rt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Rt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Rt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Rt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Rt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Rt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Ce={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(de),this.appendValueInput("A").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ae={init:function(){var t=[[Rt.Msg.MATH_TWO,"two"],[Rt.Msg.MATH_EIGHT,"eight"],[Rt.Msg.MATH_TEN,"ten"],[Rt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(de),this.appendDummyInput("").appendField(Rt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Rt.FieldDropdown(t),"OP").appendField(Rt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MATH_ZHW).appendField(new Rt.FieldDropdown(t),"OP2").appendField(Rt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Rt.Msg.MATH_Before_two,eight:Rt.Msg.MATH_Before_eight,ten:Rt.Msg.MATH_Before_ten,sixteen:Rt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Rt.Msg.MATH_Behind_two,eight:Rt.Msg.MATH_Behind_eight,ten:Rt.Msg.MATH_Behind_ten,sixteen:Rt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},ge={init:function(){var t=[[Rt.Msg.LANG_MATH_INT,"int"],[Rt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(de),this.setOutput(!0,Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Rt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Rt.Msg.LANG_MATH_INT,float:Rt.Msg.LANG_MATH_FLOAT_RANDOM};return Rt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Se={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_CONSTRAIN_TOOLTIP)}},De={init:function(){this.setColour(de),this.appendValueInput("NUM",Number).appendField(Rt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Rt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Rt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},Ne={init:function(){this.setColour(de),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},fe={init:function(){this.setColour(de),this.appendValueInput("NUM").setCheck(Number).appendField(Rt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Le={init:function(){this.setColour(de),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(Rt.Msg.MATH_ROUND).appendField(Rt.Msg.TEXT_KEEP),this.appendDummyInput().appendField(Rt.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_ROUND_NEW_TOOLTIP)}},Fe={init:function(){var t=[[Rt.Msg.MIXLY_TO_INT,"int"],[Rt.Msg.MIXLY_TO_FLOAT,"float"],[Rt.Msg.MIXLY_TO_BITES,"b"],[Rt.Msg.LANG_MATH_BYTE+Rt.Msg.MIXLY_TO_INT,"bti"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ve={init:function(){var t=[[Rt.Msg.MIXLY_TO_INT,"int"],[Rt.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(de),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:Rt.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},Pe=De,Ve={init:function(){this.setColour(de),this.appendValueInput("VAR").appendField(Rt.Msg.LANG_MATH_BYTE+Rt.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ye={init:function(){this.setColour(de),this.itemCount_=1,this.setMutator(new Rt.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(Rt.Msg.MIXLY_PRODUCT+Rt.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(Rt.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(Rt.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(Rt.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const xe={init:function(){this.setColour(Ye),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new Rt.FieldTextInput("",Rt.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new Rt.FieldImage(e,7,12,'"')}},Xe={init:function(){this.setColour(Ye),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(Rt.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Ge={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(Number).appendField(Rt.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},He={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(String).appendField(Rt.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ue={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},we={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Be={init:function(){this.WHERE_OPTIONS=[[Rt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Rt.Msg.TEXT_GET_INDEX_RANDOM+1+Rt.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.LISTS_GET_INDEX_GET,"MODE"),Rt.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(Rt.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=Rt.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+Rt.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",Rt.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:Rt.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:Rt.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:Rt.Msg.TEXT_GET_INDEX_RANDOM};return Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+Rt.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==Rt.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),Rt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(Rt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new Rt.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),Rt.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},We={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(Rt.Msg.LISTS_GET_INDEX_GET+" "+Rt.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(Rt.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(Rt.Msg.PROCEDURES_DEFRETURN_RETURN+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+Rt.Msg.LISTS_GET_INDEX_FROM_START+"n"+Rt.Msg.TEXT_CHARAT2)}},Ke={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(Rt.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(Rt.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},je={init:function(){this.WHERE_OPTIONS_1=[[Rt.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[Rt.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[Rt.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[Rt.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[Rt.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(Rt.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==Rt.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==Rt.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),Rt.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(Rt.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new Rt.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Qe={init:function(){this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(Rt.Msg.LISTS_GET_INDEX_GET+" "+Rt.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(Rt.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(Rt.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(Rt.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},qe={init:function(){var t=[[Rt.Msg.MIXLY_EQUALS,"==="],[Rt.Msg.MIXLY_STARTSWITH,"startswith"],[Rt.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new Rt.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Je={init:function(){this.setColour(Ye),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(Rt.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_COMPARETO_HELP)}},ze={init:function(){var t=[[Rt.Msg.TEXT_UPPER,"upper"],[Rt.Msg.TEXT_TITLE,"title"],[Rt.Msg.TEXT_CAPITALIZE,"capitalize"],[Rt.Msg.TEXT_SWAPCASE,"swapcase"],[Rt.Msg.TEXT_LOWER,"lower"]];this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new Rt.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:Rt.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:Rt.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:Rt.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:Rt.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:Rt.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ze={init:function(){var t=[[Rt.Msg.TEXT_LJUST,"ljust"],[Rt.Msg.TEXT_CENTER,"center"],[Rt.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ye),this.appendValueInput("VAR").appendField(new Rt.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(Rt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(Rt.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},$e={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(Rt.Msg.MIXLY_MID+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(Rt.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ti={init:function(){this.setColour(Ye),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},ei={init:function(){this.setColour(Ye),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(Rt.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(Rt.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ii={init:function(){this.setColour(Ye),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(Rt.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(Rt.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},ni={init:function(){var t=[[Rt.Msg.TEXT_TRIM_BOTH,"strip"],[Rt.Msg.TEXT_TRIM_LEFT,"lstrip"],[Rt.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ye),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Rt.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new Rt.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(Rt.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:Rt.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:Rt.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:Rt.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},si={init:function(){this.setColour(Ye),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new Rt.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Rt.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},tn={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},en={init:function(){this.setColour(Zi),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_KEYS),this.setTooltip(Rt.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},sn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(Rt.Msg.DICTS_GET_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(Rt.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(Rt.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},un={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(Rt.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_DELETE_TOOLTIP)}},an={init:function(){this.setColour(Zi),this.appendValueInput("DICT2").setCheck("Dict").appendField(Rt.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(Rt.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MID),this.setTooltip(Rt.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ln={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_CLEAR),this.setTooltip(Rt.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_ITEMS),this.setTooltip(Rt.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_VALUES),this.setTooltip(Rt.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},dn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_LENGTH),this.setTooltip(Rt.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},In={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.DICT_DELDICT),this.setTooltip(Rt.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Tn={init:function(){this.MODE=[[Rt.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[Rt.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(Rt.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(Rt.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=Rt.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=Rt.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==Rt.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new Rt.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},hn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(Rt.Msg.DICTS_ADD_VALUE),this.setTooltip(Rt.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},mn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(Rt.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(Rt.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_SETDEFAULT_TOOLTIP)}},cn={init:function(){this.setColour(Zi),this.appendDummyInput("").appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new Rt.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},On={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Rn={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Mn={init:function(){this.setColour(Zi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},En={init:function(){this.setColour(Zi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},Cn={init:function(){this.setColour(Zi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_TO_JSON),this.setTooltip(Rt.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},An=210,gn={init:function(){var t=Rt.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:Rt.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:Rt.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:Rt.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:Rt.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:Rt.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:Rt.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Sn={init:function(){var t=Rt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=Rt.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new Rt.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},Dn={init:function(){var t=[[Rt.Msg.LOGIC_OPERATION_AND,"AND"],[Rt.Msg.LOGIC_OPERATION_OR,"OR"],[Rt.Msg.LOGIC_OPERATION_NOR,"NOR"],[Rt.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:Rt.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:Rt.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},Nn={init:function(){this.setColour(An),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(Rt.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(Rt.Msg.LOGIC_NEGATE_TOOLTIP)}},fn={init:function(){var t=[[Rt.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[Rt.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(An),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new Rt.FieldDropdown(t),"BOOL"),this.setTooltip(Rt.Msg.LOGIC_BOOLEAN_TOOLTIP)}},Ln={init:function(){this.setColour(An),this.setOutput(!0),this.appendDummyInput().appendField(Rt.Msg.LOGIC_NULL),this.setTooltip(Rt.Msg.LOGIC_NULL_TOOLTIP)}},Fn={init:function(){this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(Rt.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(Rt.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},vn={init:function(){var t=[[Rt.Msg.TEXT_APPEND_TO,"in"],[Rt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new Rt.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(Rt.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Rt.Msg.IN)}},Pn={init:function(){var t=[[Rt.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[Rt.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(An),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Vn={init:function(){this.setColour(An),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},yn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(Rt.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},bn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG,p=Rt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},kn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(Rt.Msg.MIXPY_TEXT_ENCODE).appendField(new Rt.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_USE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=Rt.Msg.MIXLY_BELONG,p=Rt.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+p}))}},xn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MICROBIT_PYTHON_TYPE)}},Un={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.HTML_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Wn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Kn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},jn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},qn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Jn={init:function(){this.setColour(0),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},zn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+Rt.Msg.MIXLY_ESP32_SET+{mkdir:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Zn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(Rt.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},$n={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},ts={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.HTML_FILE,"isfile"],[Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},es={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(Rt.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},is={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(Rt.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},ns={};ns.NAME_TYPE=Rt.PROCEDURE_CATEGORY_NAME,ns.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(Rt.Msg.MIXLY_AIP_ATTR).setAlign(Rt.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$s={init:function(){this.setColour(js),this.appendDummyInput().appendField(Rt.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},to={init:function(){this.setColour(js),this.appendDummyInput().appendField(Rt.Msg.HTML_FORM_CONTENT).appendField(new Rt.FieldDropdown([[Rt.Msg.HTML_TEXT,"text"],[Rt.Msg.HTML_EMAIL,"email"],[Rt.Msg.HTML_NUMBER,"number"],[Rt.Msg.HTML_PASSWORD,"password"],[Rt.Msg.HTML_CHECKBOX,"checkbox"],[Rt.Msg.HTML_RADIOBUTTON,"radiobutton"],[Rt.Msg.HTML_BUTTON,"button"],[Rt.Msg.HTML_COLOUR,"colour"],[Rt.Msg.HTML_DATE,"date"],[Rt.Msg.HTML_LOCALTIME,"local time"],[Rt.Msg.HTML_FILE,"file"],[Rt.Msg.HTML_HIDDEN,"hidden"],[Rt.Msg.HTML_IMAGE,"image"],[Rt.Msg.HTML_MONTH,"month"],[Rt.Msg.HTML_RANGE,"range"],[Rt.Msg.HTML_RESET,"reset"],[Rt.Msg.HTML_SEARCH,"search"],[Rt.Msg.HTML_SUBMIT,"submit"],[Rt.Msg.HTML_TELEPHONENUMBER,"telephone number"],[Rt.Msg.HTML_TIME,"time"],[Rt.Msg.HTML_URL,"url"],[Rt.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(Rt.Msg.HTML_NAME).appendField(new Rt.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(Rt.Msg.HTML_VALUE).appendField(new Rt.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(Rt.Msg.MIXLY_AIP_ATTR).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},eo={init:function(){this.setColour(js),this.appendDummyInput().appendField(new Rt.FieldTextInput("property"),"KEY").appendField(":").appendField(new Rt.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},io={init:function(){this.setColour(js),this.appendDummyInput().appendField(new Rt.FieldTextInput("property"),"KEY").appendField(":").appendField(new Rt.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},no={init:function(){this.setColour(js),this.appendDummyInput().appendField(Rt.Msg.HTML_TEXT).appendField(new Rt.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},so=160,oo={init:function(){this.setColour(so),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new Rt.FieldTable(""),"TEXT")}},po={init:function(){this.setColour(so),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new Rt.FieldMultilineInput(""),"TEXT")}},uo={init:function(){this.setColour(so),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new Rt.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},ao={init:function(){this.setColour(so),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},lo={init:function(){this.setColour(so),this.appendDummyInput().appendTitle("Comment:").appendTitle(new Rt.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},_o={init:function(){this.setColour(so),this.appendValueInput("VALUE").appendField(Rt.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ro={init:function(){this.setColour(so),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=Rt.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+l()+"("+t+", "+e+", "+i+")"},Rt.isNumber(n)&&Rt.isNumber(s)&&Rt.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const sa=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var p=s+" and "+o;else if("OR"==i)p=s+" or "+o;else if("NOR"==i)p="not("+s+"^"+o+")";else p=s+"^"+o;return[p,n]},oa=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},pa=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},ua=function(t,e){return["None",e.ORDER_ATOMIC]},aa=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},la=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},_a=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ra=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},da=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Ta=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},ha=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},ma=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},ca=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},Ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Ca=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Aa=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},Na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},fa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},La=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Fa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},va=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},Pa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Va=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ya=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Ya=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),Rt.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],p=0;p\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ml=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},cl=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ol=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Rl=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ml=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},El=function(t,e){return'"},Cl=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Al=function(){return this.getFieldValue("TEXT")+"\n"},gl=function(t){return t.getFieldValue("TEXT")+"\n"},Sl=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Dl=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Nl=function(){return""},fl=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Ll=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+p.join("\n")+u.join("")+t+"while True:\n"+a.join("")+l.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+p.join("\n")+u.join("")+t+l.join("\n")},vl.scrubNakedValue=function(t){return t+"\n"},vl.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},vl.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},vl.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=Rt.utils.string.wrap(o,vl.COMMENT_WRAP-3),n+=vl.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const Pl=100,Vl={init:function(){this.setColour(Pl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_SERVO).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SERVO_MOVE)}},yl={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["1","1"],["2","2"]]),"op"),this.setOutput(!0)}},Yl={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ESP32_ON,"1"],[Rt.Msg.MIXLY_ESP32_OFF,"0"],[Rt.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},bl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},kl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},xl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING).appendField(Rt.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},Xl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_SETONOFF)}},Gl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(Rt.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_GETONOFF)}},Hl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(Rt.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(Rt.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_LED_SETBRIGHT)}},Ul={init:function(){this.setColour(Pl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_TONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},wl={init:function(){this.setColour(Pl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_TONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Bl={init:function(){this.setColour(Pl),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_NOTONE).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wl={init:function(){this.setColour(Pl),this.appendValueInput("TICKS").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(Rt.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(Rt.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Kl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},jl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_RESET)}},Ql={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},ql={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(Rt.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Jl={init:function(){this.setColour(Pl),this.appendDummyInput().appendField(Rt.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zl={init:function(){this.setColour(Pl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Zl={init:function(){this.setColour(Pl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Rt.Msg.MIXLY_PIN),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},$l={init:function(){this.setColour(Pl),this.appendValueInput("LIST").appendField(Rt.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.appendValueInput("PIN").setCheck(Number).appendField(Rt.Msg.MIXLY_PIN),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_MIXGO_MUSIC_PLAY_TONE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_PLAYSHOW)}},t_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_RGB_PIN_COUNT)}},e_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},i_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_WRI)}},n_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},s_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},o_={init:function(){this.setColour(Pl),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_WRI)}},p_=Xl,u_=Gl,a_=Hl,l_="#2FAD7A",__={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_TERMINAL_WIDGET_VPIN_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},r_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SYNC_VIRTUAL_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"}]})}},d_={init:function(){this.jsonInit({inputsInline:!0,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_ON_DISCONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},I_={init:function(){this.jsonInit({inputsInline:!0,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_ON_CONNECTED_MESSAGE0}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},T_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNKTIMER_RUN_MESSAGE0})}},h_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_RUN_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_RUN_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_RUN_MESSAGE0})}},m_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_APP_NOTIFY_MESSAGE0,args0:[{check:String,type:"input_value",name:"notification"}]})}},c_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_STOP_TIMERS_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_STOP_TIMERS_MESSAGE0,args0:[{check:Number,type:"input_value",name:"timer_num"}]})}},O_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SET_PROPERTY_MESSAGE0,args0:[{check:String,type:"input_value",name:"attribute_name"},{type:"input_value",name:"attribute_value"}]})}},R_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_EMAIL_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_EMAIL_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_EMAIL_MESSAGE0,args0:[{check:String,type:"input_value",name:"TargetEmail"},{check:String,type:"input_value",name:"subject"},{check:String,type:"input_value",name:"body"}]})}},M_={init:function(){this.jsonInit({inputsInline:!0,output:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_GET_TIMERS_MESSAGE0})}},E_={init:function(){this.jsonInit({message0:Rt.Msg.MPYTHON_BLYNKTIMER_MESSAGE0,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNKTIMER_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNKTIMER_TOOLTIP,args0:[{check:Number,type:"input_value",name:"Num"},{options:[[Rt.Msg.MIXLY_PYTHON_PERIODIC,"False"],[Rt.Msg.MIXLY_PYTHON_ONE_SHOT,"True"]],type:"field_dropdown",name:"Timer_mode"},{check:Number,type:"input_value",name:"period"}]}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},C_={init:function(){this.jsonInit({inputsInline:!0,nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_MESSAGE0,args0:[{type:"input_value",name:"sensor_data"},{check:Number,type:"input_value",name:"virtual_pin"}]})}},A_={init:function(){this.jsonInit({inputsInline:!0,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_APP_DATA_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SENSOR_DATA_TO_APP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_APP_DATA_MESSAGE0,args0:[{check:Number,type:"input_value",name:"virtual_pin"},{type:"input_value",name:"virtual_pin_val"}]}),this.appendStatementInput("DO").appendField(Rt.CONTROLS_REPEAT_INPUT_DO)}},g_={init:function(){this.jsonInit({nextStatement:null,previousStatement:null,colour:l_,helpUrl:Rt.Msg.MPYTHON_BLYNK_SETUP_HELPURL,tooltip:Rt.Msg.MPYTHON_BLYNK_SETUP_TOOLTIP,message0:Rt.Msg.MPYTHON_BLYNK_SETUP_MESSAGE0,args0:[{type:"input_dummy"},{check:String,type:"input_value",name:"server"},{check:Number,type:"input_value",name:"port"},{check:String,type:"input_value",name:"auth"}]})}},S_=120;({init:function(){this.setColour(S_),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(Rt.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new Rt.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:Rt.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[Rt.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(S_);var t=new Rt.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:Rt.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[Rt.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const D_=180,N_={colourOptions:["#f00","#000"],columns:2},f_={init:function(){this.jsonInit({colour:D_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:Rt.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Clear_display)}},L_={init:function(){this.setColour(D_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_POINT),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_BRIGHTNESS)}},F_={init:function(){this.setColour(D_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BRIGHTNESS).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("STAT").setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_DISPLAY_SETPIXEL)}},v_={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck(String).appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Rt.Msg.OLED_DRAWSTR),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},P_={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck(String).appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_ESP32_MONITOR_SCROLL,"scroll"]]),"MODE").appendField(Rt.Msg.OLED_DRAWSTR),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_DELAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},V_={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_MONITOR_SHOW_STATIC),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_MUSIC_SHOW_STATIC)}},y_={init:function(){this.setColour(D_),this.appendValueInput("PIN",String).setCheck("esp32_image").appendField(Rt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP)}},Y_={init:function(){this.jsonInit({colour:D_,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:Rt.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}]})}},b_={init:function(){this.jsonInit({colour:D_,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:Rt.Msg.MIXLY_MICROBIT_Animate_images,args0:[{check:"List",type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+Rt.Msg.MIXLY_MICROBIT_Animate_images1)}},k_={init:function(){this.jsonInit({colour:D_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:Rt.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},x_={init:function(){this.setColour(D_),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[Rt.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(Rt.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=Rt.Msg.MIXLY_MICROBIT_monitor;return{on:Rt.Msg.MIXLY_MICROBIT_Turn_on_display,off:Rt.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},X_={init:function(){this.jsonInit({colour:D_,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:Rt.Msg.MIXLY_MICROBIT_Turn_off_display})}},G_={init:function(){this.jsonInit({colour:D_,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:Rt.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Display_is_on1)}},H_={init:function(){this.jsonInit({colour:D_,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SAD","SAD"],["SMILE","SMILE"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["SURPRISED","SURPRISED"],["ASLEEP","ASLEEP"],["ANGRY","ANGRY"],["CONFUSED","CONFUSED"],["NO","NO"],["YES","YES"],["LEFT_ARROW","LEFT_ARROW"],["RIGHT_ARROW","RIGHT_ARROW"],["DRESS","DRESS"],["TRANSFORMERS","TRANSFORMERS"],["SCISSORS","SCISSORS"],["EXIT","EXIT"],["TREE","TREE"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["PITCHFORK","PITCHFORK"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["COW","COW"],["RABBIT","RABBIT"],["SQUARE_SMALL","SQUARE_SMALL"],["SQUARE","SQUARE"],["DIAMOND_SMALL","DIAMOND_SMALL"],["DIAMOND","DIAMOND"],["CHESSBOARD","CHESSBOARD"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["TRIANGLE","TRIANGLE"],["SNAKE","SNAKE"],["UMBRELLA","UMBRELLA"],["SKULL","SKULL"],["GIRAFFE","GIRAFFE"],["SWORD","SWORD"]],type:"field_dropdown"}],output:["esp32_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:Rt.Msg.MIXLY_MICROBIT_Built_in_image1,message0:Rt.Msg.MIXLY_MICROBIT_Built_in_image})}},U_={init:function(){this.jsonInit({colour:D_,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{colour:"#000000",type:"field_colour",name:"05"},{colour:"#000000",type:"field_colour",name:"06"},{colour:"#000000",type:"field_colour",name:"07"},{colour:"#000000",type:"field_colour",name:"08"},{colour:"#000000",type:"field_colour",name:"09"},{colour:"#000000",type:"field_colour",name:"0a"},{colour:"#000000",type:"field_colour",name:"0b"},{colour:"#000000",type:"field_colour",name:"0c"},{colour:"#000000",type:"field_colour",name:"0d"},{colour:"#000000",type:"field_colour",name:"0e"},{colour:"#000000",type:"field_colour",name:"0f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{colour:"#000000",type:"field_colour",name:"15"},{colour:"#000000",type:"field_colour",name:"16"},{colour:"#000000",type:"field_colour",name:"17"},{colour:"#000000",type:"field_colour",name:"18"},{colour:"#000000",type:"field_colour",name:"19"},{colour:"#000000",type:"field_colour",name:"1a"},{colour:"#000000",type:"field_colour",name:"1b"},{colour:"#000000",type:"field_colour",name:"1c"},{colour:"#000000",type:"field_colour",name:"1d"},{colour:"#000000",type:"field_colour",name:"1e"},{colour:"#000000",type:"field_colour",name:"1f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{colour:"#000000",type:"field_colour",name:"25"},{colour:"#000000",type:"field_colour",name:"26"},{colour:"#000000",type:"field_colour",name:"27"},{colour:"#000000",type:"field_colour",name:"28"},{colour:"#000000",type:"field_colour",name:"29"},{colour:"#000000",type:"field_colour",name:"2a"},{colour:"#000000",type:"field_colour",name:"2b"},{colour:"#000000",type:"field_colour",name:"2c"},{colour:"#000000",type:"field_colour",name:"2d"},{colour:"#000000",type:"field_colour",name:"2e"},{colour:"#000000",type:"field_colour",name:"2f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{colour:"#000000",type:"field_colour",name:"35"},{colour:"#000000",type:"field_colour",name:"36"},{colour:"#000000",type:"field_colour",name:"37"},{colour:"#000000",type:"field_colour",name:"38"},{colour:"#000000",type:"field_colour",name:"39"},{colour:"#000000",type:"field_colour",name:"3a"},{colour:"#000000",type:"field_colour",name:"3b"},{colour:"#000000",type:"field_colour",name:"3c"},{colour:"#000000",type:"field_colour",name:"3d"},{colour:"#000000",type:"field_colour",name:"3e"},{colour:"#000000",type:"field_colour",name:"3f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"},{colour:"#000000",type:"field_colour",name:"45"},{colour:"#000000",type:"field_colour",name:"46"},{colour:"#000000",type:"field_colour",name:"47"},{colour:"#000000",type:"field_colour",name:"48"},{colour:"#000000",type:"field_colour",name:"49"},{colour:"#000000",type:"field_colour",name:"4a"},{colour:"#000000",type:"field_colour",name:"4b"},{colour:"#000000",type:"field_colour",name:"4c"},{colour:"#000000",type:"field_colour",name:"4d"},{colour:"#000000",type:"field_colour",name:"4e"},{colour:"#000000",type:"field_colour",name:"4f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"50"},{colour:"#000000",type:"field_colour",name:"51"},{colour:"#000000",type:"field_colour",name:"52"},{colour:"#000000",type:"field_colour",name:"53"},{colour:"#000000",type:"field_colour",name:"54"},{colour:"#000000",type:"field_colour",name:"55"},{colour:"#000000",type:"field_colour",name:"56"},{colour:"#000000",type:"field_colour",name:"57"},{colour:"#000000",type:"field_colour",name:"58"},{colour:"#000000",type:"field_colour",name:"59"},{colour:"#000000",type:"field_colour",name:"5a"},{colour:"#000000",type:"field_colour",name:"5b"},{colour:"#000000",type:"field_colour",name:"5c"},{colour:"#000000",type:"field_colour",name:"5d"},{colour:"#000000",type:"field_colour",name:"5e"},{colour:"#000000",type:"field_colour",name:"5f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"60"},{colour:"#000000",type:"field_colour",name:"61"},{colour:"#000000",type:"field_colour",name:"62"},{colour:"#000000",type:"field_colour",name:"63"},{colour:"#000000",type:"field_colour",name:"64"},{colour:"#000000",type:"field_colour",name:"65"},{colour:"#000000",type:"field_colour",name:"66"},{colour:"#000000",type:"field_colour",name:"67"},{colour:"#000000",type:"field_colour",name:"68"},{colour:"#000000",type:"field_colour",name:"69"},{colour:"#000000",type:"field_colour",name:"6a"},{colour:"#000000",type:"field_colour",name:"6b"},{colour:"#000000",type:"field_colour",name:"6c"},{colour:"#000000",type:"field_colour",name:"6d"},{colour:"#000000",type:"field_colour",name:"6e"},{colour:"#000000",type:"field_colour",name:"6f"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"70"},{colour:"#000000",type:"field_colour",name:"71"},{colour:"#000000",type:"field_colour",name:"72"},{colour:"#000000",type:"field_colour",name:"73"},{colour:"#000000",type:"field_colour",name:"74"},{colour:"#000000",type:"field_colour",name:"75"},{colour:"#000000",type:"field_colour",name:"76"},{colour:"#000000",type:"field_colour",name:"77"},{colour:"#000000",type:"field_colour",name:"78"},{colour:"#000000",type:"field_colour",name:"79"},{colour:"#000000",type:"field_colour",name:"7a"},{colour:"#000000",type:"field_colour",name:"7b"},{colour:"#000000",type:"field_colour",name:"7c"},{colour:"#000000",type:"field_colour",name:"7d"},{colour:"#000000",type:"field_colour",name:"7e"},{colour:"#000000",type:"field_colour",name:"7f"}],output:"esp32_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:Rt.Msg.MIXLY_ESP32_Create_image}),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_Create_image1)}},w_={init:function(){var t=[[Rt.Msg.MIXLY_UP,"up"],[Rt.Msg.MIXLY_DOWN,"down"],[Rt.Msg.MIXLY_LEFT,"left"],[Rt.Msg.MIXLY_RIGHT,"right"]];this.setColour(D_),this.setOutput(!0),this.setInputsInline(!0),this.appendValueInput("img").appendField(Rt.Msg.DISPLAY_IMAGE_LET).setCheck(["esp32_image","List",String]),this.appendDummyInput("").appendField(Rt.Msg.DISPLAY_IMAGE_LET2).appendField(new Rt.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(Rt.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=Rt.Msg.DISPLAY_IMAGE_LET,n=Rt.Msg.DISPLAY_IMAGE_LET2,s=Rt.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:Rt.Msg.MIXLY_UP,down:Rt.Msg.MIXLY_DOWN,left:Rt.Msg.MIXLY_LEFT,right:Rt.Msg.MIXLY_RIGHT}[t]+s}))}},B_={init:function(){var t=[[Rt.Msg.MICROBIT_DISPLAY_UNION,"+"],[Rt.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(D_),this.setOutput(!0,"esp32_image"),this.appendValueInput("A").appendField(Rt.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":Rt.Msg.MIXLY_MICROBIT_image_add,"-":Rt.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},W_={init:function(){this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,"show"],[Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING,"scroll"]]),"MODE"),this.jsonInit({colour:D_,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:Rt.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=Rt.Msg.OLED_DRAWSTR;return Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+{show:Rt.Msg.OLED_DRAWSTR_ONE_BY_ONE,scroll:Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING}[e]+i}))}},K_={init:function(){this.setColour(D_),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},j_={init:function(){this.setColour(D_),this.appendValueInput("device").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_SETUP).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_SETUP+Rt.Msg.MIXLY_DF_LCD+Rt.Msg.MIXLY_LCD_ADDRESS)}},Q_={init:function(){this.setColour(D_),this.appendValueInput("row",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(Rt.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},q_={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ON,"on()"],[Rt.Msg.MIXLY_OFF,"off()"],[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[Rt.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(off)"],[Rt.Msg.MIXLY_LCD_BACKLIGHT,"backlight(on)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return Rt.Msg.LISTS_SET_INDEX_SET+Rt.Msg.MIXLY_DF_LCD+{"on()":Rt.Msg.MIXLY_ON,"off()":Rt.Msg.MIXLY_OFF,"clear()":Rt.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":Rt.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":Rt.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},J_={init:function(){this.setColour(D_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendValueInput("row").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO+"OLED").setCheck(Number),this.appendValueInput("column").appendField("X").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip()}},z_={init:function(){this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendValueInput("Text_line1","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.OLEDDISPLAY+Rt.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(D_),this.setTooltip(Rt.Msg.MIXLY_DF_LCD+Rt.Msg.OLEDDISPLAY+Rt.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Z_={init:function(){var t=[[Rt.Msg.MIXLY_HEIGHT,"height"],[Rt.Msg.MIXLY_WIDTH,"width"]];this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("esp32_image"),this.appendDummyInput("").appendField(new Rt.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_MICROBIT_IMAGE+{height:Rt.Msg.MIXLY_HEIGHT,width:Rt.Msg.MIXLY_WIDTH}[t]}))}},$_={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RECT).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_RECT,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"width"},{check:Number,type:"input_value",name:"height"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_OLED_RECT)}},tr={init:function(){this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_DISPLAY_DRAW).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_DISPLAY_RLINE,"hline"],[Rt.Msg.MIXLY_DISPLAY_VLINE,"vline"]]),"direction"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_LINE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"length"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_OLED_LINE)}},er={init:function(){this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.jsonInit({message0:Rt.Msg.MIXLY_MICROBIT_SHOW_LINE_ARBITRARILY,args0:[{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_OLED_LINE_ARBIT)}},ir={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_GET_SCREEN_BRIGHTNESS)}},nr={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE),this.setInputsInline(!0),this.setOutput(!0,"esp32_image"),this.setTooltip(Rt.Msg.MIXLY_ESP32_MONITOR_GET_SCREEN_IMAGE_TOOLTIP)}},sr={init:function(){this.setColour(D_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_SCREEN_BRIGHTNESS)}},or={init:function(){this.setColour(D_),this.appendValueInput("x").setCheck(Number).appendField(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_JS_MONITOR_SET_BLINK_RATE)}},pr={init:function(){this.setColour(D_),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").appendField(Rt.Msg.LISTS_SET_INDEX_SET+Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_AS).appendField(new Rt.FieldColour("#f00",null,N_),"FIELDNAME"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_RGB_NUM_R_G_B)}},ur={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP_OR_STRING)}},ar={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lr={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_OR_ANIMATION),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SHOW_IMAGE_OR_STRING_DELAY)}},_r={init:function(){this.setColour(D_),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("time").setCheck(Number).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_INTERVAL),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_SCROLL_IMAGE_OR_STRING_DELAY)}},rr={init:function(){this.setColour(D_),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ESP32_ON,"ON"],[Rt.Msg.MIXLY_ESP32_OFF,"OFF"]]),"ONOFF"),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},dr={init:function(){this.setColour(D_),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[Rt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:Rt.Msg.MIXLY_LCD_STAT_CLEAR,1:Rt.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return Rt.Msg.MIXLY_DF_LCD+i[e]}))}},Ir={init:function(){this.setColour(D_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["TM1650","TM1650"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return Rt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{TM1650:"TM1650"}[e]}))}},Tr={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendDummyInput().appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_ON,"_on"],[Rt.Msg.MIXLY_OFF,"_off"],[Rt.Msg.MIXLY_LCD_STAT_CLEAR,"_clear"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_4digitdisplay_power)}},hr={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("VALUE").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_NUMBER),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},mr={init:function(){this.setColour(D_),this.appendDummyInput().appendField(Rt.Msg.MIXLY_4DIGITDISPLAY).appendField(new Rt.FieldDropdown([["TM1650","tm1650"]]),"TYPE"),this.appendValueInput("VAR"),this.appendValueInput("NO").appendField(Rt.Msg.MIXLY_4DIGITDISPLAY_NOMBER1),this.appendValueInput("STAT").appendField(Rt.Msg.MIXLY_4DIGITDISPLAY_NOMBER2+Rt.Msg.MIXLY_4DIGITDISPLAY_DOT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_4digitdisplay_showDot)}},cr={init:function(){this.setColour(D_),this.setOutput(!0,"Tuple"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISPLAY_ANIMATE).appendField(new Rt.FieldDropdown([["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]]),"ANIMATION")}},Or={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_HANBIT_SHOW_CIRCLE,args0:[{check:Number,type:"input_value",name:"x"},{check:Number,type:"input_value",name:"y"},{check:Number,type:"input_value",name:"r"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_MIXPY_TURTLE_DRAW_CIRCLE)}},Rr={init:function(){var t=[[Rt.Msg.MIXLY_4DIGITDISPLAY_ON,"1"],[Rt.Msg.MIXLY_4DIGITDISPLAY_OFF,"0"]];this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_DISPLAY_DRAW+Rt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE).appendField(new Rt.FieldDropdown(t),"OP"),this.jsonInit({message0:Rt.Msg.MIXLY_HANBIT_SHOW_triangle,args0:[{check:Number,type:"input_value",name:"x0"},{check:Number,type:"input_value",name:"y0"},{check:Number,type:"input_value",name:"x1"},{check:Number,type:"input_value",name:"y1"},{check:Number,type:"input_value",name:"x2"},{check:Number,type:"input_value",name:"y2"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"fill"}]}),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(Rt.Msg.MIXLY_DISPLAY_DRAW+Rt.Msg.MIXLY_HANBIT_DRAW_TRIANGLE)}},Mr={init:function(){this.setColour("#555555"),this.appendDummyInput("").appendField(Rt.Msg.MIXGO_ONBOARDDISPLAY_HELP),this.setInputsInline(!0),this.setTooltip("")}},Er={init:function(){this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.OLED_BITMAP),this.appendValueInput("START_X",Number).appendField(Rt.Msg.OLED_START_X).setCheck(Number),this.appendValueInput("START_Y",Number).appendField(Rt.Msg.OLED_START_Y).setCheck(Number),this.appendValueInput("bitmap_name",String).appendField(Rt.Msg.OLED_BITMAP_NAME),this.appendValueInput("WIDTH",Number).appendField(Rt.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("HEIGHT",Number).appendField(Rt.Msg.MIXLY_HEIGHT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.OLED_SHOW_BMP_TOOLTIP)}},Cr={init:function(){this.setColour(D_),this.appendValueInput("VAR").appendField(Rt.Msg.OLED),this.appendDummyInput("").appendField(Rt.Msg.OLED_DRAWPIXEL),this.appendValueInput("POS_X").appendField(Rt.Msg.OLED_POSX),this.appendValueInput("POS_Y").appendField(Rt.Msg.OLED_POSY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.OLED_DRAW_PIXE_TOOLTIP)}},Ar={init:function(){this.setColour(D_),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["32x12 Matrix","32x12 Matrix"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},gr={init:function(){this.setColour(D_),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck([String,"esp32_image","List","Tuple"]).appendField(Rt.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.OLED_BITMAP_OR_STRING)}},Sr={init:function(){this.setColour(D_),this.appendValueInput("SUB"),this.appendValueInput("data").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dr="#526FC3",Nr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(Rt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},fr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Rt.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},Lr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},Fr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},vr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Rt.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},Pr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Rt.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_publish_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},yr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Yr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},br={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(Rt.Msg.MIXLY_WIFI_USERNAME).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.MIXLY_IOT_PASSWORD).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(Rt.Msg.MIXLY_EMQX_PROJECT).setAlign(Rt.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},kr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(Rt.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},xr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(Rt.Msg.MIXLY_EMQX_SUBSCRIBE+Rt.Msg.MIXLY_MICROBIT_MSG).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(Rt.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},Xr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ur={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Rt.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},wr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(Rt.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},Br={init:function(){this.setColour(Dr),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},Wr={init:function(){this.setColour(Dr),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},Kr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},jr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO").appendField(Rt.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(Rt.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},Qr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+Rt.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField(Rt.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(Rt.Msg.MIXLY_EMQX_SERVER).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Jr={init:function(){this.VISITOR_ID=Mt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Dr),this.appendDummyInput("").appendField(new Rt.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},zr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MixIO").appendField(Rt.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},Zr={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("HTTP"+Rt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Rt.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(Rt.Msg.MIXLY_REQUESTS_GET).appendField(Rt.Msg.MIXLY_GET_CURRENT_TIME).appendField(Rt.Msg.MIXLY_OPEN_DEBUG).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$r={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("HTTP"+Rt.Msg.MIXLY_Client).appendField(Rt.Msg.MIXLY_GET).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Rt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Rt.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},td={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MQTT"+Rt.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(Rt.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(Rt.Msg.MIXLY_INIT_SUBSCRIBE).appendField(Rt.Msg.MQTT_Topic).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(Rt.Msg.MIXLY_OPEN_DEBUG).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[Rt.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ed={init:function(){this.setColour(Dr),this.appendDummyInput().appendField("MQTT"+Rt.Msg.MIXLY_Client).appendField(Rt.Msg.MIXLY_GET).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_REQUESTS_LEN,"client_len"],[Rt.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[Rt.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},id=Nr,nd=fr,sd=Lr,od=Fr,pd=Pr;Rt.Msg.PS2_TRIANGLE,Rt.Msg.PS2_CIRCLE,Rt.Msg.PS2_CROSS,Rt.Msg.PS2_SQUARE,Rt.Msg.PS2_L1,Rt.Msg.PS2_L2,Rt.Msg.PS2_R1,Rt.Msg.PS2_R2,Rt.Msg.PS2_UP,Rt.Msg.PS2_RIGHT,Rt.Msg.PS2_DOWN,Rt.Msg.PS2_LEFT,Rt.Msg.PS2_SELECT,Rt.Msg.PS2_START;const ud=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"pitch",e.ORDER_ATOMIC);return"music.pitch("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+", "+i+")\n"},ad=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"pitch",e.ORDER_ATOMIC),n=e.valueToCode(this,"time",e.ORDER_ATOMIC);return"music.pitch_time("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+", "+i+", "+n+")\n"},ld=function(t,e){return e.definitions_.import_music="import music","music.stop("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")\n"},_d=function(t,e){e.definitions_.import_music="import music";var i=e.valueToCode(this,"BPM",e.ORDER_ASSIGNMENT);return"music.set_tempo("+e.valueToCode(this,"TICKS",e.ORDER_ASSIGNMENT)+", "+i+")\n"},rd=function(t,e){e.definitions_.import_music="import music";return["music.get_tempo()",e.ORDER_ATOMIC]},dd=function(t,e){return e.definitions_.import_music="import music","music.pitch("+e.valueToCode(this,"pitch",e.ORDER_ATOMIC)+")\n"},Id=function(t,e){return e.definitions_.import_music="import music","music.pitch_time("+e.valueToCode(this,"pitch",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"time",e.ORDER_ATOMIC)+")\n"},Td=function(t,e){e.definitions_.import_music="import music";return"music.stop()\n"},hd=function(t,e){return e.definitions_.import_music="import music","music.play("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+")\n"},md=function(t,e){return e.definitions_.import_music="import music","music.play("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN",e.ORDER_ASSIGNMENT)+")\n"},cd=function(t,e){return e.definitions_.import_music="import music",e.definitions_.import_matrix="import matrix","music.play_show("+e.valueToCode(this,"LIST",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN",e.ORDER_ASSIGNMENT)+")\n"},Od=function(t,e){return e.definitions_.import_music="import music","music.reset()\n"},Rd=function(t,e){return e.definitions_.import_servo="import servo",e.definitions_.import_machine="import machine","servo.servo_write_angle("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DEGREE",e.ORDER_ATOMIC)+")\n"},Md=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},Ed=function(t,e){return[this.getFieldValue("flag"),e.ORDER_ATOMIC]},Cd=function(t,e){e.definitions_.import_mixgo="import mixgo";var i=e.valueToCode(this,"bright",e.ORDER_ATOMIC);return"mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").setonoff("+i+")\n"},Ad=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").getonoff()",e.ORDER_ATOMIC]},gd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+").setbrightness("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},Sd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".setonoff("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},Dd=function(t,e){return e.definitions_.import_mixgo="import mixgo",["mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".getonoff()",e.ORDER_ATOMIC]},Nd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.led"+e.valueToCode(this,"led",e.ORDER_ATOMIC)+".setbrightness("+e.valueToCode(this,"bright",e.ORDER_ATOMIC)+")\n"},fd=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"PIN",e.ORDER_ATOMIC),s=e.valueToCode(this,"LEDCOUNT",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",i+" = neopixel.NeoPixel(machine.Pin("+n+"), "+s+", timing = True)\n"},Ld=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".write()\n"},Fd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_neopixel="import neopixel",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"["+e.valueToCode(this,"_LED_",e.ORDER_ATOMIC)+"] = ("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+")\n"},vd=function(t,e){e.definitions_.import_mixgo="import mixgo";return"mixgo.rgb.write()\n"},Pd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.rgb["+e.valueToCode(this,"_LED_",e.ORDER_ATOMIC)+"] = ("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+")\n"},Vd=function(t,e){return e.definitions_.import_mixgo="import mixgo","mixgo.rgb.fill(("+e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC)+"))\n"},yd=Sd,Yd=Dd,bd=Nd,kd=function(t,e){var i=e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC);e.functions_["terminal_widget_vpin_"+i]=`\nALLOWED_COMMANDS_LIST = ['ls', 'lsusb', 'ip a', 'ip abc']\n\n@blynk.handle_event('write V${i}')\ndef write_handler(pin, _values):\n header = ''\n result = ''\n delimiter = '{}\\n'.format('=' * 30)\n if _values and _values[0] in ALLOWED_COMMANDS_LIST:\n cmd_params = _values[0].split(' ')\n try:\n result = subprocess.check_output(cmd_params).decode('utf-8')\n header = '[output]\\n'\n except subprocess.CalledProcessError as exe_err:\n header = '[error]\\n'\n result = 'Return Code: {}\\n'.format(exe_err.returncode)\n except Exception as g_err:\n print("Command caused '{}'".format(g_err))\n elif _values and _values[0] == 'help':\n header = '[help -> allowed commands]\\n'\n result = '{}\\n'.format('\\n'.join(ALLOWED_COMMANDS_LIST))\n\n # communicate with terminal if help or some allowed command\n if result:\n output = '{}{}{}{}'.format(header, delimiter, result, delimiter)\n print(output)\n blynk.virtual_write(pin, output)\n blynk.virtual_write(pin, '\\n')\n`;return""},xd=function(t,e){return"blynk.virtual_sync("+e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC)+")\n"},Xd=function(t,e){var i=e.statementToCode(this,"DO");return i=e.addLoopTrap(i,this.id)||e.PASS,e.definitions_.blynk_on_disconnected="@blynk.handle_event(\"disconnect\")\ndef connect_handler():\n print('Blynk disconnected')\n"+i,""},Gd=function(t,e){var i=e.statementToCode(this,"DO");return i=e.addLoopTrap(i,this.id)||e.PASS,e.definitions_.blynk_on_connected="@blynk.handle_event(\"connect\")\ndef connect_handler():\n print('Blynk connected')\n"+i,""},Hd=function(){return"blynk_timer.run()\n"},Ud=function(){return"blynk.run()\n"},wd=function(t,e){return"blynk.notify("+e.valueToCode(this,"notification",e.ORDER_ATOMIC)+")\n"},Bd=function(t,e){e.definitions_.import_blynktimer="import blynktimer",e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)";var i=e.valueToCode(this,"timer_num",e.ORDER_ATOMIC);return`blynk_timer.stop('${i}_blynk_timer${i}')\n`},Wd=function(t,e){e.definitions_.import_blynktimer="import blynktimer",e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)";return["blynk_timer.get_timers()",e.ORDER_ATOMIC]},Kd=function(t,e){e.definitions_.import_blynktimer="import blynktimer";var i=e.valueToCode(this,"Num",e.ORDER_ATOMIC),n=e.valueToCode(this,"period",e.ORDER_ATOMIC),s=this.getFieldValue("Timer_mode"),o=e.statementToCode(this,"DO");return o=e.addLoopTrap(o,this.id)||e.PASS,e.definitions_.def_blynktimer="blynk_timer = blynktimer.Timer(no_timers_err=False)",e.definitions_["blynktimer_event"+i]=`\n@blynk_timer.register(interval=${n}, run_once=${s})\ndef blynk_timer${i}():\n`+o,""},jd=function(t,e){var i=e.valueToCode(this,"sensor_data",e.ORDER_ATOMIC);return"blynk.virtual_write("+e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC)+", "+i+")\n"},Qd=function(t,e){var i=e.valueToCode(this,"virtual_pin",e.ORDER_ATOMIC),n=e.statementToCode(this,"DO");return n=e.addLoopTrap(n,this.id)||e.PASS,e.definitions_["blynk_VIRTUAL_WRITE_"+i]="@blynk.handle_event('write V"+i+"')\ndef write_virtual_pin_handler(pin, _value):\n for i in range(0, len(_value)):\n try: _value[i] = eval(_value[i])\n except: pass\n if len(_value) == 1: _value = _value[0]\n"+n,""},qd=function(t,e){var i=e.valueToCode(this,"body",e.ORDER_ATOMIC),n=e.valueToCode(this,"subject",e.ORDER_ATOMIC);return`blynk.email(${e.valueToCode(this,"TargetEmail",e.ORDER_ATOMIC)}, ${n}, ${i})\n`},Jd=function(t,e){var i=e.valueToCode(this,"attribute_value",e.ORDER_ATOMIC);return`blynk.set_property(pin, ${e.valueToCode(this,"attribute_name",e.ORDER_ATOMIC)}, ${i})\n`},zd=function(t,e){e.definitions_.import_BlynkLib="import blynklib";var i=e.valueToCode(this,"server",e.ORDER_ATOMIC),n=e.valueToCode(this,"auth",e.ORDER_ATOMIC),s=e.valueToCode(this,"port",e.ORDER_ATOMIC);return e.definitions_.mpython_blynk_setup="blynk = blynklib.Blynk("+n+", server="+i+", port="+s+")",e.definitions_.blynk_on_connected="\n@blynk.handle_event(\"connect\")\ndef connect_handler():\n print('Blynk connected')\n",e.definitions_.blynk_on_disconnected="\n@blynk.handle_event(\"disconnect\")\ndef connect_handler():\n print('Blynk disconnected')\n",""};const Zd=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.show("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},$d=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},tI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.showstatic("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},eI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.show("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},iI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},nI=function(t,e){e.definitions_.import_matrix="import matrix";var i={"#000000":"0","#ff0000":"1"};return['matrix.Image("'+i[t.getFieldValue("00")]+i[t.getFieldValue("01")]+i[t.getFieldValue("02")]+i[t.getFieldValue("03")]+i[t.getFieldValue("04")]+i[t.getFieldValue("05")]+i[t.getFieldValue("06")]+i[t.getFieldValue("07")]+i[t.getFieldValue("08")]+i[t.getFieldValue("09")]+i[t.getFieldValue("0a")]+i[t.getFieldValue("0b")]+i[t.getFieldValue("0c")]+i[t.getFieldValue("0d")]+i[t.getFieldValue("0e")]+i[t.getFieldValue("0f")]+":"+i[t.getFieldValue("10")]+i[t.getFieldValue("11")]+i[t.getFieldValue("12")]+i[t.getFieldValue("13")]+i[t.getFieldValue("14")]+i[t.getFieldValue("15")]+i[t.getFieldValue("16")]+i[t.getFieldValue("17")]+i[t.getFieldValue("18")]+i[t.getFieldValue("19")]+i[t.getFieldValue("1a")]+i[t.getFieldValue("1b")]+i[t.getFieldValue("1c")]+i[t.getFieldValue("1d")]+i[t.getFieldValue("1e")]+i[t.getFieldValue("1f")]+":"+i[t.getFieldValue("20")]+i[t.getFieldValue("21")]+i[t.getFieldValue("22")]+i[t.getFieldValue("23")]+i[t.getFieldValue("24")]+i[t.getFieldValue("25")]+i[t.getFieldValue("26")]+i[t.getFieldValue("27")]+i[t.getFieldValue("28")]+i[t.getFieldValue("29")]+i[t.getFieldValue("2a")]+i[t.getFieldValue("2b")]+i[t.getFieldValue("2c")]+i[t.getFieldValue("2d")]+i[t.getFieldValue("2e")]+i[t.getFieldValue("2f")]+":"+i[t.getFieldValue("30")]+i[t.getFieldValue("31")]+i[t.getFieldValue("32")]+i[t.getFieldValue("33")]+i[t.getFieldValue("34")]+i[t.getFieldValue("35")]+i[t.getFieldValue("36")]+i[t.getFieldValue("37")]+i[t.getFieldValue("38")]+i[t.getFieldValue("39")]+i[t.getFieldValue("3a")]+i[t.getFieldValue("3b")]+i[t.getFieldValue("3c")]+i[t.getFieldValue("3d")]+i[t.getFieldValue("3e")]+i[t.getFieldValue("3f")]+":"+i[t.getFieldValue("40")]+i[t.getFieldValue("41")]+i[t.getFieldValue("42")]+i[t.getFieldValue("43")]+i[t.getFieldValue("44")]+i[t.getFieldValue("45")]+i[t.getFieldValue("46")]+i[t.getFieldValue("47")]+i[t.getFieldValue("48")]+i[t.getFieldValue("49")]+i[t.getFieldValue("4a")]+i[t.getFieldValue("4b")]+i[t.getFieldValue("4c")]+i[t.getFieldValue("4d")]+i[t.getFieldValue("4e")]+i[t.getFieldValue("4f")]+":"+i[t.getFieldValue("50")]+i[t.getFieldValue("51")]+i[t.getFieldValue("52")]+i[t.getFieldValue("53")]+i[t.getFieldValue("54")]+i[t.getFieldValue("55")]+i[t.getFieldValue("56")]+i[t.getFieldValue("57")]+i[t.getFieldValue("58")]+i[t.getFieldValue("59")]+i[t.getFieldValue("5a")]+i[t.getFieldValue("5b")]+i[t.getFieldValue("5c")]+i[t.getFieldValue("5d")]+i[t.getFieldValue("5e")]+i[t.getFieldValue("5f")]+":"+i[t.getFieldValue("60")]+i[t.getFieldValue("61")]+i[t.getFieldValue("62")]+i[t.getFieldValue("63")]+i[t.getFieldValue("64")]+i[t.getFieldValue("65")]+i[t.getFieldValue("66")]+i[t.getFieldValue("67")]+i[t.getFieldValue("68")]+i[t.getFieldValue("69")]+i[t.getFieldValue("6a")]+i[t.getFieldValue("6b")]+i[t.getFieldValue("6c")]+i[t.getFieldValue("6d")]+i[t.getFieldValue("6e")]+i[t.getFieldValue("6f")]+":"+i[t.getFieldValue("70")]+i[t.getFieldValue("71")]+i[t.getFieldValue("72")]+i[t.getFieldValue("73")]+i[t.getFieldValue("74")]+i[t.getFieldValue("75")]+i[t.getFieldValue("76")]+i[t.getFieldValue("77")]+i[t.getFieldValue("78")]+i[t.getFieldValue("79")]+i[t.getFieldValue("7a")]+i[t.getFieldValue("7b")]+i[t.getFieldValue("7c")]+i[t.getFieldValue("7d")]+i[t.getFieldValue("7e")]+i[t.getFieldValue("7f")]+'")',e.ORDER_ATOMIC]},sI=function(t,e){return e.definitions_.import_matrix="import matrix",["matrix.Image."+t.getFieldValue("image"),e.ORDER_ATOMIC]},oI=function(t,e){return e.definitions_.import_matrix="import matrix",["matrix.get_pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},pI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.set_pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},uI=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_brightness()",e.ORDER_ATOMIC]},aI=function(t,e){e.definitions_.import_matrix="import matrix";return["matrix.get_screenimage()",e.ORDER_ATOMIC]},lI=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},_I=function(t,e){return e.definitions_.import_matrix="import matrix","matrix.blink_rate("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},rI=function(t,e){e.definitions_.import_matrix="import matrix";return"matrix.clear()\n"},dI=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},II=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},TI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},hI=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"width",e.ORDER_ATOMIC),p=e.valueToCode(this,"height",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP"),l="";switch(u){case"True":l=i+".show_fill_rect("+n+", "+s+", "+o+", "+p+","+a+")\n";break;case"False":l=i+".show_rect("+n+", "+s+", "+o+", "+p+","+a+")\n"}return l},mI=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP"),n=e.valueToCode(t,"A",e.ORDER_ATOMIC),s=e.valueToCode(t,"B",e.ORDER_ATOMIC);return["INTERSECTION"==i?n+"-("+n+"-"+s+")":n+i+s,e.ORDER_ATOMIC]},cI=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+o+", 1)\n"},OI=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},RI=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MI=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},EI=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"TM1650"==o?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+o+"("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},CI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+this.getFieldValue("STAT")+"()\n"},AI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+"_show_num("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},gI=function(t,e){var i=this.getFieldValue("TYPE");return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+i+"_show_dot("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},SI=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},DI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),o=e.valueToCode(this,"r",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",u=this.getFieldValue("OP"),a="";switch(p){case"True":a=i+".show_fill_circle("+n+", "+s+", "+o+", "+u+")\n";break;case"False":a=i+".show_circle("+n+", "+s+", "+o+", "+u+")\n"}return a},NI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),o=e.valueToCode(this,"x1",e.ORDER_ATOMIC),p=e.valueToCode(this,"y1",e.ORDER_ATOMIC),u=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),l="TRUE"==this.getFieldValue("fill")?"True":"False",_=this.getFieldValue("OP"),r="";switch(l){case"True":r=i+".show_fill_triangle("+n+", "+s+", "+o+", "+p+", "+u+", "+a+", "+_+")\n";break;case"False":r=i+".show_triangle("+n+", "+s+", "+o+", "+p+", "+u+", "+a+", "+_+")\n"}return r},fI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},LI=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},FI=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),o=this.getFieldValue("key");return"32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=n+" = matrix32x12.Matrix("+s+")\n"):"TM1637"==o&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+o+"("+s+")\n"),i},vI=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_matrix32x12="import matrix32x12",i+".set_buffer("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},PI=function(t,e){return e.definitions_.import_matrix32x12="import matrix32x12",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},VI=function(t,e){return e.definitions_.import_mixiot="import mixiot","mixiot.wlan_connect("+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},yI=function(t,e){return e.definitions_.import_onenet="import onenet",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = onenet.init_MQTT_client("+e.valueToCode(this,"CLIENT",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+", "+(e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)||"None")+")\n"},YI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".do_disconnect()\n"},bI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"DICT",e.ORDER_ATOMIC),s="TRUE"==this.getFieldValue("is_print")?"True":"False";return e.definitions_.import_onenet="import onenet",i+".publish("+n+", is_print = "+s+")\n"},kI=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return e.definitions_.import_onenet="import onenet",i+".check_msg()\n"},xI=function(t,e){e.definitions_.import_onenet="import onenet";var i=new Array(this.itemCount_),n=new Array(this.itemCount_),s=new Array(this.itemCount_),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);for(let t=0;te?t[e]:"ni-hao"),"KEY"+e).appendField("”:")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},fm={init:function(){this.setColour(Sm),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("启动识别 返回结果"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("语音识别,获取识别结果")}},Lm={init:function(){this.setColour(Sm),this.appendValueInput("SUB").appendField("").setCheck("var"),this.appendDummyInput().appendField("注销识别 内存释放"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("语音识别,注销语音识别,释放内存")}},Fm="#90A244",vm={init:function(){this.setColour(Fm),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["否","0"],["是","1"]]),"flag"),this.setOutput(!0),this.setTooltip()}},Pm={init:function(){this.setColour(Fm),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("path").appendField("打开路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("打开一个新的图像对象")}},Vm={init:function(){this.setColour(Fm),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField("打开空图"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("打开一个空的图像对象")}},ym={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像信息"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["宽度","width"],["高度","height"],["格式","format"],["大小","size"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("获取图像的宽度、高度、格式、大小")}},Ym={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像保存"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("path").setAlign(Rt.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("图像的副本保存到文件系统")}},bm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像截取"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("复制一个图像图像的副本")}},km={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("RGB"),this.appendDummyInput().appendField("["),this.appendValueInput("R").setCheck(Number),this.appendValueInput("G").appendField(",").setCheck(Number),this.appendValueInput("B").appendField(",").setCheck(Number),this.appendDummyInput().appendField("]"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("对图像进行适当压缩")}},xm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像压缩"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("quality").setAlign(Rt.inputs.Align.RIGHT).appendField("压缩率").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("对图像进行适当压缩")}},Xm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像清除"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("将图像中的所有像素设置为零")}},Gm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像转换"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendDummyInput().appendField("转换为").appendField(new Rt.FieldDropdown([["灰度图","to_grayscale"],["彩色图","to_rgb565"],["彩虹图","to_rainbow"],["AI格式","pix_to_ai"],["字节块","to_bytes"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("将图像转换为灰度图、彩色图、彩虹图像")}},Hm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("修改点颜色"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("设置图像某点像素值")}},Um={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("获取点颜色"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("获取图像某点像素值")}},wm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("字库加载"),this.appendValueInput("path").setAlign(Rt.inputs.Align.RIGHT).appendField("路径").setCheck(String),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("从SD中加载需要显示文字的字库")}},Bm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("字库释放"),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("释放字库所占的内存")}},Wm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制文本(中)"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个文本")}},Km={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制文本"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.appendValueInput("x_spacing").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个中文文本")}},jm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制文本(英)"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("x0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-x").setCheck(Number),this.appendValueInput("y0").setAlign(Rt.inputs.Align.RIGHT).appendField("起-y").setCheck(Number),this.appendValueInput("tex").setAlign(Rt.inputs.Align.RIGHT).appendField("内容").setCheck(String),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("scale").setAlign(Rt.inputs.Align.RIGHT).appendField("字号").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上绘制一个字符文本")}},Qm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制直线"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一条从(x0,y0)到(x1,y1)的线")}},qm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制箭头"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyxy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个箭头")}},Jm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制十字"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("延伸").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个十字")}},zm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制圆形"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xyr"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个圆形")}},Zm={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制矩形"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xywh"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("图像上绘制一个矩形")}},$m={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制特征点"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("keypoints").setAlign(Rt.inputs.Align.RIGHT).appendField("对象"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("大小").setCheck(Number),this.appendValueInput("thi").setAlign(Rt.inputs.Align.RIGHT).appendField("粗细").setCheck(Number),this.appendValueInput("fil").setAlign(Rt.inputs.Align.RIGHT).appendField("填充").setCheck(Number),this.setOutput(!0),this.setTooltip("绘制一个特征点对象的各个点")}},tc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("绘制图像"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("坐标-xy"),this.appendValueInput("x_scale").setAlign(Rt.inputs.Align.RIGHT).appendField("x缩放").setCheck(Number),this.appendValueInput("y_scale").setAlign(Rt.inputs.Align.RIGHT).appendField("y缩放").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("绘制一个image图像")}},ec={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("直线识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("theta_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendValueInput("rho_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并斜率").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别直线,返回image.line对象列表")}},ic={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("线段识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("distance").setAlign(Rt.inputs.Align.RIGHT).appendField("间距").setCheck(Number),this.appendValueInput("difference").setAlign(Rt.inputs.Align.RIGHT).appendField("合并角度").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别线段,返回image.line对象列表")}},nc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("圆形识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("r_min").setAlign(Rt.inputs.Align.RIGHT).appendField("最小r").setCheck(Number),this.appendValueInput("r_max").setAlign(Rt.inputs.Align.RIGHT).appendField("最大r").setCheck(Number),this.appendValueInput("r_step").setAlign(Rt.inputs.Align.RIGHT).appendField("步长r").setCheck(Number),this.appendValueInput("x_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并x值").setCheck(Number),this.appendValueInput("y_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并y值").setCheck(Number),this.appendValueInput("r_margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并r值").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[circle]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用霍夫变换识别圆形,返回image.cirle对象列表")}},sc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("矩形识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[rect]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用四元检测识别矩形,返回image.rect对象列表")}},oc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("线性回归"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("robust").setAlign(Rt.inputs.Align.RIGHT).appendField("泰尔指数").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[line]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("计算线性回归,返回image.line对象列表")}},pc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("直线解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","line"],["x1分量","x1"],["y1分量","y1"],["x2分量","x2"],["y2分量","y2"],["长度","length"],["角度","theta"],["斜率","rho"],["模","magnitude"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.line列表,获取直线信息")}},uc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("圆形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xyr","circle"],["x分量","x"],["y分量","y"],["r分量","r"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.circle列表,获取圆形信息")}},ac={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("矩形解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.rect列表,获取矩形信息")}},lc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("直方图均衡"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("limit").setAlign(Rt.inputs.Align.RIGHT).appendField("对比度").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单直方图均衡化")}},_c={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("模糊滤波"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("自适应"),this.appendValueInput("offset").setAlign(Rt.inputs.Align.RIGHT).appendField("补偿").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单模糊滤波")}},rc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("卡通化滤波"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("seed").setAlign(Rt.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Rt.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.setOutput(!0),this.setTooltip("图像上的简单卡通滤波器")}},dc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像腐蚀"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像腐蚀,从分割区域的边缘删除像素(白色目标区域)")}},Ic={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像膨胀"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.setOutput(!0),this.setTooltip("图像膨胀,将像素添加到分割区域的边缘中(白色目标区域)")}},Tc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像填充"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("开始坐标"),this.appendValueInput("color").setAlign(Rt.inputs.Align.RIGHT).appendField("颜色").setCheck(Number),this.appendValueInput("seed").setAlign(Rt.inputs.Align.RIGHT).appendField("原始差异").setCheck(Number),this.appendValueInput("float").setAlign(Rt.inputs.Align.RIGHT).appendField("相邻差异").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("反转"),this.appendValueInput("clear").setAlign(Rt.inputs.Align.RIGHT).appendField("清除"),this.setOutput(!0),this.setTooltip("像洪水一样填充图像中低矮凹陷的地方(洪水填充)")}},hc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像投影"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("垂直投影"),this.setOutput(!0),this.setTooltip("图像从笛卡尔坐标到线性极坐标重新投影")}},mc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像反转"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("翻转图像中的所有像素值")}},cc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("校正缩放"),this.appendValueInput("VAR").appendField("图像").setCheck("var"),this.appendValueInput("strength").appendField("校正值").setCheck(Number),this.appendValueInput("zoom").appendField("缩放值").setCheck(Number),this.setOutput(!0),this.setTooltip("翻转图像中的所有像素值")}},Oc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像二值化"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值").setCheck(Number),this.appendValueInput("invert").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值反转"),this.appendValueInput("zero").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值像素为零"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("根据像素是否在阈值列表 thresholds 中的阈值内,将图像中的所有像素设置为黑色或白色。")}},Rc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("图像边缘检测"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("卷积核尺寸").setCheck(Number),this.appendValueInput("kernel").setAlign(Rt.inputs.Align.RIGHT).appendField("内核"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("通过过滤器内核对图像进行卷积。")}},Mc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("条形码识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[barcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setOutput(!0),this.setTooltip("使用条形码识别,返回image.barcode对象列表")}},Ec={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("二维码识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[qrcode]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用二维码识别,返回image.line对象列表")}},Cc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("AprilTag识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[apriltag]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用image.TAG36H11识别,返回image.apriltag对象列表")}},Ac={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("二维码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["版本","version"],["掩码","mask"],["类型","data_type"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.qrcode列表,获取二维码信息")}},gc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("条形码解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["内容","payload"],["类型","type"],["角度","rotation"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},Sc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("AprilTag解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["号码","id"],["家族","family"],["弧度","rotation"],["x向距离","x_translation"],["y向距离","y_translation"],["z向距离","z_translation"],["x向弧度","x_rotation"],["y向弧度","y_rotation"],["z向弧度","z_rotation"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.apriltag列表,获取Apriltag信息")}},Dc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("色块追踪"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("LIST").setAlign(Rt.inputs.Align.RIGHT).appendField("阈值LAB"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("area").setAlign(Rt.inputs.Align.RIGHT).appendField("滤掉区域").setCheck(Number),this.appendValueInput("pixel").setAlign(Rt.inputs.Align.RIGHT).appendField("滤掉素数").setCheck(Number),this.appendValueInput("margin").setAlign(Rt.inputs.Align.RIGHT).appendField("合并").setCheck(Number),this.appendValueInput("key").setAlign(Rt.inputs.Align.RIGHT).appendField("重叠"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[blob]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用色块追踪,返回image.blob对象列表")}},Nc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("颜色识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[histogram]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用直方图识别颜色,返回image.histogram对象列表")}},fc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("追踪解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["像素量","pixels"],["弧度","rotation"],["号码数","code"],["合并量","count"],["面积","area"],["密度比","density"]]),"key"),this.setOutput(!0),this.setTooltip("通过image.blob列表,获取追踪色块信息")}},Lc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("色阈浮点"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图浮点列表","bins"],["LAB的L浮点列表","l_bins"],["LAB的A浮点列表","a_bins"],["LAB的B浮点列表","b_bins"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},Fc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("颜色解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendValueInput("percentile").appendField("CDF").setCheck(Number),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过histogram列表,获取识别颜色信息")}},vc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("色阈解析"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["灰度图值","value"],["LAB的L值","l_value"],["LAB的A值","a_value"],["LAB的B值","b_value"]]),"key"),this.setOutput(!0),this.setTooltip("通过遍历image.barcode列表,获取条形码信息")}},Pc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("RGB888值"),this.appendValueInput("LIST").appendField("由LAB"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("LAB转RGB888")}},Vc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("LAB值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转LAB")}},yc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("灰度值"),this.appendValueInput("LIST").appendField("由RGB888"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("RGB888转灰度图")}},Yc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("RGB888"),this.appendValueInput("g_value").appendField("由灰度值").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("灰度图转RGB888")}},bc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("定向梯度图"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("size").setAlign(Rt.inputs.Align.RIGHT).appendField("线长").setCheck(Number),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("用HOG(定向梯度直方图)线替换ROI中的像素,仅支持灰度图像")}},kc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("特征识别"),this.appendValueInput("VAR").setAlign(Rt.inputs.Align.RIGHT).appendField("图像").setCheck("var"),this.appendValueInput("roi").setAlign(Rt.inputs.Align.RIGHT).appendField("区域-xywh"),this.appendValueInput("max_keypoints").setAlign(Rt.inputs.Align.RIGHT).appendField("关键点数").setCheck(Number),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("角点数").setCheck(Number),this.appendValueInput("scale_factor").setAlign(Rt.inputs.Align.RIGHT).appendField("比例因子").setCheck(Number),this.appendValueInput("normalized").setAlign(Rt.inputs.Align.RIGHT).appendField("多比例"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[keypoints]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},xc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("特征比较"),this.appendValueInput("VAR1").setAlign(Rt.inputs.Align.RIGHT).appendField("对象1").setCheck("var"),this.appendValueInput("VAR2").setAlign(Rt.inputs.Align.RIGHT).appendField("对象2").setCheck("var"),this.appendValueInput("threshold").setAlign(Rt.inputs.Align.RIGHT).appendField("相似度").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("返回[kptmatch]"),this.setOutput(!0),this.setInputsInline(!1),this.setTooltip("使用特征识别,返回image.keypoints对象列表")}},Xc={init:function(){this.setColour(Fm),this.appendDummyInput().appendField("特征信息"),this.appendValueInput("VAR").appendField("对象").setCheck("var"),this.appendDummyInput().appendField("获取").appendField(new Rt.FieldDropdown([["坐标-xywh","rect"],["x分量","x"],["y分量","y"],["w分量","w"],["h分量","h"],["中心-x","cx"],["中心-y","cy"],["匹配量","count"],["弧度","theta"],["匹配点-xy","match"]]),"key"),this.setOutput(!0),this.setTooltip("通过image.kptmatch列表,获取追踪特征信息")}},Gc=20,Hc={init:function(){this.setColour(Gc),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_HIGH,"HIGH"],[Rt.Msg.MIXLY_LOW,"LOW"]]),"BOOL"),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_HIGHLOW_TOOLTIP)}},Uc={init:function(){this.setColour(Gc),this.appendDummyInput().appendField("初始化 "),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_Digital_PINMODEOUT,"GPIO.OUT"],[Rt.Msg.MIXLY_Digital_PINMODEIN,"GPIO.IN"],[Rt.Msg.MIXLY_PINMODEPULLUP,"GPIO.IN, board.GPIO.PULL_UP"],[Rt.Msg.MIXLY_PINMODEPULLDOWN,"GPIO.IN, board.GPIO.PULL_DOWN"]]),"MODE"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_INIT_TOOLTIP)}},wc={init:function(){this.setColour(Gc),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_Digital_PINMODEOUT).setCheck(Number),this.appendValueInput("STAT").appendField(Rt.Msg.MIXLY_STAT).setCheck([Number,Boolean]),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_WRITE_TOOLTIP)}},Bc={init:function(){this.setColour(Gc),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(Rt.Msg.MIXLY_Digital_PINMODEIN).setCheck(Number),this.appendDummyInput().appendField("值"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_DIGITAL_READ_TOOLTIP)}},Wc={init:function(){this.setColour(Gc),this.appendDummyInput().appendField("初始化 PWM输出"),this.appendValueInput("PIN",Number).appendField("管脚").setCheck(Number),this.appendValueInput("freq").appendField("频率").setCheck(Number),this.appendValueInput("VAR").appendField("定时器").setCheck("var"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化PWM输出设置,需要调用定时器")}},Kc={init:function(){this.setColour(Gc),this.appendValueInput("PIN",Number).appendField("PWM输出").setCheck(Number),this.appendValueInput("pwm").appendField("占空比").setCheck(Number),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("PWM输出,值范围为0-100%,可以为小数")}},jc={init:function(){this.setColour(Gc),this.appendDummyInput().appendField("硬件中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_MODE).appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_RISING,"GPIO.IRQ_RISING"],[Rt.Msg.MIXLY_FALLING,"GPIO.IRQ_FALLING"],[Rt.Msg.MIXLY_CHANGE,"GPIO.IRQ_BOTH"]]),"mode"),this.appendValueInput("DO").appendField(Rt.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_INOUT_PIN_ATTACHINTERRUPT_TOOLTIP)}},Qc={init:function(){this.setColour(Gc),this.appendDummyInput().appendField("取消中断"),this.appendValueInput("PIN",Number).appendField("管键").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("取消中断")}},qc="#637AAC",Jc={init:function(){this.setColour(qc),this.appendDummyInput().appendField("OneNET 连接WiFi"),this.appendValueInput("WIFINAME").setCheck(String).appendField(Rt.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(Rt.Msg.HTML_PASSWORD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},zc={init:function(){this.setColour(qc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"+Rt.Msg.TUPLE_JOIN),this.appendValueInput("CLIENT").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_CLIENT),this.appendValueInput("SERVER").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SERVER),this.appendValueInput("USERNAME").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_USERNAME),this.appendValueInput("PASSWORD").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_PASSWORD),this.appendValueInput("TOPIC").setAlign(Rt.inputs.Align.RIGHT).setCheck(String).appendField(Rt.Msg.MIXLY_ESP32_ONENET_TOPIC),this.appendValueInput("SUB").setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.MIXLY_ESP32_ONENET_SUB),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CONNECT_TOOLTIP)}},Zc={init:function(){this.setColour(qc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_DISCONNECT_TOOLTIP)}},$c={init:function(){this.setColour(qc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_CHECK_TOOLTIP)}},tO={init:function(){this.setColour(qc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET"),this.appendValueInput("DICT").appendField(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),this.appendDummyInput().appendField(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PRINT_DATA).appendField(new Rt.FieldCheckbox("TRUE"),"is_print"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_DICT_TOOLTIP)}},eO={init:function(){this.setColour(qc),this.appendValueInput("VAR").setCheck("var").appendField("OneNET").setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(new Rt.FieldLabel(Rt.Msg.MIXLY_ESP32_PUBLISH_ONENET),"TIP").setAlign(Rt.inputs.Align.RIGHT),this.itemCount_=2,this.updateShape_(),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new Rt.icons.MutatorIcon(["iot_publish_item"],this)),this.setTooltip(Rt.Msg.MIXLY_ESP32_IOT_ONENET_PUBLISH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("iot_publish_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){Rt.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},iO={init:function(){this.setColour(qc),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},nO={init:function(){this.setColour(qc),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},sO={init:function(){this.setColour(qc),this.appendDummyInput().appendField(Rt.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},oO=Jc,pO=zc,uO=Zc,aO=$c,lO=eO,_O=230;Rt.FieldTextInput.math_number_validator=function(t){return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null},Rt.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const rO={init:function(){this.setColour(_O),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},dO={init:function(){this.setColour(_O);this.appendDummyInput("").appendField(Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new Rt.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:Rt.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},IO={init:function(){this.setColour(_O),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},TO={init:function(){this.setColour(_O),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new Rt.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:Rt.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:Rt.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},hO={init:function(){this.setColour(_O),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new Rt.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},mO={init:function(){this.setColour(_O),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new Rt.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:Rt.Msg.MATH_TRIG_TOOLTIP_SIN,COS:Rt.Msg.MATH_TRIG_TOOLTIP_COS,TAN:Rt.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:Rt.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:Rt.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:Rt.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:Rt.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},cO={init:function(){var t=[[Rt.Msg.LANG_MATH_TO_ROUND,"round"],[Rt.Msg.LANG_MATH_TO_CEIL,"ceil"],[Rt.Msg.LANG_MATH_TO_FLOOR,"floor"],[Rt.Msg.MATH_ABS,"fabs"],[Rt.Msg.MATH_SQRT,"sqrt"]];this.setColour(_O),this.appendValueInput("A").setCheck(Number).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:Rt.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:Rt.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:Rt.Msg.MATH_SINGLE_TOOLTIP_SQ,round:Rt.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:Rt.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:Rt.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},OO={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(_O),this.appendValueInput("A").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},RO={init:function(){var t=[[Rt.Msg.MIXLY_MAX,"max"],[Rt.Msg.MIXLY_MIN,"min"]];this.setColour(_O),this.appendValueInput("LIST").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(new Rt.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:Rt.Msg.MIXLY_TOOLTIP_MATH_MAX,min:Rt.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},MO={init:function(){var t=[[Rt.Msg.MATH_TWO,"two"],[Rt.Msg.MATH_EIGHT,"eight"],[Rt.Msg.MATH_TEN,"ten"],[Rt.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(_O),this.appendDummyInput("").appendField(Rt.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new Rt.FieldDropdown(t),"OP").appendField(Rt.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(Rt.Msg.MATH_ZHW).appendField(new Rt.FieldDropdown(t),"OP2").appendField(Rt.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:Rt.Msg.MATH_Before_two,eight:Rt.Msg.MATH_Before_eight,ten:Rt.Msg.MATH_Before_ten,sixteen:Rt.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:Rt.Msg.MATH_Behind_two,eight:Rt.Msg.MATH_Behind_eight,ten:Rt.Msg.MATH_Behind_ten,sixteen:Rt.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},EO={init:function(){var t=[[Rt.Msg.LANG_MATH_INT,"int"],[Rt.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(_O),this.setOutput(!0,Number),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_RANDOM).appendField(new Rt.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(Rt.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT).appendField(Rt.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:Rt.Msg.LANG_MATH_INT,float:Rt.Msg.LANG_MATH_FLOAT_RANDOM};return Rt.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},CO={init:function(){this.setColour(_O),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(Rt.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MATH_CONSTRAIN_TOOLTIP)}},AO={init:function(){this.setColour(_O),this.appendValueInput("NUM",Number).appendField(Rt.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(Rt.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(Rt.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_MAP)}},gO={init:function(){this.setColour(_O),this.appendDummyInput().appendField(new Rt.FieldTextInput("0",Rt.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(Rt.Msg.MATH_NUMBER_TOOLTIP)}},SO={init:function(){this.setColour(_O),this.appendValueInput("NUM").setCheck(Number).appendField(Rt.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},DO=AO,NO="#2E9883",fO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("PS2手柄"),this.appendValueInput("miso_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("DAT#").setCheck(Number),this.appendValueInput("mosi_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("CMD#").setCheck(Number),this.appendValueInput("cs_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("SEL#").setCheck(Number),this.appendValueInput("clk_pin",Number).setAlign(Rt.inputs.Align.RIGHT).appendField("CLK#").setCheck(Number),this.appendValueInput("vol").setAlign(Rt.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用PS2手柄控制")}},LO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("NES 初始化"),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("UART键盘"),this.appendValueInput("vol").setAlign(Rt.inputs.Align.RIGHT).appendField("音量").setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("初始化NES,使用串口键盘控制")}},FO={init:function(){this.setColour(NO),this.appendDummyInput().appendField("NES 运行游戏"),this.appendValueInput("path").appendField("路径").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("运行NES游戏ROM")}},vO="#5B6DA5",PO={init:function(){this.setColour(vO),this.appendDummyInput().appendField("ESP-AT 初始化"),this.appendValueInput("RX",Number).appendField("RX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("使用串口连接ESP-AT设备,并初始化配置")}},VO={init:function(){this.setColour(vO),this.appendDummyInput().appendField("WiFi扫描"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("扫描附近可用的WiFi信息-返回多信息列表")}},yO={init:function(){this.setColour(vO),this.appendDummyInput("").appendField("WiFi连接"),this.appendValueInput("account").appendField("名称").setCheck(String),this.appendValueInput("password").appendField("密码").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("配置WiFi名称及密码,连接WiFi上网")}},YO={init:function(){this.setColour(vO),this.appendDummyInput().appendField("WiFi").appendField(new Rt.FieldDropdown([["连接信息","1"],["连接状态","2"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("查看wifi连接信息或者连接状态")}},bO={init:function(){this.setColour(vO),this.appendDummyInput().appendField("WiFi断开连接"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("断开wifi连接")}},kO={init:function(){this.setColour(vO),this.appendDummyInput("").setAlign(Rt.inputs.Align.RIGHT).appendField("打开热点"),this.appendValueInput("account").setAlign(Rt.inputs.Align.RIGHT).appendField("名称").setCheck(String),this.appendValueInput("password").setAlign(Rt.inputs.Align.RIGHT).appendField("密码").setCheck(String),this.appendValueInput("chl").setAlign(Rt.inputs.Align.RIGHT).appendField("通道").setCheck(Number),this.appendDummyInput().setAlign(Rt.inputs.Align.RIGHT).appendField("加密").appendField(new Rt.FieldDropdown([["WPA2_PSK","WPA2_PSK"],["OPEN","OPEN"],["WPA_PSK","WPA_PSK"],["WPA_WPA2_PSK","WPA_WPA2_PSK"]]),"mode"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("打开WiFi热点并配置")}},xO={init:function(){this.setColour(vO),this.appendDummyInput().appendField("关闭热点"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("关闭热点")}},XO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("套接字 初始化"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("套接字初始化")}},GO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("获取地址"),this.appendValueInput("addr").setAlign(Rt.inputs.Align.RIGHT).appendField("域名").setCheck(String),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接字根据域名解析地址IP信息")}},HO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("创建连接"),this.appendValueInput("address").appendField("地址"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("套接字创建目标IP地址连接")}},UO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("超时时间"),this.appendValueInput("time").setAlign(Rt.inputs.Align.RIGHT).appendField("").setCheck(Number),this.appendDummyInput().appendField("s"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("设置阻塞套接字超时时间")}},wO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendValueInput("content").appendField("发送数据"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip("套接发送数据")}},BO={init:function(){this.setColour(vO),this.appendValueInput("VAR").appendField("").setCheck("var"),this.appendDummyInput().appendField("接收数据"),this.appendValueInput("size").appendField("字节").setCheck(Number),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip("套接接收数据,返回接收到的数据对象")}},WO={init:function(){this.setColour(vO),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},KO=230,jO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital),"PIN"),this.setOutput(!0)}},QO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},qO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.analog),"PIN"),this.setOutput(!0)}},JO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},zO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.dac),"PIN"),this.setOutput(!0)}},ZO={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},$O={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},tR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},eR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},iR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},nR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.touch),"PIN"),this.setOutput(!0)}},sR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},oR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},pR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},uR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},aR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},lR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},_R={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},rR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},dR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},IR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},TR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},hR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},mR={init:function(){this.setColour(KO),this.appendDummyInput("").appendField(new Rt.FieldDropdown(Mt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},cR=40,OR={init:function(){this.setColour(cR),this.appendDummyInput("").appendField(new Rt.FieldDropdown([["A","17"],["B","16"]]),"KEY"),this.setOutput(!0),this.setTooltip()}},RR={init:function(){this.setColour(cR),this.appendDummyInput().appendField("初始化"),this.appendValueInput("key").appendField("按键"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化按键")}},MR={init:function(){this.setColour(cR),this.appendValueInput("key").appendField("按键"),this.appendDummyInput().appendField("被按下?"),this.setInputsInline(!0),this.setOutput(!0,[Boolean,Number]),this.setTooltip("获取按键值")}},ER={init:function(){this.setColour(cR),this.appendDummyInput().appendField("DHT11"),this.appendValueInput("PIN",Number).appendField(Rt.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField("获取").appendField(new Rt.FieldDropdown([["温度-℃","0"],["湿度-%","1"],["温湿度","2"]]),"TYPE"),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip("dht11,获取温湿度")}},CR={init:function(){this.setColour(cR),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},AR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},gR={init:function(){this.setColour(cR),this.appendValueInput("I2CSUB").appendField(Rt.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(Rt.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(Rt.Msg.MIXLY_SETUP+Rt.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new Rt.FieldDropdown([["MPU9250","MPU9250"],["BMP280","BMP280"],["SHT20","SHT20"],["ADXL345","ADXL345"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("MPU9250","key");var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return Rt.Msg.MIXLY_ESP32_SENSOR_USE_I2C_TOOLTIP+{MPU9250:"MPU9250",SHT20:"SHT20",BMP280:"BMP280",ADXL345:"ADXL345"}[e]}))}},SR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("BMP280").setCheck("var"),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[Rt.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":Rt.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":Rt.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},DR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("SHT20").setCheck("var"),this.appendDummyInput("").appendField(new Rt.FieldDropdown([[Rt.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[Rt.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":Rt.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":Rt.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},NR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_GET+Rt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},fR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+Rt.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},LR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_GETTEMPERATUE)}},FR={init:function(){this.setColour(cR),this.appendValueInput("SUB").appendField("ADXL345").setCheck("var"),this.appendDummyInput().appendField(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new Rt.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=Rt.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=Rt.Msg.MIXLY_MICROBIT_Direction,s=Rt.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":Rt.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},vR=65,PR={init:function(){this.setColour(vR),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)}},VR={init:function(){this.setColour(vR),this.appendValueInput("CONTENT",String).appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_Huanhang_TOOLTIP+Rt.Msg.TEXT_PRINT_TOOLTIP)}},yR={init:function(){this.setColour(vR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.appendValueInput("CONTENT",Number).appendField(new Rt.FieldDropdown([[Rt.Msg.MATH_BIN,"bin"],[Rt.Msg.MATH_OCT,"oct"],[Rt.Msg.MATH_DEC,"int"],[Rt.Msg.MATH_HEX,"hex"]]),"STAT").setCheck(Number),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setFieldValue("hex","STAT"),this.setTooltip(Rt.Msg.TEXT_PRINT_HEX_TOOLTIP)}},YR={init:function(){this.setColour(vR),this.appendValueInput("char_marker").setCheck(String).appendField(Rt.Msg.MIXLY_MICROBIT_JS_SERIAL_WHEN_CONTAIN_DATA),this.appendStatementInput("DO").appendField(Rt.Msg.MIXLY_DO)}},bR={init:function(){this.setColour(vR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_READSTR),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERIAL_READ_STR)}},kR={init:function(){this.setColour(vR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Boolean),this.setTooltip(Rt.Msg.MIXLY_SERIAL_AVAILABLE1)}},xR={init:function(){this.setColour(vR),this.appendDummyInput().appendField("Serial").appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField(Rt.Msg.MIXLY_ESP32_READ_LINE),this.setOutput(!0,String),this.setTooltip(Rt.Msg.MIXLY_MICROBIT_JS_SERIAL_READ_LINE1)}},XR={init:function(){this.setColour(vR),this.appendDummyInput().appendField("Serial "+Rt.Msg.MIXLY_SERIAL_READSTR_UNTIL).appendField(new Rt.FieldDropdown([["new line","serial.delimiters(Delimiters.NewLine)"],[",","serial.delimiters(Delimiters.Comma)"],["$","serial.delimiters(Delimiters.Dollar)"],[":","serial.delimiters(Delimiters.Colon)"],[".","serial.delimiters(Delimiters.Fullstop)"],["#","serial.delimiters(Delimiters.Hash)"]]),"char_marker"),this.setInputsInline(!0),this.setOutput(!0,String)}},GR={init:function(){this.setColour(vR),this.appendValueInput("RX",Number).appendField(Rt.Msg.MIXLY_SETUP).appendField(new Rt.FieldDropdown([["uart1","1"],["uart2","2"],["uart3","3"]]),"mode").appendField("RX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("TX#").setCheck(Number).setAlign(Rt.inputs.Align.RIGHT),this.appendDummyInput().appendField(Rt.Msg.MIXLY_SERIAL_BEGIN).appendField(new Rt.FieldDropdown([["115200","115200"],["57600","57600"],["37400","38400"],["31250","31250"],["28800","28800"],["19200","19200"],["14400","14400"],["9600","9600"],["4800","4800"],["2400","2400"],["1200","1200"],["300","300"]]),"baudrate"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_SERIAL_softserial)}},HR={init:function(){this.setColour(vR),this.appendValueInput("VAR").appendField(Rt.Msg.blockpy_inout_raw_input).setCheck(String),this.setOutput(!0),this.setTooltip(Rt.Msg.INOUT_input_TOOLTIP)}},UR={init:function(){this.setColour(vR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINTLN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.BLOCKPY_PRINT_TOOLTIP)}},wR={init:function(){this.setColour(vR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(Rt.Msg.TEXT_PRINT_TOOLTIP)}},BR={init:function(){this.setColour(vR),this.appendValueInput("VAR").appendField(Rt.Msg.MIXLY_SERIAL_PRINT),this.appendValueInput("END").appendField(Rt.Msg.MIXLY_ENDSWITH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(Rt.Msg.MIXLY_PYTHON_INOUT_PRINT_END_TOOLTIP)}},WR={init:function(){this.setColour(vR),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new Rt.icons.MutatorIcon(["system_print_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(Rt.Msg.MIXLY_MIXPY_INOUT_PRINT_MANY_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("system_print_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n {\n"+e.statementToCode(this,"do")+"})\n"},fS=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},LS=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+")\n"},FS=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||Mt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},vS=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},PS=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},VS=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},yS=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},YS=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},bS=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},kS=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},xS=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},XS=function(){return"while True:\n pass\n"},GS=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},HS=function(t,e){e.definitions_["import machine"]="import machine";return"machine.reset()\n"},US=function(t,e){return e.definitions_["import gc"]="import gc",this.getFieldValue("gc")+"\n"},wS=function(t,e){return e.definitions_.import_os="import os","os.uname()"},BS=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},WS=function(t,e){e.definitions_["from machine import Timer"]="from machine import Timer";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=i%3,s=parseInt(i/3),o=e.valueToCode(this,"period",e.ORDER_NONE);return"tim"+i+" =Timer(Timer.TIMER"+n+",Timer.CHANNEL"+s+",mode=Timer.MODE_"+this.getFieldValue("mode")+",period = "+o+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},KS=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},jS=function(t,e){e.definitions_["from machine import Timer"]="from machine import Timer";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"tim"+i+" = Timer(Timer.TIMER"+i%3+",Timer.CHANNEL"+parseInt(i/3)+", mode=Timer.MODE_PWM)\n"},QS=jS,qS=WS,JS=KS,zS=BS;const ZS=function(t,e){return["["+this.getFieldValue("TEXT")+"]",e.ORDER_ATOMIC]},$S=function(t,e){return["("+this.getFieldValue("TEXT")+")",e.ORDER_ATOMIC]},tD=function(t,e){var i=this.getFieldValue("COLOR");return["("+("0x"+(i=i.substr(1)).substr(0,2))+","+("0x"+i.substr(2,2))+","+("0x"+i.substr(4,2))+")",e.ORDER_ATOMIC]},eD=function(t,e){var i=this.getFieldValue("COLOR");return[i=function(t){var e,i,n;e=(t=t.substr(1)).substr(0,2),i=t.substr(2,2),n=t.substr(4,2);var s=(64512&(t="0x"+(t=e+i+n)))>>10;return((248&t)>>3<<8)+((7&s)<<13)+((16252928&t)>>19<<3)+((56&s)>>3)}(i),e.ORDER_ATOMIC]};Object.assign(Rt.Variables,Ct),Object.assign(Rt.Procedures,ss),Rt.Python=vl,Rt.generator=vl,Mt.Profile.default={},Object.assign(Mt.Profile,pT),Object.assign(Mt.Profile.default,pT.k210),Object.assign(Rt.Blocks,e,i,n,s,o,p,u,a,l,_,r,d,I,F,L,f,N,Y,b,k,x,X,G,H,U,w,B,W,K,j,Q,q,J,z,Z,$),Object.assign(Rt.Python.forBlock,T,h,m,c,O,R,M,E,C,A,g,S,D,y,V,P,v,tt,et,it,nt,st,ot,pt,ut,at,lt,_t,rt,dt,It,Tt,ht,mt,ct,Ot)})(); \ No newline at end of file diff --git a/boards/default/micropython_nrf51822_microbit/main.bundle.js b/boards/default/micropython_nrf51822_microbit/main.bundle.js index 7dac22f9..cb205918 100644 --- a/boards/default/micropython_nrf51822_microbit/main.bundle.js +++ b/boards/default/micropython_nrf51822_microbit/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>rt,lists_zip_container:()=>pt,lists_zip_item:()=>at,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>Tt,controls_delay:()=>ht,controls_end_program:()=>Mt,controls_except:()=>Dt,controls_finally:()=>Ft,controls_flow_statements:()=>gt,controls_for:()=>Ct,controls_forEach:()=>ct,controls_for_range:()=>At,controls_if:()=>mt,controls_if_else:()=>ft,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>vt,controls_main:()=>dt,controls_pass:()=>Yt,controls_range:()=>Ot,controls_repeat_ext:()=>Pt,controls_thread:()=>Xt,controls_try:()=>Nt,controls_try_finally:()=>Rt,controls_whileUntil:()=>Et,datetime_fromtimestamp:()=>Gt,do_while:()=>bt,garbage_collection:()=>Vt,gene_unique_identifier:()=>kt,get_mem_alloc:()=>yt,get_mem_free:()=>Bt,get_unique_identifier:()=>Ut});var n={};t.r(n),t.d(n,{base_map:()=>re,generate_cartesian_product:()=>ae,math_arithmetic:()=>Kt,math_bit:()=>Qt,math_constant:()=>Ht,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>xt,math_number_base_conversion:()=>$t,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Jt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Me,char_to_ascii:()=>me,number_to_text:()=>Oe,os_system:()=>xe,text:()=>Ie,text_capital:()=>fe,text_center:()=>Ne,text_char:()=>Te,text_char_at:()=>Re,text_char_at2:()=>Ee,text_char_at3:()=>Ue,text_compareTo:()=>Be,text_compare_to:()=>Se,text_create_with_container:()=>be,text_create_with_item:()=>Ve,text_encode:()=>ke,text_equals_starts_ends:()=>Le,text_eval:()=>we,text_find:()=>De,text_format:()=>Xe,text_format_noreturn:()=>Ge,text_join:()=>he,text_join_seq:()=>Fe,text_length:()=>ce,text_random_char:()=>ge,text_replace:()=>Pe,text_split:()=>ve,text_strip:()=>Ye,text_substring:()=>Ae,text_substring2:()=>Ce,text_substring3:()=>ye,text_textarea:()=>de});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Li,content_in_lists:()=>fi,enumerate:()=>Si,list_many_input:()=>Ii,list_tolist:()=>Mi,list_tolist2:()=>Ai,list_trig:()=>pi,lists_2d_get_col_row_data:()=>Qe,lists_2d_get_data_with_col_row:()=>Je,lists_append_extend:()=>ti,lists_change_to:()=>li,lists_change_to_general:()=>Ti,lists_clear:()=>oi,lists_create_with:()=>qe,lists_create_with2:()=>mi,lists_create_with_container:()=>ze,lists_create_with_item:()=>Ze,lists_create_with_noreturn:()=>di,lists_create_with_text:()=>je,lists_create_with_text2:()=>Oi,lists_del_general:()=>hi,lists_find:()=>ri,lists_getIndex3:()=>ci,lists_getSublist3:()=>Ei,lists_get_index:()=>We,lists_get_random_item:()=>ei,lists_get_random_sublist:()=>ii,lists_get_sublist:()=>Ke,lists_insert_value:()=>ni,lists_insert_value2:()=>gi,lists_pop:()=>ui,lists_remove_at:()=>_i,lists_remove_at2:()=>Ci,lists_reverse:()=>si,lists_setIndex3:()=>Ri,lists_set_index:()=>$e,lists_sort:()=>ai});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>xi,dicts_add_or_change:()=>bi,dicts_clear:()=>Bi,dicts_create_with:()=>Di,dicts_create_with_container:()=>Fi,dicts_create_with_item:()=>Pi,dicts_create_with_noreturn:()=>Ki,dicts_deldict:()=>wi,dicts_delete:()=>Vi,dicts_get:()=>Yi,dicts_get_default:()=>Xi,dicts_items:()=>Ui,dicts_keys:()=>vi,dicts_length:()=>ki,dicts_pop:()=>Hi,dicts_setdefault:()=>Wi,dicts_to_json:()=>Qi,dicts_to_json2:()=>zi,dicts_to_to:()=>ji,dicts_todict:()=>Ji,dicts_update:()=>yi,dicts_values:()=>Gi,json_to_dicts:()=>qi});var u={};t.r(u),t.d(u,{logic_boolean:()=>sn,logic_compare:()=>$i,logic_compare_continous:()=>tn,logic_is:()=>rn,logic_is_in:()=>un,logic_negate:()=>nn,logic_null:()=>on,logic_operation:()=>en,logic_tobool:()=>pn,logic_true_or_false:()=>_n});var r={};t.r(r),t.d(r,{sdcard_mount:()=>vn,sdcard_use_spi_init:()=>Pn,storage_can_write_ornot:()=>On,storage_change_dir:()=>Dn,storage_close_file:()=>En,storage_delete_file:()=>gn,storage_file_seek:()=>Ln,storage_file_tell:()=>An,storage_file_write:()=>Tn,storage_fileopen:()=>ln,storage_fileopen_new:()=>In,storage_fileopen_new_encoding:()=>dn,storage_get_a_line:()=>mn,storage_get_contents:()=>Mn,storage_get_contents_without_para:()=>hn,storage_get_current_dir:()=>Sn,storage_get_file_size:()=>Cn,storage_get_filename:()=>cn,storage_is_file:()=>Fn,storage_list_all_files:()=>Rn,storage_make_dir:()=>fn,storage_open_file_with_os:()=>an,storage_rename:()=>Nn});var p={};t.r(p),t.d(p,{procedures_callnoreturn:()=>Un,procedures_callreturn:()=>Gn,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>Vn,procedures_ifreturn:()=>kn,procedures_mutatorarg:()=>Bn,procedures_mutatorcontainer:()=>yn,procedures_return:()=>wn});var a={};t.r(a),t.d(a,{tuple_change_to:()=>ts,tuple_create_with:()=>Hn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Jn,tuple_create_with_text_return:()=>Qn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>ms,set_clear:()=>Ts,set_create_with:()=>ps,set_create_with_container:()=>as,set_create_with_item:()=>ls,set_create_with_text_return:()=>Es,set_length:()=>Is,set_operate:()=>hs,set_operate_update:()=>Ms,set_pop:()=>ds,set_sub:()=>Os,set_toset:()=>Rs,set_update:()=>cs});var I={};t.r(I),t.d(I,{html_content:()=>Ss,html_content_more:()=>fs,html_document:()=>Cs,html_form:()=>Ds,html_head_body:()=>Ls,html_style:()=>Ns,html_style_color:()=>Ps,html_style_content:()=>Fs,html_text:()=>vs,html_title:()=>As});var d={};t.r(d),t.d(d,{attribute_access:()=>Ks,function_call:()=>xs,function_call_container:()=>Hs,function_call_item:()=>Ws,raw_block:()=>bs,raw_empty:()=>ys,raw_expression:()=>Vs,raw_table:()=>Xs,text_comment:()=>Bs,text_print_multiple:()=>Gs,text_print_multiple_container:()=>ks,text_print_multiple_item:()=>ws,type_check:()=>Us});var T={};t.r(T),t.d(T,{controls_type:()=>zs,controls_typeLists:()=>Zs,lists_zip:()=>$s,unpack_iterable_object:()=>to,variables_change:()=>qs,variables_get:()=>Js,variables_global:()=>js,variables_set:()=>Qs});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>ao,base_setup:()=>io,controls_delay:()=>po,controls_flow_statements:()=>ro,controls_for:()=>oo,controls_forEach:()=>Mo,controls_for_range:()=>_o,controls_if:()=>no,controls_interrupts:()=>To,controls_lambda:()=>Oo,controls_main:()=>eo,controls_millis:()=>lo,controls_nointerrupts:()=>ho,controls_pass:()=>Eo,controls_range:()=>mo,controls_repeat:()=>No,controls_repeat_ext:()=>Co,controls_thread:()=>Ro,controls_try_finally:()=>so,controls_whileUntil:()=>uo,datetime_fromtimestamp:()=>Do,do_while:()=>go,garbage_collection:()=>Ao,gene_unique_identifier:()=>Fo,get_mem_alloc:()=>Lo,get_mem_free:()=>So,get_unique_identifier:()=>fo,reset:()=>Io,time_sleep:()=>co});var M={};t.r(M),t.d(M,{base_map:()=>zo,generate_cartesian_product:()=>$o,math_arithmetic:()=>bo,math_bit:()=>Xo,math_constant:()=>vo,math_constant_mp:()=>Yo,math_constrain:()=>Ho,math_dec:()=>Uo,math_indexer_number:()=>Jo,math_map:()=>xo,math_max_min:()=>ko,math_number:()=>Po,math_number_base_conversion:()=>Wo,math_random:()=>wo,math_random_seed:()=>Ko,math_round:()=>Qo,math_selfcalcu:()=>Vo,math_single:()=>yo,math_to_int:()=>Go,math_trig:()=>Bo,text_to_number:()=>qo,text_to_number_skulpt:()=>jo,turn_to_int:()=>Zo});var m={};t.r(m),t.d(m,{ascii_to_char:()=>s_,char_to_ascii:()=>o_,number_to_text:()=>__,os_system:()=>D_,text:()=>t_,text_capital:()=>h_,text_center:()=>M_,text_char:()=>i_,text_char_at:()=>p_,text_char_at2:()=>r_,text_char_at3:()=>S_,text_compareTo:()=>L_,text_compare_to:()=>I_,text_encode:()=>f_,text_equals_starts_ends:()=>l_,text_eval:()=>N_,text_find:()=>m_,text_format:()=>g_,text_format_noreturn:()=>C_,text_join:()=>n_,text_join_seq:()=>O_,text_length:()=>u_,text_random_char:()=>a_,text_replace:()=>c_,text_split:()=>E_,text_strip:()=>R_,text_substring:()=>T_,text_substring2:()=>d_,text_substring3:()=>A_,text_textarea:()=>e_});var O={};t.r(O),t.d(O,{content_in_lists:()=>pu,enumerate:()=>ru,list_many_input:()=>q_,list_tolist:()=>_u,list_tolist2:()=>uu,list_trig:()=>K_,lists_2d_get_col_row_data:()=>v_,lists_2d_get_data_with_col_row:()=>P_,lists_append_extend:()=>y_,lists_change_to:()=>Q_,lists_change_to_general:()=>z_,lists_clear:()=>w_,lists_create_with:()=>Y_,lists_create_with2:()=>$_,lists_create_with_noreturn:()=>j_,lists_create_with_text:()=>X_,lists_create_with_text2:()=>tu,lists_del_general:()=>Z_,lists_find:()=>x_,lists_getIndex3:()=>eu,lists_getSublist3:()=>iu,lists_get_index:()=>b_,lists_get_random_item:()=>B_,lists_get_random_sublist:()=>U_,lists_get_sublist:()=>F_,lists_insert_value:()=>G_,lists_insert_value2:()=>su,lists_pop:()=>W_,lists_remove_at:()=>H_,lists_remove_at2:()=>ou,lists_reverse:()=>k_,lists_setIndex3:()=>nu,lists_set_index:()=>V_,lists_sort:()=>J_});var c={};t.r(c),t.d(c,{dicts_add_change_del:()=>gu,dicts_add_or_change:()=>Tu,dicts_clear:()=>mu,dicts_create_with:()=>au,dicts_create_with_noreturn:()=>Lu,dicts_deldict:()=>Ru,dicts_delete:()=>hu,dicts_get:()=>Iu,dicts_get_default:()=>du,dicts_items:()=>Ou,dicts_keys:()=>lu,dicts_length:()=>Eu,dicts_pop:()=>Cu,dicts_setdefault:()=>Au,dicts_to_json:()=>fu,dicts_to_json2:()=>Fu,dicts_to_to:()=>Du,dicts_todict:()=>Su,dicts_update:()=>Mu,dicts_values:()=>cu,json_to_dicts:()=>Nu});var E={};t.r(E),t.d(E,{logic_boolean:()=>bu,logic_compare:()=>Pu,logic_compare_continous:()=>vu,logic_is:()=>Uu,logic_is_in:()=>Bu,logic_negate:()=>Xu,logic_null:()=>Vu,logic_operation:()=>Yu,logic_tobool:()=>Gu,logic_true_or_false:()=>yu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>pr,sdcard_use_spi_init:()=>rr,storage_can_write_ornot:()=>qu,storage_change_dir:()=>nr,storage_close_file:()=>zu,storage_delete_file:()=>$u,storage_file_seek:()=>ir,storage_file_tell:()=>er,storage_file_write:()=>Wu,storage_fileopen:()=>wu,storage_fileopen_new:()=>xu,storage_fileopen_new_encoding:()=>Hu,storage_get_a_line:()=>Qu,storage_get_contents:()=>Ju,storage_get_contents_without_para:()=>Ku,storage_get_current_dir:()=>sr,storage_get_file_size:()=>tr,storage_get_filename:()=>ju,storage_is_file:()=>ur,storage_list_all_files:()=>Zu,storage_make_dir:()=>or,storage_open_file_with_os:()=>ku,storage_rename:()=>_r});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>dr,procedures_callreturn:()=>Ir,procedures_defnoreturn:()=>lr,procedures_defreturn:()=>ar,procedures_ifreturn:()=>Tr,procedures_return:()=>hr});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ar,tuple_create_with:()=>Mr,tuple_create_with_noreturn:()=>Nr,tuple_create_with_text2:()=>mr,tuple_create_with_text_return:()=>Or,tuple_del:()=>Rr,tuple_find:()=>Lr,tuple_getIndex:()=>cr,tuple_getSublist:()=>fr,tuple_get_random_item:()=>Fr,tuple_get_sublist:()=>Dr,tuple_join:()=>gr,tuple_length:()=>Er,tuple_max:()=>Cr,tuple_totuple:()=>Pr,tuple_trig:()=>Sr});var A={};t.r(A),t.d(A,{set_add_discard:()=>Br,set_clear:()=>br,set_create_with:()=>vr,set_create_with_text_return:()=>kr,set_length:()=>Yr,set_operate:()=>Vr,set_operate_update:()=>yr,set_pop:()=>Xr,set_sub:()=>Ur,set_toset:()=>wr,set_update:()=>Gr});var L={};t.r(L),t.d(L,{html_content:()=>Kr,html_content_more:()=>Jr,html_document:()=>xr,html_form:()=>qr,html_head_body:()=>Wr,html_style:()=>Qr,html_style_content:()=>jr,html_text:()=>zr,html_title:()=>Hr});var S={};t.r(S),t.d(S,{attribute_access:()=>sp,function_call:()=>np,raw_block:()=>Zr,raw_empty:()=>tp,raw_expression:()=>$r,raw_table:()=>ep,type_check:()=>ip});var f={};t.r(f),t.d(f,{educore_mqtt_connect:()=>Up,educore_mqtt_connect_success:()=>xp,educore_mqtt_subscribe_message:()=>Gp,educore_mqtt_topic_publish:()=>wp,educore_mqtt_topic_subscribe:()=>kp,educore_wifi_connect:()=>Bp,network_ap_connect:()=>mp,network_connect:()=>Ip,network_get_connect:()=>Tp,network_get_wifi:()=>Mp,network_init:()=>rp,network_is_active:()=>ap,network_open:()=>pp,network_scan:()=>lp,network_server:()=>Op,network_socket_accept:()=>Cp,network_socket_bind:()=>Ep,network_socket_close:()=>Np,network_socket_connect:()=>Rp,network_socket_init:()=>cp,network_socket_listen:()=>gp,network_socket_receive:()=>Ap,network_socket_receive_from:()=>Sp,network_socket_send:()=>Lp,network_socket_send_to:()=>fp,network_stop:()=>hp,network_wifi_connect:()=>dp,ntptime_address:()=>Yp,ntptime_time:()=>vp,requests_attribute:()=>Fp,requests_attribute2:()=>yp,requests_get:()=>Dp,requests_get2:()=>bp,requests_method:()=>Pp,requests_post:()=>Vp});var N={};t.r(N),t.d(N,{CI130X_BROADCAST_SANT:()=>kl,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Gl,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>Ul,CI130X_IDENTIFY_AND_SAVE_SANT:()=>Bl,CI130X_SET_SYSTEM_CMD_SANT:()=>wl,HCSR04:()=>aa,RTC_set_date:()=>pa,RTC_set_time:()=>ra,bitbot_als_num:()=>ml,dht11:()=>Al,educore_button_sensor:()=>Yl,educore_button_was_pressed:()=>Xl,educore_gyroscope_sensor:()=>Fl,educore_gyroscope_sensor_read:()=>Pl,educore_gyroscope_sensor_shake:()=>vl,educore_light_sensor:()=>Dl,educore_rfid_sensor:()=>bl,educore_rfid_sensor_scan:()=>Vl,educore_rfid_sensor_scan_data:()=>yl,educore_voice_sensor:()=>fl,number1:()=>Ia,number2:()=>da,number3:()=>Ta,number4:()=>ha,number5:()=>Ma,number6:()=>ma,number7:()=>Oa,onboard_RTC_get_time:()=>Sa,onboard_RTC_get_time_str:()=>va,onboard_RTC_get_timestamp:()=>fa,onboard_RTC_set_datetime:()=>Fa,onboard_RTC_settime_string:()=>Da,onboard_RTC_timestamp_totuple:()=>Na,rfid_readcontent:()=>Ua,rfid_readid:()=>Ba,rfid_write:()=>Ga,rfid_write_return:()=>ka,sensor_LTR308:()=>Ya,sensor_aht11:()=>ba,sensor_bitbot_ALS:()=>Ml,sensor_button_get_presses:()=>El,sensor_button_is_pressed:()=>Ol,sensor_button_was_pressed:()=>cl,sensor_distance_hrsc04:()=>ua,sensor_eulerangles:()=>xa,sensor_field_strength:()=>Ll,sensor_get_acceleration:()=>wa,sensor_get_temperature:()=>Va,sensor_hp203:()=>ya,sensor_light:()=>Cl,sensor_mixbot_get_gyro:()=>hl,sensor_mixbot_patrol_calibrate:()=>Il,sensor_mixbot_patrol_value:()=>dl,sensor_mixbot_temperature:()=>Tl,sensor_mixgo_LTR308:()=>Aa,sensor_mixgo_button_attachInterrupt:()=>Zp,sensor_mixgo_button_get_presses:()=>zp,sensor_mixgo_button_is_pressed:()=>qp,sensor_mixgo_button_was_pressed:()=>jp,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>tl,sensor_mixgo_cc_mmc5603_get_angle:()=>$a,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Za,sensor_mixgo_light:()=>la,sensor_mixgo_nova_LTR308:()=>Ca,sensor_mixgo_nova_pin_near:()=>ga,sensor_mixgo_pin_near:()=>Ra,sensor_mixgo_pin_near_double:()=>Ea,sensor_mixgo_pin_near_single:()=>ca,sensor_mixgo_pin_pressed:()=>na,sensor_mixgo_sant_color:()=>La,sensor_mixgo_touch_slide:()=>_a,sensor_mixgocar42_button_attachInterrupt:()=>ia,sensor_mixgocar42_button_get_presses:()=>ea,sensor_mixgocar42_button_is_pressed:()=>$p,sensor_mixgocar42_button_was_pressed:()=>ta,sensor_mixgocar_battery_left:()=>ll,sensor_mixgocar_pin_near:()=>pl,sensor_mixgocar_pin_near_line:()=>rl,sensor_mixgocar_pin_near_state_change:()=>al,sensor_mixgoce_pin_pressed:()=>sa,sensor_mixgoce_temperature:()=>il,sensor_mixgome_temperature:()=>el,sensor_mpython_pin_pressed:()=>oa,sensor_mpython_qmi8658_get_gyro:()=>nl,sensor_mpython_qmi8658_temperature:()=>sl,sensor_onboard_compass_reset:()=>za,sensor_onboard_mpu9250_calibrate_compass:()=>Qa,sensor_onboard_mpu9250_field_strength:()=>ja,sensor_onboard_mpu9250_gesture:()=>Ha,sensor_onboard_mpu9250_get_acceleration:()=>Wa,sensor_onboard_mpu9250_get_gyro:()=>Ja,sensor_onboard_mpu9250_get_magnetic:()=>Ka,sensor_onboard_mpu9250_temperature:()=>qa,sensor_pin_near:()=>gl,sensor_pin_pressed:()=>Rl,sensor_read:()=>Nl,sensor_rm_acc:()=>ul,sensor_rm_battery_left:()=>_l,sensor_rm_pin_near_double:()=>ol,sensor_rtc_init:()=>Pa,sensor_sound:()=>Xa,sensor_temperature:()=>Sl});var D={};t.r(D),t.d(D,{educore_mqtt_connect:()=>cI,educore_mqtt_connect_success:()=>CI,educore_mqtt_subscribe_message:()=>EI,educore_mqtt_topic_publish:()=>gI,educore_mqtt_topic_subscribe:()=>RI,educore_wifi_connect:()=>OI,network_ap_connect:()=>zl,network_connect:()=>Hl,network_get_connect:()=>Kl,network_get_wifi:()=>jl,network_init:()=>xl,network_is_active:()=>ql,network_open:()=>Ql,network_scan:()=>Zl,network_server:()=>$l,network_socket_accept:()=>sI,network_socket_bind:()=>eI,network_socket_close:()=>pI,network_socket_connect:()=>iI,network_socket_init:()=>tI,network_socket_listen:()=>nI,network_socket_receive:()=>oI,network_socket_receive_from:()=>uI,network_socket_send:()=>_I,network_socket_send_to:()=>rI,network_stop:()=>Jl,network_wifi_connect:()=>Wl,ntptime_address:()=>TI,ntptime_time:()=>dI,requests_attribute:()=>lI,requests_attribute2:()=>MI,requests_get:()=>aI,requests_get2:()=>hI,requests_method:()=>II,requests_post:()=>mI});var F={};t.r(F),t.d(F,{CI130X_BROADCAST_SANT:()=>RT,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>ET,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>cT,CI130X_IDENTIFY_AND_SAVE_SANT:()=>OT,CI130X_SET_SYSTEM_CMD_SANT:()=>gT,HCSR04:()=>vI,bitbot_als_num:()=>Zd,dht11:()=>_T,educore_button_sensor:()=>dT,educore_button_was_pressed:()=>TT,educore_gyroscope_sensor:()=>aT,educore_gyroscope_sensor_read:()=>lT,educore_gyroscope_sensor_shake:()=>IT,educore_light_sensor:()=>pT,educore_rfid_sensor:()=>hT,educore_rfid_sensor_scan:()=>MT,educore_rfid_sensor_scan_data:()=>mT,educore_voice_sensor:()=>uT,number1:()=>YI,number2:()=>XI,number3:()=>bI,number4:()=>VI,number5:()=>yI,number6:()=>BI,number7:()=>UI,onboard_RTC_get_time:()=>Dd,onboard_RTC_get_time_str:()=>vd,onboard_RTC_get_timestamp:()=>Fd,onboard_RTC_set_datetime:()=>fd,onboard_RTC_settime_string:()=>Nd,onboard_RTC_timestamp_totuple:()=>Pd,rfid_readcontent:()=>ed,rfid_readid:()=>td,rfid_write:()=>id,rfid_write_return:()=>nd,sensor_LTR308:()=>qI,sensor_adxl345_get_acceleration:()=>Id,sensor_aht11:()=>ZI,sensor_bitbot_ALS:()=>zd,sensor_button_get_presses:()=>eT,sensor_button_is_pressed:()=>$d,sensor_button_was_pressed:()=>tT,sensor_compass_reset:()=>Od,sensor_ds18x20:()=>JI,sensor_eulerangles:()=>od,sensor_get_acceleration:()=>sd,sensor_get_temperature:()=>$I,sensor_hp203:()=>zI,sensor_light:()=>oT,sensor_lm35:()=>QI,sensor_mixbot_get_gyro:()=>jd,sensor_mixbot_patrol_calibrate:()=>Jd,sensor_mixbot_patrol_value:()=>Qd,sensor_mixbot_temperature:()=>qd,sensor_mixgo_LTR308:()=>HI,sensor_mixgo_button_attachInterrupt:()=>fI,sensor_mixgo_button_get_presses:()=>SI,sensor_mixgo_button_is_pressed:()=>AI,sensor_mixgo_button_was_pressed:()=>LI,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>bd,sensor_mixgo_cc_mmc5603_get_angle:()=>Xd,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Yd,sensor_mixgo_light:()=>sT,sensor_mixgo_nova_LTR308:()=>KI,sensor_mixgo_nova_pin_near:()=>xI,sensor_mixgo_pin_near:()=>wI,sensor_mixgo_pin_near_double:()=>kI,sensor_mixgo_pin_near_single:()=>GI,sensor_mixgo_pin_pressed:()=>ad,sensor_mixgo_sant_color:()=>WI,sensor_mixgo_touch_slide:()=>pd,sensor_mixgocar42_button_attachInterrupt:()=>PI,sensor_mixgocar42_button_get_presses:()=>FI,sensor_mixgocar42_button_is_pressed:()=>NI,sensor_mixgocar42_button_was_pressed:()=>DI,sensor_mixgocar_battery_left:()=>Kd,sensor_mixgocar_pin_near:()=>Hd,sensor_mixgocar_pin_near_line:()=>xd,sensor_mixgocar_pin_near_state_change:()=>Wd,sensor_mixgoce_pin_pressed:()=>rd,sensor_mixgoce_temperature:()=>yd,sensor_mixgome_temperature:()=>Vd,sensor_mpu9250_calibrate_compass:()=>hd,sensor_mpu9250_field_strength:()=>md,sensor_mpu9250_gesture:()=>_d,sensor_mpu9250_get_acceleration:()=>ud,sensor_mpu9250_get_gyro:()=>Td,sensor_mpu9250_get_magnetic:()=>dd,sensor_mpu9250_temperature:()=>Md,sensor_mpython_pin_pressed:()=>ld,sensor_mpython_qmi8658_get_gyro:()=>Bd,sensor_mpython_qmi8658_temperature:()=>Ud,sensor_onboard_compass_reset:()=>Sd,sensor_onboard_mpu9250_calibrate_compass:()=>Cd,sensor_onboard_mpu9250_field_strength:()=>Ld,sensor_onboard_mpu9250_gesture:()=>cd,sensor_onboard_mpu9250_get_acceleration:()=>Ed,sensor_onboard_mpu9250_get_gyro:()=>gd,sensor_onboard_mpu9250_get_magnetic:()=>Rd,sensor_onboard_mpu9250_temperature:()=>Ad,sensor_pin_near:()=>nT,sensor_pin_pressed:()=>iT,sensor_read:()=>rT,sensor_rm_acc:()=>wd,sensor_rm_battery_left:()=>kd,sensor_rm_pin_near_double:()=>Gd,sensor_sound:()=>jI});var P={};t.r(P),t.d(P,{MP3_CONTROL:()=>qT,MP3_EQ_MODE:()=>$T,MP3_INIT:()=>JT,MP3_LOOP_MODE:()=>zT,MP3_PLAY_FOLDER:()=>ih,MP3_PLAY_NUM:()=>eh,MP3_VOL:()=>th,bit_motor_control:()=>wT,display_rgb:()=>HT,display_rgb2:()=>WT,display_rgb_init:()=>xT,display_rgb_show:()=>KT,microbit_music_get_tempo:()=>XT,microbit_music_pitch:()=>DT,microbit_music_pitch_delay:()=>NT,microbit_music_play_built_in:()=>ST,microbit_music_play_built_in_easy:()=>fT,microbit_music_play_list_of_notes:()=>FT,microbit_music_play_list_of_notes_easy:()=>PT,microbit_music_reset:()=>vT,microbit_music_stop:()=>YT,servo_move:()=>kT,speech_pronounce_easy:()=>UT,speech_say:()=>VT,speech_say_easy:()=>yT,speech_sing_easy:()=>BT,speech_translate:()=>GT,tone_set_tempo:()=>bT});var v={};t.r(v),t.d(v,{i2c_init:()=>dh,i2c_read:()=>Th,i2c_write:()=>hh,microbit_radio_config:()=>uh,microbit_radio_off:()=>_h,microbit_radio_on:()=>oh,microbit_radio_receive:()=>lh,microbit_radio_reset:()=>rh,microbit_radio_send_string:()=>ph,radio_ons:()=>sh,radio_receive_string:()=>Ih,radio_send_string:()=>ah,spi_init:()=>Mh,spi_write:()=>mh});var Y={};t.r(Y),t.d(Y,{display_fill:()=>Wh,display_image_size:()=>Hh,group_lcd_init:()=>Gh,group_lcd_power:()=>wh,group_lcd_print:()=>Uh,group_lcd_print2:()=>kh,image_arithmetic:()=>Bh,image_shift:()=>yh,lp2i_u8g_draw_4strings:()=>xh,microbit_display_clear:()=>ch,microbit_display_is_on:()=>vh,microbit_display_off:()=>Ph,microbit_display_on:()=>Fh,microbit_display_scroll:()=>Dh,microbit_display_scroll_string_animation:()=>Nh,microbit_display_show_animation:()=>fh,microbit_display_show_default_image:()=>Sh,microbit_display_show_image:()=>Lh,microbit_image_builtins:()=>Yh,microbit_image_copy:()=>Xh,microbit_image_create:()=>Vh,microbit_image_invert:()=>bh,monitor_bright_point:()=>Rh,monitor_get_pixel:()=>Eh,monitor_scroll_string:()=>Ch,monitor_scroll_string_with_delay:()=>Ah,monitor_show_image_or_string:()=>gh});var X={};t.r(X),t.d(X,{factory_block:()=>iM,factory_block_return:()=>nM,factory_block_return_with_textarea:()=>oM,factory_block_with_textarea:()=>sM,factory_callMethod_noreturn:()=>tM,factory_callMethod_return:()=>eM,factory_create_with_container:()=>jh,factory_create_with_item:()=>zh,factory_declare:()=>$h,factory_from_import:()=>Jh,factory_function_noreturn:()=>qh,factory_function_return:()=>Zh,factory_import:()=>Qh});var b={};t.r(b),t.d(b,{inout_analog_read:()=>lM,inout_analog_write:()=>pM,inout_analog_write_set:()=>aM,inout_digital_read:()=>rM,inout_digital_write:()=>dM,inout_highlow:()=>uM,sensor_pin_pressed:()=>IM});var V={};t.r(V),t.d(V,{pins_analog:()=>MM,pins_axis:()=>CM,pins_brightness:()=>AM,pins_builtinimg:()=>RM,pins_button:()=>mM,pins_digital:()=>hM,pins_imglist:()=>gM,pins_interrupt:()=>cM,pins_pwm:()=>OM,pins_radio_datarate:()=>fM,pins_radio_power:()=>SM,pins_serial:()=>EM,pins_tone_notes:()=>LM});var y={};t.r(y),t.d(y,{DS1307_init:()=>zM,NTC_TEMP:()=>um,RTC_get_time:()=>$M,RTC_set_date:()=>em,RTC_set_time:()=>tm,TCS34725_Get_RGB:()=>_m,controls_GestureLists:()=>bM,controls_attachGestureInterrupt:()=>XM,controls_attachGestureInterrupt2:()=>VM,sensor_button_get_presses:()=>PM,sensor_button_is_pressed:()=>DM,sensor_button_was_pressed:()=>FM,sensor_calibrate_compass:()=>wM,sensor_compass_heading:()=>HM,sensor_compass_reset:()=>im,sensor_current_gesture:()=>GM,sensor_current_gesture1:()=>vM,sensor_current_gesture2:()=>YM,sensor_distance_hrsc04:()=>qM,sensor_distance_hrsc04_:()=>jM,sensor_field_strength:()=>KM,sensor_get_acceleration:()=>yM,sensor_get_gestures:()=>UM,sensor_hrsc04_init:()=>sm,sensor_is_compass_calibrated:()=>xM,sensor_light:()=>nm,sensor_light_level:()=>kM,sensor_magnetic:()=>QM,sensor_rotation:()=>JM,sensor_set_acceleration:()=>BM,sensor_temperature:()=>WM});var B={};t.r(B),t.d(B,{IO_input:()=>cm,IO_print:()=>Em,IO_print_inline:()=>Rm,serial_any:()=>Tm,serial_begin:()=>Om,serial_print:()=>pm,serial_print_hex:()=>lm,serial_println:()=>am,serial_readline:()=>hm,serial_readstr:()=>dm,serial_readstr_until:()=>Mm,serial_receive_data_event:()=>Im,serial_softserial:()=>mm});var U={};t.r(U),t.d(U,{Panic_with_status_code:()=>Lm,base_delay:()=>Cm,controls_millis:()=>Am,controls_uname:()=>fm,reset:()=>Sm});var G={};t.r(G),t.d(G,{MP3_CONTROL:()=>qm,MP3_EQ_MODE:()=>zm,MP3_INIT:()=>Qm,MP3_LOOP_MODE:()=>jm,MP3_PLAY_FOLDER:()=>tO,MP3_PLAY_NUM:()=>$m,MP3_VOL:()=>Zm,bit_motor_control:()=>xm,display_rgb:()=>Wm,display_rgb2:()=>Km,display_rgb_init:()=>Hm,display_rgb_show:()=>Jm,microbit_music_get_tempo:()=>bm,microbit_music_pitch:()=>Pm,microbit_music_pitch_delay:()=>Fm,microbit_music_play_built_in:()=>Nm,microbit_music_play_built_in_easy:()=>Dm,microbit_music_play_list_of_notes:()=>vm,microbit_music_reset:()=>Ym,microbit_music_stop:()=>Xm,servo_move:()=>wm,speech_pronounce_easy:()=>km,speech_say:()=>Bm,speech_say_easy:()=>Um,speech_sing_easy:()=>Gm,speech_translate:()=>ym,tone_set_tempo:()=>Vm});var k={};t.r(k),t.d(k,{i2c_init:()=>pO,i2c_read:()=>aO,i2c_write:()=>lO,microbit_radio_config:()=>sO,microbit_radio_off:()=>nO,microbit_radio_on:()=>iO,microbit_radio_receive:()=>rO,microbit_radio_reset:()=>oO,radio_ons:()=>eO,radio_receive_string:()=>uO,radio_send_string:()=>_O,spi_init:()=>IO,spi_write:()=>dO});var w={};t.r(w),t.d(w,{display_fill:()=>GO,display_image_size:()=>UO,group_lcd_init:()=>bO,group_lcd_power:()=>yO,group_lcd_print:()=>XO,group_lcd_print2:()=>VO,image_arithmetic:()=>vO,image_shift:()=>PO,lp2i_u8g_draw_4strings:()=>BO,microbit_display_clear:()=>TO,microbit_display_is_on:()=>SO,microbit_display_on:()=>LO,microbit_display_scroll:()=>AO,microbit_display_scroll_string_animation:()=>YO,microbit_display_set_pixel:()=>MO,microbit_display_show_animation:()=>CO,microbit_display_show_default_image:()=>gO,microbit_display_show_image:()=>RO,microbit_image_builtins:()=>fO,microbit_image_copy:()=>NO,microbit_image_create:()=>FO,microbit_image_invert:()=>DO,monitor_bright_point:()=>mO,monitor_get_pixel:()=>hO,monitor_scroll_string:()=>cO,monitor_scroll_string_with_delay:()=>EO,monitor_show_image_or_string:()=>OO});var x={};t.r(x),t.d(x,{factory_block:()=>QO,factory_block_return:()=>qO,factory_block_return_with_textarea:()=>zO,factory_block_with_textarea:()=>jO,factory_callMethod_noreturn:()=>KO,factory_callMethod_return:()=>JO,factory_declare:()=>WO,factory_from_import:()=>kO,factory_function_noreturn:()=>xO,factory_function_return:()=>HO,factory_import:()=>wO});var H={};t.r(H),t.d(H,{inout_analog_read:()=>nc,inout_analog_write:()=>ec,inout_analog_write_set:()=>ic,inout_digital_read:()=>tc,inout_digital_write:()=>$O,inout_highlow:()=>ZO,sensor_pin_pressed:()=>sc});var W={};t.r(W),t.d(W,{pins_analog:()=>_c,pins_axis:()=>dc,pins_brightness:()=>Tc,pins_builtinimg:()=>lc,pins_button:()=>uc,pins_digital:()=>oc,pins_imglist:()=>Ic,pins_interrupt:()=>pc,pins_pwm:()=>rc,pins_radio_datarate:()=>mc,pins_radio_power:()=>Mc,pins_serial:()=>ac,pins_tone_notes:()=>hc});var K={};t.r(K),t.d(K,{DS1307_init:()=>Gc,NTC_TEMP:()=>Qc,RTC_get_time:()=>kc,RTC_set_date:()=>xc,RTC_set_time:()=>wc,TCS34725_Get_RGB:()=>Jc,controls_GestureLists:()=>Rc,controls_attachGestureInterrupt:()=>gc,controls_attachGestureInterrupt2:()=>Lc,sensor_button_get_presses:()=>Ec,sensor_button_is_pressed:()=>Oc,sensor_button_was_pressed:()=>cc,sensor_calibrate_compass:()=>Pc,sensor_compass_heading:()=>Yc,sensor_compass_reset:()=>Hc,sensor_current_gesture:()=>fc,sensor_current_gesture1:()=>Cc,sensor_current_gesture2:()=>Ac,sensor_distance_hrsc04:()=>Bc,sensor_distance_hrsc04_:()=>Uc,sensor_field_strength:()=>bc,sensor_get_acceleration:()=>Nc,sensor_get_gestures:()=>Sc,sensor_hrsc04_init:()=>Kc,sensor_is_compass_calibrated:()=>vc,sensor_light:()=>Wc,sensor_light_level:()=>Fc,sensor_magnetic:()=>yc,sensor_rotation:()=>Vc,sensor_set_acceleration:()=>Dc,sensor_temperature:()=>Xc});var J={};t.r(J),t.d(J,{IO_input:()=>oE,IO_print:()=>_E,IO_print_inline:()=>uE,serial_any:()=>$c,serial_begin:()=>sE,serial_print:()=>qc,serial_print_hex:()=>zc,serial_println:()=>jc,serial_readline:()=>eE,serial_readstr:()=>tE,serial_readstr_until:()=>iE,serial_receive_data_event:()=>Zc,serial_softserial:()=>nE});var Q={};t.r(Q),t.d(Q,{Panic_with_status_code:()=>EE,base_delay:()=>cE,controls_end_program:()=>gE,controls_millis:()=>RE,controls_uname:()=>AE,reset:()=>CE,system_device_name:()=>mE,system_device_serial_number:()=>OE,system_event_bus_source:()=>hE,system_event_bus_value:()=>ME,system_on_event:()=>IE,system_raise_event:()=>lE,system_reset:()=>pE,system_run_in_background:()=>rE,system_timestamp:()=>dE,system_value:()=>TE,system_wait:()=>aE});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>rt,lists_zip_container:()=>pt,lists_zip_item:()=>at,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>Tt,controls_delay:()=>ht,controls_end_program:()=>Mt,controls_except:()=>Dt,controls_finally:()=>Ft,controls_flow_statements:()=>gt,controls_for:()=>Ct,controls_forEach:()=>ct,controls_for_range:()=>At,controls_if:()=>mt,controls_if_else:()=>ft,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>vt,controls_main:()=>dt,controls_pass:()=>Yt,controls_range:()=>Ot,controls_repeat_ext:()=>Pt,controls_thread:()=>Xt,controls_try:()=>Nt,controls_try_finally:()=>Rt,controls_whileUntil:()=>Et,datetime_fromtimestamp:()=>Gt,do_while:()=>bt,garbage_collection:()=>Vt,gene_unique_identifier:()=>kt,get_mem_alloc:()=>yt,get_mem_free:()=>Bt,get_unique_identifier:()=>Ut});var n={};t.r(n),t.d(n,{base_map:()=>re,generate_cartesian_product:()=>ae,math_arithmetic:()=>Kt,math_bit:()=>Qt,math_constant:()=>Ht,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>xt,math_number_base_conversion:()=>$t,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Jt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>pe});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Me,char_to_ascii:()=>me,number_to_text:()=>Oe,os_system:()=>xe,text:()=>Ie,text_capital:()=>fe,text_center:()=>Ne,text_char:()=>Te,text_char_at:()=>Re,text_char_at2:()=>Ee,text_char_at3:()=>Ue,text_compareTo:()=>Be,text_compare_to:()=>Se,text_create_with_container:()=>be,text_create_with_item:()=>Ve,text_encode:()=>ke,text_equals_starts_ends:()=>Le,text_eval:()=>we,text_find:()=>De,text_format:()=>Xe,text_format_noreturn:()=>Ge,text_join:()=>he,text_join_seq:()=>Fe,text_length:()=>ce,text_random_char:()=>ge,text_replace:()=>Pe,text_split:()=>ve,text_strip:()=>Ye,text_substring:()=>Ae,text_substring2:()=>Ce,text_substring3:()=>ye,text_textarea:()=>de});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Li,content_in_lists:()=>fi,enumerate:()=>Si,list_many_input:()=>Ii,list_tolist:()=>Mi,list_tolist2:()=>Ai,list_trig:()=>pi,lists_2d_get_col_row_data:()=>Qe,lists_2d_get_data_with_col_row:()=>Je,lists_append_extend:()=>ti,lists_change_to:()=>li,lists_change_to_general:()=>Ti,lists_clear:()=>oi,lists_create_with:()=>qe,lists_create_with2:()=>mi,lists_create_with_container:()=>ze,lists_create_with_item:()=>Ze,lists_create_with_noreturn:()=>di,lists_create_with_text:()=>je,lists_create_with_text2:()=>Oi,lists_del_general:()=>hi,lists_find:()=>ri,lists_getIndex3:()=>ci,lists_getSublist3:()=>Ei,lists_get_index:()=>We,lists_get_random_item:()=>ei,lists_get_random_sublist:()=>ii,lists_get_sublist:()=>Ke,lists_insert_value:()=>ni,lists_insert_value2:()=>gi,lists_pop:()=>ui,lists_remove_at:()=>_i,lists_remove_at2:()=>Ci,lists_reverse:()=>si,lists_setIndex3:()=>Ri,lists_set_index:()=>$e,lists_sort:()=>ai});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>xi,dicts_add_or_change:()=>bi,dicts_clear:()=>Bi,dicts_create_with:()=>Di,dicts_create_with_container:()=>Fi,dicts_create_with_item:()=>Pi,dicts_create_with_noreturn:()=>Ki,dicts_deldict:()=>wi,dicts_delete:()=>Vi,dicts_get:()=>Yi,dicts_get_default:()=>Xi,dicts_items:()=>Ui,dicts_keys:()=>vi,dicts_length:()=>ki,dicts_pop:()=>Hi,dicts_setdefault:()=>Wi,dicts_to_json:()=>Qi,dicts_to_json2:()=>zi,dicts_to_to:()=>ji,dicts_todict:()=>Ji,dicts_update:()=>yi,dicts_values:()=>Gi,json_to_dicts:()=>qi});var u={};t.r(u),t.d(u,{logic_boolean:()=>sn,logic_compare:()=>$i,logic_compare_continous:()=>tn,logic_is:()=>rn,logic_is_in:()=>un,logic_negate:()=>nn,logic_null:()=>on,logic_operation:()=>en,logic_tobool:()=>pn,logic_true_or_false:()=>_n});var r={};t.r(r),t.d(r,{sdcard_mount:()=>vn,sdcard_use_spi_init:()=>Pn,storage_can_write_ornot:()=>On,storage_change_dir:()=>Dn,storage_close_file:()=>En,storage_delete_file:()=>gn,storage_file_seek:()=>Ln,storage_file_tell:()=>An,storage_file_write:()=>Tn,storage_fileopen:()=>ln,storage_fileopen_new:()=>In,storage_fileopen_new_encoding:()=>dn,storage_get_a_line:()=>mn,storage_get_contents:()=>Mn,storage_get_contents_without_para:()=>hn,storage_get_current_dir:()=>Sn,storage_get_file_size:()=>Cn,storage_get_filename:()=>cn,storage_is_file:()=>Fn,storage_list_all_files:()=>Rn,storage_make_dir:()=>fn,storage_open_file_with_os:()=>an,storage_rename:()=>Nn});var p={};t.r(p),t.d(p,{procedures_callnoreturn:()=>Un,procedures_callreturn:()=>Gn,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>Vn,procedures_ifreturn:()=>kn,procedures_mutatorarg:()=>Bn,procedures_mutatorcontainer:()=>yn,procedures_return:()=>wn});var a={};t.r(a),t.d(a,{tuple_change_to:()=>ts,tuple_create_with:()=>Hn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Jn,tuple_create_with_text_return:()=>Qn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_input:()=>rs,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>Os,set_clear:()=>hs,set_create_with:()=>as,set_create_with_container:()=>ls,set_create_with_item:()=>Is,set_create_with_text_return:()=>Rs,set_length:()=>ds,set_operate:()=>Ms,set_operate_update:()=>ms,set_pop:()=>Ts,set_sub:()=>cs,set_toset:()=>gs,set_update:()=>Es});var I={};t.r(I),t.d(I,{html_content:()=>fs,html_content_more:()=>Ns,html_document:()=>As,html_form:()=>Fs,html_head_body:()=>Ss,html_style:()=>Ds,html_style_color:()=>vs,html_style_content:()=>Ps,html_text:()=>Ys,html_title:()=>Ls});var d={};t.r(d),t.d(d,{attribute_access:()=>Js,function_call:()=>Hs,function_call_container:()=>Ws,function_call_item:()=>Ks,raw_block:()=>Vs,raw_empty:()=>Bs,raw_expression:()=>ys,raw_table:()=>bs,text_comment:()=>Us,text_print_multiple:()=>ks,text_print_multiple_container:()=>ws,text_print_multiple_item:()=>xs,type_check:()=>Gs});var T={};t.r(T),t.d(T,{controls_type:()=>Zs,controls_typeLists:()=>$s,lists_zip:()=>to,unpack_iterable_object:()=>eo,variables_change:()=>js,variables_get:()=>Qs,variables_global:()=>zs,variables_set:()=>qs});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>lo,base_setup:()=>no,controls_delay:()=>ao,controls_flow_statements:()=>po,controls_for:()=>_o,controls_forEach:()=>mo,controls_for_range:()=>uo,controls_if:()=>so,controls_interrupts:()=>ho,controls_lambda:()=>co,controls_main:()=>io,controls_millis:()=>Io,controls_nointerrupts:()=>Mo,controls_pass:()=>Ro,controls_range:()=>Oo,controls_repeat:()=>Do,controls_repeat_ext:()=>Ao,controls_thread:()=>go,controls_try_finally:()=>oo,controls_whileUntil:()=>ro,datetime_fromtimestamp:()=>Fo,do_while:()=>Co,garbage_collection:()=>Lo,gene_unique_identifier:()=>Po,get_mem_alloc:()=>So,get_mem_free:()=>fo,get_unique_identifier:()=>No,reset:()=>To,time_sleep:()=>Eo});var M={};t.r(M),t.d(M,{base_map:()=>Zo,generate_cartesian_product:()=>t_,math_arithmetic:()=>Vo,math_bit:()=>bo,math_constant:()=>Yo,math_constant_mp:()=>Xo,math_constrain:()=>Wo,math_dec:()=>Go,math_indexer_number:()=>Qo,math_map:()=>Ho,math_max_min:()=>wo,math_number:()=>vo,math_number_base_conversion:()=>Ko,math_random:()=>xo,math_random_seed:()=>Jo,math_round:()=>qo,math_selfcalcu:()=>yo,math_single:()=>Bo,math_to_int:()=>ko,math_trig:()=>Uo,text_to_number:()=>jo,text_to_number_skulpt:()=>zo,turn_to_int:()=>$o});var m={};t.r(m),t.d(m,{ascii_to_char:()=>o_,char_to_ascii:()=>__,number_to_text:()=>u_,os_system:()=>F_,text:()=>e_,text_capital:()=>M_,text_center:()=>m_,text_char:()=>n_,text_char_at:()=>a_,text_char_at2:()=>p_,text_char_at3:()=>f_,text_compareTo:()=>S_,text_compare_to:()=>d_,text_encode:()=>N_,text_equals_starts_ends:()=>I_,text_eval:()=>D_,text_find:()=>O_,text_format:()=>C_,text_format_noreturn:()=>A_,text_join:()=>s_,text_join_seq:()=>c_,text_length:()=>r_,text_random_char:()=>l_,text_replace:()=>E_,text_split:()=>R_,text_strip:()=>g_,text_substring:()=>h_,text_substring2:()=>T_,text_substring3:()=>L_,text_textarea:()=>i_});var O={};t.r(O),t.d(O,{content_in_lists:()=>au,enumerate:()=>pu,list_many_input:()=>j_,list_tolist:()=>uu,list_tolist2:()=>ru,list_trig:()=>J_,lists_2d_get_col_row_data:()=>Y_,lists_2d_get_data_with_col_row:()=>v_,lists_append_extend:()=>B_,lists_change_to:()=>q_,lists_change_to_general:()=>Z_,lists_clear:()=>x_,lists_create_with:()=>X_,lists_create_with2:()=>tu,lists_create_with_noreturn:()=>z_,lists_create_with_text:()=>b_,lists_create_with_text2:()=>eu,lists_del_general:()=>$_,lists_find:()=>H_,lists_getIndex3:()=>iu,lists_getSublist3:()=>nu,lists_get_index:()=>V_,lists_get_random_item:()=>U_,lists_get_random_sublist:()=>G_,lists_get_sublist:()=>P_,lists_insert_value:()=>k_,lists_insert_value2:()=>ou,lists_pop:()=>K_,lists_remove_at:()=>W_,lists_remove_at2:()=>_u,lists_reverse:()=>w_,lists_setIndex3:()=>su,lists_set_index:()=>y_,lists_sort:()=>Q_});var c={};t.r(c),t.d(c,{dicts_add_change_del:()=>Cu,dicts_add_or_change:()=>hu,dicts_clear:()=>Ou,dicts_create_with:()=>lu,dicts_create_with_noreturn:()=>Su,dicts_deldict:()=>gu,dicts_delete:()=>Mu,dicts_get:()=>du,dicts_get_default:()=>Tu,dicts_items:()=>cu,dicts_keys:()=>Iu,dicts_length:()=>Ru,dicts_pop:()=>Au,dicts_setdefault:()=>Lu,dicts_to_json:()=>Nu,dicts_to_json2:()=>Pu,dicts_to_to:()=>Fu,dicts_todict:()=>fu,dicts_update:()=>mu,dicts_values:()=>Eu,json_to_dicts:()=>Du});var E={};t.r(E),t.d(E,{logic_boolean:()=>Vu,logic_compare:()=>vu,logic_compare_continous:()=>Yu,logic_is:()=>Gu,logic_is_in:()=>Uu,logic_negate:()=>bu,logic_null:()=>yu,logic_operation:()=>Xu,logic_tobool:()=>ku,logic_true_or_false:()=>Bu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>ar,sdcard_use_spi_init:()=>pr,storage_can_write_ornot:()=>ju,storage_change_dir:()=>sr,storage_close_file:()=>Zu,storage_delete_file:()=>tr,storage_file_seek:()=>nr,storage_file_tell:()=>ir,storage_file_write:()=>Ku,storage_fileopen:()=>xu,storage_fileopen_new:()=>Hu,storage_fileopen_new_encoding:()=>Wu,storage_get_a_line:()=>qu,storage_get_contents:()=>Qu,storage_get_contents_without_para:()=>Ju,storage_get_current_dir:()=>or,storage_get_file_size:()=>er,storage_get_filename:()=>zu,storage_is_file:()=>rr,storage_list_all_files:()=>$u,storage_make_dir:()=>_r,storage_open_file_with_os:()=>wu,storage_rename:()=>ur});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Tr,procedures_callreturn:()=>dr,procedures_defnoreturn:()=>Ir,procedures_defreturn:()=>lr,procedures_ifreturn:()=>hr,procedures_return:()=>Mr});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Lr,tuple_create_with:()=>mr,tuple_create_with_noreturn:()=>Dr,tuple_create_with_text2:()=>Or,tuple_create_with_text_return:()=>cr,tuple_del:()=>gr,tuple_find:()=>Sr,tuple_getIndex:()=>Er,tuple_getSublist:()=>Nr,tuple_get_random_item:()=>Pr,tuple_get_sublist:()=>Fr,tuple_input:()=>Yr,tuple_join:()=>Cr,tuple_length:()=>Rr,tuple_max:()=>Ar,tuple_totuple:()=>vr,tuple_trig:()=>fr});var A={};t.r(A),t.d(A,{set_add_discard:()=>Gr,set_clear:()=>yr,set_create_with:()=>Xr,set_create_with_text_return:()=>xr,set_length:()=>br,set_operate:()=>Br,set_operate_update:()=>Ur,set_pop:()=>Vr,set_sub:()=>kr,set_toset:()=>Hr,set_update:()=>wr});var L={};t.r(L),t.d(L,{html_content:()=>Qr,html_content_more:()=>qr,html_document:()=>Wr,html_form:()=>zr,html_head_body:()=>Jr,html_style:()=>jr,html_style_content:()=>Zr,html_text:()=>$r,html_title:()=>Kr});var S={};t.r(S),t.d(S,{attribute_access:()=>_p,function_call:()=>op,raw_block:()=>tp,raw_empty:()=>ip,raw_expression:()=>ep,raw_table:()=>np,type_check:()=>sp});var f={};t.r(f),t.d(f,{educore_mqtt_connect:()=>kp,educore_mqtt_connect_success:()=>Wp,educore_mqtt_subscribe_message:()=>wp,educore_mqtt_topic_publish:()=>Hp,educore_mqtt_topic_subscribe:()=>xp,educore_wifi_connect:()=>Gp,network_ap_connect:()=>cp,network_connect:()=>Tp,network_get_connect:()=>Mp,network_get_wifi:()=>Op,network_init:()=>ap,network_is_active:()=>Ip,network_open:()=>lp,network_scan:()=>dp,network_server:()=>Ep,network_socket_accept:()=>Lp,network_socket_bind:()=>gp,network_socket_close:()=>Fp,network_socket_connect:()=>Cp,network_socket_init:()=>Rp,network_socket_listen:()=>Ap,network_socket_receive:()=>Sp,network_socket_receive_from:()=>Np,network_socket_send:()=>fp,network_socket_send_to:()=>Dp,network_stop:()=>mp,network_wifi_connect:()=>hp,ntptime_address:()=>bp,ntptime_time:()=>Xp,requests_attribute:()=>vp,requests_attribute2:()=>Up,requests_get:()=>Pp,requests_get2:()=>yp,requests_method:()=>Yp,requests_post:()=>Bp});var N={};t.r(N),t.d(N,{CI130X_BROADCAST_SANT:()=>Hl,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>xl,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>wl,CI130X_IDENTIFY_AND_SAVE_SANT:()=>kl,CI130X_SET_SYSTEM_CMD_SANT:()=>Wl,HCSR04:()=>Ia,RTC_set_date:()=>la,RTC_set_time:()=>aa,bitbot_als_num:()=>El,dht11:()=>fl,educore_button_sensor:()=>Vl,educore_button_was_pressed:()=>yl,educore_gyroscope_sensor:()=>Yl,educore_gyroscope_sensor_read:()=>Xl,educore_gyroscope_sensor_shake:()=>bl,educore_light_sensor:()=>vl,educore_rfid_sensor:()=>Bl,educore_rfid_sensor_scan:()=>Ul,educore_rfid_sensor_scan_data:()=>Gl,educore_voice_sensor:()=>Fl,number1:()=>Ta,number2:()=>ha,number3:()=>Ma,number4:()=>ma,number5:()=>Oa,number6:()=>ca,number7:()=>Ea,onboard_RTC_get_time:()=>Na,onboard_RTC_get_time_str:()=>Xa,onboard_RTC_get_timestamp:()=>Da,onboard_RTC_get_timetuple_to_str:()=>ba,onboard_RTC_set_datetime:()=>va,onboard_RTC_settime_string:()=>Pa,onboard_RTC_timestamp_totuple:()=>Fa,rfid_readcontent:()=>wa,rfid_readid:()=>ka,rfid_write:()=>xa,rfid_write_return:()=>Ha,sensor_LTR308:()=>Va,sensor_aht11:()=>Ba,sensor_bitbot_ALS:()=>cl,sensor_button_get_presses:()=>Cl,sensor_button_is_pressed:()=>Rl,sensor_button_was_pressed:()=>gl,sensor_distance_hrsc04:()=>pa,sensor_eulerangles:()=>Ka,sensor_field_strength:()=>Nl,sensor_get_acceleration:()=>Wa,sensor_get_temperature:()=>Ua,sensor_hp203:()=>Ga,sensor_light:()=>Sl,sensor_mixbot_get_gyro:()=>Ol,sensor_mixbot_patrol_calibrate:()=>hl,sensor_mixbot_patrol_value:()=>Ml,sensor_mixbot_temperature:()=>ml,sensor_mixgo_LTR308:()=>Sa,sensor_mixgo_button_attachInterrupt:()=>ta,sensor_mixgo_button_get_presses:()=>$p,sensor_mixgo_button_is_pressed:()=>zp,sensor_mixgo_button_was_pressed:()=>Zp,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>nl,sensor_mixgo_cc_mmc5603_get_angle:()=>il,sensor_mixgo_cc_mmc5603_get_magnetic:()=>el,sensor_mixgo_light:()=>da,sensor_mixgo_nova_LTR308:()=>La,sensor_mixgo_nova_pin_near:()=>Aa,sensor_mixgo_pin_near:()=>Ca,sensor_mixgo_pin_near_double:()=>ga,sensor_mixgo_pin_near_single:()=>Ra,sensor_mixgo_pin_pressed:()=>oa,sensor_mixgo_sant_color:()=>fa,sensor_mixgo_touch_slide:()=>ra,sensor_mixgocar42_button_attachInterrupt:()=>sa,sensor_mixgocar42_button_get_presses:()=>na,sensor_mixgocar42_button_is_pressed:()=>ea,sensor_mixgocar42_button_was_pressed:()=>ia,sensor_mixgocar_battery_left:()=>Tl,sensor_mixgocar_pin_near:()=>Il,sensor_mixgocar_pin_near_line:()=>ll,sensor_mixgocar_pin_near_state_change:()=>dl,sensor_mixgoce_pin_pressed:()=>_a,sensor_mixgoce_temperature:()=>ol,sensor_mixgome_temperature:()=>sl,sensor_mpython_pin_pressed:()=>ua,sensor_mpython_qmi8658_get_gyro:()=>_l,sensor_mpython_qmi8658_temperature:()=>ul,sensor_onboard_compass_reset:()=>tl,sensor_onboard_mpu9250_calibrate_compass:()=>za,sensor_onboard_mpu9250_field_strength:()=>$a,sensor_onboard_mpu9250_gesture:()=>Ja,sensor_onboard_mpu9250_get_acceleration:()=>Qa,sensor_onboard_mpu9250_get_gyro:()=>ja,sensor_onboard_mpu9250_get_magnetic:()=>qa,sensor_onboard_mpu9250_temperature:()=>Za,sensor_pin_near:()=>Ll,sensor_pin_pressed:()=>Al,sensor_read:()=>Pl,sensor_rm_acc:()=>al,sensor_rm_battery_left:()=>pl,sensor_rm_pin_near_double:()=>rl,sensor_rtc_init:()=>Ya,sensor_sound:()=>ya,sensor_temperature:()=>Dl});var D={};t.r(D),t.d(D,{educore_mqtt_connect:()=>gI,educore_mqtt_connect_success:()=>SI,educore_mqtt_subscribe_message:()=>CI,educore_mqtt_topic_publish:()=>LI,educore_mqtt_topic_subscribe:()=>AI,educore_wifi_connect:()=>RI,network_ap_connect:()=>tI,network_connect:()=>Jl,network_get_connect:()=>ql,network_get_wifi:()=>$l,network_init:()=>Kl,network_is_active:()=>Zl,network_open:()=>zl,network_scan:()=>eI,network_server:()=>iI,network_socket_accept:()=>uI,network_socket_bind:()=>sI,network_socket_close:()=>II,network_socket_connect:()=>oI,network_socket_init:()=>nI,network_socket_listen:()=>_I,network_socket_receive:()=>rI,network_socket_receive_from:()=>aI,network_socket_send:()=>pI,network_socket_send_to:()=>lI,network_stop:()=>jl,network_wifi_connect:()=>Ql,ntptime_address:()=>mI,ntptime_time:()=>MI,requests_attribute:()=>TI,requests_attribute2:()=>cI,requests_get:()=>dI,requests_get2:()=>OI,requests_method:()=>hI,requests_post:()=>EI});var F={};t.r(F),t.d(F,{CI130X_BROADCAST_SANT:()=>LT,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>AT,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>CT,CI130X_IDENTIFY_AND_SAVE_SANT:()=>gT,CI130X_SET_SYSTEM_CMD_SANT:()=>ST,HCSR04:()=>bI,bitbot_als_num:()=>iT,dht11:()=>aT,educore_button_sensor:()=>mT,educore_button_was_pressed:()=>OT,educore_gyroscope_sensor:()=>TT,educore_gyroscope_sensor_read:()=>hT,educore_gyroscope_sensor_shake:()=>MT,educore_light_sensor:()=>dT,educore_rfid_sensor:()=>cT,educore_rfid_sensor_scan:()=>ET,educore_rfid_sensor_scan_data:()=>RT,educore_voice_sensor:()=>lT,number1:()=>VI,number2:()=>yI,number3:()=>BI,number4:()=>UI,number5:()=>GI,number6:()=>kI,number7:()=>wI,onboard_RTC_get_time:()=>vd,onboard_RTC_get_time_str:()=>bd,onboard_RTC_get_timestamp:()=>Yd,onboard_RTC_get_timetuple_to_str:()=>Vd,onboard_RTC_set_datetime:()=>Fd,onboard_RTC_settime_string:()=>Pd,onboard_RTC_timestamp_totuple:()=>Xd,rfid_readcontent:()=>sd,rfid_readid:()=>nd,rfid_write:()=>od,rfid_write_return:()=>_d,sensor_LTR308:()=>ZI,sensor_adxl345_get_acceleration:()=>hd,sensor_aht11:()=>ed,sensor_bitbot_ALS:()=>eT,sensor_button_get_presses:()=>oT,sensor_button_is_pressed:()=>nT,sensor_button_was_pressed:()=>sT,sensor_compass_reset:()=>Rd,sensor_ds18x20:()=>jI,sensor_eulerangles:()=>rd,sensor_get_acceleration:()=>ud,sensor_get_temperature:()=>id,sensor_hp203:()=>td,sensor_light:()=>pT,sensor_lm35:()=>zI,sensor_mixbot_get_gyro:()=>tT,sensor_mixbot_patrol_calibrate:()=>zd,sensor_mixbot_patrol_value:()=>Zd,sensor_mixbot_temperature:()=>$d,sensor_mixgo_LTR308:()=>JI,sensor_mixgo_button_attachInterrupt:()=>FI,sensor_mixgo_button_get_presses:()=>DI,sensor_mixgo_button_is_pressed:()=>fI,sensor_mixgo_button_was_pressed:()=>NI,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Ud,sensor_mixgo_cc_mmc5603_get_angle:()=>Bd,sensor_mixgo_cc_mmc5603_get_magnetic:()=>yd,sensor_mixgo_light:()=>rT,sensor_mixgo_nova_LTR308:()=>qI,sensor_mixgo_nova_pin_near:()=>KI,sensor_mixgo_pin_near:()=>WI,sensor_mixgo_pin_near_double:()=>HI,sensor_mixgo_pin_near_single:()=>xI,sensor_mixgo_pin_pressed:()=>dd,sensor_mixgo_sant_color:()=>QI,sensor_mixgo_touch_slide:()=>Id,sensor_mixgocar42_button_attachInterrupt:()=>XI,sensor_mixgocar42_button_get_presses:()=>YI,sensor_mixgocar42_button_is_pressed:()=>PI,sensor_mixgocar42_button_was_pressed:()=>vI,sensor_mixgocar_battery_left:()=>jd,sensor_mixgocar_pin_near:()=>Qd,sensor_mixgocar_pin_near_line:()=>Jd,sensor_mixgocar_pin_near_state_change:()=>qd,sensor_mixgoce_pin_pressed:()=>ld,sensor_mixgoce_temperature:()=>kd,sensor_mixgome_temperature:()=>Gd,sensor_mpu9250_calibrate_compass:()=>Od,sensor_mpu9250_field_strength:()=>Ed,sensor_mpu9250_gesture:()=>pd,sensor_mpu9250_get_acceleration:()=>ad,sensor_mpu9250_get_gyro:()=>md,sensor_mpu9250_get_magnetic:()=>Md,sensor_mpu9250_temperature:()=>cd,sensor_mpython_pin_pressed:()=>Td,sensor_mpython_qmi8658_get_gyro:()=>wd,sensor_mpython_qmi8658_temperature:()=>xd,sensor_onboard_compass_reset:()=>Dd,sensor_onboard_mpu9250_calibrate_compass:()=>Sd,sensor_onboard_mpu9250_field_strength:()=>Nd,sensor_onboard_mpu9250_gesture:()=>gd,sensor_onboard_mpu9250_get_acceleration:()=>Cd,sensor_onboard_mpu9250_get_gyro:()=>Ld,sensor_onboard_mpu9250_get_magnetic:()=>Ad,sensor_onboard_mpu9250_temperature:()=>fd,sensor_pin_near:()=>uT,sensor_pin_pressed:()=>_T,sensor_read:()=>IT,sensor_rm_acc:()=>Kd,sensor_rm_battery_left:()=>Wd,sensor_rm_pin_near_double:()=>Hd,sensor_sound:()=>$I});var P={};t.r(P),t.d(P,{MP3_CONTROL:()=>$T,MP3_EQ_MODE:()=>nh,MP3_INIT:()=>zT,MP3_LOOP_MODE:()=>eh,MP3_PLAY_FOLDER:()=>_h,MP3_PLAY_NUM:()=>oh,MP3_VOL:()=>sh,bit_motor_control:()=>KT,display_rgb:()=>QT,display_rgb2:()=>qT,display_rgb_init:()=>JT,display_rgb_show:()=>jT,microbit_music_get_tempo:()=>BT,microbit_music_pitch:()=>YT,microbit_music_pitch_delay:()=>vT,microbit_music_play_built_in:()=>FT,microbit_music_play_built_in_easy:()=>PT,microbit_music_play_list_of_notes:()=>XT,microbit_music_play_list_of_notes_easy:()=>bT,microbit_music_reset:()=>VT,microbit_music_stop:()=>yT,servo_move:()=>WT,speech_pronounce_easy:()=>xT,speech_say:()=>GT,speech_say_easy:()=>kT,speech_sing_easy:()=>wT,speech_translate:()=>HT,tone_set_tempo:()=>UT});var v={};t.r(v),t.d(v,{i2c_init:()=>mh,i2c_read:()=>Oh,i2c_write:()=>ch,microbit_radio_config:()=>lh,microbit_radio_off:()=>ah,microbit_radio_on:()=>ph,microbit_radio_receive:()=>hh,microbit_radio_reset:()=>Ih,microbit_radio_send_string:()=>dh,radio_ons:()=>rh,radio_receive_string:()=>Mh,radio_send_string:()=>Th,spi_init:()=>Eh,spi_write:()=>Rh});var Y={};t.r(Y),t.d(Y,{display_fill:()=>qh,display_image_size:()=>Qh,group_lcd_init:()=>Hh,group_lcd_power:()=>Kh,group_lcd_print:()=>xh,group_lcd_print2:()=>Wh,image_arithmetic:()=>wh,image_shift:()=>kh,lp2i_u8g_draw_4strings:()=>Jh,microbit_display_clear:()=>Ch,microbit_display_is_on:()=>Vh,microbit_display_off:()=>bh,microbit_display_on:()=>Xh,microbit_display_scroll:()=>Yh,microbit_display_scroll_string_animation:()=>vh,microbit_display_show_animation:()=>Ph,microbit_display_show_default_image:()=>Fh,microbit_display_show_image:()=>Dh,microbit_image_builtins:()=>yh,microbit_image_copy:()=>Bh,microbit_image_create:()=>Gh,microbit_image_invert:()=>Uh,monitor_bright_point:()=>Lh,monitor_get_pixel:()=>Ah,monitor_scroll_string:()=>fh,monitor_scroll_string_with_delay:()=>Nh,monitor_show_image_or_string:()=>Sh});var X={};t.r(X),t.d(X,{factory_block:()=>_M,factory_block_return:()=>uM,factory_block_return_with_textarea:()=>pM,factory_block_with_textarea:()=>rM,factory_callMethod_noreturn:()=>sM,factory_callMethod_return:()=>oM,factory_create_with_container:()=>tM,factory_create_with_item:()=>eM,factory_declare:()=>nM,factory_from_import:()=>zh,factory_function_noreturn:()=>$h,factory_function_return:()=>iM,factory_import:()=>Zh});var b={};t.r(b),t.d(b,{inout_analog_read:()=>hM,inout_analog_write:()=>dM,inout_analog_write_set:()=>TM,inout_digital_read:()=>IM,inout_digital_write:()=>mM,inout_highlow:()=>lM,sensor_pin_pressed:()=>MM});var V={};t.r(V),t.d(V,{pins_analog:()=>EM,pins_axis:()=>fM,pins_brightness:()=>NM,pins_builtinimg:()=>LM,pins_button:()=>RM,pins_digital:()=>cM,pins_imglist:()=>SM,pins_interrupt:()=>CM,pins_pwm:()=>gM,pins_radio_datarate:()=>PM,pins_radio_power:()=>FM,pins_serial:()=>AM,pins_tone_notes:()=>DM});var y={};t.r(y),t.d(y,{DS1307_init:()=>em,NTC_TEMP:()=>lm,RTC_get_time:()=>nm,RTC_set_date:()=>om,RTC_set_time:()=>sm,TCS34725_Get_RGB:()=>am,controls_GestureLists:()=>UM,controls_attachGestureInterrupt:()=>BM,controls_attachGestureInterrupt2:()=>GM,sensor_button_get_presses:()=>bM,sensor_button_is_pressed:()=>YM,sensor_button_was_pressed:()=>XM,sensor_calibrate_compass:()=>KM,sensor_compass_heading:()=>QM,sensor_compass_reset:()=>_m,sensor_current_gesture:()=>HM,sensor_current_gesture1:()=>VM,sensor_current_gesture2:()=>yM,sensor_distance_hrsc04:()=>$M,sensor_distance_hrsc04_:()=>tm,sensor_field_strength:()=>jM,sensor_get_acceleration:()=>kM,sensor_get_gestures:()=>xM,sensor_hrsc04_init:()=>rm,sensor_is_compass_calibrated:()=>JM,sensor_light:()=>um,sensor_light_level:()=>WM,sensor_magnetic:()=>ZM,sensor_rotation:()=>zM,sensor_set_acceleration:()=>wM,sensor_temperature:()=>qM});var B={};t.r(B),t.d(B,{IO_input:()=>Cm,IO_print:()=>Am,IO_print_inline:()=>Lm,serial_any:()=>Om,serial_begin:()=>gm,serial_print:()=>dm,serial_print_hex:()=>hm,serial_println:()=>Tm,serial_readline:()=>cm,serial_readstr:()=>mm,serial_readstr_until:()=>Em,serial_receive_data_event:()=>Mm,serial_softserial:()=>Rm});var U={};t.r(U),t.d(U,{Panic_with_status_code:()=>Dm,base_delay:()=>fm,controls_millis:()=>Nm,controls_uname:()=>Pm,reset:()=>Fm});var G={};t.r(G),t.d(G,{MP3_CONTROL:()=>$m,MP3_EQ_MODE:()=>eO,MP3_INIT:()=>Zm,MP3_LOOP_MODE:()=>tO,MP3_PLAY_FOLDER:()=>sO,MP3_PLAY_NUM:()=>nO,MP3_VOL:()=>iO,bit_motor_control:()=>Jm,display_rgb:()=>qm,display_rgb2:()=>jm,display_rgb_init:()=>Qm,display_rgb_show:()=>zm,microbit_music_get_tempo:()=>Um,microbit_music_pitch:()=>bm,microbit_music_pitch_delay:()=>Xm,microbit_music_play_built_in:()=>vm,microbit_music_play_built_in_easy:()=>Ym,microbit_music_play_list_of_notes:()=>Vm,microbit_music_reset:()=>ym,microbit_music_stop:()=>Bm,servo_move:()=>Km,speech_pronounce_easy:()=>Wm,speech_say:()=>wm,speech_say_easy:()=>xm,speech_sing_easy:()=>Hm,speech_translate:()=>km,tone_set_tempo:()=>Gm});var k={};t.r(k),t.d(k,{i2c_init:()=>dO,i2c_read:()=>TO,i2c_write:()=>hO,microbit_radio_config:()=>rO,microbit_radio_off:()=>uO,microbit_radio_on:()=>_O,microbit_radio_receive:()=>IO,microbit_radio_reset:()=>pO,radio_ons:()=>oO,radio_receive_string:()=>lO,radio_send_string:()=>aO,spi_init:()=>MO,spi_write:()=>mO});var w={};t.r(w),t.d(w,{display_fill:()=>HO,display_image_size:()=>xO,group_lcd_init:()=>UO,group_lcd_power:()=>kO,group_lcd_print:()=>BO,group_lcd_print2:()=>GO,image_arithmetic:()=>VO,image_shift:()=>bO,lp2i_u8g_draw_4strings:()=>wO,microbit_display_clear:()=>OO,microbit_display_is_on:()=>FO,microbit_display_on:()=>DO,microbit_display_scroll:()=>NO,microbit_display_scroll_string_animation:()=>yO,microbit_display_set_pixel:()=>EO,microbit_display_show_animation:()=>fO,microbit_display_show_default_image:()=>SO,microbit_display_show_image:()=>LO,microbit_image_builtins:()=>PO,microbit_image_copy:()=>vO,microbit_image_create:()=>XO,microbit_image_invert:()=>YO,monitor_bright_point:()=>RO,monitor_get_pixel:()=>cO,monitor_scroll_string:()=>CO,monitor_scroll_string_with_delay:()=>AO,monitor_show_image_or_string:()=>gO});var x={};t.r(x),t.d(x,{factory_block:()=>ZO,factory_block_return:()=>$O,factory_block_return_with_textarea:()=>ec,factory_block_with_textarea:()=>tc,factory_callMethod_noreturn:()=>jO,factory_callMethod_return:()=>zO,factory_declare:()=>qO,factory_from_import:()=>WO,factory_function_noreturn:()=>JO,factory_function_return:()=>QO,factory_import:()=>KO});var H={};t.r(H),t.d(H,{inout_analog_read:()=>uc,inout_analog_write:()=>oc,inout_analog_write_set:()=>_c,inout_digital_read:()=>sc,inout_digital_write:()=>nc,inout_highlow:()=>ic,sensor_pin_pressed:()=>rc});var W={};t.r(W),t.d(W,{pins_analog:()=>ac,pins_axis:()=>mc,pins_brightness:()=>Oc,pins_builtinimg:()=>hc,pins_button:()=>lc,pins_digital:()=>pc,pins_imglist:()=>Mc,pins_interrupt:()=>dc,pins_pwm:()=>Ic,pins_radio_datarate:()=>Rc,pins_radio_power:()=>Ec,pins_serial:()=>Tc,pins_tone_notes:()=>cc});var K={};t.r(K),t.d(K,{DS1307_init:()=>Hc,NTC_TEMP:()=>Zc,RTC_get_time:()=>Wc,RTC_set_date:()=>Jc,RTC_set_time:()=>Kc,TCS34725_Get_RGB:()=>zc,controls_GestureLists:()=>Lc,controls_attachGestureInterrupt:()=>Sc,controls_attachGestureInterrupt2:()=>Dc,sensor_button_get_presses:()=>Ac,sensor_button_is_pressed:()=>gc,sensor_button_was_pressed:()=>Cc,sensor_calibrate_compass:()=>bc,sensor_compass_heading:()=>yc,sensor_compass_reset:()=>Qc,sensor_current_gesture:()=>Pc,sensor_current_gesture1:()=>fc,sensor_current_gesture2:()=>Nc,sensor_distance_hrsc04:()=>wc,sensor_distance_hrsc04_:()=>xc,sensor_field_strength:()=>Uc,sensor_get_acceleration:()=>vc,sensor_get_gestures:()=>Fc,sensor_hrsc04_init:()=>jc,sensor_is_compass_calibrated:()=>Vc,sensor_light:()=>qc,sensor_light_level:()=>Xc,sensor_magnetic:()=>kc,sensor_rotation:()=>Gc,sensor_set_acceleration:()=>Yc,sensor_temperature:()=>Bc});var J={};t.r(J),t.d(J,{IO_input:()=>pE,IO_print:()=>aE,IO_print_inline:()=>lE,serial_any:()=>nE,serial_begin:()=>rE,serial_print:()=>$c,serial_print_hex:()=>eE,serial_println:()=>tE,serial_readline:()=>oE,serial_readstr:()=>sE,serial_readstr_until:()=>_E,serial_receive_data_event:()=>iE,serial_softserial:()=>uE});var Q={};t.r(Q),t.d(Q,{Panic_with_status_code:()=>AE,base_delay:()=>CE,controls_end_program:()=>SE,controls_millis:()=>LE,controls_uname:()=>NE,reset:()=>fE,system_device_name:()=>RE,system_device_serial_number:()=>gE,system_event_bus_source:()=>cE,system_event_bus_value:()=>EE,system_on_event:()=>ME,system_raise_event:()=>hE,system_reset:()=>dE,system_run_in_background:()=>IE,system_timestamp:()=>mE,system_value:()=>OE,system_wait:()=>TE});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ot={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ct={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Et={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},gt={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ct={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Et.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],gt.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Pt={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},vt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},Yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Ut={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},Gt={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},kt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},wt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const xt={init:function(){this.setColour(wt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},Ht={init:function(){this.setColour(wt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(wt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(wt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(wt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(wt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(wt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(wt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(wt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(wt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(wt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(wt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(wt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(wt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(wt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},re=ie,pe={init:function(){this.setColour(wt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ae={init:function(){this.setColour(wt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Te={init:function(){this.setColour(le),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},he={init:function(){this.setColour(le),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Oe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ce={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ee={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Re={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},ge={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ce={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Le={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Se={init:function(){this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},fe={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ne={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(le),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},De={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Fe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Pe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ve={init:function(){this.setColour(le),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ye={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(le),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Xe={init:function(){this.setColour(le),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Fi={init:function(){this.setColour(Ni),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Pi={init:function(){this.setColour(Ni),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},Xi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},bi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Vi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},yi={init:function(){this.setColour(Ni),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Gi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},wi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Hi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Wi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Ni),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ji={init:function(){this.setColour(Ni),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Qi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},qi={init:function(){this.setColour(Ni),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ji={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi=210,$i={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},tn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},en={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},nn={init:function(){this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},un={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},rn={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},an={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},In={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Tn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Rn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},fn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Yn={};Yn.NAME_TYPE=q.PROCEDURE_CATEGORY_NAME,Yn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ns={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ds={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys=160,Xs={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},bs={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},Vs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},ys={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Bs={init:function(){this.setColour(Ys),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Us={init:function(){this.setColour(Ys),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},Gs={init:function(){this.setColour(Ys),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+r()+"("+t+", "+e+", "+i+") or "+p()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Yu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Xu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},bu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Vu=function(t,e){return["None",e.ORDER_ATOMIC]},yu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Bu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Gu=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ku=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},wu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},xu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Hu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Wu=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ku=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ju=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Qu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ju=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},zu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Zu=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},$u=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},tr=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},er=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ir=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},nr=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},sr=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},or=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},_r=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ur=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},rr=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},pr=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},ar=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Hr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Wr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Kr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Jr=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Qr=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},qr=function(t,e){return'"},jr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},zr=function(){return this.getFieldValue("TEXT")+"\n"},Zr=function(t){return t.getFieldValue("TEXT")+"\n"},$r=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},tp=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},ep=function(){return""},ip=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},np=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+r.join("")+p.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+p.join("\n")},op.scrubNakedValue=function(t){return t+"\n"},op.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},op.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},op.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,op.COMMENT_WRAP-3),n+=op.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const _p=120;({init:function(){this.setColour(_p),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(_p);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const up=225,rp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},pp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},ap={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},lp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Ip={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},dp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Tp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Mp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},mp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},Op={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},cp={init:function(){this.setColour(up),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},Ep={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Rp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},gp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},Cp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Ap={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},Lp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Sp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},fp={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Np={init:function(){this.setColour(up),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Dp={init:function(){this.setColour(up),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Fp={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(up),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Pp={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(up),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},vp={init:function(){this.setColour(up),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Yp={init:function(){this.setColour(up),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},Xp="#3288dd",bp={init:function(){this.setColour(Xp),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Vp={init:function(){this.setColour(Xp),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},yp={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Xp),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Bp={init:function(){this.setColour(Xp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},Up={init:function(){this.setColour(Xp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gp={init:function(){this.setColour(Xp),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},kp={init:function(){this.setColour(Xp),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wp={init:function(){this.setColour(Xp),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xp={init:function(){this.setColour(Xp),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},Hp="#A58C5B",Wp={init:function(){var t=[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(Hp),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},Kp={init:function(){this.setColour(Hp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},Jp={init:function(){this.setColour(Hp),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}};q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START;const Qp="#947C54",qp={init:function(){this.setColour(Qp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},jp={init:function(){this.setColour(Qp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},zp={init:function(){this.setColour(Qp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},Zp={init:function(){this.setColour(Qp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},$p={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},ta={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},ea={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},ia={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},na={init:function(){this.setColour(Qp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},sa={init:function(){this.setColour(Qp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},oa={init:function(){this.setColour(Qp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},_a={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_TOUCH_SLIDE),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP)}},ua={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_CHAOSHENGBO),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CHAOSHENGBO)}},ra={init:function(){this.setColour(Qp),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETTIME).appendField("myRTC"),this.appendValueInput("hour").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!1),this.setTooltip(q.Msg.MIXLY_RTCSETTIME+q.Msg.MIXLY_MIX2)}},pa={init:function(){this.setColour(Qp),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETDATE).appendField("myRTC"),this.appendValueInput("year").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_DAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RTCSETDATE+q.Msg.MIXLY_MIX1)}},aa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},la={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Ia={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["1","touch1"],["2","touch2"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},da={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Ta={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_UP,"12"],[q.Msg.MIXLY_DOWN,"14"],[q.Msg.MIXLY_LEFT,"13"],[q.Msg.MIXLY_RIGHT,"15"],["A","32"],["B","33"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ha={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Ma={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ma={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Oa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ca={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_NEAR),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR)}},Ea={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"left"],[q.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},Ra={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0)}},ga={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},Ca={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_EXTERN_LIGHT;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},Aa={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},La={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_COLOR_SENSOR+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},Sa={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("RTC"),this.appendDummyInput().setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCGETTIME),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP+" (year, month, mday, hour, minute, second, weekday, yearday)")}},fa={init:function(){this.setColour(Qp),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_RTCGETTIMESTAMP),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP)}},Na={init:function(){this.setColour(Qp),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.LISTS_TO_TUPLE),this.setInputsInline(!0),this.setOutput(!0,Number)}},Da={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("RTC"),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_USE_STRING_TUPLE),this.appendDummyInput().appendField(q.Msg.MIXLY_RTCSETTIME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Fa={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("RTC"),this.appendValueInput("year").setCheck(Number).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).appendField(" "+q.Msg.MIXLY_DAY),this.appendValueInput("hour").setCheck(Number).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).appendField(" "+q.Msg.MIXLY_SECOND),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP)}},Pa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("RTC"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_SETUP).setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP)}},va={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_RTC_GET_TIME_STR),this.setOutput(!0,String),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP)}},Ya={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Xa={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SOUND),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},ba={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_TEM_HUM+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:q.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:q.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP}[e]}))}},Va={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0)}},ya={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_Altitude+q.Msg.MSG.catSensor+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETPRESSURE,"pressure()"],[q.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[q.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ba={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(q.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ua={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ga={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},ka={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(q.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},wa={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_STRENGTH,"strength"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},xa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_GESTURE_ALL).appendField(new q.FieldDropdown([[q.Msg.ME_GO_PITCH,"[0]"],[q.Msg.ME_GO_ROLL,"[1]"],[q.Msg.ME_GO_PITCH+", "+q.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ha={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_shake,"shake"],[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"],[q.Msg.MIXLY_MICROBIT_face_up,"face up"],[q.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=q.Msg.MIXLY_MICROBIT_JS_CURRENT,n=q.Msg.MSG.catSensor,s=q.Msg.MIXLY_MICROBIT_JS_STATE,o=q.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:q.Msg.MIXLY_MICROBIT_shake,up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT,"face up":q.Msg.MIXLY_MICROBIT_face_up,"face down":q.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},Wa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Ka={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Ja={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Qa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},qa={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},ja={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},za={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},Za={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL,"all"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$a={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},tl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},el={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},il={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},nl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},sl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},ol={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"1"],[q.Msg.TEXT_TRIM_RIGHT,"2"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},_l={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},ul={init:function(){this.setColour(Qp),this.appendDummyInput().appendField("acc"+q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_ADXL345_XA,"[0]"],[q.Msg.MIXLY_ADXL345_YA,"[1]"],[q.Msg.MIXLY_ACC_SHAKE,"[2]"],[q.Msg.MIXLY_ADXL345_XA+","+q.Msg.MIXLY_ADXL345_YA+","+q.Msg.MIXLY_ACC_SHAKE,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION)}},rl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"[0]"],[q.Msg.MIXGO_LEFT_MID,"[1]"],[q.Msg.MIXGO_RIGHT_MID,"[2]"],[q.Msg.TEXT_TRIM_RIGHT,"[3]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},pl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},al={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[q.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[q.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ll={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},Il={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXGO_LINE_SENSOR).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE,"WHITE"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK,"BLACK"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET,"RESET_TO_FAB"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Tl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_Board_temperature),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},hl={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Ml={init:function(){this.setColour(Qp),this.appendDummyInput().appendField(q.Msg.ANALOG+q.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("mode").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_LIGHT_INTENSITY+"(%)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ml={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(new q.FieldDropdown(j.Profile.default.als_num),"PIN"),this.setOutput(!0,Number)}},Ol=qp,cl=jp,El=zp,Rl=na,gl=Ra,Cl=la,Al=Wp,Ll=Jp,Sl=Kp,fl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_EXTERN_SOUND),this.setInputsInline(!0),this.setOutput(!0)}},Nl={init:function(){this.setColour(Qp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.blockpy_set_of+q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setInputsInline(!0),this.setOutput(!0)}},Dl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_LIGHT_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},Fl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GYROSCOPE_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},Pl={init:function(){this.setColour(Qp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_Horizontal_inclination,"X"],["y","[1]"],["z","[2]"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},vl={init:function(){this.setColour(Qp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_BE_SHAKED),this.setInputsInline(!0),this.setOutput(!0)}},Yl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_BUTTON).appendField(new q.FieldDropdown([["a","a"],["b","b"],["c","c"]]),"btn"),this.setOutput(!0),this.setInputsInline(!0)}},Xl={init:function(){this.setColour(Qp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},bl={init:function(){this.setColour(Qp),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_INITIAL),this.setOutput(!0),this.setInputsInline(!0)}},Vl={init:function(){this.setColour(Qp),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ),this.setOutput(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(Qp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ+q.Msg.MIXLY_COMMUNICATION_DATA_FROM),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_SERIAL_NUMBER,"serial_number"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},Bl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_HELLO_XIAOZHI,"1"],[q.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[q.Msg.MIXLY_THE_FIRST,"3"],[q.Msg.MIXLY_THE_SECOND,"4"],[q.Msg.MIXLY_THE_THIRD,"5"],[q.Msg.MIXLY_THE_FOURTH,"6"],[q.Msg.MIXLY_THE_FIFTH,"7"],[q.Msg.MIXLY_THE_SIXTH,"8"],[q.Msg.MIXLY_THE_SEVENTH,"9"],[q.Msg.MIXLY_THE_EIGHTH,"10"],[q.Msg.MIXLY_THE_NINTH,"11"],[q.Msg.MIXLY_THE_TENTH,"12"],[q.Msg.MIXLY_THE_ELEVENTH,"13"],[q.Msg.MIXLY_THE_TWELFTH,"14"],[q.Msg.MIXLY_THE_13TH,"15"],[q.Msg.MIXLY_THE_14TH,"16"],[q.Msg.MIXLY_THE_15TH,"17"],[q.Msg.MIXLY_THE_16TH,"18"],[q.Msg.MIXLY_THE_17TH,"19"],[q.Msg.MIXLY_THE_18TH,"20"],[q.Msg.MIXLY_THE_19TH,"21"],[q.Msg.MIXLY_THE_20TH,"22"],[q.Msg.MIXLY_Turn_on_the_lights,"23"],[q.Msg.MIXLY_Turn_off_the_lights,"24"],[q.Msg.MIXLY_Turn_up_the_brightness,"25"],[q.Msg.MIXLY_Turn_down_the_brightness,"26"],[q.Msg.MIXLY_Set_it_to_red,"27"],[q.Msg.MIXLY_Set_it_to_orange,"28"],[q.Msg.MIXLY_Set_it_to_yellow,"29"],[q.Msg.MIXLY_Set_it_to_green,"30"],[q.Msg.MIXLY_Set_it_to_cyan,"31"],[q.Msg.MIXLY_Set_it_to_blue,"32"],[q.Msg.MIXLY_Set_it_to_purple,"33"],[q.Msg.MIXLY_Set_it_to_white,"34"],[q.Msg.MIXLY_Turn_on_the_fan,"35"],[q.Msg.MIXLY_Turn_off_the_fan,"36"],[q.Msg.MIXLY_First_gear,"37"],[q.Msg.MIXLY_Wind_speed_second,"38"],[q.Msg.MIXLY_Third_gear,"39"],[q.Msg.MIXLY_Previous,"40"],[q.Msg.MIXLY_Next_page,"41"],[q.Msg.MIXLY_Show_smiley_face,"42"],[q.Msg.MIXLY_Show_crying_face,"43"],[q.Msg.MIXLY_Show_love,"44"],[q.Msg.MIXLY_Close_display,"45"],[q.Msg.MIXLY_Start_execution,"46"],[q.Msg.MIXLY_FORWARD,"47"],[q.Msg.MIXLY_BACKWARD,"48"],[q.Msg.MIXLY_TURNLEFT,"49"],[q.Msg.MIXLY_TURNRIGHT,"50"],[q.Msg.MIXLY_STOP,"51"],[q.Msg.MIXLY_Accelerate,"52"],[q.Msg.MIXLY_retard,"53"],[q.Msg.ROTATION_FORWARD,"54"],[q.Msg.ROTATION_BACKWARD,"55"],[q.Msg.MIXLY_Query_temperature,"56"],[q.Msg.MIXLY_Query_humidity,"57"],[q.Msg.MIXLY_Query_brightness,"58"],[q.Msg.MIXLY_Query_sound,"59"],[q.Msg.MIXLY_Query_time,"60"],[q.Msg.MIXLY_Query_distance,"61"],[q.Msg.MIXLY_Query_pressure,"62"],[q.Msg.MIXLY_Query_key,"63"],[q.Msg.MIXLY_Query_touch,"64"],[q.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(q.Msg.MIXLY_WHETHER+q.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},Gl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[q.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[q.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},kl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_MP3_PLAY).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_WIND_SPEED,"154"],[q.Msg.MIXLY_HYETAL,"155"],[q.Msg.MIXLY_TEMPERATURE,"156"],[q.Msg.MIXLY_Humidity,"157"],[q.Msg.MIXLY_Altitude,"158"],[q.Msg.MIXLY_SOUND,"159"],[q.Msg.MIXLY_BRIGHTNESS,"160"],[q.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[q.Msg.MIXLY_SERVO,"162"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[q.Msg.MIXLY_BUTTON2,"164"],[q.Msg.MIXLY_ESP32_TOUCH,"165"],[q.Msg.MIXLY_PAY,"166"],[q.Msg.MIXLY_CARSH_CHANGE,"167"],[q.Msg.MIXLY_COUNTDOWN,"168"],[q.Msg.MIXLY_TIMING,"169"],[q.Msg.MIXLY_AT_THE_MOMENT,"170"],[q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[q.Msg.MIXLY_FORWARD,"172"],[q.Msg.MIXLY_BACKWARD,"173"],[q.Msg.MIXLY_TURNLEFT,"174"],[q.Msg.MIXLY_TURNRIGHT,"175"],[q.Msg.MIXLY_STOP,"176"],[q.Msg.MIXLY_Accelerate,"177"],[q.Msg.MIXLY_retard,"178"],[q.Msg.ROTATION_FORWARD,"179"],[q.Msg.ROTATION_BACKWARD,"180"],[q.Msg.TUPLE_JOIN,"181"],[q.Msg.MIXLY_SHOW,"182"],[q.Msg.MIXLY_LAMPLIGHT,"183"],[q.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(q.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(q.Msg.MIXLY_UNIT).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_YEAR,"117"],[q.Msg.MIXLY_MONTH,"118"],[q.Msg.MIXLY_DAY,"119"],[q.Msg.MIXLY_HOUR,"120"],[q.Msg.MIXLY_MINUTE,"121"],[q.Msg.MIXLY_SECOND,"122"],[q.Msg.MIXLY_WEEK2,"123"],[q.Msg.MIXLY_RMB_UNIT,"124"],[q.Msg.blockpy_setheading_degree,"125"],[q.Msg.MIXLY_GEAR,"126"],[q.Msg.MIXLY_LAYER,"127"],[q.Msg.MIXLY_GRAM,"128"],[q.Msg.MIXLY_METER,"129"],[q.Msg.MIXLY_CENTIMETER,"130"],[q.Msg.MIXLY_MILLIMETER,"131"],[q.Msg.MIXLY_LUMEN,"132"],[q.Msg.MIXLY_DECIBEL,"133"],[q.Msg.MIXLY_hectopascal,"134"],[q.Msg.MIXLY_PERCENT,"135"],[q.Msg.MIXLY_CELSIUS,"136"],[q.Msg.MIXLY_METER_PER_SEC,"137"],[q.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[q.Msg.MIXLY_SUCCESS,"140"],[q.Msg.MIXLY_FAILED,"141"],[q.Msg.MIXLY_WRONG,"142"],[q.Msg.MIXLY_GOOD,"143"],[q.Msg.MIXLY_blockpy_set_add,"144"],[q.Msg.MIXLY_DECREASE,"145"],[q.Msg.COLOUR_RGB_RED,"146"],[q.Msg.COLOUR_RGB_ORANGE,"147"],[q.Msg.COLOUR_YELLOW,"148"],[q.Msg.COLOUR_RGB_GREEN,"149"],[q.Msg.COLOUR_CYAN,"150"],[q.Msg.COLOUR_RGB_BLUE,"151"],[q.Msg.COLOUR_RGB_PURPLE,"152"],[q.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wl={init:function(){this.setColour(Qp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_SYSTEM+q.Msg.MIXLY_CMD).appendField(new q.FieldDropdown([[q.Msg.MILXY_ENTER_WAKE_UP,"1"],[q.Msg.MIXLY_INCREASE_VOLUME,"202"],[q.Msg.MIXLY_REDUCE_VOLUME,"203"],[q.Msg.MIXLY_MAX_VOLUME,"204"],[q.Msg.MIXLY_MINIMUM,"205"],[q.Msg.MIXLY_OPEN_RESPONSE,"206"],[q.Msg.MIXLY_CLOSE_RESPONSE,"207"],[q.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}};const xl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},Hl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+","+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},Wl=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},Kl=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},Jl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},Ql=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},ql=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},jl=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},zl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel = "+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},Zl=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},$l=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},tI=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET,"+n+")\n"},eI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},iI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},nI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},sI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},oI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},_I=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},uI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},rI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+","+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},pI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},aI=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},lI=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},II=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},dI=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},TI=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},hI=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MI=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},mI=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+",data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},OI=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},cI=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+",client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+",user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+",psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},EI=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},RI=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},gI=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+",content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},CI=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},AI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},LI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},SI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},fI=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=e.valueToCode(this,"btn",e.ORDER_ATOMIC),s=this.getFieldValue("mode");return i+"."+n+".irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+s+")\n"},NI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.is_pressed()",e.ORDER_ATOMIC]},DI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.was_pressed()",e.ORDER_ATOMIC]},FI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},PI=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=this.getFieldValue("mode");return i+".button.irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},vI=function(t,e){return e.definitions_.import_sonar="import sonar",["sonar.Sonar("+e.valueToCode(this,"PIN1",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN2",e.ORDER_ASSIGNMENT)+").checkdist()",e.ORDER_ATOMIC]},YI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},XI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},bI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},VI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},yI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},BI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},UI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},GI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps_nl()",e.ORDER_ATOMIC]},kI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".infrared_"+this.getFieldValue("direction")+"()",e.ORDER_ATOMIC]},wI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps()",e.ORDER_ATOMIC]},xI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".ps_nl()",e.ORDER_ATOMIC]},HI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als()",e.ORDER_ATOMIC]},WI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.color()",e.ORDER_ATOMIC]},KI=function(t,e){var i=this.getFieldValue("direction");return e.definitions_["import_"+version+"_"+i]="from "+version+" import onboard_als_"+i,["onboard_als_"+i+".als_vis()",e.ORDER_ATOMIC]},JI=function(t,e){return e.definitions_.import_ds18x20x="import ds18x20x",["ds18x20x.get_ds18x20_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},QI=function(t,e){return e.definitions_.import_lm35="import lm35",["lm35.get_LM35_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_brightness()",e.ORDER_ATOMIC];if("mixgo_ce"==i)return e.definitions_.import_mixgo_ce="import mixgo_ce",["mixgo_ce.get_brightness()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_light="from mpython import onboard_light",["onboard_light.brightness()",e.ORDER_ATOMIC];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als_vis()",e.ORDER_ATOMIC]},jI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixbot"==i){e.definitions_["import_"+i+"_sound"]="from "+i+" import sound";var n="sound.loudness()"}else if("mixgo_zero"==i){e.definitions_.import_mixgo_zero_voice_sound_level="from mixgo_zero_voice import sound_level";n="sound_level()"}else if("mixgo_nova"==i){e.definitions_.import_mixgo_nova_voice_sound_level="from mixgo_nova_voice import sound_level";n="sound_level()"}else{if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_soundlevel()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_sound="from mpython import onboard_sound",["onboard_sound.soundlevel()",e.ORDER_ATOMIC];if("mixgo_mini"==i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";n="onboard_bot.soundlevel()"}else{e.definitions_["import_"+i+"_onboard_sound"]="from "+i+" import onboard_sound";n="onboard_sound.read()"}}return[n,e.ORDER_ATOMIC]},zI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_spl06_001="import spl06_001",e.definitions_.import_onboard_bps="onboard_bps = spl06_001.SPL06(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_bps"]="from "+i+" import onboard_bps",["onboard_bps."+n,e.ORDER_ATOMIC]},ZI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_nova"==i||"mixgo_zero"==i?e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths":"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_shtc3="import shtc3",e.definitions_.import_onboard_ths="onboard_ths = shtc3.SHTC3(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths",["onboard_ths."+n+"()",e.ORDER_ATOMIC]},$I=function(t,e){return e.definitions_.import_feiyi_onboard_acc="from feiyi import onboard_acc",["onboard_acc.temperature()",e.ORDER_ATOMIC]},td=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";return['onboard_rfid.read_card(0, x="id")',e.ORDER_ATOMIC]},ed=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid",["onboard_rfid.read_card("+n+', x="content")',e.ORDER_ATOMIC]},id=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid","onboard_rfid.write_card("+s+","+n+")\n"},nd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid",["onboard_rfid.write_card("+s+","+n+")",e.ORDER_ATOMIC]},sd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("strength"==n){if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";var s="acc_gyr.strength()"}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.strength()"}return[s,e.ORDER_ATOMIC]}if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";s="acc_gyr.accelerometer()"+n}else if("mpython"==i){e.definitions_.import_mpython_motion="from mpython import motion";s="motion.accelerometer()"+n}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.acceleration()"+n}return[s,e.ORDER_ATOMIC]},od=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc",["onboard_acc.eulerangles()"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},_d=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+'.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},ud=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},rd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"button",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot",["onboard_bot.touched("+n+")",e.ORDER_ATOMIC]},pd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"==i||"mixgo_sant"==i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var n="onboard_bot.touch_slide()"}else{e.definitions_["import_"+i]="import "+i;n=i+".touch_slide(3,4)"}return[n,e.ORDER_ATOMIC]},ad=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},ld=function(t,e){return e.definitions_.import_mpython="import mpython",["mpython.touch_"+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},Id=function(t,e){e.definitions_.import_adxl345="import adxl345";var i,n=this.getFieldValue("key"),s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"x"==n?i=s+".readX()":"y"==n?i=s+".readY()":"z"==n?i=s+".readZ()":"values"==n&&(i=s+".readXYZ()"),[i,e.ORDER_ATOMIC]},dd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},Td=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},hd=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".calibrate()\n"},Md=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==i&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[i+".mpu9250_get_temperature()",e.ORDER_ATOMIC]},md=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);"compass"==i&&(e.definitions_.import_mixgo_compass="from mixgo import compass");var n,s=this.getFieldValue("compass");return"strength"==s?n=i+".get_field_strength()":"heading"==s&&(n=i+".heading()"),[n,e.ORDER_ATOMIC]},Od=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".reset_calibrate()\n"},cd=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",['onboard_mpu.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},Ed=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},Rd=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},gd=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},Cd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.calibrate()\n"},Ad=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_temperature()",e.ORDER_ATOMIC]},Ld=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass";var i,n=this.getFieldValue("compass");return"strength"==n?i="onboard_compass.get_field_strength()":"heading"==n&&(i="onboard_compass.heading()"),[i,e.ORDER_ATOMIC]},Sd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.reset_calibrate()\n"},fd=function(t,e){return e.definitions_.import_rtctime="import rtctime","rtctime.settime(("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+",0,0))\n"},Nd=function(t,e){var i=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_rtctime="import rtctime","rtctime.settime("+i+")\n"},Dd=function(t,e){e.definitions_.import_time="import time";return["time.localtime()",e.ORDER_ATOMIC]},Fd=function(t,e){return e.definitions_.import_time="import time",["time.mktime("+e.valueToCode(this,"LIST",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Pd=function(t,e){return e.definitions_.import_time="import time",["time.localtime("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},vd=function(t,e){e.definitions_.import_rtctime="import rtctime";return["rtctime.strtime()",e.ORDER_ATOMIC]},Yd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==n)if(e.definitions_.import_mpython_magnetic="from mpython import magnetic","all"==i)var s="magnetic.getstrength()";else s="magnetic.getdata()"+i;else if("mixgo_mini"==n)if(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;else if(e.definitions_["import_"+n+"_onboard_mgs"]="from "+n+" import onboard_mgs","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;return[s,e.ORDER_ATOMIC]},Xd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_.import_mpython_magnetic="from mpython import magnetic"}else"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return["onboard_mgs.getangle()",e.ORDER_ATOMIC]},bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return"onboard_mgs.calibrate()\n"},Vd=function(t,e){if("mixgo_mini"==j.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mixgo_mini_onboard_temperature="from mixgo_mini import onboard_temperature";var i="onboard_temperature()"}else{e.definitions_.import_mixgo_me_onboard_acc="from mixgo_me import onboard_acc";i="onboard_acc.temperature()"}return[i,e.ORDER_ATOMIC]},yd=function(t,e){e.definitions_.import_mixgo_ce="import mixgo_ce";return["mixgo_ce.get_temperature()",e.ORDER_ATOMIC]},Bd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mpython_motion="from mpython import motion",["motion.gyroscope()"+i,e.ORDER_ATOMIC]},Ud=function(t,e){return e.definitions_.import_mpython_motion="from mpython import motion",["motion.temperature()",e.ORDER_ATOMIC]},Gd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_adc"+n]="from "+i+" import adc"+n,["adc"+n+".read()",e.ORDER_ATOMIC]},kd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return"feiyi"==i?(e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_bat()",e.ORDER_ATOMIC]):(e.definitions_["import_"+i+"_battery"]="from "+i+" import battery",["battery.voltage()",e.ORDER_ATOMIC])},wd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_rm_e1_gyro="from rm_e1 import gyro",["gyro.acceleration()"+i,e.ORDER_ATOMIC]},xd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.patrol()"+i,e.ORDER_ATOMIC]},Hd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.obstacle()"+i,e.ORDER_ATOMIC]},Wd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info","onboard_info.ir_mode(onboard_info."+i+")\n"},Kd=function(t,e){e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info";return["onboard_info.read_bat()",e.ORDER_ATOMIC]},Jd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol","patrol.correct(patrol.CORRECTING_"+i+")\n"},Qd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol",["patrol.getdata()"+i,e.ORDER_ATOMIC]},qd=function(t,e){e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr";return["acc_gyr.temperature()",e.ORDER_ATOMIC]},jd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr",["acc_gyr.gyroscope()"+i,e.ORDER_ATOMIC]},zd=function(t,e){return e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_als("+e.valueToCode(this,"mode",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Zd=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},$d=AI,tT=LI,eT=SI,iT=ad,nT=wI,sT=qI,oT=sT,_T=function(t,e){return e.definitions_.import_dhtx="import dhtx",["dhtx."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")."+this.getFieldValue("WHAT")+"()",e.ORDER_ATOMIC]},uT=function(t,e){e.definitions_.import_educore_sound="from educore import sound";return["sound()",e.ORDER_ATOMIC]},rT=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},pT=function(t,e){e.definitions_.import_educore_light="from educore import light";return["light()",e.ORDER_ATOMIC]},aT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer";return["accelerometer()",e.ORDER_ATOMIC]},lT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},IT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shake()",e.ORDER_ATOMIC]},dT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",["button(button."+this.getFieldValue("btn")+")",e.ORDER_ATOMIC]},TT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".status()",e.ORDER_ATOMIC]},hT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",["rfid("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},MT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scanning()",e.ORDER_ATOMIC]},mT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},OT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";return"onboard_asr.cmd_id()\n"},cT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr",["onboard_asr.result("+this.getFieldValue("cmd")+")",e.ORDER_ATOMIC]},ET=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=this.getFieldValue("key");if("status1"==n)var s="onboard_asr.status()[0]";else if("status2"==n)s="onboard_asr.status()[1]";else s="onboard_asr."+n+"()";return[s,e.ORDER_ATOMIC]},RT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return"onboard_asr.play("+this.getFieldValue("star")+","+n+","+this.getFieldValue("end")+")\n"},gT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr","onboard_asr.sys_cmd("+this.getFieldValue("cmd")+")\n"},CT={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],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"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};CT["BBC micro:bit"]=CT.microbit;const AT=CT,LT=100,ST={init:function(){this.jsonInit({colour:LT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},fT={init:function(){this.jsonInit({colour:LT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},NT={init:function(){this.setColour(LT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},DT={init:function(){this.setColour(LT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},FT={init:function(){this.jsonInit({colour:LT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},PT={init:function(){this.jsonInit({colour:LT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},vT={init:function(){this.jsonInit({colour:LT,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},YT={init:function(){this.setColour(LT),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},XT={init:function(){this.jsonInit({colour:LT,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},bT={init:function(){this.setColour(LT),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},VT={init:function(){this.setColour(LT),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},yT={init:function(){this.setColour(LT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},BT={init:function(){this.setColour(LT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},UT={init:function(){this.setColour(LT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},GT={init:function(){this.setColour(LT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},kT={init:function(){this.setColour(LT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},wT={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(LT),this.setTooltip(""),this.setHelpUrl("")}},xT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},HT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},WT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},KT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},JT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var QT=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const qT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(QT),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var jT=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const zT={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(jT),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var ZT=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const $T={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(ZT),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},th={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},eh={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},ih={init:function(){this.setColour(LT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},nh=140,sh={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},oh={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},_h={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},uh={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},rh={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},ph={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},ah={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},lh={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},Ih={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},dh={init:function(){this.setColour(nh),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Th={init:function(){this.setColour(nh),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},hh={init:function(){this.setColour(nh),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Mh={init:function(){this.jsonInit({colour:nh,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},mh={init:function(){this.setColour(nh),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},Oh=180,ch={init:function(){this.jsonInit({colour:Oh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},Eh={init:function(){this.setColour(Oh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},Rh={init:function(){this.setColour(Oh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},gh={init:function(){this.setColour(Oh),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},Ch={init:function(){this.setColour(Oh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ah={init:function(){this.setColour(Oh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Lh={init:function(){this.setColour(Oh),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Sh={init:function(){this.jsonInit({colour:Oh,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},fh={init:function(){this.jsonInit({colour:Oh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},Nh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:Oh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Dh={init:function(){this.jsonInit({colour:Oh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Fh={init:function(){this.setColour(Oh),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},Ph={init:function(){this.jsonInit({colour:Oh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},vh={init:function(){this.jsonInit({colour:Oh,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},Yh={init:function(){this.jsonInit({colour:Oh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Xh={init:function(){this.jsonInit({colour:Oh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},bh={init:function(){this.jsonInit({colour:Oh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},Vh={init:function(){this.jsonInit({colour:Oh,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},yh={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(Oh),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},Bh={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(Oh),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Uh={init:function(){this.setColour(Oh),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Gh={init:function(){this.setColour(Oh),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},kh={init:function(){this.setColour(Oh),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},wh={init:function(){this.setColour(Oh),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},xh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Oh),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Hh={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(Oh),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},Wh={init:function(){this.setColour(Oh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},Kh="#777777",Jh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},qh={init:function(){this.setColour(Kh),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},Gc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},kc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},wc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},xc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},Hc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},Wc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},Kc=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},Jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},Qc=function(t,e){var i=this.getFieldValue("PIN"),n=e.valueToCode(this,"NominalResistance",e.ORDER_ATOMIC),s=e.valueToCode(this,"betaCoefficient",e.ORDER_ATOMIC),o=e.valueToCode(this,"seriesResistor",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ntc="import ntc",["ntc.read(pin"+i+", "+n+", "+s+", "+o+")",e.ORDER_ATOMIC]},qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},zc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},Zc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},$c=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},tE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},eE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},iE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},nE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},sE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},oE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},_E=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},uE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},rE=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},pE=function(){return"control.reset()\n"},aE=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},lE=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},IE=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},dE=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},TE=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},hE=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},ME=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},mE=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},OE=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},cE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},EE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},RE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},gE=function(){return"while True:\n pass\n"},CE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},AE=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,Xn),q.Python=op,q.generator=op,j.Profile.default={},Object.assign(j.Profile,AT),Object.assign(j.Profile.default,AT.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,r,p,a,l,I,d,f,N,P,v,Y,X,b,V,y,B,U),Object.assign(q.Python.forBlock,T,h,M,m,O,c,E,R,g,C,A,L,S,D,F,G,k,w,x,H,W,K,J,Q)})(); \ No newline at end of file +class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ot={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ct={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Et={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},gt={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},Ct={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Et.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],gt.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Pt={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},vt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},Yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Ut={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},Gt={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},kt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},wt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const xt={init:function(){this.setColour(wt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},Ht={init:function(){this.setColour(wt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(wt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(wt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(wt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(wt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(wt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(wt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(wt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(wt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(wt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(wt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(wt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(wt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(wt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(wt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},re=ie,pe={init:function(){this.setColour(wt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},ae={init:function(){this.setColour(wt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const Te={init:function(){this.setColour(le),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},he={init:function(){this.setColour(le),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Oe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ce={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ee={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Re={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},ge={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},Ce={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Le={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Se={init:function(){this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},fe={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},Ne={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(le),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},De={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Fe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Pe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ve={init:function(){this.setColour(le),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ye={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(le),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Xe={init:function(){this.setColour(le),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Fi={init:function(){this.setColour(Ni),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Pi={init:function(){this.setColour(Ni),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},Xi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},bi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Vi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},yi={init:function(){this.setColour(Ni),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},Gi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},wi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},Hi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Wi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Ni),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ji={init:function(){this.setColour(Ni),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Qi={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},qi={init:function(){this.setColour(Ni),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ji={init:function(){this.setColour(Ni),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Ni),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi=210,$i={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},tn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},en={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},nn={init:function(){this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},un={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},rn={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},pn={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},an={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},In={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},dn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Tn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Rn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},Cn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},fn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Yn={};Yn.NAME_TYPE=q.PROCEDURE_CATEGORY_NAME,Yn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ds={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Xs=160,bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},Vs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},ys={init:function(){this.setColour(Xs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Bs={init:function(){this.setColour(Xs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Us={init:function(){this.setColour(Xs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Gs={init:function(){this.setColour(Xs),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ks={init:function(){this.setColour(Xs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+r()+"("+t+", "+e+", "+i+") or "+p()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Xu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},bu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Vu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},yu=function(t,e){return["None",e.ORDER_ATOMIC]},Bu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Gu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ku=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},wu=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},xu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Hu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ku=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ju=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Qu=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ju=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Zu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$u=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},tr=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},er=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ir=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},nr=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sr=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},or=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_r=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ur=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},rr=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},pr=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ar=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},lr=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Kr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Jr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Qr=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},qr=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},jr=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},zr=function(t,e){return'"},Zr=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},$r=function(){return this.getFieldValue("TEXT")+"\n"},tp=function(t){return t.getFieldValue("TEXT")+"\n"},ep=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},ip=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},np=function(){return""},sp=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},op=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+r.join("")+p.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+p.join("\n")},up.scrubNakedValue=function(t){return t+"\n"},up.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},up.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},up.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,up.COMMENT_WRAP-3),n+=up.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const rp=120;({init:function(){this.setColour(rp),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(rp);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const pp=225,ap={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},lp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Ip={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},dp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Tp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},hp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Mp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},mp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Op={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},cp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},Ep={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Rp={init:function(){this.setColour(pp),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},gp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Cp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Ap={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},Lp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Sp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},fp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Np={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},Dp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Fp={init:function(){this.setColour(pp),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Pp={init:function(){this.setColour(pp),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vp={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(pp),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Yp={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(pp),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Xp={init:function(){this.setColour(pp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},bp={init:function(){this.setColour(pp),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},Vp="#3288dd",yp={init:function(){this.setColour(Vp),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Bp={init:function(){this.setColour(Vp),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Up={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Vp),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Gp={init:function(){this.setColour(Vp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},kp={init:function(){this.setColour(Vp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wp={init:function(){this.setColour(Vp),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},xp={init:function(){this.setColour(Vp),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hp={init:function(){this.setColour(Vp),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wp={init:function(){this.setColour(Vp),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},Kp="#A58C5B",Jp={init:function(){var t=[[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(Kp),this.appendValueInput("PIN",Number).appendField(new q.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},Qp={init:function(){this.setColour(Kp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},qp={init:function(){this.setColour(Kp),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}};q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START;const jp="#947C54",zp={init:function(){this.setColour(jp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},Zp={init:function(){this.setColour(jp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},$p={init:function(){this.setColour(jp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},ta={init:function(){this.setColour(jp),this.appendValueInput("btn").appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},ea={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_IS_PRESSED)}},ia={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},na={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_BUTTON+q.Msg.MIXLY_GET_PRESSES)}},sa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_INTERRUPT).appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput("").appendField(q.Msg.MIXLY_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[q.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[q.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},oa={init:function(){this.setColour(jp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},_a={init:function(){this.setColour(jp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},ua={init:function(){this.setColour(jp),this.appendValueInput("button").appendField(q.Msg.MIXLY_ESP32_TOUCH_SENSOR),this.appendDummyInput().appendField(q.Msg.MIXLY_IS_TOUCHED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_sensor_pin_pressed)}},ra={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_TOUCH_SLIDE),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOUCH_SLIDE_TOOLTIP)}},pa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_CHAOSHENGBO),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CHAOSHENGBO)}},aa={init:function(){this.setColour(jp),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETTIME).appendField("myRTC"),this.appendValueInput("hour").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_SECOND),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!1),this.setTooltip(q.Msg.MIXLY_RTCSETTIME+q.Msg.MIXLY_MIX2)}},la={init:function(){this.setColour(jp),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCSETDATE).appendField("myRTC"),this.appendValueInput("year").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(" "+q.Msg.MIXLY_DAY),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RTCSETDATE+q.Msg.MIXLY_MIX1)}},Ia={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_CHAOSHENGBO),this.appendValueInput("PIN1",Number).appendField("Trig #").setCheck(Number),this.appendValueInput("PIN2",Number).appendField("Echo #").setCheck(Number),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_CHAOSHENGBO)}},da={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},Ta={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["1","touch1"],["2","touch2"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ha={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Ma={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_UP,"12"],[q.Msg.MIXLY_DOWN,"14"],[q.Msg.MIXLY_LEFT,"13"],[q.Msg.MIXLY_RIGHT,"15"],["A","32"],["B","33"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ma={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Oa={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"],["2","2"],["3","3"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},ca={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["3","3"],["4","4"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Ea={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown([["0","0"],["1","1"]]),"op"),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Ra={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_NEAR),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR)}},ga={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"left"],[q.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},Ca={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0)}},Aa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},La={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"l"],[q.Msg.TEXT_TRIM_RIGHT,"r"]]),"direction").appendField(q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_EXTERN_LIGHT;return i+{l:q.Msg.TEXT_TRIM_LEFT,r:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},Sa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_EXTERN_LIGHT+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},fa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_COLOR_SENSOR+q.Msg.MIXLY_DATA),this.setOutput(!0,Number),this.setInputsInline(!0)}},Na={init:function(){this.setColour(jp),this.appendDummyInput().appendField("RTC"),this.appendDummyInput().setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RTCGETTIME),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP+" (year, month, mday, hour, minute, second, weekday, yearday)")}},Da={init:function(){this.setColour(jp),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_RTCGETTIMESTAMP),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIMESTAMP_TOOLTIP)}},Fa={init:function(){this.setColour(jp),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.LISTS_TO_TUPLE),this.setInputsInline(!0),this.setOutput(!0,Number)}},Pa={init:function(){this.setColour(jp),this.appendDummyInput().appendField("RTC"),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_USE_STRING_TUPLE),this.appendDummyInput().appendField(q.Msg.MIXLY_RTCSETTIME),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},va={init:function(){this.setColour(jp),this.appendDummyInput().appendField("RTC"),this.appendValueInput("year").setCheck(Number).appendField(" "+q.Msg.MIXLY_YEAR),this.appendValueInput("month").setCheck(Number).appendField(" "+q.Msg.MIXLY_MONTH),this.appendValueInput("day").setCheck(Number).appendField(" "+q.Msg.MIXLY_DAY),this.appendValueInput("hour").setCheck(Number).appendField(" "+q.Msg.MIXLY_HOUR),this.appendValueInput("minute").setCheck(Number).appendField(" "+q.Msg.MIXLY_MINUTE),this.appendValueInput("second").setCheck(Number).appendField(" "+q.Msg.MIXLY_SECOND),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_SET_DATATIME_TOOLTIP)}},Ya={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("RTC"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_SETUP).setCheck("var"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_ESP32_SENSOR_RTC_INT_TOOLTIP)}},Xa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_RTC_GET_TIME_STR),this.setOutput(!0,String),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_RTC_GET_TIME_TOOLTIP)}},ba={init:function(){this.setColour(jp),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_GPS_TIME+q.Msg.MIXLY_MICROBIT_TYPE_TUPLE).setCheck(),this.appendDummyInput().appendField(q.Msg.A_TO_B+q.Msg.MIXLY_GPS_TIME+q.Msg.LANG_MATH_STRING),this.setOutput(!0,String),this.setInputsInline(!0)}},Va={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_LIGHT),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},ya={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SOUND),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},Ba={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_TEM_HUM+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETTEMPERATUE,"temperature"],[q.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:q.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:q.Msg.MIXLY_ESP32C3_SENSOR_AHT_HUM_TOOLTIP}[e]}))}},Ua={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ga={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_Altitude+q.Msg.MSG.catSensor+" "),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_GETPRESSURE,"pressure()"],[q.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[q.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},ka={init:function(){this.setColour(jp),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendDummyInput("").appendField(q.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},wa={init:function(){this.setColour(jp),this.appendDummyInput().appendField("RFID"+q.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,Number),this.setInputsInline(!0)}},xa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Ha={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SECTOR").appendField(q.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(q.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(q.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},Wa={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_STRENGTH,"strength"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},Ka={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_GESTURE_ALL).appendField(new q.FieldDropdown([[q.Msg.ME_GO_PITCH,"[0]"],[q.Msg.ME_GO_ROLL,"[1]"],[q.Msg.ME_GO_PITCH+", "+q.Msg.ME_GO_ROLL,""]]),"angle"),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ja={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_shake,"shake"],[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"],[q.Msg.MIXLY_MICROBIT_face_up,"face up"],[q.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=q.Msg.MIXLY_MICROBIT_JS_CURRENT,n=q.Msg.MSG.catSensor,s=q.Msg.MIXLY_MICROBIT_JS_STATE,o=q.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:q.Msg.MIXLY_MICROBIT_shake,up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT,"face up":q.Msg.MIXLY_MICROBIT_face_up,"face down":q.Msg.MIXLY_MICROBIT_face_down}[e]+o}))}},Qa={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},qa={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ja={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},za={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},Za={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},$a={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},tl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField("MPU9250"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},el={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""],[q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH_ALL,"all"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},il={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},nl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},sl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},ol={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GETTEMPERATUE),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},_l={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ul={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_GETTEMPERATUE)}},rl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"1"],[q.Msg.TEXT_TRIM_RIGHT,"2"]]),"direction").appendField(q.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=q.Msg.MIXLY_ESP32_NEAR;return i+{left:q.Msg.TEXT_TRIM_LEFT,right:q.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},pl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},al={init:function(){this.setColour(jp),this.appendDummyInput().appendField("acc"+q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_ADXL345_XA,"[0]"],[q.Msg.MIXLY_ADXL345_YA,"[1]"],[q.Msg.MIXLY_ACC_SHAKE,"[2]"],[q.Msg.MIXLY_ADXL345_XA+","+q.Msg.MIXLY_ADXL345_YA+","+q.Msg.MIXLY_ACC_SHAKE,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_ACCELERATION)}},ll={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.TEXT_TRIM_LEFT,"[0]"],[q.Msg.MIXGO_LEFT_MID,"[1]"],[q.Msg.MIXGO_RIGHT_MID,"[2]"],[q.Msg.TEXT_TRIM_RIGHT,"[3]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},Il={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_PROXIMITY_SENSOR),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},dl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_CHANGE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXGO_CAR_SENSOR_ONBOARD_AUTO_CHANGE,"AS"],[q.Msg.MIXLY_MIXGO_CAR_USE_LINE_ONLY,"LP"],[q.Msg.MIXLY_MIXGO_CAR_USE_PROXIMITY_ONLY,"OA"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MIXGO_CAR_BATTERY_LEFT),this.setOutput(!0),this.setInputsInline(!0)}},hl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXGO_LINE_SENSOR).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_WHITE,"WHITE"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_BLACK,"BLACK"],[q.Msg.MIXLY_MIXBOT_LINE_SENSOR_CALIBRATE_RESET,"RESET_TO_FAB"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown([[q.Msg.MIXGO_LEFT_FRONT,"[0]"],[q.Msg.MIXGO_RIGHT_FRONT,"[1]"],[q.Msg.MIXGO_LEFT_BACK,"[3]"],[q.Msg.MIXGO_RIGHT_BACK,"[2]"],[q.Msg.MIXLY_ALL,""]]),"key").appendField(q.Msg.MIXGO_LINE_SENSOR_VAL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP+q.Msg.MIXLY_ESP32_NEAR}))}},ml={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET+q.Msg.MIXLY_MICROBIT_Board_temperature),this.appendDummyInput(""),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ol={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new q.FieldDropdown([["x","[0]"],["y","[1]"],["z","[2]"],["(x,y,z)",""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=q.Msg.MIXLY_MICROBIT_Direction,s=q.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{"[0]":"x","[1]":"y","[2]":"z","":q.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},cl={init:function(){this.setColour(jp),this.appendDummyInput().appendField(q.Msg.ANALOG+q.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("mode").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LCD_NUMBERING),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_LIGHT_INTENSITY+"(%)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},El={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(new q.FieldDropdown(j.Profile.default.als_num),"PIN"),this.setOutput(!0,Number)}},Rl=zp,gl=Zp,Cl=$p,Al=oa,Ll=Ca,Sl=da,fl=Jp,Nl=qp,Dl=Qp,Fl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_EXTERN_SOUND),this.setInputsInline(!0),this.setOutput(!0)}},Pl={init:function(){this.setColour(jp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.blockpy_set_of+q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.setInputsInline(!0),this.setOutput(!0)}},vl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_LIGHT_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},Yl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_GYROSCOPE_SENSOR),this.setInputsInline(!0),this.setOutput(!0)}},Xl={init:function(){this.setColour(jp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_Horizontal_inclination,"X"],["y","[1]"],["z","[2]"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},bl={init:function(){this.setColour(jp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_GET).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_BE_SHAKED),this.setInputsInline(!0),this.setOutput(!0)}},Vl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_BUTTON).appendField(new q.FieldDropdown([["a","a"],["b","b"],["c","c"]]),"btn"),this.setOutput(!0),this.setInputsInline(!0)}},yl={init:function(){this.setColour(jp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_BUTTON),this.appendDummyInput().appendField(q.Msg.MIXLY_WAS_PRESSED),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SENOR_WAS_PRESSED)}},Bl={init:function(){this.setColour(jp),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_INITIAL),this.setOutput(!0),this.setInputsInline(!0)}},Ul={init:function(){this.setColour(jp),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ),this.setOutput(!0),this.setInputsInline(!0)}},Gl={init:function(){this.setColour(jp),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_COMMUNICATION_RFID_READ+q.Msg.MIXLY_COMMUNICATION_DATA_FROM),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_SERIAL_NUMBER,"serial_number"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},kl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_HELLO_XIAOZHI,"1"],[q.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[q.Msg.MIXLY_THE_FIRST,"3"],[q.Msg.MIXLY_THE_SECOND,"4"],[q.Msg.MIXLY_THE_THIRD,"5"],[q.Msg.MIXLY_THE_FOURTH,"6"],[q.Msg.MIXLY_THE_FIFTH,"7"],[q.Msg.MIXLY_THE_SIXTH,"8"],[q.Msg.MIXLY_THE_SEVENTH,"9"],[q.Msg.MIXLY_THE_EIGHTH,"10"],[q.Msg.MIXLY_THE_NINTH,"11"],[q.Msg.MIXLY_THE_TENTH,"12"],[q.Msg.MIXLY_THE_ELEVENTH,"13"],[q.Msg.MIXLY_THE_TWELFTH,"14"],[q.Msg.MIXLY_THE_13TH,"15"],[q.Msg.MIXLY_THE_14TH,"16"],[q.Msg.MIXLY_THE_15TH,"17"],[q.Msg.MIXLY_THE_16TH,"18"],[q.Msg.MIXLY_THE_17TH,"19"],[q.Msg.MIXLY_THE_18TH,"20"],[q.Msg.MIXLY_THE_19TH,"21"],[q.Msg.MIXLY_THE_20TH,"22"],[q.Msg.MIXLY_Turn_on_the_lights,"23"],[q.Msg.MIXLY_Turn_off_the_lights,"24"],[q.Msg.MIXLY_Turn_up_the_brightness,"25"],[q.Msg.MIXLY_Turn_down_the_brightness,"26"],[q.Msg.MIXLY_Set_it_to_red,"27"],[q.Msg.MIXLY_Set_it_to_orange,"28"],[q.Msg.MIXLY_Set_it_to_yellow,"29"],[q.Msg.MIXLY_Set_it_to_green,"30"],[q.Msg.MIXLY_Set_it_to_cyan,"31"],[q.Msg.MIXLY_Set_it_to_blue,"32"],[q.Msg.MIXLY_Set_it_to_purple,"33"],[q.Msg.MIXLY_Set_it_to_white,"34"],[q.Msg.MIXLY_Turn_on_the_fan,"35"],[q.Msg.MIXLY_Turn_off_the_fan,"36"],[q.Msg.MIXLY_First_gear,"37"],[q.Msg.MIXLY_Wind_speed_second,"38"],[q.Msg.MIXLY_Third_gear,"39"],[q.Msg.MIXLY_Previous,"40"],[q.Msg.MIXLY_Next_page,"41"],[q.Msg.MIXLY_Show_smiley_face,"42"],[q.Msg.MIXLY_Show_crying_face,"43"],[q.Msg.MIXLY_Show_love,"44"],[q.Msg.MIXLY_Close_display,"45"],[q.Msg.MIXLY_Start_execution,"46"],[q.Msg.MIXLY_FORWARD,"47"],[q.Msg.MIXLY_BACKWARD,"48"],[q.Msg.MIXLY_TURNLEFT,"49"],[q.Msg.MIXLY_TURNRIGHT,"50"],[q.Msg.MIXLY_STOP,"51"],[q.Msg.MIXLY_Accelerate,"52"],[q.Msg.MIXLY_retard,"53"],[q.Msg.ROTATION_FORWARD,"54"],[q.Msg.ROTATION_BACKWARD,"55"],[q.Msg.MIXLY_Query_temperature,"56"],[q.Msg.MIXLY_Query_humidity,"57"],[q.Msg.MIXLY_Query_brightness,"58"],[q.Msg.MIXLY_Query_sound,"59"],[q.Msg.MIXLY_Query_time,"60"],[q.Msg.MIXLY_Query_distance,"61"],[q.Msg.MIXLY_Query_pressure,"62"],[q.Msg.MIXLY_Query_key,"63"],[q.Msg.MIXLY_Query_touch,"64"],[q.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(q.Msg.MIXLY_WHETHER+q.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},xl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_GET).appendField(new q.FieldDropdown([[q.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[q.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[q.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},Hl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.MIXLY_MP3_PLAY).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_WIND_SPEED,"154"],[q.Msg.MIXLY_HYETAL,"155"],[q.Msg.MIXLY_TEMPERATURE,"156"],[q.Msg.MIXLY_Humidity,"157"],[q.Msg.MIXLY_Altitude,"158"],[q.Msg.MIXLY_SOUND,"159"],[q.Msg.MIXLY_BRIGHTNESS,"160"],[q.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[q.Msg.MIXLY_SERVO,"162"],[q.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[q.Msg.MIXLY_BUTTON2,"164"],[q.Msg.MIXLY_ESP32_TOUCH,"165"],[q.Msg.MIXLY_PAY,"166"],[q.Msg.MIXLY_CARSH_CHANGE,"167"],[q.Msg.MIXLY_COUNTDOWN,"168"],[q.Msg.MIXLY_TIMING,"169"],[q.Msg.MIXLY_AT_THE_MOMENT,"170"],[q.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[q.Msg.MIXLY_FORWARD,"172"],[q.Msg.MIXLY_BACKWARD,"173"],[q.Msg.MIXLY_TURNLEFT,"174"],[q.Msg.MIXLY_TURNRIGHT,"175"],[q.Msg.MIXLY_STOP,"176"],[q.Msg.MIXLY_Accelerate,"177"],[q.Msg.MIXLY_retard,"178"],[q.Msg.ROTATION_FORWARD,"179"],[q.Msg.ROTATION_BACKWARD,"180"],[q.Msg.TUPLE_JOIN,"181"],[q.Msg.MIXLY_SHOW,"182"],[q.Msg.MIXLY_LAMPLIGHT,"183"],[q.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(q.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(q.Msg.MIXLY_UNIT).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[q.Msg.MIXLY_YEAR,"117"],[q.Msg.MIXLY_MONTH,"118"],[q.Msg.MIXLY_DAY,"119"],[q.Msg.MIXLY_HOUR,"120"],[q.Msg.MIXLY_MINUTE,"121"],[q.Msg.MIXLY_SECOND,"122"],[q.Msg.MIXLY_WEEK2,"123"],[q.Msg.MIXLY_RMB_UNIT,"124"],[q.Msg.blockpy_setheading_degree,"125"],[q.Msg.MIXLY_GEAR,"126"],[q.Msg.MIXLY_LAYER,"127"],[q.Msg.MIXLY_GRAM,"128"],[q.Msg.MIXLY_METER,"129"],[q.Msg.MIXLY_CENTIMETER,"130"],[q.Msg.MIXLY_MILLIMETER,"131"],[q.Msg.MIXLY_LUMEN,"132"],[q.Msg.MIXLY_DECIBEL,"133"],[q.Msg.MIXLY_hectopascal,"134"],[q.Msg.MIXLY_PERCENT,"135"],[q.Msg.MIXLY_CELSIUS,"136"],[q.Msg.MIXLY_METER_PER_SEC,"137"],[q.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[q.Msg.MIXLY_SUCCESS,"140"],[q.Msg.MIXLY_FAILED,"141"],[q.Msg.MIXLY_WRONG,"142"],[q.Msg.MIXLY_GOOD,"143"],[q.Msg.MIXLY_blockpy_set_add,"144"],[q.Msg.MIXLY_DECREASE,"145"],[q.Msg.COLOUR_RGB_RED,"146"],[q.Msg.COLOUR_RGB_ORANGE,"147"],[q.Msg.COLOUR_YELLOW,"148"],[q.Msg.COLOUR_RGB_GREEN,"149"],[q.Msg.COLOUR_CYAN,"150"],[q.Msg.COLOUR_RGB_BLUE,"151"],[q.Msg.COLOUR_RGB_PURPLE,"152"],[q.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Wl={init:function(){this.setColour(jp),this.appendDummyInput("").appendField(q.Msg.MIXLY_AipSpeech_asr+q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_SYSTEM+q.Msg.MIXLY_CMD).appendField(new q.FieldDropdown([[q.Msg.MILXY_ENTER_WAKE_UP,"1"],[q.Msg.MIXLY_INCREASE_VOLUME,"202"],[q.Msg.MIXLY_REDUCE_VOLUME,"203"],[q.Msg.MIXLY_MAX_VOLUME,"204"],[q.Msg.MIXLY_MINIMUM,"205"],[q.Msg.MIXLY_OPEN_RESPONSE,"206"],[q.Msg.MIXLY_CLOSE_RESPONSE,"207"],[q.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}};const Kl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},Jl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+","+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},Ql=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},ql=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},jl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},zl=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},Zl=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},$l=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},tI=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel = "+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},eI=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},iI=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},nI=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET,"+n+")\n"},sI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},oI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},_I=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},uI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},rI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},pI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},aI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},lI=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+","+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},II=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},dI=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},TI=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},hI=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},MI=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},mI=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},OI=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cI=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},EI=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+",data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},RI=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},gI=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+",client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+",user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+",psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},CI=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},AI=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},LI=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+",content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},SI=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},fI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},NI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},DI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},FI=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=e.valueToCode(this,"btn",e.ORDER_ATOMIC),s=this.getFieldValue("mode");return i+"."+n+".irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+s+")\n"},PI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.is_pressed()",e.ORDER_ATOMIC]},vI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.was_pressed()",e.ORDER_ATOMIC]},YI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".button.get_presses("+(e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT)||"0")+")",e.ORDER_ATOMIC]},XI=function(t,e){e.definitions_.import_machine="import machine";var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i]="import "+i;var n=this.getFieldValue("mode");return i+".button.irq(handler = "+e.valueToCode(this,"DO",e.ORDER_ATOMIC)+", trigger = "+n+")\n"},bI=function(t,e){return e.definitions_.import_sonar="import sonar",["sonar.Sonar("+e.valueToCode(this,"PIN1",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"PIN2",e.ORDER_ASSIGNMENT)+").checkdist()",e.ORDER_ATOMIC]},VI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},yI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},BI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},UI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},GI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},kI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},wI=function(t,e){return[this.getFieldValue("op"),e.ORDER_ATOMIC]},xI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps_nl()",e.ORDER_ATOMIC]},HI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+".infrared_"+this.getFieldValue("direction")+"()",e.ORDER_ATOMIC]},WI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.ps()",e.ORDER_ATOMIC]},KI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".ps_nl()",e.ORDER_ATOMIC]},JI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als()",e.ORDER_ATOMIC]},QI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.color()",e.ORDER_ATOMIC]},qI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_"+n]="from "+i+" import onboard_als_"+n,["onboard_als_"+n+".als_vis()",e.ORDER_ATOMIC]},jI=function(t,e){return e.definitions_.import_ds18x20x="import ds18x20x",["ds18x20x.get_ds18x20_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},zI=function(t,e){return e.definitions_.import_lm35="import lm35",["lm35.get_LM35_temperature("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ZI=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_brightness()",e.ORDER_ATOMIC];if("mixgo_ce"==i)return e.definitions_.import_mixgo_ce="import mixgo_ce",["mixgo_ce.get_brightness()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_light="from mpython import onboard_light",["onboard_light.brightness()",e.ORDER_ATOMIC];e.definitions_["import_"+i+"_onboard_als"]="from "+i+" import onboard_als";return["onboard_als.als_vis()",e.ORDER_ATOMIC]},$I=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixbot"==i){e.definitions_["import_"+i+"_sound"]="from "+i+" import sound";var n="sound.loudness()"}else if("mixgo_zero"==i){e.definitions_.import_mixgo_zero_voice_sound_level="from mixgo_zero_voice import sound_level";n="sound_level()"}else if("mixgo_nova"==i){e.definitions_.import_mixgo_nova_voice_sound_level="from mixgo_nova_voice import sound_level";n="sound_level()"}else{if("mixgo"==i)return e.definitions_.import_mixgo="import mixgo",["mixgo.get_soundlevel()",e.ORDER_ATOMIC];if("mpython"==i)return e.definitions_.import_mpython_onboard_sound="from mpython import onboard_sound",["onboard_sound.soundlevel()",e.ORDER_ATOMIC];if("mixgo_mini"==i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";n="onboard_bot.soundlevel()"}else{e.definitions_["import_"+i+"_onboard_sound"]="from "+i+" import onboard_sound";n="onboard_sound.read()"}}return[n,e.ORDER_ATOMIC]},td=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_spl06_001="import spl06_001",e.definitions_.import_onboard_bps="onboard_bps = spl06_001.SPL06(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_bps"]="from "+i+" import onboard_bps",["onboard_bps."+n,e.ORDER_ATOMIC]},ed=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");return"mixgo_nova"==i||"mixgo_zero"==i?e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths":"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_shtc3="import shtc3",e.definitions_.import_onboard_ths="onboard_ths = shtc3.SHTC3(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_ths"]="from "+i+" import onboard_ths",["onboard_ths."+n+"()",e.ORDER_ATOMIC]},id=function(t,e){return e.definitions_.import_feiyi_onboard_acc="from feiyi import onboard_acc",["onboard_acc.temperature()",e.ORDER_ATOMIC]},nd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid";return['onboard_rfid.read_card(0, x="id")',e.ORDER_ATOMIC]},sd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid",["onboard_rfid.read_card("+n+', x="content")',e.ORDER_ATOMIC]},od=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid","onboard_rfid.write_card("+s+","+n+")\n"},_d=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"SECTOR",e.ORDER_ATOMIC),s=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_["import_"+i+"_onboard_rfid"]="from "+i+" import onboard_rfid",["onboard_rfid.write_card("+s+","+n+")",e.ORDER_ATOMIC]},ud=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("key");if("strength"==n){if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";var s="acc_gyr.strength()"}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.strength()"}return[s,e.ORDER_ATOMIC]}if("mixbot"==i){e.definitions_["import_"+i+"_acc_gyr"]="from "+i+" import acc_gyr";s="acc_gyr.accelerometer()"+n}else if("mpython"==i){e.definitions_.import_mpython_motion="from mpython import motion";s="motion.accelerometer()"+n}else{e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc";s="onboard_acc.acceleration()"+n}return[s,e.ORDER_ATOMIC]},rd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_acc"]="from "+i+" import onboard_acc",["onboard_acc.eulerangles()"+this.getFieldValue("angle"),e.ORDER_ATOMIC]},pd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+'.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},ad=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},ld=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"button",e.ORDER_ATOMIC);if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var s="onboard_bot.touched("+n+")"}else{e.definitions_["import_"+i]="import "+i;s=i+".touched("+n+")"}return[s,e.ORDER_ATOMIC]},Id=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mixgo_mini"===i||"mixgo_sant"===i){e.definitions_["import_"+i+"_onboard_bot"]="from "+i+" import onboard_bot";var n="onboard_bot.touch_slide()"}else{e.definitions_["import_"+i]="import "+i;n=i+".touch_slide(3,4)"}return[n,e.ORDER_ATOMIC]},dd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i]="import "+i,[i+"."+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},Td=function(t,e){return e.definitions_.import_mpython="import mpython",["mpython.touch_"+e.valueToCode(this,"button",e.ORDER_ATOMIC)+".is_touched()",e.ORDER_ATOMIC]},hd=function(t,e){e.definitions_.import_adxl345="import adxl345";var i,n=this.getFieldValue("key"),s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"x"==n?i=s+".readX()":"y"==n?i=s+".readY()":"z"==n?i=s+".readZ()":"values"==n&&(i=s+".readXYZ()"),[i,e.ORDER_ATOMIC]},Md=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},md=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=this.getFieldValue("key"),n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==n&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[n+".mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},Od=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".calibrate()\n"},cd=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return"mpu"==i&&(e.definitions_.import_mixgo_mpu="from mixgo import mpu"),[i+".mpu9250_get_temperature()",e.ORDER_ATOMIC]},Ed=function(t,e){e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);"compass"==i&&(e.definitions_.import_mixgo_compass="from mixgo import compass");var n,s=this.getFieldValue("compass");return"strength"==s?n=i+".get_field_strength()":"heading"==s&&(n=i+".heading()"),[n,e.ORDER_ATOMIC]},Rd=function(t,e){return e.definitions_.import_mpu9250="import mpu9250",e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_compass="from mixgo import compass",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".reset_calibrate()\n"},gd=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("gesture");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",['onboard_mpu.mpu9250_is_gesture("'+i+'")',e.ORDER_ATOMIC]},Cd=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_"+i+"()",e.ORDER_ATOMIC]},Ad=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_magnetic_"+i+"()",e.ORDER_ATOMIC]},Ld=function(t,e){e.definitions_.import_machine="import machine";var i=this.getFieldValue("key");return e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_gyro_"+i+"()",e.ORDER_ATOMIC]},Sd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.calibrate()\n"},fd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_mpu="from mixgo import onboard_mpu",["onboard_mpu.mpu9250_get_temperature()",e.ORDER_ATOMIC]},Nd=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass";var i,n=this.getFieldValue("compass");return"strength"==n?i="onboard_compass.get_field_strength()":"heading"==n&&(i="onboard_compass.heading()"),[i,e.ORDER_ATOMIC]},Dd=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_mixgo_onboard_compass="from mixgo import onboard_compass","onboard_compass.reset_calibrate()\n"},Fd=function(t,e){return e.definitions_.import_rtctime="import rtctime","rtctime.settime(("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+",0,0))\n"},Pd=function(t,e){var i=e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC);return e.definitions_.import_rtctime="import rtctime","rtctime.settime("+i+")\n"},vd=function(t,e){e.definitions_.import_time="import time";return["time.localtime()",e.ORDER_ATOMIC]},Yd=function(t,e){return e.definitions_.import_time="import time",["time.mktime("+e.valueToCode(this,"LIST",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Xd=function(t,e){return e.definitions_.import_time="import time",["time.localtime("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},bd=function(t,e){e.definitions_.import_rtctime="import rtctime";return["rtctime.strtime()",e.ORDER_ATOMIC]},Vd=function(t,e){return e.definitions_.import_rtctime="import rtctime",["rtctime.strtime("+e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},yd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==n)if(e.definitions_.import_mpython_magnetic="from mpython import magnetic","all"==i)var s="magnetic.getstrength()";else s="magnetic.getdata()"+i;else if("mixgo_mini"==n)if(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;else if(e.definitions_["import_"+n+"_onboard_mgs"]="from "+n+" import onboard_mgs","all"==i)s="onboard_mgs.getstrength()";else s="onboard_mgs.getdata()"+i;return[s,e.ORDER_ATOMIC]},Bd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i){e.definitions_.import_mpython_magnetic="from mpython import magnetic"}else"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return["onboard_mgs.getangle()",e.ORDER_ATOMIC]},Ud=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];"mixgo_mini"==i?(e.definitions_.import_mixgo_mini_onboard_i2c="from mixgo_mini import onboard_i2c",e.definitions_.import_mmc5603="import mmc5603",e.definitions_.import_onboard_mgs="onboard_mgs = mmc5603.MMC5603(onboard_i2c)"):e.definitions_["import_"+i+"_onboard_mgs"]="from "+i+" import onboard_mgs";return"onboard_mgs.calibrate()\n"},Gd=function(t,e){if("mixgo_mini"==j.Boards.getSelectedBoardKey().split(":")[2]){e.definitions_.import_mixgo_mini_onboard_temperature="from mixgo_mini import onboard_temperature";var i="onboard_temperature()"}else{e.definitions_.import_mixgo_me_onboard_acc="from mixgo_me import onboard_acc";i="onboard_acc.temperature()"}return[i,e.ORDER_ATOMIC]},kd=function(t,e){e.definitions_.import_mixgo_ce="import mixgo_ce";return["mixgo_ce.get_temperature()",e.ORDER_ATOMIC]},wd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mpython_motion="from mpython import motion",["motion.gyroscope()"+i,e.ORDER_ATOMIC]},xd=function(t,e){return e.definitions_.import_mpython_motion="from mpython import motion",["motion.temperature()",e.ORDER_ATOMIC]},Hd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2],n=this.getFieldValue("direction");return e.definitions_["import_"+i+"_adc"+n]="from "+i+" import adc"+n,["adc"+n+".read()",e.ORDER_ATOMIC]},Wd=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return"feiyi"==i?(e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_bat()",e.ORDER_ATOMIC]):(e.definitions_["import_"+i+"_battery"]="from "+i+" import battery",["battery.voltage()",e.ORDER_ATOMIC])},Kd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_rm_e1_gyro="from rm_e1 import gyro",["gyro.acceleration()"+i,e.ORDER_ATOMIC]},Jd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.patrol()"+i,e.ORDER_ATOMIC]},Qd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info",["onboard_info.obstacle()"+i,e.ORDER_ATOMIC]},qd=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info","onboard_info.ir_mode(onboard_info."+i+")\n"},jd=function(t,e){e.definitions_.import_mixgocar_c3_onboard_info="from mixgocar_c3 import onboard_info";return["onboard_info.read_bat()",e.ORDER_ATOMIC]},zd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol","patrol.correct(patrol.CORRECTING_"+i+")\n"},Zd=function(t,e){var i=this.getFieldValue("key"),n=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+n+"_patrol"]="from "+n+" import patrol",["patrol.getdata()"+i,e.ORDER_ATOMIC]},$d=function(t,e){e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr";return["acc_gyr.temperature()",e.ORDER_ATOMIC]},tT=function(t,e){var i=this.getFieldValue("key");return e.definitions_.import_mixbot_acc_gyr="from mixbot import acc_gyr",["acc_gyr.gyroscope()"+i,e.ORDER_ATOMIC]},eT=function(t,e){return e.definitions_.import_feiyi_onboard_bot51="from feiyi import onboard_bot51",["onboard_bot51.read_als("+e.valueToCode(this,"mode",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},iT=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},nT=fI,sT=NI,oT=DI,_T=dd,uT=WI,rT=ZI,pT=rT,aT=function(t,e){return e.definitions_.import_dhtx="import dhtx",["dhtx."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")."+this.getFieldValue("WHAT")+"()",e.ORDER_ATOMIC]},lT=function(t,e){e.definitions_.import_educore_sound="from educore import sound";return["sound()",e.ORDER_ATOMIC]},IT=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".read()",e.ORDER_ATOMIC]},dT=function(t,e){e.definitions_.import_educore_light="from educore import light";return["light()",e.ORDER_ATOMIC]},TT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer";return["accelerometer()",e.ORDER_ATOMIC]},hT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},MT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_accelerometer"]="from "+i+" import accelerometer",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shake()",e.ORDER_ATOMIC]},mT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",["button(button."+this.getFieldValue("btn")+")",e.ORDER_ATOMIC]},OT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_button"]="from "+i+" import button",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".status()",e.ORDER_ATOMIC]},cT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",["rfid("+e.valueToCode(this,"PIN",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ET=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scanning()",e.ORDER_ATOMIC]},RT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_rfid"]="from "+i+" import rfid",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},gT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";return"onboard_asr.cmd_id()\n"},CT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr",["onboard_asr.result("+this.getFieldValue("cmd")+")",e.ORDER_ATOMIC]},AT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=this.getFieldValue("key");if("status1"==n)var s="onboard_asr.status()[0]";else if("status2"==n)s="onboard_asr.status()[1]";else s="onboard_asr."+n+"()";return[s,e.ORDER_ATOMIC]},LT=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr";var n=e.valueToCode(this,"NUM",e.ORDER_ATOMIC);return"onboard_asr.play("+this.getFieldValue("star")+","+n+","+this.getFieldValue("end")+")\n"},ST=function(t,e){var i=j.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_asr"]="from "+i+" import onboard_asr","onboard_asr.sys_cmd("+this.getFieldValue("cmd")+")\n"},fT={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],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"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};fT["BBC micro:bit"]=fT.microbit;const NT=fT,DT=100,FT={init:function(){this.jsonInit({colour:DT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},PT={init:function(){this.jsonInit({colour:DT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},vT={init:function(){this.setColour(DT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},YT={init:function(){this.setColour(DT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},XT={init:function(){this.jsonInit({colour:DT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},bT={init:function(){this.jsonInit({colour:DT,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},VT={init:function(){this.jsonInit({colour:DT,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},yT={init:function(){this.setColour(DT),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},BT={init:function(){this.jsonInit({colour:DT,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},UT={init:function(){this.setColour(DT),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},GT={init:function(){this.setColour(DT),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},kT={init:function(){this.setColour(DT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wT={init:function(){this.setColour(DT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xT={init:function(){this.setColour(DT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},HT={init:function(){this.setColour(DT),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},WT={init:function(){this.setColour(DT),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},KT={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(DT),this.setTooltip(""),this.setHelpUrl("")}},JT={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},QT={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},qT={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jT={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},zT={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var ZT=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const $T={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(ZT),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var th=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const eh={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(th),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var ih=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const nh={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(ih),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},sh={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},oh={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},_h={init:function(){this.setColour(DT),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},uh=140,rh={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},ph={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},ah={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},lh={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},Ih={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},dh={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Th={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},hh={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},Mh={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},mh={init:function(){this.setColour(uh),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Oh={init:function(){this.setColour(uh),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},ch={init:function(){this.setColour(uh),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},Eh={init:function(){this.jsonInit({colour:uh,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},Rh={init:function(){this.setColour(uh),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},gh=180,Ch={init:function(){this.jsonInit({colour:gh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},Ah={init:function(){this.setColour(gh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},Lh={init:function(){this.setColour(gh),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},Sh={init:function(){this.setColour(gh),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},fh={init:function(){this.setColour(gh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nh={init:function(){this.setColour(gh),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dh={init:function(){this.setColour(gh),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Fh={init:function(){this.jsonInit({colour:gh,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},Ph={init:function(){this.jsonInit({colour:gh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},vh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:gh,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Yh={init:function(){this.jsonInit({colour:gh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Xh={init:function(){this.setColour(gh),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},bh={init:function(){this.jsonInit({colour:gh,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},Vh={init:function(){this.jsonInit({colour:gh,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},yh={init:function(){this.jsonInit({colour:gh,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Bh={init:function(){this.jsonInit({colour:gh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},Uh={init:function(){this.jsonInit({colour:gh,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},Gh={init:function(){this.jsonInit({colour:gh,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},kh={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(gh),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},wh={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(gh),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},xh={init:function(){this.setColour(gh),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Hh={init:function(){this.setColour(gh),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},Wh={init:function(){this.setColour(gh),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},Kh={init:function(){this.setColour(gh),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Jh={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(gh),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Qh={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(gh),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},qh={init:function(){this.setColour(gh),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},jh="#777777",zh={init:function(){this.setColour(jh),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zh={init:function(){this.setColour(jh),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$h={init:function(){this.setColour(jh),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},Hc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},Wc=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},Kc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},Jc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},Qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},qc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},jc=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},zc=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},Zc=function(t,e){var i=this.getFieldValue("PIN"),n=e.valueToCode(this,"NominalResistance",e.ORDER_ATOMIC),s=e.valueToCode(this,"betaCoefficient",e.ORDER_ATOMIC),o=e.valueToCode(this,"seriesResistor",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ntc="import ntc",["ntc.read(pin"+i+", "+n+", "+s+", "+o+")",e.ORDER_ATOMIC]},$c=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},tE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},eE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},iE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},nE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},sE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},oE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},_E=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},uE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},rE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},pE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},aE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},lE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},IE=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},dE=function(){return"control.reset()\n"},TE=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},hE=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},ME=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},mE=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},OE=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},cE=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},EE=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},RE=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},gE=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},CE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},AE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},LE=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},SE=function(){return"while True:\n pass\n"},fE=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},NE=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,Xn),q.Python=up,q.generator=up,j.Profile.default={},Object.assign(j.Profile,NT),Object.assign(j.Profile.default,NT.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,r,p,a,l,I,d,f,N,P,v,Y,X,b,V,y,B,U),Object.assign(q.Python.forBlock,T,h,M,m,O,c,E,R,g,C,A,L,S,D,F,G,k,w,x,H,W,K,J,Q)})(); \ No newline at end of file diff --git a/boards/default/micropython_nrf51822_mithoncc/main.bundle.js b/boards/default/micropython_nrf51822_mithoncc/main.bundle.js index 473a684e..7ded832c 100644 --- a/boards/default/micropython_nrf51822_mithoncc/main.bundle.js +++ b/boards/default/micropython_nrf51822_mithoncc/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>at,lists_zip_container:()=>rt,lists_zip_item:()=>pt,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>dt,controls_delay:()=>ht,controls_end_program:()=>Mt,controls_except:()=>ft,controls_finally:()=>Pt,controls_flow_statements:()=>Ct,controls_for:()=>gt,controls_forEach:()=>ct,controls_for_range:()=>At,controls_if:()=>Ot,controls_if_else:()=>Nt,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>vt,controls_main:()=>Tt,controls_pass:()=>Yt,controls_range:()=>mt,controls_repeat_ext:()=>Ft,controls_thread:()=>Vt,controls_try:()=>Dt,controls_try_finally:()=>Rt,controls_whileUntil:()=>Et,datetime_fromtimestamp:()=>wt,do_while:()=>bt,garbage_collection:()=>Xt,gene_unique_identifier:()=>kt,get_mem_alloc:()=>yt,get_mem_free:()=>Ut,get_unique_identifier:()=>Bt});var n={};t.r(n),t.d(n,{base_map:()=>ae,generate_cartesian_product:()=>pe,math_arithmetic:()=>Kt,math_bit:()=>Jt,math_constant:()=>xt,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>Ht,math_number_base_conversion:()=>$t,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Qt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>re});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Me,char_to_ascii:()=>Oe,number_to_text:()=>me,os_system:()=>He,text:()=>Ie,text_capital:()=>Ne,text_center:()=>De,text_char:()=>de,text_char_at:()=>Re,text_char_at2:()=>Ee,text_char_at3:()=>Be,text_compareTo:()=>Ue,text_compare_to:()=>Se,text_create_with_container:()=>be,text_create_with_item:()=>Xe,text_encode:()=>ke,text_equals_starts_ends:()=>Le,text_eval:()=>Ge,text_find:()=>fe,text_format:()=>Ve,text_format_noreturn:()=>we,text_join:()=>he,text_join_seq:()=>Pe,text_length:()=>ce,text_random_char:()=>Ce,text_replace:()=>Fe,text_split:()=>ve,text_strip:()=>Ye,text_substring:()=>Ae,text_substring2:()=>ge,text_substring3:()=>ye,text_textarea:()=>Te});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Li,content_in_lists:()=>Ni,enumerate:()=>Si,list_many_input:()=>Ii,list_tolist:()=>Mi,list_tolist2:()=>Ai,list_trig:()=>ri,lists_2d_get_col_row_data:()=>Je,lists_2d_get_data_with_col_row:()=>Qe,lists_append_extend:()=>ti,lists_change_to:()=>li,lists_change_to_general:()=>di,lists_clear:()=>oi,lists_create_with:()=>qe,lists_create_with2:()=>Oi,lists_create_with_container:()=>ze,lists_create_with_item:()=>Ze,lists_create_with_noreturn:()=>Ti,lists_create_with_text:()=>je,lists_create_with_text2:()=>mi,lists_del_general:()=>hi,lists_find:()=>ai,lists_getIndex3:()=>ci,lists_getSublist3:()=>Ei,lists_get_index:()=>We,lists_get_random_item:()=>ei,lists_get_random_sublist:()=>ii,lists_get_sublist:()=>Ke,lists_insert_value:()=>ni,lists_insert_value2:()=>Ci,lists_pop:()=>ui,lists_remove_at:()=>_i,lists_remove_at2:()=>gi,lists_reverse:()=>si,lists_setIndex3:()=>Ri,lists_set_index:()=>$e,lists_sort:()=>pi});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Hi,dicts_add_or_change:()=>bi,dicts_clear:()=>Ui,dicts_create_with:()=>fi,dicts_create_with_container:()=>Pi,dicts_create_with_item:()=>Fi,dicts_create_with_noreturn:()=>Ki,dicts_deldict:()=>Gi,dicts_delete:()=>Xi,dicts_get:()=>Yi,dicts_get_default:()=>Vi,dicts_items:()=>Bi,dicts_keys:()=>vi,dicts_length:()=>ki,dicts_pop:()=>xi,dicts_setdefault:()=>Wi,dicts_to_json:()=>Ji,dicts_to_json2:()=>zi,dicts_to_to:()=>ji,dicts_todict:()=>Qi,dicts_update:()=>yi,dicts_values:()=>wi,json_to_dicts:()=>qi});var u={};t.r(u),t.d(u,{logic_boolean:()=>sn,logic_compare:()=>$i,logic_compare_continous:()=>tn,logic_is:()=>an,logic_is_in:()=>un,logic_negate:()=>nn,logic_null:()=>on,logic_operation:()=>en,logic_tobool:()=>rn,logic_true_or_false:()=>_n});var a={};t.r(a),t.d(a,{sdcard_mount:()=>vn,sdcard_use_spi_init:()=>Fn,storage_can_write_ornot:()=>mn,storage_change_dir:()=>fn,storage_close_file:()=>En,storage_delete_file:()=>Cn,storage_file_seek:()=>Ln,storage_file_tell:()=>An,storage_file_write:()=>dn,storage_fileopen:()=>ln,storage_fileopen_new:()=>In,storage_fileopen_new_encoding:()=>Tn,storage_get_a_line:()=>On,storage_get_contents:()=>Mn,storage_get_contents_without_para:()=>hn,storage_get_current_dir:()=>Sn,storage_get_file_size:()=>gn,storage_get_filename:()=>cn,storage_is_file:()=>Pn,storage_list_all_files:()=>Rn,storage_make_dir:()=>Nn,storage_open_file_with_os:()=>pn,storage_rename:()=>Dn});var r={};t.r(r),t.d(r,{procedures_callnoreturn:()=>Bn,procedures_callreturn:()=>wn,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>Xn,procedures_ifreturn:()=>kn,procedures_mutatorarg:()=>Un,procedures_mutatorcontainer:()=>yn,procedures_return:()=>Gn});var p={};t.r(p),t.d(p,{tuple_change_to:()=>ts,tuple_create_with:()=>xn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Qn,tuple_create_with_text_return:()=>Jn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>Os,set_clear:()=>ds,set_create_with:()=>rs,set_create_with_container:()=>ps,set_create_with_item:()=>ls,set_create_with_text_return:()=>Es,set_length:()=>Is,set_operate:()=>hs,set_operate_update:()=>Ms,set_pop:()=>Ts,set_sub:()=>ms,set_toset:()=>Rs,set_update:()=>cs});var I={};t.r(I),t.d(I,{html_content:()=>Ss,html_content_more:()=>Ns,html_document:()=>gs,html_form:()=>fs,html_head_body:()=>Ls,html_style:()=>Ds,html_style_color:()=>Fs,html_style_content:()=>Ps,html_text:()=>vs,html_title:()=>As});var T={};t.r(T),t.d(T,{attribute_access:()=>Ks,function_call:()=>Hs,function_call_container:()=>xs,function_call_item:()=>Ws,raw_block:()=>bs,raw_empty:()=>ys,raw_expression:()=>Xs,raw_table:()=>Vs,text_comment:()=>Us,text_print_multiple:()=>ws,text_print_multiple_container:()=>ks,text_print_multiple_item:()=>Gs,type_check:()=>Bs});var d={};t.r(d),t.d(d,{controls_type:()=>zs,controls_typeLists:()=>Zs,lists_zip:()=>$s,unpack_iterable_object:()=>to,variables_change:()=>qs,variables_get:()=>Qs,variables_global:()=>js,variables_set:()=>Js});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>po,base_setup:()=>io,controls_delay:()=>ro,controls_flow_statements:()=>ao,controls_for:()=>oo,controls_forEach:()=>Mo,controls_for_range:()=>_o,controls_if:()=>no,controls_interrupts:()=>To,controls_lambda:()=>mo,controls_main:()=>eo,controls_millis:()=>lo,controls_nointerrupts:()=>ho,controls_pass:()=>Eo,controls_range:()=>Oo,controls_repeat:()=>Do,controls_repeat_ext:()=>go,controls_thread:()=>Ro,controls_try_finally:()=>so,controls_whileUntil:()=>uo,datetime_fromtimestamp:()=>fo,do_while:()=>Co,garbage_collection:()=>Ao,gene_unique_identifier:()=>Po,get_mem_alloc:()=>Lo,get_mem_free:()=>So,get_unique_identifier:()=>No,reset:()=>Io,time_sleep:()=>co});var M={};t.r(M),t.d(M,{base_map:()=>zo,generate_cartesian_product:()=>$o,math_arithmetic:()=>bo,math_bit:()=>Vo,math_constant:()=>vo,math_constant_mp:()=>Yo,math_constrain:()=>xo,math_dec:()=>Bo,math_indexer_number:()=>Qo,math_map:()=>Ho,math_max_min:()=>ko,math_number:()=>Fo,math_number_base_conversion:()=>Wo,math_random:()=>Go,math_random_seed:()=>Ko,math_round:()=>Jo,math_selfcalcu:()=>Xo,math_single:()=>yo,math_to_int:()=>wo,math_trig:()=>Uo,text_to_number:()=>qo,text_to_number_skulpt:()=>jo,turn_to_int:()=>Zo});var O={};t.r(O),t.d(O,{ascii_to_char:()=>s_,char_to_ascii:()=>o_,number_to_text:()=>__,os_system:()=>f_,text:()=>t_,text_capital:()=>h_,text_center:()=>M_,text_char:()=>i_,text_char_at:()=>r_,text_char_at2:()=>a_,text_char_at3:()=>S_,text_compareTo:()=>L_,text_compare_to:()=>I_,text_encode:()=>N_,text_equals_starts_ends:()=>l_,text_eval:()=>D_,text_find:()=>O_,text_format:()=>C_,text_format_noreturn:()=>g_,text_join:()=>n_,text_join_seq:()=>m_,text_length:()=>u_,text_random_char:()=>p_,text_replace:()=>c_,text_split:()=>E_,text_strip:()=>R_,text_substring:()=>d_,text_substring2:()=>T_,text_substring3:()=>A_,text_textarea:()=>e_});var m={};t.r(m),t.d(m,{content_in_lists:()=>ru,enumerate:()=>au,list_many_input:()=>q_,list_tolist:()=>_u,list_tolist2:()=>uu,list_trig:()=>K_,lists_2d_get_col_row_data:()=>v_,lists_2d_get_data_with_col_row:()=>F_,lists_append_extend:()=>y_,lists_change_to:()=>J_,lists_change_to_general:()=>z_,lists_clear:()=>G_,lists_create_with:()=>Y_,lists_create_with2:()=>$_,lists_create_with_noreturn:()=>j_,lists_create_with_text:()=>V_,lists_create_with_text2:()=>tu,lists_del_general:()=>Z_,lists_find:()=>H_,lists_getIndex3:()=>eu,lists_getSublist3:()=>iu,lists_get_index:()=>b_,lists_get_random_item:()=>U_,lists_get_random_sublist:()=>B_,lists_get_sublist:()=>P_,lists_insert_value:()=>w_,lists_insert_value2:()=>su,lists_pop:()=>W_,lists_remove_at:()=>x_,lists_remove_at2:()=>ou,lists_reverse:()=>k_,lists_setIndex3:()=>nu,lists_set_index:()=>X_,lists_sort:()=>Q_});var c={};t.r(c),t.d(c,{dicts_add_change_del:()=>Cu,dicts_add_or_change:()=>du,dicts_clear:()=>Ou,dicts_create_with:()=>pu,dicts_create_with_noreturn:()=>Lu,dicts_deldict:()=>Ru,dicts_delete:()=>hu,dicts_get:()=>Iu,dicts_get_default:()=>Tu,dicts_items:()=>mu,dicts_keys:()=>lu,dicts_length:()=>Eu,dicts_pop:()=>gu,dicts_setdefault:()=>Au,dicts_to_json:()=>Nu,dicts_to_json2:()=>Pu,dicts_to_to:()=>fu,dicts_todict:()=>Su,dicts_update:()=>Mu,dicts_values:()=>cu,json_to_dicts:()=>Du});var E={};t.r(E),t.d(E,{logic_boolean:()=>bu,logic_compare:()=>Fu,logic_compare_continous:()=>vu,logic_is:()=>Bu,logic_is_in:()=>Uu,logic_negate:()=>Vu,logic_null:()=>Xu,logic_operation:()=>Yu,logic_tobool:()=>wu,logic_true_or_false:()=>yu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>ra,sdcard_use_spi_init:()=>aa,storage_can_write_ornot:()=>qu,storage_change_dir:()=>na,storage_close_file:()=>zu,storage_delete_file:()=>$u,storage_file_seek:()=>ia,storage_file_tell:()=>ea,storage_file_write:()=>Wu,storage_fileopen:()=>Gu,storage_fileopen_new:()=>Hu,storage_fileopen_new_encoding:()=>xu,storage_get_a_line:()=>Ju,storage_get_contents:()=>Qu,storage_get_contents_without_para:()=>Ku,storage_get_current_dir:()=>sa,storage_get_file_size:()=>ta,storage_get_filename:()=>ju,storage_is_file:()=>ua,storage_list_all_files:()=>Zu,storage_make_dir:()=>oa,storage_open_file_with_os:()=>ku,storage_rename:()=>_a});var C={};t.r(C),t.d(C,{procedures_callnoreturn:()=>Ta,procedures_callreturn:()=>Ia,procedures_defnoreturn:()=>la,procedures_defreturn:()=>pa,procedures_ifreturn:()=>da,procedures_return:()=>ha});var g={};t.r(g),t.d(g,{tuple_change_to:()=>Aa,tuple_create_with:()=>Ma,tuple_create_with_noreturn:()=>Da,tuple_create_with_text2:()=>Oa,tuple_create_with_text_return:()=>ma,tuple_del:()=>Ra,tuple_find:()=>La,tuple_getIndex:()=>ca,tuple_getSublist:()=>Na,tuple_get_random_item:()=>Pa,tuple_get_sublist:()=>fa,tuple_join:()=>Ca,tuple_length:()=>Ea,tuple_max:()=>ga,tuple_totuple:()=>Fa,tuple_trig:()=>Sa});var A={};t.r(A),t.d(A,{set_add_discard:()=>Ua,set_clear:()=>ba,set_create_with:()=>va,set_create_with_text_return:()=>ka,set_length:()=>Ya,set_operate:()=>Xa,set_operate_update:()=>ya,set_pop:()=>Va,set_sub:()=>Ba,set_toset:()=>Ga,set_update:()=>wa});var L={};t.r(L),t.d(L,{html_content:()=>Ka,html_content_more:()=>Qa,html_document:()=>Ha,html_form:()=>qa,html_head_body:()=>Wa,html_style:()=>Ja,html_style_content:()=>ja,html_text:()=>za,html_title:()=>xa});var S={};t.r(S),t.d(S,{attribute_access:()=>sr,function_call:()=>nr,raw_block:()=>Za,raw_empty:()=>tr,raw_expression:()=>$a,raw_table:()=>er,type_check:()=>ir});var N={};t.r(N),t.d(N,{educore_mqtt_connect:()=>Br,educore_mqtt_connect_success:()=>Hr,educore_mqtt_subscribe_message:()=>wr,educore_mqtt_topic_publish:()=>Gr,educore_mqtt_topic_subscribe:()=>kr,educore_wifi_connect:()=>Ur,network_ap_connect:()=>Or,network_connect:()=>Ir,network_get_connect:()=>dr,network_get_wifi:()=>Mr,network_init:()=>ar,network_is_active:()=>pr,network_open:()=>rr,network_scan:()=>lr,network_server:()=>mr,network_socket_accept:()=>gr,network_socket_bind:()=>Er,network_socket_close:()=>Dr,network_socket_connect:()=>Rr,network_socket_init:()=>cr,network_socket_listen:()=>Cr,network_socket_receive:()=>Ar,network_socket_receive_from:()=>Sr,network_socket_send:()=>Lr,network_socket_send_to:()=>Nr,network_stop:()=>hr,network_wifi_connect:()=>Tr,ntptime_address:()=>Yr,ntptime_time:()=>vr,requests_attribute:()=>Pr,requests_attribute2:()=>yr,requests_get:()=>fr,requests_get2:()=>br,requests_method:()=>Fr,requests_post:()=>Xr});var D={};t.r(D),t.d(D,{educore_mqtt_connect:()=>Ep,educore_mqtt_connect_success:()=>Ap,educore_mqtt_subscribe_message:()=>Rp,educore_mqtt_topic_publish:()=>gp,educore_mqtt_topic_subscribe:()=>Cp,educore_wifi_connect:()=>cp,network_ap_connect:()=>Zr,network_connect:()=>Wr,network_get_connect:()=>Qr,network_get_wifi:()=>zr,network_init:()=>xr,network_is_active:()=>jr,network_open:()=>qr,network_scan:()=>$r,network_server:()=>tp,network_socket_accept:()=>op,network_socket_bind:()=>ip,network_socket_close:()=>pp,network_socket_connect:()=>np,network_socket_init:()=>ep,network_socket_listen:()=>sp,network_socket_receive:()=>_p,network_socket_receive_from:()=>ap,network_socket_send:()=>up,network_socket_send_to:()=>rp,network_stop:()=>Jr,network_wifi_connect:()=>Kr,ntptime_address:()=>hp,ntptime_time:()=>dp,requests_attribute:()=>Ip,requests_attribute2:()=>Op,requests_get:()=>lp,requests_get2:()=>Mp,requests_method:()=>Tp,requests_post:()=>mp});var f={};t.r(f),t.d(f,{MP3_CONTROL:()=>zp,MP3_EQ_MODE:()=>el,MP3_INIT:()=>qp,MP3_LOOP_MODE:()=>$p,MP3_PLAY_FOLDER:()=>sl,MP3_PLAY_NUM:()=>nl,MP3_VOL:()=>il,bit_motor_control:()=>xp,display_rgb:()=>Kp,display_rgb2:()=>Qp,display_rgb_init:()=>Wp,display_rgb_show:()=>Jp,microbit_music_get_tempo:()=>Xp,microbit_music_pitch:()=>Fp,microbit_music_pitch_delay:()=>Pp,microbit_music_play_built_in:()=>Dp,microbit_music_play_built_in_easy:()=>fp,microbit_music_play_list_of_notes:()=>vp,microbit_music_play_list_of_notes_easy:()=>Yp,microbit_music_reset:()=>Vp,microbit_music_stop:()=>bp,servo_move:()=>Hp,speech_pronounce_easy:()=>kp,speech_say:()=>Up,speech_say_easy:()=>Bp,speech_sing_easy:()=>wp,speech_translate:()=>Gp,tone_set_tempo:()=>yp});var P={};t.r(P),t.d(P,{i2c_init:()=>hl,i2c_read:()=>Ml,i2c_write:()=>Ol,microbit_radio_config:()=>rl,microbit_radio_off:()=>al,microbit_radio_on:()=>ul,microbit_radio_receive:()=>Tl,microbit_radio_reset:()=>pl,microbit_radio_send_string:()=>ll,radio_ons:()=>_l,radio_receive_string:()=>dl,radio_send_string:()=>Il,spi_init:()=>ml,spi_write:()=>cl});var F={};t.r(F),t.d(F,{display_fill:()=>Ql,display_image_size:()=>Kl,group_lcd_init:()=>Gl,group_lcd_power:()=>xl,group_lcd_print:()=>kl,group_lcd_print2:()=>Hl,image_arithmetic:()=>wl,image_shift:()=>Bl,lp2i_u8g_draw_4strings:()=>Wl,microbit_display_clear:()=>Rl,microbit_display_is_on:()=>Vl,microbit_display_off:()=>Yl,microbit_display_on:()=>vl,microbit_display_scroll:()=>Fl,microbit_display_scroll_string_animation:()=>Pl,microbit_display_show_animation:()=>fl,microbit_display_show_default_image:()=>Dl,microbit_display_show_image:()=>Nl,microbit_image_builtins:()=>bl,microbit_image_copy:()=>Xl,microbit_image_create:()=>Ul,microbit_image_invert:()=>yl,monitor_bright_point:()=>gl,monitor_get_pixel:()=>Cl,monitor_scroll_string:()=>Ll,monitor_scroll_string_with_delay:()=>Sl,monitor_show_image_or_string:()=>Al});var v={};t.r(v),t.d(v,{factory_block:()=>sI,factory_block_return:()=>oI,factory_block_return_with_textarea:()=>uI,factory_block_with_textarea:()=>_I,factory_callMethod_noreturn:()=>iI,factory_callMethod_return:()=>nI,factory_create_with_container:()=>Zl,factory_create_with_item:()=>$l,factory_declare:()=>eI,factory_from_import:()=>ql,factory_function_noreturn:()=>zl,factory_function_return:()=>tI,factory_import:()=>jl});var Y={};t.r(Y),t.d(Y,{inout_analog_read:()=>TI,inout_analog_write:()=>lI,inout_analog_write_set:()=>II,inout_digital_read:()=>pI,inout_digital_write:()=>hI,inout_highlow:()=>rI,sensor_pin_pressed:()=>dI});var V={};t.r(V),t.d(V,{actuator_motor_off:()=>CI,actuator_motor_on:()=>RI,actuator_rgb:()=>EI,actuator_rgb_color:()=>mI,actuator_rgb_off:()=>cI,base_loop:()=>OI,sensor_pin_near:()=>gI,sensor_while_btn_pressed:()=>AI,sensor_while_is_gesture:()=>LI,sensor_while_is_near:()=>SI});var b={};t.r(b),t.d(b,{pins_analog:()=>fI,pins_axis:()=>XI,pins_brightness:()=>yI,pins_builtinimg:()=>VI,pins_button:()=>PI,pins_digital:()=>DI,pins_imglist:()=>bI,pins_interrupt:()=>vI,pins_pwm:()=>FI,pins_radio_datarate:()=>wI,pins_radio_power:()=>BI,pins_serial:()=>YI,pins_tone_notes:()=>UI});var X={};t.r(X),t.d(X,{DS1307_init:()=>pT,RTC_get_time:()=>IT,RTC_set_date:()=>dT,RTC_set_time:()=>TT,TCS34725_Get_RGB:()=>cT,controls_GestureLists:()=>JI,controls_attachGestureInterrupt:()=>QI,controls_attachGestureInterrupt2:()=>qI,sensor_button_get_presses:()=>xI,sensor_button_is_pressed:()=>GI,sensor_button_was_pressed:()=>HI,sensor_calibrate_compass:()=>eT,sensor_compass_heading:()=>nT,sensor_compass_reset:()=>hT,sensor_current_gesture:()=>$I,sensor_current_gesture1:()=>WI,sensor_current_gesture2:()=>KI,sensor_distance_hrsc04:()=>aT,sensor_distance_hrsc04_:()=>rT,sensor_field_strength:()=>oT,sensor_get_acceleration:()=>jI,sensor_get_gestures:()=>ZI,sensor_hrsc04_init:()=>OT,sensor_is_compass_calibrated:()=>iT,sensor_light:()=>MT,sensor_light_level:()=>tT,sensor_magnetic:()=>uT,sensor_rotation:()=>_T,sensor_set_acceleration:()=>zI,sensor_temperature:()=>sT});var y={};t.r(y),t.d(y,{IO_input:()=>FT,IO_print:()=>vT,IO_print_inline:()=>YT,serial_any:()=>ST,serial_begin:()=>PT,serial_print:()=>RT,serial_print_hex:()=>gT,serial_println:()=>CT,serial_readline:()=>NT,serial_readstr:()=>LT,serial_readstr_until:()=>DT,serial_receive_data_event:()=>AT,serial_softserial:()=>fT});var U={};t.r(U),t.d(U,{Panic_with_status_code:()=>yT,base_delay:()=>bT,controls_millis:()=>XT,controls_uname:()=>BT,reset:()=>UT});var B={};t.r(B),t.d(B,{MP3_CONTROL:()=>ud,MP3_EQ_MODE:()=>rd,MP3_INIT:()=>_d,MP3_LOOP_MODE:()=>ad,MP3_PLAY_FOLDER:()=>Id,MP3_PLAY_NUM:()=>ld,MP3_VOL:()=>pd,bit_motor_control:()=>ed,display_rgb:()=>nd,display_rgb2:()=>sd,display_rgb_init:()=>id,display_rgb_show:()=>od,microbit_music_get_tempo:()=>QT,microbit_music_pitch:()=>HT,microbit_music_pitch_delay:()=>GT,microbit_music_play_built_in:()=>wT,microbit_music_play_built_in_easy:()=>kT,microbit_music_play_list_of_notes:()=>xT,microbit_music_reset:()=>WT,microbit_music_stop:()=>KT,servo_move:()=>td,speech_pronounce_easy:()=>$T,speech_say:()=>jT,speech_say_easy:()=>zT,speech_sing_easy:()=>ZT,speech_translate:()=>qT,tone_set_tempo:()=>JT});var w={};t.r(w),t.d(w,{i2c_init:()=>Rd,i2c_read:()=>Cd,i2c_write:()=>gd,microbit_radio_config:()=>Md,microbit_radio_off:()=>hd,microbit_radio_on:()=>dd,microbit_radio_receive:()=>Ed,microbit_radio_reset:()=>Od,radio_ons:()=>Td,radio_receive_string:()=>cd,radio_send_string:()=>md,spi_init:()=>Ad,spi_write:()=>Ld});var k={};t.r(k),t.d(k,{display_fill:()=>Zd,display_image_size:()=>zd,group_lcd_init:()=>Qd,group_lcd_power:()=>qd,group_lcd_print:()=>Kd,group_lcd_print2:()=>Jd,image_arithmetic:()=>xd,image_shift:()=>Hd,lp2i_u8g_draw_4strings:()=>jd,microbit_display_clear:()=>Sd,microbit_display_is_on:()=>Ud,microbit_display_on:()=>yd,microbit_display_scroll:()=>Xd,microbit_display_scroll_string_animation:()=>Wd,microbit_display_set_pixel:()=>Dd,microbit_display_show_animation:()=>bd,microbit_display_show_default_image:()=>Vd,microbit_display_show_image:()=>Yd,microbit_image_builtins:()=>Bd,microbit_image_copy:()=>wd,microbit_image_create:()=>Gd,microbit_image_invert:()=>kd,monitor_bright_point:()=>fd,monitor_get_pixel:()=>Nd,monitor_scroll_string:()=>Fd,monitor_scroll_string_with_delay:()=>vd,monitor_show_image_or_string:()=>Pd});var G={};t.r(G),t.d(G,{factory_block:()=>_h,factory_block_return:()=>uh,factory_block_return_with_textarea:()=>rh,factory_block_with_textarea:()=>ah,factory_callMethod_noreturn:()=>sh,factory_callMethod_return:()=>oh,factory_declare:()=>nh,factory_from_import:()=>$d,factory_function_noreturn:()=>eh,factory_function_return:()=>ih,factory_import:()=>th});var H={};t.r(H),t.d(H,{inout_analog_read:()=>hh,inout_analog_write:()=>Th,inout_analog_write_set:()=>dh,inout_digital_read:()=>Ih,inout_digital_write:()=>lh,inout_highlow:()=>ph,sensor_pin_pressed:()=>Mh});var x={};t.r(x),t.d(x,{actuator_motor_off:()=>gh,actuator_motor_on:()=>Ch,actuator_rgb:()=>Rh,actuator_rgb_color:()=>ch,actuator_rgb_off:()=>Eh,base_loop:()=>mh,controls_repeat_ext:()=>Dh,microbit_image_create:()=>Oh,sensor_pin_near:()=>Ah,sensor_while_btn_pressed:()=>Lh,sensor_while_is_gesture:()=>Sh,sensor_while_is_near:()=>Nh});var W={};t.r(W),t.d(W,{pins_analog:()=>Ph,pins_axis:()=>yh,pins_brightness:()=>Uh,pins_builtinimg:()=>bh,pins_button:()=>Fh,pins_digital:()=>fh,pins_imglist:()=>Xh,pins_interrupt:()=>Yh,pins_pwm:()=>vh,pins_radio_datarate:()=>kh,pins_radio_power:()=>wh,pins_serial:()=>Vh,pins_tone_notes:()=>Bh});var K={};t.r(K),t.d(K,{DS1307_init:()=>pM,RTC_get_time:()=>lM,RTC_set_date:()=>TM,RTC_set_time:()=>IM,TCS34725_Get_RGB:()=>OM,controls_GestureLists:()=>Wh,controls_attachGestureInterrupt:()=>Kh,controls_attachGestureInterrupt2:()=>qh,sensor_button_get_presses:()=>xh,sensor_button_is_pressed:()=>Gh,sensor_button_was_pressed:()=>Hh,sensor_calibrate_compass:()=>eM,sensor_compass_heading:()=>nM,sensor_compass_reset:()=>dM,sensor_current_gesture:()=>zh,sensor_current_gesture1:()=>Qh,sensor_current_gesture2:()=>Jh,sensor_distance_hrsc04:()=>aM,sensor_distance_hrsc04_:()=>rM,sensor_field_strength:()=>oM,sensor_get_acceleration:()=>Zh,sensor_get_gestures:()=>jh,sensor_hrsc04_init:()=>MM,sensor_is_compass_calibrated:()=>iM,sensor_light:()=>hM,sensor_light_level:()=>tM,sensor_magnetic:()=>uM,sensor_rotation:()=>_M,sensor_set_acceleration:()=>$h,sensor_temperature:()=>sM});var Q={};t.r(Q),t.d(Q,{IO_input:()=>DM,IO_print:()=>fM,IO_print_inline:()=>PM,serial_any:()=>CM,serial_begin:()=>NM,serial_print:()=>mM,serial_print_hex:()=>EM,serial_println:()=>cM,serial_readline:()=>AM,serial_readstr:()=>gM,serial_readstr_until:()=>LM,serial_receive_data_event:()=>RM,serial_softserial:()=>SM});var J={};t.r(J),t.d(J,{Panic_with_status_code:()=>HM,base_delay:()=>GM,controls_end_program:()=>WM,controls_millis:()=>xM,controls_uname:()=>QM,reset:()=>KM,system_device_name:()=>wM,system_device_serial_number:()=>kM,system_event_bus_source:()=>UM,system_event_bus_value:()=>BM,system_on_event:()=>bM,system_raise_event:()=>VM,system_reset:()=>vM,system_run_in_background:()=>FM,system_timestamp:()=>XM,system_value:()=>yM,system_wait:()=>YM});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>_t,controls_typeLists:()=>ut,lists_zip:()=>at,lists_zip_container:()=>rt,lists_zip_item:()=>pt,unpack_iterable_object:()=>lt,variables_change:()=>st,variables_get:()=>it,variables_global:()=>ot,variables_set:()=>nt});var i={};t.r(i),t.d(i,{base_setup:()=>dt,controls_delay:()=>ht,controls_end_program:()=>Mt,controls_except:()=>ft,controls_finally:()=>Pt,controls_flow_statements:()=>Ct,controls_for:()=>gt,controls_forEach:()=>ct,controls_for_range:()=>At,controls_if:()=>Ot,controls_if_else:()=>Nt,controls_if_elseif:()=>St,controls_if_if:()=>Lt,controls_lambda:()=>vt,controls_main:()=>Tt,controls_pass:()=>Yt,controls_range:()=>mt,controls_repeat_ext:()=>Ft,controls_thread:()=>Vt,controls_try:()=>Dt,controls_try_finally:()=>Rt,controls_whileUntil:()=>Et,datetime_fromtimestamp:()=>wt,do_while:()=>bt,garbage_collection:()=>Xt,gene_unique_identifier:()=>kt,get_mem_alloc:()=>yt,get_mem_free:()=>Ut,get_unique_identifier:()=>Bt});var n={};t.r(n),t.d(n,{base_map:()=>ae,generate_cartesian_product:()=>pe,math_arithmetic:()=>Kt,math_bit:()=>Jt,math_constant:()=>xt,math_constant_mp:()=>Wt,math_constrain:()=>ee,math_dec:()=>jt,math_indexer_number:()=>ne,math_map:()=>ie,math_max_min:()=>Zt,math_number:()=>Ht,math_number_base_conversion:()=>$t,math_random:()=>te,math_random_seed:()=>se,math_round:()=>oe,math_selfcalcu:()=>Qt,math_to_int:()=>zt,math_trig:()=>qt,text_to_number:()=>_e,text_to_number_skulpt:()=>ue,turn_to_int:()=>re});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Me,char_to_ascii:()=>Oe,number_to_text:()=>me,os_system:()=>He,text:()=>Ie,text_capital:()=>Ne,text_center:()=>De,text_char:()=>de,text_char_at:()=>Re,text_char_at2:()=>Ee,text_char_at3:()=>Be,text_compareTo:()=>Ue,text_compare_to:()=>Se,text_create_with_container:()=>be,text_create_with_item:()=>Xe,text_encode:()=>ke,text_equals_starts_ends:()=>Le,text_eval:()=>Ge,text_find:()=>fe,text_format:()=>Ve,text_format_noreturn:()=>we,text_join:()=>he,text_join_seq:()=>Pe,text_length:()=>ce,text_random_char:()=>Ce,text_replace:()=>Fe,text_split:()=>ve,text_strip:()=>Ye,text_substring:()=>Ae,text_substring2:()=>ge,text_substring3:()=>ye,text_textarea:()=>Te});var o={};t.r(o),t.d(o,{ENUMERATE:()=>Li,content_in_lists:()=>Ni,enumerate:()=>Si,list_many_input:()=>Ii,list_tolist:()=>Mi,list_tolist2:()=>Ai,list_trig:()=>ri,lists_2d_get_col_row_data:()=>Je,lists_2d_get_data_with_col_row:()=>Qe,lists_append_extend:()=>ti,lists_change_to:()=>li,lists_change_to_general:()=>di,lists_clear:()=>oi,lists_create_with:()=>qe,lists_create_with2:()=>Oi,lists_create_with_container:()=>ze,lists_create_with_item:()=>Ze,lists_create_with_noreturn:()=>Ti,lists_create_with_text:()=>je,lists_create_with_text2:()=>mi,lists_del_general:()=>hi,lists_find:()=>ai,lists_getIndex3:()=>ci,lists_getSublist3:()=>Ei,lists_get_index:()=>We,lists_get_random_item:()=>ei,lists_get_random_sublist:()=>ii,lists_get_sublist:()=>Ke,lists_insert_value:()=>ni,lists_insert_value2:()=>Ci,lists_pop:()=>ui,lists_remove_at:()=>_i,lists_remove_at2:()=>gi,lists_reverse:()=>si,lists_setIndex3:()=>Ri,lists_set_index:()=>$e,lists_sort:()=>pi});var _={};t.r(_),t.d(_,{dicts_add_change_del:()=>Hi,dicts_add_or_change:()=>bi,dicts_clear:()=>Ui,dicts_create_with:()=>fi,dicts_create_with_container:()=>Pi,dicts_create_with_item:()=>Fi,dicts_create_with_noreturn:()=>Ki,dicts_deldict:()=>Gi,dicts_delete:()=>Xi,dicts_get:()=>Yi,dicts_get_default:()=>Vi,dicts_items:()=>Bi,dicts_keys:()=>vi,dicts_length:()=>ki,dicts_pop:()=>xi,dicts_setdefault:()=>Wi,dicts_to_json:()=>Ji,dicts_to_json2:()=>zi,dicts_to_to:()=>ji,dicts_todict:()=>Qi,dicts_update:()=>yi,dicts_values:()=>wi,json_to_dicts:()=>qi});var u={};t.r(u),t.d(u,{logic_boolean:()=>sn,logic_compare:()=>$i,logic_compare_continous:()=>tn,logic_is:()=>an,logic_is_in:()=>un,logic_negate:()=>nn,logic_null:()=>on,logic_operation:()=>en,logic_tobool:()=>rn,logic_true_or_false:()=>_n});var a={};t.r(a),t.d(a,{sdcard_mount:()=>vn,sdcard_use_spi_init:()=>Fn,storage_can_write_ornot:()=>mn,storage_change_dir:()=>fn,storage_close_file:()=>En,storage_delete_file:()=>Cn,storage_file_seek:()=>Ln,storage_file_tell:()=>An,storage_file_write:()=>dn,storage_fileopen:()=>ln,storage_fileopen_new:()=>In,storage_fileopen_new_encoding:()=>Tn,storage_get_a_line:()=>On,storage_get_contents:()=>Mn,storage_get_contents_without_para:()=>hn,storage_get_current_dir:()=>Sn,storage_get_file_size:()=>gn,storage_get_filename:()=>cn,storage_is_file:()=>Pn,storage_list_all_files:()=>Rn,storage_make_dir:()=>Nn,storage_open_file_with_os:()=>pn,storage_rename:()=>Dn});var r={};t.r(r),t.d(r,{procedures_callnoreturn:()=>Bn,procedures_callreturn:()=>wn,procedures_defnoreturn:()=>bn,procedures_defreturn:()=>Xn,procedures_ifreturn:()=>kn,procedures_mutatorarg:()=>Un,procedures_mutatorcontainer:()=>yn,procedures_return:()=>Gn});var p={};t.r(p),t.d(p,{tuple_change_to:()=>ts,tuple_create_with:()=>xn,tuple_create_with_container:()=>Wn,tuple_create_with_item:()=>Kn,tuple_create_with_noreturn:()=>ss,tuple_create_with_text2:()=>Qn,tuple_create_with_text_return:()=>Jn,tuple_del:()=>zn,tuple_find:()=>es,tuple_getIndex:()=>qn,tuple_getSublist:()=>ns,tuple_get_random_item:()=>_s,tuple_get_sublist:()=>os,tuple_input:()=>as,tuple_join:()=>Zn,tuple_length:()=>jn,tuple_max:()=>$n,tuple_totuple:()=>us,tuple_trig:()=>is});var l={};t.r(l),t.d(l,{set_add_discard:()=>ms,set_clear:()=>hs,set_create_with:()=>ps,set_create_with_container:()=>ls,set_create_with_item:()=>Is,set_create_with_text_return:()=>Rs,set_length:()=>Ts,set_operate:()=>Ms,set_operate_update:()=>Os,set_pop:()=>ds,set_sub:()=>cs,set_toset:()=>Cs,set_update:()=>Es});var I={};t.r(I),t.d(I,{html_content:()=>Ns,html_content_more:()=>Ds,html_document:()=>As,html_form:()=>Ps,html_head_body:()=>Ss,html_style:()=>fs,html_style_color:()=>vs,html_style_content:()=>Fs,html_text:()=>Ys,html_title:()=>Ls});var T={};t.r(T),t.d(T,{attribute_access:()=>Qs,function_call:()=>xs,function_call_container:()=>Ws,function_call_item:()=>Ks,raw_block:()=>Xs,raw_empty:()=>Us,raw_expression:()=>ys,raw_table:()=>bs,text_comment:()=>Bs,text_print_multiple:()=>ks,text_print_multiple_container:()=>Gs,text_print_multiple_item:()=>Hs,type_check:()=>ws});var d={};t.r(d),t.d(d,{controls_type:()=>Zs,controls_typeLists:()=>$s,lists_zip:()=>to,unpack_iterable_object:()=>eo,variables_change:()=>js,variables_get:()=>Js,variables_global:()=>zs,variables_set:()=>qs});var h={};t.r(h),t.d(h,{Panic_with_status_code:()=>lo,base_setup:()=>no,controls_delay:()=>po,controls_flow_statements:()=>ro,controls_for:()=>_o,controls_forEach:()=>Oo,controls_for_range:()=>uo,controls_if:()=>so,controls_interrupts:()=>ho,controls_lambda:()=>co,controls_main:()=>io,controls_millis:()=>Io,controls_nointerrupts:()=>Mo,controls_pass:()=>Ro,controls_range:()=>mo,controls_repeat:()=>fo,controls_repeat_ext:()=>Ao,controls_thread:()=>Co,controls_try_finally:()=>oo,controls_whileUntil:()=>ao,datetime_fromtimestamp:()=>Po,do_while:()=>go,garbage_collection:()=>Lo,gene_unique_identifier:()=>Fo,get_mem_alloc:()=>So,get_mem_free:()=>No,get_unique_identifier:()=>Do,reset:()=>To,time_sleep:()=>Eo});var M={};t.r(M),t.d(M,{base_map:()=>Zo,generate_cartesian_product:()=>t_,math_arithmetic:()=>Xo,math_bit:()=>bo,math_constant:()=>Yo,math_constant_mp:()=>Vo,math_constrain:()=>Wo,math_dec:()=>wo,math_indexer_number:()=>Jo,math_map:()=>xo,math_max_min:()=>Go,math_number:()=>vo,math_number_base_conversion:()=>Ko,math_random:()=>Ho,math_random_seed:()=>Qo,math_round:()=>qo,math_selfcalcu:()=>yo,math_single:()=>Uo,math_to_int:()=>ko,math_trig:()=>Bo,text_to_number:()=>jo,text_to_number_skulpt:()=>zo,turn_to_int:()=>$o});var O={};t.r(O),t.d(O,{ascii_to_char:()=>o_,char_to_ascii:()=>__,number_to_text:()=>u_,os_system:()=>P_,text:()=>e_,text_capital:()=>M_,text_center:()=>O_,text_char:()=>n_,text_char_at:()=>p_,text_char_at2:()=>r_,text_char_at3:()=>N_,text_compareTo:()=>S_,text_compare_to:()=>T_,text_encode:()=>D_,text_equals_starts_ends:()=>I_,text_eval:()=>f_,text_find:()=>m_,text_format:()=>g_,text_format_noreturn:()=>A_,text_join:()=>s_,text_join_seq:()=>c_,text_length:()=>a_,text_random_char:()=>l_,text_replace:()=>E_,text_split:()=>R_,text_strip:()=>C_,text_substring:()=>h_,text_substring2:()=>d_,text_substring3:()=>L_,text_textarea:()=>i_});var m={};t.r(m),t.d(m,{content_in_lists:()=>pu,enumerate:()=>ru,list_many_input:()=>j_,list_tolist:()=>uu,list_tolist2:()=>au,list_trig:()=>Q_,lists_2d_get_col_row_data:()=>Y_,lists_2d_get_data_with_col_row:()=>v_,lists_append_extend:()=>U_,lists_change_to:()=>q_,lists_change_to_general:()=>Z_,lists_clear:()=>H_,lists_create_with:()=>V_,lists_create_with2:()=>tu,lists_create_with_noreturn:()=>z_,lists_create_with_text:()=>b_,lists_create_with_text2:()=>eu,lists_del_general:()=>$_,lists_find:()=>x_,lists_getIndex3:()=>iu,lists_getSublist3:()=>nu,lists_get_index:()=>X_,lists_get_random_item:()=>B_,lists_get_random_sublist:()=>w_,lists_get_sublist:()=>F_,lists_insert_value:()=>k_,lists_insert_value2:()=>ou,lists_pop:()=>K_,lists_remove_at:()=>W_,lists_remove_at2:()=>_u,lists_reverse:()=>G_,lists_setIndex3:()=>su,lists_set_index:()=>y_,lists_sort:()=>J_});var c={};t.r(c),t.d(c,{dicts_add_change_del:()=>gu,dicts_add_or_change:()=>hu,dicts_clear:()=>mu,dicts_create_with:()=>lu,dicts_create_with_noreturn:()=>Su,dicts_deldict:()=>Cu,dicts_delete:()=>Mu,dicts_get:()=>Tu,dicts_get_default:()=>du,dicts_items:()=>cu,dicts_keys:()=>Iu,dicts_length:()=>Ru,dicts_pop:()=>Au,dicts_setdefault:()=>Lu,dicts_to_json:()=>Du,dicts_to_json2:()=>Fu,dicts_to_to:()=>Pu,dicts_todict:()=>Nu,dicts_update:()=>Ou,dicts_values:()=>Eu,json_to_dicts:()=>fu});var E={};t.r(E),t.d(E,{logic_boolean:()=>Xu,logic_compare:()=>vu,logic_compare_continous:()=>Yu,logic_is:()=>wu,logic_is_in:()=>Bu,logic_negate:()=>bu,logic_null:()=>yu,logic_operation:()=>Vu,logic_tobool:()=>ku,logic_true_or_false:()=>Uu});var R={};t.r(R),t.d(R,{sdcard_mount:()=>pa,sdcard_use_spi_init:()=>ra,storage_can_write_ornot:()=>ju,storage_change_dir:()=>sa,storage_close_file:()=>Zu,storage_delete_file:()=>ta,storage_file_seek:()=>na,storage_file_tell:()=>ia,storage_file_write:()=>Ku,storage_fileopen:()=>Hu,storage_fileopen_new:()=>xu,storage_fileopen_new_encoding:()=>Wu,storage_get_a_line:()=>qu,storage_get_contents:()=>Ju,storage_get_contents_without_para:()=>Qu,storage_get_current_dir:()=>oa,storage_get_file_size:()=>ea,storage_get_filename:()=>zu,storage_is_file:()=>aa,storage_list_all_files:()=>$u,storage_make_dir:()=>_a,storage_open_file_with_os:()=>Gu,storage_rename:()=>ua});var C={};t.r(C),t.d(C,{procedures_callnoreturn:()=>da,procedures_callreturn:()=>Ta,procedures_defnoreturn:()=>Ia,procedures_defreturn:()=>la,procedures_ifreturn:()=>ha,procedures_return:()=>Ma});var g={};t.r(g),t.d(g,{tuple_change_to:()=>La,tuple_create_with:()=>Oa,tuple_create_with_noreturn:()=>fa,tuple_create_with_text2:()=>ma,tuple_create_with_text_return:()=>ca,tuple_del:()=>Ca,tuple_find:()=>Sa,tuple_getIndex:()=>Ea,tuple_getSublist:()=>Da,tuple_get_random_item:()=>Fa,tuple_get_sublist:()=>Pa,tuple_input:()=>Ya,tuple_join:()=>ga,tuple_length:()=>Ra,tuple_max:()=>Aa,tuple_totuple:()=>va,tuple_trig:()=>Na});var A={};t.r(A),t.d(A,{set_add_discard:()=>wa,set_clear:()=>ya,set_create_with:()=>Va,set_create_with_text_return:()=>Ha,set_length:()=>ba,set_operate:()=>Ua,set_operate_update:()=>Ba,set_pop:()=>Xa,set_sub:()=>ka,set_toset:()=>xa,set_update:()=>Ga});var L={};t.r(L),t.d(L,{html_content:()=>Ja,html_content_more:()=>qa,html_document:()=>Wa,html_form:()=>za,html_head_body:()=>Qa,html_style:()=>ja,html_style_content:()=>Za,html_text:()=>$a,html_title:()=>Ka});var S={};t.r(S),t.d(S,{attribute_access:()=>_r,function_call:()=>or,raw_block:()=>tr,raw_empty:()=>ir,raw_expression:()=>er,raw_table:()=>nr,type_check:()=>sr});var N={};t.r(N),t.d(N,{educore_mqtt_connect:()=>kr,educore_mqtt_connect_success:()=>Wr,educore_mqtt_subscribe_message:()=>Gr,educore_mqtt_topic_publish:()=>xr,educore_mqtt_topic_subscribe:()=>Hr,educore_wifi_connect:()=>wr,network_ap_connect:()=>cr,network_connect:()=>dr,network_get_connect:()=>Mr,network_get_wifi:()=>mr,network_init:()=>pr,network_is_active:()=>Ir,network_open:()=>lr,network_scan:()=>Tr,network_server:()=>Er,network_socket_accept:()=>Lr,network_socket_bind:()=>Cr,network_socket_close:()=>Pr,network_socket_connect:()=>gr,network_socket_init:()=>Rr,network_socket_listen:()=>Ar,network_socket_receive:()=>Sr,network_socket_receive_from:()=>Dr,network_socket_send:()=>Nr,network_socket_send_to:()=>fr,network_stop:()=>Or,network_wifi_connect:()=>hr,ntptime_address:()=>br,ntptime_time:()=>Vr,requests_attribute:()=>vr,requests_attribute2:()=>Br,requests_get:()=>Fr,requests_get2:()=>yr,requests_method:()=>Yr,requests_post:()=>Ur});var D={};t.r(D),t.d(D,{educore_mqtt_connect:()=>Cp,educore_mqtt_connect_success:()=>Sp,educore_mqtt_subscribe_message:()=>gp,educore_mqtt_topic_publish:()=>Lp,educore_mqtt_topic_subscribe:()=>Ap,educore_wifi_connect:()=>Rp,network_ap_connect:()=>tp,network_connect:()=>Qr,network_get_connect:()=>qr,network_get_wifi:()=>$r,network_init:()=>Kr,network_is_active:()=>Zr,network_open:()=>zr,network_scan:()=>ep,network_server:()=>ip,network_socket_accept:()=>up,network_socket_bind:()=>sp,network_socket_close:()=>Ip,network_socket_connect:()=>op,network_socket_init:()=>np,network_socket_listen:()=>_p,network_socket_receive:()=>ap,network_socket_receive_from:()=>pp,network_socket_send:()=>rp,network_socket_send_to:()=>lp,network_stop:()=>jr,network_wifi_connect:()=>Jr,ntptime_address:()=>Op,ntptime_time:()=>Mp,requests_attribute:()=>dp,requests_attribute2:()=>cp,requests_get:()=>Tp,requests_get2:()=>mp,requests_method:()=>hp,requests_post:()=>Ep});var f={};t.r(f),t.d(f,{MP3_CONTROL:()=>$p,MP3_EQ_MODE:()=>nl,MP3_INIT:()=>zp,MP3_LOOP_MODE:()=>el,MP3_PLAY_FOLDER:()=>_l,MP3_PLAY_NUM:()=>ol,MP3_VOL:()=>sl,bit_motor_control:()=>Kp,display_rgb:()=>Jp,display_rgb2:()=>qp,display_rgb_init:()=>Qp,display_rgb_show:()=>jp,microbit_music_get_tempo:()=>Up,microbit_music_pitch:()=>Yp,microbit_music_pitch_delay:()=>vp,microbit_music_play_built_in:()=>Pp,microbit_music_play_built_in_easy:()=>Fp,microbit_music_play_list_of_notes:()=>Vp,microbit_music_play_list_of_notes_easy:()=>bp,microbit_music_reset:()=>Xp,microbit_music_stop:()=>yp,servo_move:()=>Wp,speech_pronounce_easy:()=>Hp,speech_say:()=>wp,speech_say_easy:()=>kp,speech_sing_easy:()=>Gp,speech_translate:()=>xp,tone_set_tempo:()=>Bp});var P={};t.r(P),t.d(P,{i2c_init:()=>Ol,i2c_read:()=>ml,i2c_write:()=>cl,microbit_radio_config:()=>ll,microbit_radio_off:()=>pl,microbit_radio_on:()=>rl,microbit_radio_receive:()=>hl,microbit_radio_reset:()=>Il,microbit_radio_send_string:()=>Tl,radio_ons:()=>al,radio_receive_string:()=>Ml,radio_send_string:()=>dl,spi_init:()=>El,spi_write:()=>Rl});var F={};t.r(F),t.d(F,{display_fill:()=>ql,display_image_size:()=>Jl,group_lcd_init:()=>xl,group_lcd_power:()=>Kl,group_lcd_print:()=>Hl,group_lcd_print2:()=>Wl,image_arithmetic:()=>Gl,image_shift:()=>kl,lp2i_u8g_draw_4strings:()=>Ql,microbit_display_clear:()=>gl,microbit_display_is_on:()=>Xl,microbit_display_off:()=>bl,microbit_display_on:()=>Vl,microbit_display_scroll:()=>Yl,microbit_display_scroll_string_animation:()=>vl,microbit_display_show_animation:()=>Fl,microbit_display_show_default_image:()=>Pl,microbit_display_show_image:()=>fl,microbit_image_builtins:()=>yl,microbit_image_copy:()=>Ul,microbit_image_create:()=>wl,microbit_image_invert:()=>Bl,monitor_bright_point:()=>Ll,monitor_get_pixel:()=>Al,monitor_scroll_string:()=>Nl,monitor_scroll_string_with_delay:()=>Dl,monitor_show_image_or_string:()=>Sl});var v={};t.r(v),t.d(v,{factory_block:()=>_I,factory_block_return:()=>uI,factory_block_return_with_textarea:()=>rI,factory_block_with_textarea:()=>aI,factory_callMethod_noreturn:()=>sI,factory_callMethod_return:()=>oI,factory_create_with_container:()=>tI,factory_create_with_item:()=>eI,factory_declare:()=>nI,factory_from_import:()=>zl,factory_function_noreturn:()=>$l,factory_function_return:()=>iI,factory_import:()=>Zl});var Y={};t.r(Y),t.d(Y,{inout_analog_read:()=>hI,inout_analog_write:()=>TI,inout_analog_write_set:()=>dI,inout_digital_read:()=>II,inout_digital_write:()=>OI,inout_highlow:()=>lI,sensor_pin_pressed:()=>MI});var V={};t.r(V),t.d(V,{actuator_motor_off:()=>AI,actuator_motor_on:()=>gI,actuator_rgb:()=>CI,actuator_rgb_color:()=>EI,actuator_rgb_off:()=>RI,base_loop:()=>cI,sensor_pin_near:()=>LI,sensor_while_btn_pressed:()=>SI,sensor_while_is_gesture:()=>NI,sensor_while_is_near:()=>DI});var b={};t.r(b),t.d(b,{pins_analog:()=>FI,pins_axis:()=>UI,pins_brightness:()=>BI,pins_builtinimg:()=>XI,pins_button:()=>vI,pins_digital:()=>PI,pins_imglist:()=>yI,pins_interrupt:()=>VI,pins_pwm:()=>YI,pins_radio_datarate:()=>GI,pins_radio_power:()=>kI,pins_serial:()=>bI,pins_tone_notes:()=>wI});var X={};t.r(X),t.d(X,{DS1307_init:()=>IT,RTC_get_time:()=>dT,RTC_set_date:()=>MT,RTC_set_time:()=>hT,TCS34725_Get_RGB:()=>RT,controls_GestureLists:()=>jI,controls_attachGestureInterrupt:()=>qI,controls_attachGestureInterrupt2:()=>zI,sensor_button_get_presses:()=>KI,sensor_button_is_pressed:()=>xI,sensor_button_was_pressed:()=>WI,sensor_calibrate_compass:()=>nT,sensor_compass_heading:()=>oT,sensor_compass_reset:()=>OT,sensor_current_gesture:()=>eT,sensor_current_gesture1:()=>QI,sensor_current_gesture2:()=>JI,sensor_distance_hrsc04:()=>pT,sensor_distance_hrsc04_:()=>lT,sensor_field_strength:()=>uT,sensor_get_acceleration:()=>ZI,sensor_get_gestures:()=>tT,sensor_hrsc04_init:()=>cT,sensor_is_compass_calibrated:()=>sT,sensor_light:()=>mT,sensor_light_level:()=>iT,sensor_magnetic:()=>rT,sensor_rotation:()=>aT,sensor_set_acceleration:()=>$I,sensor_temperature:()=>_T});var y={};t.r(y),t.d(y,{IO_input:()=>YT,IO_print:()=>VT,IO_print_inline:()=>bT,serial_any:()=>DT,serial_begin:()=>vT,serial_print:()=>gT,serial_print_hex:()=>LT,serial_println:()=>AT,serial_readline:()=>fT,serial_readstr:()=>NT,serial_readstr_until:()=>PT,serial_receive_data_event:()=>ST,serial_softserial:()=>FT});var U={};t.r(U),t.d(U,{Panic_with_status_code:()=>BT,base_delay:()=>yT,controls_millis:()=>UT,controls_uname:()=>kT,reset:()=>wT});var B={};t.r(B),t.d(B,{MP3_CONTROL:()=>rd,MP3_EQ_MODE:()=>ld,MP3_INIT:()=>ad,MP3_LOOP_MODE:()=>pd,MP3_PLAY_FOLDER:()=>dd,MP3_PLAY_NUM:()=>Td,MP3_VOL:()=>Id,bit_motor_control:()=>nd,display_rgb:()=>od,display_rgb2:()=>_d,display_rgb_init:()=>sd,display_rgb_show:()=>ud,microbit_music_get_tempo:()=>qT,microbit_music_pitch:()=>WT,microbit_music_pitch_delay:()=>xT,microbit_music_play_built_in:()=>GT,microbit_music_play_built_in_easy:()=>HT,microbit_music_play_list_of_notes:()=>KT,microbit_music_reset:()=>QT,microbit_music_stop:()=>JT,servo_move:()=>id,speech_pronounce_easy:()=>ed,speech_say:()=>ZT,speech_say_easy:()=>$T,speech_sing_easy:()=>td,speech_translate:()=>zT,tone_set_tempo:()=>jT});var w={};t.r(w),t.d(w,{i2c_init:()=>gd,i2c_read:()=>Ad,i2c_write:()=>Ld,microbit_radio_config:()=>md,microbit_radio_off:()=>Od,microbit_radio_on:()=>Md,microbit_radio_receive:()=>Cd,microbit_radio_reset:()=>cd,radio_ons:()=>hd,radio_receive_string:()=>Rd,radio_send_string:()=>Ed,spi_init:()=>Sd,spi_write:()=>Nd});var k={};t.r(k),t.d(k,{display_fill:()=>th,display_image_size:()=>$d,group_lcd_init:()=>qd,group_lcd_power:()=>zd,group_lcd_print:()=>Jd,group_lcd_print2:()=>jd,image_arithmetic:()=>Kd,image_shift:()=>Wd,lp2i_u8g_draw_4strings:()=>Zd,microbit_display_clear:()=>Dd,microbit_display_is_on:()=>wd,microbit_display_on:()=>Bd,microbit_display_scroll:()=>Ud,microbit_display_scroll_string_animation:()=>Qd,microbit_display_set_pixel:()=>Pd,microbit_display_show_animation:()=>yd,microbit_display_show_default_image:()=>Xd,microbit_display_show_image:()=>bd,microbit_image_builtins:()=>kd,microbit_image_copy:()=>Gd,microbit_image_create:()=>xd,microbit_image_invert:()=>Hd,monitor_bright_point:()=>Fd,monitor_get_pixel:()=>fd,monitor_scroll_string:()=>Yd,monitor_scroll_string_with_delay:()=>Vd,monitor_show_image_or_string:()=>vd});var G={};t.r(G),t.d(G,{factory_block:()=>ah,factory_block_return:()=>rh,factory_block_return_with_textarea:()=>lh,factory_block_with_textarea:()=>ph,factory_callMethod_noreturn:()=>_h,factory_callMethod_return:()=>uh,factory_declare:()=>oh,factory_from_import:()=>eh,factory_function_noreturn:()=>nh,factory_function_return:()=>sh,factory_import:()=>ih});var H={};t.r(H),t.d(H,{inout_analog_read:()=>Oh,inout_analog_write:()=>hh,inout_analog_write_set:()=>Mh,inout_digital_read:()=>dh,inout_digital_write:()=>Th,inout_highlow:()=>Ih,sensor_pin_pressed:()=>mh});var x={};t.r(x),t.d(x,{actuator_motor_off:()=>Lh,actuator_motor_on:()=>Ah,actuator_rgb:()=>gh,actuator_rgb_color:()=>Rh,actuator_rgb_off:()=>Ch,base_loop:()=>Eh,controls_repeat_ext:()=>Ph,microbit_image_create:()=>ch,sensor_pin_near:()=>Sh,sensor_while_btn_pressed:()=>Nh,sensor_while_is_gesture:()=>Dh,sensor_while_is_near:()=>fh});var W={};t.r(W),t.d(W,{pins_analog:()=>vh,pins_axis:()=>Bh,pins_brightness:()=>wh,pins_builtinimg:()=>yh,pins_button:()=>Yh,pins_digital:()=>Fh,pins_imglist:()=>Uh,pins_interrupt:()=>bh,pins_pwm:()=>Vh,pins_radio_datarate:()=>Hh,pins_radio_power:()=>Gh,pins_serial:()=>Xh,pins_tone_notes:()=>kh});var K={};t.r(K),t.d(K,{DS1307_init:()=>IM,RTC_get_time:()=>TM,RTC_set_date:()=>hM,RTC_set_time:()=>dM,TCS34725_Get_RGB:()=>cM,controls_GestureLists:()=>Qh,controls_attachGestureInterrupt:()=>Jh,controls_attachGestureInterrupt2:()=>zh,sensor_button_get_presses:()=>Kh,sensor_button_is_pressed:()=>xh,sensor_button_was_pressed:()=>Wh,sensor_calibrate_compass:()=>nM,sensor_compass_heading:()=>oM,sensor_compass_reset:()=>MM,sensor_current_gesture:()=>$h,sensor_current_gesture1:()=>qh,sensor_current_gesture2:()=>jh,sensor_distance_hrsc04:()=>pM,sensor_distance_hrsc04_:()=>lM,sensor_field_strength:()=>uM,sensor_get_acceleration:()=>tM,sensor_get_gestures:()=>Zh,sensor_hrsc04_init:()=>mM,sensor_is_compass_calibrated:()=>sM,sensor_light:()=>OM,sensor_light_level:()=>iM,sensor_magnetic:()=>rM,sensor_rotation:()=>aM,sensor_set_acceleration:()=>eM,sensor_temperature:()=>_M});var Q={};t.r(Q),t.d(Q,{IO_input:()=>PM,IO_print:()=>FM,IO_print_inline:()=>vM,serial_any:()=>AM,serial_begin:()=>fM,serial_print:()=>EM,serial_print_hex:()=>CM,serial_println:()=>RM,serial_readline:()=>SM,serial_readstr:()=>LM,serial_readstr_until:()=>NM,serial_receive_data_event:()=>gM,serial_softserial:()=>DM});var J={};t.r(J),t.d(J,{Panic_with_status_code:()=>WM,base_delay:()=>xM,controls_end_program:()=>QM,controls_millis:()=>KM,controls_uname:()=>qM,reset:()=>JM,system_device_name:()=>GM,system_device_serial_number:()=>HM,system_event_bus_source:()=>wM,system_event_bus_value:()=>kM,system_on_event:()=>yM,system_raise_event:()=>XM,system_reset:()=>VM,system_run_in_background:()=>YM,system_timestamp:()=>UM,system_value:()=>BM,system_wait:()=>bM});const q=Blockly,j=Mixly,z={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(_+=n)):i=_}else i="i";return i}},Z=z; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},mt={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ct={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Et={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ct={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},gt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Et.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ct.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Pt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ft={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},vt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},Yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Ut={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},wt={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},kt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Gt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ht={init:function(){this.setColour(Gt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},xt={init:function(){this.setColour(Gt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(Gt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(Gt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(Gt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(Gt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(Gt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(Gt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Gt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Gt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(Gt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(Gt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(Gt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Gt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Gt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ae=ie,re={init:function(){this.setColour(Gt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},pe={init:function(){this.setColour(Gt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const de={init:function(){this.setColour(le),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},he={init:function(){this.setColour(le),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Oe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},me={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ce={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ee={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Re={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},Ce={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ge={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Le={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Se={init:function(){this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},Ne={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},De={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(le),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},fe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Pe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Fe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ve={init:function(){this.setColour(le),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ye={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(le),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Ve={init:function(){this.setColour(le),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Pi={init:function(){this.setColour(Di),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Fi={init:function(){this.setColour(Di),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},Vi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},bi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Xi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},yi={init:function(){this.setColour(Di),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},wi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Gi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},xi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Wi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Di),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qi={init:function(){this.setColour(Di),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Ji={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},qi={init:function(){this.setColour(Di),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ji={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi=210,$i={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},tn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},en={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},nn={init:function(){this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},un={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},an={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},rn={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},pn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},In={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},dn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Rn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Nn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Yn={};Yn.NAME_TYPE=q.PROCEDURE_CATEGORY_NAME,Yn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ds={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ps={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(Cs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys=160,Vs={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},bs={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},Xs={init:function(){this.setColour(Ys),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},ys={init:function(){this.setColour(Ys),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Us={init:function(){this.setColour(Ys),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},Bs={init:function(){this.setColour(Ys),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ws={init:function(){this.setColour(Ys),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+r()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Yu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},Vu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},bu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},Xu=function(t,e){return["None",e.ORDER_ATOMIC]},yu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},Bu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},wu=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ku=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Gu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},Hu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},xu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Wu=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Ku=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Qu=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ju=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ju=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},zu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Zu=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},$u=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ta=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ea=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ia=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},na=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},sa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},oa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},_a=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ua=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},aa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},ra=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},xa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Wa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},Qa=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},Ja=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},qa=function(t,e){return'"},ja=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},za=function(){return this.getFieldValue("TEXT")+"\n"},Za=function(t){return t.getFieldValue("TEXT")+"\n"},$a=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},tr=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},er=function(){return""},ir=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},nr=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+a.join("")+r.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+r.join("\n")},or.scrubNakedValue=function(t){return t+"\n"},or.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},or.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},or.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,or.COMMENT_WRAP-3),n+=or.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const _r=120;({init:function(){this.setColour(_r),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(_r);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const ur=225,ar={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},rr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},pr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},lr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},Ir={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},Tr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},dr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},hr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},Mr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},Or={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},mr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},cr={init:function(){this.setColour(ur),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},Er={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},Rr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Cr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},gr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Ar={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},Lr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Sr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},Nr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Dr={init:function(){this.setColour(ur),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},fr={init:function(){this.setColour(ur),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Pr={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Fr={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(ur),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},vr={init:function(){this.setColour(ur),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},Yr={init:function(){this.setColour(ur),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},Vr="#3288dd",br={init:function(){this.setColour(Vr),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Xr={init:function(){this.setColour(Vr),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},yr={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Vr),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},Ur={init:function(){this.setColour(Vr),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},Br={init:function(){this.setColour(Vr),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},wr={init:function(){this.setColour(Vr),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},kr={init:function(){this.setColour(Vr),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gr={init:function(){this.setColour(Vr),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hr={init:function(){this.setColour(Vr),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}};q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START;const xr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},Wr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+","+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},Kr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},Qr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},Jr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},qr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},jr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},zr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},Zr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel = "+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},$r=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},tp=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},ep=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET,"+n+")\n"},ip=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},np=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},sp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},op=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},_p=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},up=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},ap=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},rp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+","+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},pp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},lp=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},Ip=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},Tp=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},dp=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},hp=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},Mp=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Op=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},mp=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+",data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cp=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},Ep=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+",client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+",user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+",psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},Rp=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},Cp=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},gp=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+",content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},Ap=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},Lp={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],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"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};Lp["Mithon CC"]=Lp.microbit;const Sp=Lp,Np=100,Dp={init:function(){this.jsonInit({colour:Np,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},fp={init:function(){this.jsonInit({colour:Np,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},Pp={init:function(){this.setColour(Np),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Fp={init:function(){this.setColour(Np),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},vp={init:function(){this.jsonInit({colour:Np,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},Yp={init:function(){this.jsonInit({colour:Np,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},Vp={init:function(){this.jsonInit({colour:Np,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},bp={init:function(){this.setColour(Np),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},Xp={init:function(){this.jsonInit({colour:Np,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},yp={init:function(){this.setColour(Np),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},Up={init:function(){this.setColour(Np),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},Bp={init:function(){this.setColour(Np),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},wp={init:function(){this.setColour(Np),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},kp={init:function(){this.setColour(Np),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Gp={init:function(){this.setColour(Np),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},Hp={init:function(){this.setColour(Np),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},xp={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Np),this.setTooltip(""),this.setHelpUrl("")}},Wp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},Kp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},Qp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Jp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},qp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var jp=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const zp={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(jp),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var Zp=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const $p={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(Zp),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var tl=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const el={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(tl),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},il={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},nl={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},sl={init:function(){this.setColour(Np),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},ol=140,_l={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},ul={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},al={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},rl={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},pl={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},ll={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Il={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},Tl={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},dl={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},hl={init:function(){this.setColour(ol),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ml={init:function(){this.setColour(ol),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},Ol={init:function(){this.setColour(ol),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},ml={init:function(){this.jsonInit({colour:ol,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},cl={init:function(){this.setColour(ol),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},El=180,Rl={init:function(){this.jsonInit({colour:El,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},Cl={init:function(){this.setColour(El),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},gl={init:function(){this.setColour(El),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},Al={init:function(){this.setColour(El),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},Ll={init:function(){this.setColour(El),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Sl={init:function(){this.setColour(El),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Nl={init:function(){this.setColour(El),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Dl={init:function(){this.jsonInit({colour:El,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},fl={init:function(){this.jsonInit({colour:El,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},Pl={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:El,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Fl={init:function(){this.jsonInit({colour:El,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},vl={init:function(){this.setColour(El),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},Yl={init:function(){this.jsonInit({colour:El,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},Vl={init:function(){this.jsonInit({colour:El,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},bl={init:function(){this.jsonInit({colour:El,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Xl={init:function(){this.jsonInit({colour:El,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},yl={init:function(){this.jsonInit({colour:El,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},Ul={init:function(){this.jsonInit({colour:El,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},Bl={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(El),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},wl={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(El),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},kl={init:function(){this.setColour(El),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},Gl={init:function(){this.setColour(El),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},Hl={init:function(){this.setColour(El),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},xl={init:function(){this.setColour(El),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Wl={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(El),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Kl={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(El),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},Ql={init:function(){this.setColour(El),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},Jl="#777777",ql={init:function(){this.setColour(Jl),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jl={init:function(){this.setColour(Jl),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zl={init:function(){this.setColour(Jl),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e0)var u="rgb_show.mixly_rgb_show("+(i-1)+", "+s+", "+o+", "+_+")\n";else u="rgb_show.mixly_rgb_show_all("+s+", "+o+", "+_+")\n";return u},Eh=function(t,e){var i=this.getFieldValue("LED");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_neopixel="import neopixel",e.definitions_.import_rgb_show="import rgb_show",i>0)var n="rgb_show.mixly_rgb_show("+(i-1)+", 0, 0, 0)\n";else n="rgb_show.mixly_rgb_show_all(0, 0, 0)\n";return n},Rh=function(t,e){var i=e.valueToCode(this,"_LED_",e.ORDER_ATOMIC),n=e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC),s=e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC),o=e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_neopixel="import neopixel",e.definitions_.import_rgb_show="import rgb_show","rgb_show.mixly_rgb_show("+i+", "+n+", "+s+", "+o+")\n"},Ch=function(t,e){var i=this.getFieldValue("NUMBER"),n=e.valueToCode(this,"SPEED",e.ORDER_ATOMIC),s=this.getFieldValue("DIRECTION");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_motor_control="import motor_control",0==i)var o="motor_control.motor1("+n+", "+s+")\nmotor_control.motor2("+n+", "+s+")\nmotor_control.motor3("+n+", "+s+")\n";else if(1==i)o="motor_control.motor1("+n+", "+s+")\n";else if(2==i)o="motor_control.motor2("+n+", "+s+")\n";else if(3==i)o="motor_control.motor3("+n+", "+s+")\n";return o},gh=function(t,e){var i=this.getFieldValue("NUMBER");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_motor_control="import motor_control",0==i)var n="motor_control.motor1(0)\nmotor_control.motor2(0)\nmotor_control.motor3(0)\n";else if(1==i)n="motor_control.motor1(0)\n";else if(2==i)n="motor_control.motor2(0)\n";else if(3==i)n="motor_control.motor3(0)\n";return n},Ah=function(t,e){return["pin"+this.getFieldValue("NUMBER")+".read_analog()",e.ORDER_ATOMIC]},Lh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"btn",e.ORDER_ATOMIC);e.setups_["on_"+i]="def on_"+i+"():\n while True:\n if "+i+".was_pressed():\n yield callback_"+i+"()\n else:\n yield\n\nfunc_"+i+" = on_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_"+i+")\n","def callback_"+i+"():\n"+n},Sh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=this.getFieldValue("gesture");e.setups_["on_"+i]="def on_gesture_"+i+'():\n while True:\n if accelerometer.is_gesture("'+i+'"):\n yield callback_gesture_'+i+"()\n else:\n yield\n\nfunc_gesture_"+i+" = on_gesture_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_gesture_"+i+")\n","def callback_gesture_"+i+"():\n"+n},Nh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=this.getFieldValue("near");e.setups_["on_"+i]="def on_near_"+i+"():\n while True:\n if not pin"+i+".read_digital():\n yield callback_near_"+i+"()\n else:\n yield\n\nfunc_near_"+i+" = on_near_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_near_"+i+")\n","def callback_near_"+i+"():\n"+n},Dh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"TIMES",e.ORDER_ATOMIC),n=e.statementToCode(t,"DO");return"for _my_variable in range("+i+"):\n"+(n=e.addLoopTrap(n,t.id)||e.PASS)},fh=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},Ph=fh,Fh=fh,vh=fh,Yh=fh,Vh=fh,bh=fh,Xh=fh,yh=fh,Uh=fh,Bh=fh,wh=fh,kh=fh,Gh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},Hh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},xh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses()",e.ORDER_ATOMIC]},Wh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['"'+this.getFieldValue("gesture")+'"',e.ORDER_ATOMIC]},Kh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",'if accelerometer.is_gesture("'+this.getFieldValue("gesture")+'"):\n'+(e.statementToCode(this,"DO")||e.PASS)},Qh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['accelerometer.is_gesture("'+this.getFieldValue("gesture")+'")',e.ORDER_ATOMIC]},Jh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['accelerometer.was_gesture("'+this.getFieldValue("gesture")+'")',e.ORDER_ATOMIC]},qh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",'if accelerometer.was_gesture("'+this.getFieldValue("gesture")+'"):\n'+(e.statementToCode(this,"DO")||e.PASS)},jh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i,n=this.getFieldValue("GES");return"all"==n?i="accelerometer.get_gestures()":"current"==n&&(i="accelerometer.current_gesture()"),[i,e.ORDER_ATOMIC]},zh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["accelerometer.current_gesture()",e.ORDER_ATOMIC]},Zh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["accelerometer.get_"+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},$h=function(){return"input.setAccelerometerRange("+this.getFieldValue("key")+")\n"},tM=function(t,e){return["input.lightLevel()",e.ORDER_ATOMIC]},eM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.calibrate()\n"},iM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass.is_calibrated()",e.ORDER_ATOMIC]},nM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass.heading()",e.ORDER_ATOMIC]},sM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["temperature()",e.ORDER_ATOMIC]},oM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass."+this.getFieldValue("compass")+"()",e.ORDER_ATOMIC]},_M=function(t,e){return["input.rotation("+this.getFieldValue("key")+")",e.ORDER_ATOMIC]},uM=function(t,e){return["input.magneticForce("+this.getFieldValue("key")+")",e.ORDER_ATOMIC]},aM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="import ultrasonic",["ultrasonic.distance_cm(t_pin=pin"+i+", e_pin=pin"+n+")",e.ORDER_ATOMIC]},rM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.setups_.class_hrsc04_="class HCSR04:\n def __init__(self, tpin=pin"+i+", epin=pin"+n+', spin=pin13):\n self.trigger_pin = tpin\n self.echo_pin = epin\n self.sclk_pin = spin\n\n def distance_mm(self):\n spi.init(baudrate=125000, sclk=self.sclk_pin,\n mosi=self.trigger_pin, miso=self.echo_pin)\n pre = 0\n post = 0\n k = -1\n length = 500\n resp = bytearray(length)\n resp[0] = 0xFF\n spi.write_readinto(resp, resp)\n # find first non zero value\n try:\n i, value = next((ind, v) for ind, v in enumerate(resp) if v)\n except StopIteration:\n i = -1\n if i > 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},pM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},lM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},IM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},TM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},dM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},hM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},MM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},OM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},mM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},cM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},EM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},RM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},CM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},gM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},AM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},LM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},SM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},NM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},DM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},fM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},PM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},FM=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},vM=function(){return"control.reset()\n"},YM=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},VM=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},bM=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},XM=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},yM=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},UM=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},BM=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},wM=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},kM=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},GM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},HM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},xM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},WM=function(){return"while True:\n pass\n"},KM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},QM=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,Vn),q.Python=or,q.generator=or,j.Profile.default={},Object.assign(j.Profile,Sp),Object.assign(j.Profile.default,Sp.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,a,r,p,l,I,T,N,f,P,F,F,v,Y,V,b,X,y,U),Object.assign(q.Python.forBlock,d,h,M,O,m,c,E,R,C,g,A,L,S,D,B,w,k,k,G,H,x,W,K,Q,J)})(); \ No newline at end of file +class ${constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_if_else");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(q.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},mt={init:function(){this.setColour(It),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},ct={init:function(){this.setColour(It),this.appendValueInput("LIST").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(q.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Et={init:function(){this.setColour(It),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},Rt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var o=t.newBlock("controls_finally");o.initSvg(),i.connect(o.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],o=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,o=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,o)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),o=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(o.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(q.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Ct={init:function(){this.setColour(It);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},gt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},At={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new q.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return q.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Et.OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],Ct.OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Lt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},St={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Nt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(q.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},Dt={init:function(){this.setColour(It),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},ft={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},Pt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(q.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Ft={init:function(){this.jsonInit({message0:q.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:It,tooltip:q.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:q.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},vt={init:function(){this.setColour(It),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_STAT),this.setOutput(!0)}},Yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Vt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},bt={init:function(){this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT+q.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(q.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new q.FieldDropdown([[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(It),this.setTooltip("do-while loop"),this.setHelpUrl("")}},Xt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},yt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Ut={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},Bt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET+q.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_GET_UNIQUE_IDEN)}},wt={init:function(){this.setColour(It),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(q.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},kt={init:function(){this.setColour(It),this.appendDummyInput().appendField(q.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},Gt=230;q.FieldTextInput.math_number_validator=function(t){return String(t)},q.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const Ht={init:function(){this.setColour(Gt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},xt={init:function(){this.setColour(Gt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},Wt={init:function(){this.setColour(Gt);this.appendDummyInput("").appendField(q.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new q.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:q.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},Kt={init:function(){this.setColour(Gt),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Qt={init:function(){this.setColour(Gt),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:q.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:q.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:q.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:q.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:q.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:q.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},Jt={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new q.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},qt={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:q.Msg.MATH_TRIG_TOOLTIP_SIN,COS:q.Msg.MATH_TRIG_TOOLTIP_COS,TAN:q.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:q.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:q.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:q.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:q.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},jt={init:function(){var t=[[q.Msg.MATH_BIN,"bin"],[q.Msg.MATH_OCT,"oct"],[q.Msg.MATH_HEX,"hex"]];this.setColour(Gt),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new q.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:q.Msg.MATH_DEC_TOOLTIP_BIN,oct:q.Msg.MATH_DEC_TOOLTIP_OCT,hex:q.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},zt={init:function(){var t=[[q.Msg.LANG_MATH_TO_ROUND,"round"],[q.Msg.LANG_MATH_TO_CEIL,"ceil"],[q.Msg.LANG_MATH_TO_FLOOR,"floor"],[q.Msg.MATH_ABS,"fabs"],[q.Msg.MATH_SQRT,"sqrt"]];this.setColour(Gt),this.appendValueInput("A").setCheck(Number).appendField(new q.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:q.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:q.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:q.Msg.MATH_SINGLE_TOOLTIP_SQ,round:q.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:q.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:q.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},Zt={init:function(){var t=[[q.Msg.MIXLY_MAX,"max"],[q.Msg.MIXLY_MIN,"min"]];this.setColour(Gt),this.appendValueInput("A").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:q.Msg.MIXLY_TOOLTIP_MATH_MAX,min:q.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},$t={init:function(){var t=[[q.Msg.MATH_TWO,"two"],[q.Msg.MATH_EIGHT,"eight"],[q.Msg.MATH_TEN,"ten"],[q.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(Gt),this.appendDummyInput("").appendField(q.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new q.FieldDropdown(t),"OP").appendField(q.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.MATH_ZHW).appendField(new q.FieldDropdown(t),"OP2").appendField(q.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:q.Msg.MATH_Before_two,eight:q.Msg.MATH_Before_eight,ten:q.Msg.MATH_Before_ten,sixteen:q.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:q.Msg.MATH_Behind_two,eight:q.Msg.MATH_Behind_eight,ten:q.Msg.MATH_Behind_ten,sixteen:q.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},te={init:function(){var t=[[q.Msg.LANG_MATH_INT,"int"],[q.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(Gt),this.setOutput(!0,Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RANDOM).appendField(new q.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(q.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:q.Msg.LANG_MATH_INT,float:q.Msg.LANG_MATH_FLOAT_RANDOM};return q.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},ee={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(q.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_CONSTRAIN_TOOLTIP)}},ie={init:function(){this.setColour(Gt),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(q.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(q.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_MAP)}},ne={init:function(){this.setColour(Gt),this.appendDummyInput().appendField(new q.FieldTextInput("0",q.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(q.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(Gt),this.appendValueInput("NUM").setCheck(Number).appendField(q.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},oe={init:function(){this.setColour(Gt),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MATH_ROUND).appendField(q.Msg.TEXT_KEEP),this.appendDummyInput().appendField(q.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(q.Msg.MATH_ROUND_NEW_TOOLTIP)}},_e={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"],[q.Msg.MIXLY_TO_BITES,"b"],[q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_INT,"bti"]];this.setColour(Gt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:q.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:q.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ue={init:function(){var t=[[q.Msg.MIXLY_TO_INT,"int"],[q.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(Gt),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:q.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:q.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ae=ie,re={init:function(){this.setColour(Gt),this.appendValueInput("VAR").appendField(q.Msg.LANG_MATH_BYTE+q.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},pe={init:function(){this.setColour(Gt),this.itemCount_=1,this.setMutator(new q.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(q.Msg.MIXLY_PRODUCT+q.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(q.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(q.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const de={init:function(){this.setColour(le),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new q.FieldTextInput("",q.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(q.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new q.FieldImage(e,7,12,'"')}},he={init:function(){this.setColour(le),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(q.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Me={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(Number).appendField(q.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Oe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},me={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ce={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Ee={init:function(){this.WHERE_OPTIONS=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.TEXT_GET_INDEX_RANDOM+1+q.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(q.Msg.LISTS_GET_INDEX_GET,"MODE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(q.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=q.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+q.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",q.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:q.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:q.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:q.Msg.TEXT_GET_INDEX_RANDOM};return q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+q.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==q.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new q.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),q.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},Re={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(q.Msg.PROCEDURES_DEFRETURN_RETURN+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.LISTS_GET_INDEX_FROM_START+"n"+q.Msg.TEXT_CHARAT2)}},Ce={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(q.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(q.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ge={init:function(){this.WHERE_OPTIONS_1=[[q.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[q.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[q.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[q.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==q.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),q.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(q.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new q.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ae={init:function(){this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(q.Msg.LISTS_GET_INDEX_GET+" "+q.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(q.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(q.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(q.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Le={init:function(){var t=[[q.Msg.MIXLY_EQUALS,"==="],[q.Msg.MIXLY_STARTSWITH,"startswith"],[q.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new q.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Se={init:function(){this.setColour(le),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_COMPARETO_HELP)}},Ne={init:function(){var t=[[q.Msg.TEXT_UPPER,"upper"],[q.Msg.TEXT_TITLE,"title"],[q.Msg.TEXT_CAPITALIZE,"capitalize"],[q.Msg.TEXT_SWAPCASE,"swapcase"],[q.Msg.TEXT_LOWER,"lower"]];this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new q.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:q.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:q.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:q.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:q.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:q.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},De={init:function(){var t=[[q.Msg.TEXT_LJUST,"ljust"],[q.Msg.TEXT_CENTER,"center"],[q.Msg.TEXT_RJUST,"rjust"]];this.setColour(le),this.appendValueInput("VAR").appendField(new q.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(q.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(q.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},fe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(q.Msg.MIXLY_MID+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(q.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},Pe={init:function(){this.setColour(le),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},Fe={init:function(){this.setColour(le),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(q.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(q.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},ve={init:function(){this.setColour(le),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(q.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(q.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Ye={init:function(){var t=[[q.Msg.TEXT_TRIM_BOTH,"strip"],[q.Msg.TEXT_TRIM_LEFT,"lstrip"],[q.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(le),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(q.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:q.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:q.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:q.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Ve={init:function(){this.setColour(le),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new q.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new q.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Pi={init:function(){this.setColour(Di),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(q.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Fi={init:function(){this.setColour(Di),this.appendDummyInput().appendField(q.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},vi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_KEYS),this.setTooltip(q.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Yi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_TOOLTIP)}},Vi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(q.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},bi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(q.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},Xi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(q.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_DELETE_TOOLTIP)}},yi={init:function(){this.setColour(Di),this.appendValueInput("DICT2").setCheck("Dict").appendField(q.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(q.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(q.Msg.MIXLY_MID),this.setTooltip(q.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ui={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_CLEAR),this.setTooltip(q.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Bi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_ITEMS),this.setTooltip(q.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},wi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_VALUES),this.setTooltip(q.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},ki={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_LENGTH),this.setTooltip(q.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},Gi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.DICT_DELDICT),this.setTooltip(q.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hi={init:function(){this.MODE=[[q.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[q.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(q.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(q.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=q.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=q.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==q.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new q.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},xi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(q.Msg.DICTS_ADD_VALUE),this.setTooltip(q.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},Wi={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(q.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(q.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.DICTS_SETDEFAULT_TOOLTIP)}},Ki={init:function(){this.setColour(Di),this.appendDummyInput("").appendField(new q.FieldLabel(q.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new q.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(q.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Qi={init:function(){this.setColour(Di),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},Ji={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},qi={init:function(){this.setColour(Di),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(q.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ji={init:function(){this.setColour(Di),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},zi={init:function(){this.setColour(Di),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(q.Msg.MIXLY_TO_JSON),this.setTooltip(q.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},Zi=210,$i={init:function(){var t=q.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:q.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:q.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:q.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:q.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:q.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:q.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},tn={init:function(){var t=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=q.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new q.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},en={init:function(){var t=[[q.Msg.LOGIC_OPERATION_AND,"AND"],[q.Msg.LOGIC_OPERATION_OR,"OR"],[q.Msg.LOGIC_OPERATION_NOR,"NOR"],[q.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:q.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:q.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:q.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:q.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},nn={init:function(){this.setColour(Zi),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(q.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(q.Msg.LOGIC_NEGATE_TOOLTIP)}},sn={init:function(){var t=[[q.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[q.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(Zi),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new q.FieldDropdown(t),"BOOL"),this.setTooltip(q.Msg.LOGIC_BOOLEAN_TOOLTIP)}},on={init:function(){this.setColour(Zi),this.setOutput(!0),this.appendDummyInput().appendField(q.Msg.LOGIC_NULL),this.setTooltip(q.Msg.LOGIC_NULL_TOOLTIP)}},_n={init:function(){this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(q.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(q.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},un={init:function(){var t=[[q.Msg.TEXT_APPEND_TO,"in"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new q.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(q.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.IN)}},an={init:function(){var t=[[q.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[q.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(Zi),this.appendValueInput("A"),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},rn={init:function(){this.setColour(Zi),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},pn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(q.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},In={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},Tn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXPY_TEXT_ENCODE).appendField(new q.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_USE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,o=q.Msg.MIXLY_BELONG,_=q.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:q.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:q.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:q.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+o+n+s+_}))}},dn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Mn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:q.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:q.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},On={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MICROBIT_PYTHON_TYPE)}},mn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.HTML_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},cn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},En={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},Rn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const Cn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},gn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+q.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},An={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+q.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:q.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Sn={init:function(){this.setColour(0),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Nn={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+q.Msg.MIXLY_ESP32_SET+{mkdir:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(q.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(q.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.HTML_FILE,"isfile"],[q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+q.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:q.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Fn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(q.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+q.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(q.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},vn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(q.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Yn={};Yn.NAME_TYPE=q.PROCEDURE_CATEGORY_NAME,Yn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Ps={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_FORM_CONTENT).appendField(new q.FieldDropdown([[q.Msg.HTML_TEXT,"text"],[q.Msg.HTML_EMAIL,"email"],[q.Msg.HTML_NUMBER,"number"],[q.Msg.HTML_PASSWORD,"password"],[q.Msg.HTML_CHECKBOX,"checkbox"],[q.Msg.HTML_RADIOBUTTON,"radiobutton"],[q.Msg.HTML_BUTTON,"button"],[q.Msg.HTML_COLOUR,"colour"],[q.Msg.HTML_DATE,"date"],[q.Msg.HTML_LOCALTIME,"local time"],[q.Msg.HTML_FILE,"file"],[q.Msg.HTML_HIDDEN,"hidden"],[q.Msg.HTML_IMAGE,"image"],[q.Msg.HTML_MONTH,"month"],[q.Msg.HTML_RANGE,"range"],[q.Msg.HTML_RESET,"reset"],[q.Msg.HTML_SEARCH,"search"],[q.Msg.HTML_SUBMIT,"submit"],[q.Msg.HTML_TELEPHONENUMBER,"telephone number"],[q.Msg.HTML_TIME,"time"],[q.Msg.HTML_URL,"url"],[q.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(q.Msg.HTML_NAME).appendField(new q.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(q.Msg.HTML_VALUE).appendField(new q.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(q.Msg.MIXLY_AIP_ATTR).setAlign(q.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Fs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},vs={init:function(){this.setColour(gs),this.appendDummyInput().appendField(new q.FieldTextInput("property"),"KEY").appendField(":").appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ys={init:function(){this.setColour(gs),this.appendDummyInput().appendField(q.Msg.HTML_TEXT).appendField(new q.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Vs=160,bs={init:function(){this.setColour(Vs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new q.FieldTable(""),"TEXT")}},Xs={init:function(){this.setColour(Vs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT")}},ys={init:function(){this.setColour(Vs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new q.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Us={init:function(){this.setColour(Vs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Bs={init:function(){this.setColour(Vs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new q.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},ws={init:function(){this.setColour(Vs),this.appendValueInput("VALUE").appendField(q.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},ks={init:function(){this.setColour(Vs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(q.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=q.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+r()+"("+t+", "+e+", "+i+")"},q.isNumber(n)&&q.isNumber(s)&&q.isNumber(o))n=parseFloat(n),s=parseFloat(s),o=Math.abs(parseFloat(o)),0==n%1&&0==s%1&&0==o%1?(n<=s?(s++,t=0==n&&1==o?s:n+", "+s,1!=o&&(t+=", "+o)):t=n+", "+--s+", -"+o,t="range("+t+")"):(t=n",GTE:">="};const Vu=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",o=e.valueToCode(this,"B",n)||"False";if("AND"==i)var _=s+" and "+o;else if("OR"==i)_=s+" or "+o;else if("NOR"==i)_="not("+s+"^"+o+")";else _=s+"^"+o;return[_,n]},bu=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},Xu=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},yu=function(t,e){return["None",e.ORDER_ATOMIC]},Uu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Bu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},wu=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ku=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},Gu=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},Hu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},xu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},Wu=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},Ku=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},Qu=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},Ju=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},qu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ju=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},zu=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},Zu=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},$u=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},ta=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},ea=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ia=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},na=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},sa=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},oa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},_a=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ua=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},aa=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ra=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},pa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},la=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),q.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var o=[],_=0;_\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},Ka=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},Qa=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},Ja=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},qa=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},ja=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},za=function(t,e){return'"},Za=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},$a=function(){return this.getFieldValue("TEXT")+"\n"},tr=function(t){return t.getFieldValue("TEXT")+"\n"},er=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},ir=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},nr=function(){return""},sr=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},or=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),o=0;o0?e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+"while True:\n"+a.join("")+r.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+_.join("\n")+u.join("")+t+r.join("\n")},ur.scrubNakedValue=function(t){return t+"\n"},ur.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},ur.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},ur.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(o=t.getCommentText())&&(o=q.utils.string.wrap(o,ur.COMMENT_WRAP-3),n+=ur.prefixLines(o+"\n","# "));for(var s=0;s0?"int("+u+" + "+s+")":s<0?"int("+u+" - "+-s+")":"int("+u+")",n&&(u="-"+u)),u};const ar=120;({init:function(){this.setColour(ar),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(q.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT).appendField(new q.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(q.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:q.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}}).OPERATORS=[[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[q.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]];({init:function(){this.setColour(ar);var t=new q.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:q.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}}).OPERATORS=[[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[q.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const rr=225,pr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(q.Msg.MIXLY_NETWORK_MODE).appendField(new q.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},lr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[q.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=q.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:q.Msg.MIXLY_NETWORK_WIFI_OPEN,False:q.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},Ir={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},Tr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return q.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:q.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},dr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},hr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_NETWORK_WIFI_CONNECT+q.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},Mr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[q.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:q.Msg.MIXLY_ESP32_NETWORK_IP,1:q.Msg.MIXLY_ESP32_NETWORK_MASK,2:q.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},Or={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},mr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[q.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},cr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(q.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(q.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},Er={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(q.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Rr={init:function(){this.setColour(rr),this.appendValueInput("VAR").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new q.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return q.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},Cr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},gr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},Ar={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},Lr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},Sr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},Nr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},Dr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},fr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},Pr={init:function(){this.setColour(rr),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},Fr={init:function(){this.setColour(rr),this.appendValueInput("DOMAIN").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS_GET).appendField(new q.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){q.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},vr={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(rr),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:q.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:q.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:q.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},Yr={init:function(){this.appendValueInput("VAR").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(rr),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(q.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:q.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:q.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},Vr={init:function(){this.setColour(rr),this.appendDummyInput("").appendField(q.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(q.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},br={init:function(){this.setColour(rr),this.appendDummyInput("").appendField(new q.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},Xr="#3288dd",yr={init:function(){this.setColour(Xr),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS).appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Ur={init:function(){this.setColour(Xr),this.appendValueInput("URL").appendField(q.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(q.Msg.blockpy_CONDUCT).appendField(new q.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(q.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(q.Msg.blockpy_REQUESTS+q.Msg.OLED_STRING),this.appendDummyInput("").appendField(q.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},Br={init:function(){this.appendValueInput("VAL");var t=[[q.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[q.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[q.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[q.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[q.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(Xr),this.appendDummyInput("").appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(new q.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},wr={init:function(){this.setColour(Xr),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(q.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(q.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},kr={init:function(){this.setColour(Xr),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(q.Msg.MIXLY_EMQX_SERVER).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(q.Msg.MIXLY_EMQX_PORT).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(q.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(q.Msg.MIXLY_WIFI_USERNAME).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(q.Msg.MIXLY_IOT_PASSWORD).setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Gr={init:function(){this.setColour(Xr),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(q.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},Hr={init:function(){this.setColour(Xr),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_SUBSCRIBE+q.Msg.MIXLY_MICROBIT_MSG).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(q.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},xr={init:function(){this.setColour(Xr),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(q.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(q.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(q.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Wr={init:function(){this.setColour(Xr),this.appendDummyInput().appendField("mqtt"+q.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}};q.Msg.PS2_TRIANGLE,q.Msg.PS2_CIRCLE,q.Msg.PS2_CROSS,q.Msg.PS2_SQUARE,q.Msg.PS2_L1,q.Msg.PS2_L2,q.Msg.PS2_R1,q.Msg.PS2_R2,q.Msg.PS2_UP,q.Msg.PS2_RIGHT,q.Msg.PS2_DOWN,q.Msg.PS2_LEFT,q.Msg.PS2_SELECT,q.Msg.PS2_START;const Kr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+" = network.WLAN(network."+this.getFieldValue("mode")+"_IF);\n"},Qr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect("+e.valueToCode(this,"id",e.ORDER_ATOMIC)+","+e.valueToCode(this,"password",e.ORDER_ATOMIC)+")\n"},Jr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".isconnected()",e.ORDER_ATOMIC]},qr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".ifconfig()["+this.getFieldValue("mode")+"]",e.ORDER_ATOMIC]},jr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".disconnect()\n"},zr=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active("+this.getFieldValue("op")+")\n"},Zr=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".active()",e.ORDER_ATOMIC]},$r=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config('"+this.getFieldValue("op")+"')",e.ORDER_ATOMIC]},tp=function(t,e){return e.definitions_.import_network="import network",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".config(essid = "+e.valueToCode(this,"essid",e.ORDER_ATOMIC)+", channel = "+e.valueToCode(this,"channel",e.ORDER_ATOMIC)+")\n"},ep=function(t,e){return e.definitions_.import_network="import network",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".scan()",e.ORDER_ATOMIC]},ip=function(t,e){e.definitions_["import_server_*"]="from server import *";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);return"if not "+i+".isconnected():\n connectWifi(SSID, PASSWORD)\nip="+i+".ifconfig()[0]\nprint(ip)\ntime.sleep(1)\nDATA=listenData()\n"},np=function(t,e){e.definitions_.import_network="import network",e.definitions_.import_socket="import socket";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=this.getFieldValue("mode");return"UDP"==n?n="socket.SOCK_DGRAM":"TCP"==n&&(n="socket.SOCK_STREAM"),i+" = socket.socket(socket.AF_INET,"+n+")\n"},sp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".bind("+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},op=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".connect(socket.getaddrinfo"+e.valueToCode(this,"address",e.ORDER_ATOMIC)+"[0][-1])\n"},_p=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".listen("+e.valueToCode(this,"queue",e.ORDER_ATOMIC)+")\n"},up=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".accept()",e.ORDER_ASSIGNMENT]},ap=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recv("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},rp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".send("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+")\n"},pp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",[e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".recvfrom("+e.valueToCode(this,"size",e.ORDER_ATOMIC)+")",e.ORDER_ASSIGNMENT]},lp=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".sendto("+e.valueToCode(this,"content",e.ORDER_ATOMIC)+","+e.valueToCode(this,"address",e.ORDER_ATOMIC)+")\n"},Ip=function(t,e){return e.definitions_.import_network="import network",e.definitions_.import_socket="import socket",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".close()\n"},Tp=function(t,e){return e.definitions_.import_requests="import requests",e.variableDB_.getName(this.getFieldValue("VAR"),q.Variables.NAME_TYPE)+"= requests.get("+e.valueToCode(this,"DOMAIN",e.ORDER_ATOMIC)+")\n"},dp=function(t,e){return e.definitions_.import_requests="import requests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},hp=function(t,e){return e.definitions_.import_requests="import requests","requests."+this.getFieldValue("DIR")+"("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+")\n"},Mp=function(t,e){return e.definitions_.import_ntptime="import ntptime",["ntptime.time(host="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Op=function(t,e){return["'"+this.getFieldValue("op")+"'",e.ORDER_ATOMIC]},mp=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},cp=function(t,e){return e.definitions_.import_urequests="import urequests",[(e.valueToCode(this,"VAL",e.ORDER_ASSIGNMENT)||"0")+"."+this.getFieldValue("ATTR"),e.ORDER_ATOMIC]},Ep=function(t,e){return e.definitions_.import_urequests="import urequests",["urequests."+this.getFieldValue("TYPE")+"("+e.valueToCode(this,"URL",e.ORDER_ATOMIC)+",data="+e.valueToCode(this,"data",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Rp=function(t,e){return e.definitions_.import_educore_wifi="from educore import wifi","wifi.connect(ssid="+e.valueToCode(this,"WIFINAME",e.ORDER_ATOMIC)+", psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+", timeout="+e.valueToCode(this,"TIMEOUT",e.ORDER_ATOMIC)+")\n"},Cp=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.connect(server="+e.valueToCode(this,"SERVER",e.ORDER_ATOMIC)+", port="+e.valueToCode(this,"PORT",e.ORDER_ATOMIC)+",client_id="+e.valueToCode(this,"CLIENT_ID",e.ORDER_ATOMIC)+",user="+e.valueToCode(this,"USERNAME",e.ORDER_ATOMIC)+",psd="+e.valueToCode(this,"PASSWORD",e.ORDER_ATOMIC)+")\n"},gp=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC);return["mqttclient."+e.valueToCode(this,"MESSAGE",e.ORDER_ATOMIC)+"("+i+")",e.ORDER_ATOMIC]},Ap=function(t,e){var i=e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC),n=e.valueToCode(this,"METHOD",e.ORDER_ATOMIC);return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqttclient.received(topic="+i+", callback="+n+")\n"},Lp=function(t,e){return e.definitions_.import_educore_mqttclient="from educore import mqttclient","mqtt_client.publish(topic="+e.valueToCode(this,"TOPIC",e.ORDER_ATOMIC)+",content="+e.valueToCode(this,"MSG",e.ORDER_ATOMIC)+")\n"},Sp=function(t,e){e.definitions_.import_educore_mqttclient="from educore import mqttclient";return["mqtt_client.connescted()",e.ORDER_ATOMIC]},Np={microbit:{description:"microbit_python",digital:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],pwm:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P5","5"],["P6","6"],["P7","7"],["P8","8"],["P9","9"],["P10","10"],["P11","11"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"],["P19","19"],["P20","20"]],analog:[["P0","0"],["P1","1"],["P2","2"],["P3","3"],["P4","4"],["P10","10"]],interrupt:[["P0","0"],["P1","1"],["P2","2"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],builtinimg:[["HEART","Image.HEART"],["HEART_SMALL","Image.HEART_SMALL"],["HAPPY","Image.HAPPY"],["SMILE","Image.SMILE"],["SAD","Image.SAD"],["CONFUSED","Image.CONFUSED"],["ANGRY","Image.ANGRY"],["ASLEEP","Image.ASLEEP"],["SURPRISED","Image.SURPRISED"],["SILLY","Image.SILLY"],["FABULOUS","Image.FABULOUS"],["MEH","Image.MEH"],["YES","Image.YES"],["NO","Image.NO"],["CLOCK12","Image.CLOCK12"],["CLOCK11","Image.CLOCK11"],["CLOCK10","Image.CLOCK10"],["CLOCK9","Image.CLOCK9"],["CLOCK8","Image.CLOCK8"],["CLOCK7","Image.CLOCK7"],["CLOCK6","Image.CLOCK6"],["CLOCK5","Image.CLOCK5"],["CLOCK4","Image.CLOCK4"],["CLOCK3","Image.CLOCK3"],["CLOCK2","Image.CLOCK2"],["CLOCK1","Image.CLOCK1"],["ARROW_N","Image.ARROW_N"],["ARROW_NE","Image.ARROW_NE"],["ARROW_E","Image.ARROW_E"],["ARROW_SE","Image.ARROW_SE"],["ARROW_S","Image.ARROW_S"],["ARROW_SW","Image.ARROW_SW"],["ARROW_W","Image.ARROW_W"],["ARROW_NW","Image.ARROW_NW"],["TRIANGLE","Image.TRIANGLE"],["TRIANGLE_LEFT","Image.TRIANGLE_LEFT"],["CHESSBOARD","Image.CHESSBOARD"],["DIAMOND","Image.DIAMOND"],["DIAMOND_SMALL","Image.DIAMOND_SMALL"],["SQUARE","Image.SQUARE"],["SQUARE_SMALL","Image.SQUARE_SMALL"],["RABBIT","Image.RABBIT"],["COW","Image.COW"],["MUSIC_CROTCHET","Image.MUSIC_CROTCHET"],["MUSIC_QUAVER","Image.MUSIC_QUAVER"],["MUSIC_QUAVERS","Image.MUSIC_QUAVERS"],["PITCHFORK","Image.PITCHFORK"],["XMAS","Image.XMAS"],["PACMAN","Image.PACMAN"],["TARGET","Image.TARGET"],["TSHIRT","Image.TSHIRT"],["ROLLERSKATE","Image.ROLLERSKATE"],["DUCK","Image.DUCK"],["HOUSE","Image.HOUSE"],["TORTOISE","Image.TORTOISE"],["BUTTERFLY","Image.BUTTERFLY"],["STICKFIGURE","Image.STICKFIGURE"],["GHOST","Image.GHOST"],["SWORD","Image.SWORD"],["GIRAFFE","Image.GIRAFFE"],["SKULL","Image.SKULL"],["UMBRELLA","Image.UMBRELLA"],["SNAKE","Image.SNAKE"],["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],imglist:[["ALL_CLOCKS","Image.ALL_CLOCKS"],["ALL_ARROWS","Image.ALL_ARROWS"]],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"]],serial_pin:[["P0","0"],["P1","1"],["P2","2"],["P8","8"],["P12","12"],["P13","13"],["P14","14"],["P15","15"],["P16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]]}};Np["Mithon CC"]=Np.microbit;const Dp=Np,fp=100,Pp={init:function(){this.jsonInit({colour:fp,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_built_in_melody1)}},Fp={init:function(){this.jsonInit({colour:fp,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#built-in-melodies",tooltip:"Play one of the built-in melodies. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_built_in_melody_easy,args0:[{name:"melody",options:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],type:"field_dropdown"},{type:"input_value",name:"PIN"},{type:"input_dummy"}]})}},vp={init:function(){this.setColour(fp),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.appendValueInput("duration").setCheck(Number).appendField(q.Msg.MIXLY_DURATION),this.appendDummyInput("").appendField(q.Msg.MIXLY_MILLIS).appendField(q.Msg.MIXLY_MICROBIT_WAIT),this.appendDummyInput("").appendField(new q.FieldCheckbox(!0),"wait"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Yp={init:function(){this.setColour(fp),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_TONE).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Vp={init:function(){this.jsonInit({colour:fp,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"}]}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Play_notes1)}},bp={init:function(){this.jsonInit({colour:fp,nextStatement:null,previousStatement:null,inputsInline:!0,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#musical-notation",tooltip:"Play a list of notes expressed in the special music language. Indicate if you need to wait before continuing or continuously loop the melody.",message0:q.Msg.MIXLY_MICROBIT_Play_notes,args0:[{check:"List",type:"input_value",name:"notes"},{type:"input_value",name:"PIN"},{type:"input_dummy"},{type:"input_dummy"},{type:"input_dummy"}]})}},Xp={init:function(){this.jsonInit({colour:fp,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.reset",message0:q.Msg.MIXLY_MICROBIT_Reset_music}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Reset_music)}},yp={init:function(){this.setColour(fp),this.appendValueInput("PIN").appendField(q.Msg.MIXLY_NOTONE).appendField(q.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_NOTONE)}},Up={init:function(){this.jsonInit({colour:fp,output:"Array",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/music.html#music.get_tempo",message0:q.Msg.MIXLY_MICROBIT_Get_current_tempo}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Get_current_tempo)}},Bp={init:function(){this.setColour(fp),this.appendValueInput("TICKS").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(q.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SET_TEMPO1)}},wp={init:function(){this.setColour(fp),this.appendValueInput("VAR").setCheck(String).appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,"say"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,"sing"],[q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE,"pronounce"]]),"MODE"),this.appendValueInput("pitch").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_pitch),this.appendValueInput("speed").setCheck(Number).appendField(q.Msg.MIXLY_SPEED),this.appendValueInput("mouth").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_mouth),this.appendValueInput("throat").setCheck(Number).appendField(q.Msg.MICROBIT_SPEECH_throat),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH,n=q.Msg.MIXLY_MICROBIT_TYPE_STRING;return i+{say:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY,sing:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING,pronounce:q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE}[e]+n}))}},kp={init:function(){this.setColour(fp),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SAY),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Gp={init:function(){this.setColour(fp),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_SING),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Hp={init:function(){this.setColour(fp),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_PY_ACTUATOR_SPEECH_PRENOUNCE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xp={init:function(){this.setColour(fp),this.appendValueInput("VAR").setCheck(String).appendField(q.Msg.MICROBIT_SPEECH_translation),this.setOutput(!0,String),this.setTooltip(q.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+q.Msg.MIXLY_MICROBIT_TYPE_STRING+q.Msg.MICROBIT_SPEECH_translation)}},Wp={init:function(){this.setColour(fp),this.appendValueInput("PIN",Number).appendField(q.Msg.MIXLY_SERVO).appendField(q.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_TOOLTIP_BLOCKGROUP_SERVO_MOVE)}},Kp={init:function(){this.appendValueInput("speed").setCheck(null).appendField(q.Msg.MIXLY_MOTOR).appendField(new q.FieldDropdown([["M1","1"],["M2","2"],["M3","3"],["M4","4"]]),"Motor").appendField(q.Msg.MIXLY_SPEED),this.appendDummyInput().appendField(new q.FieldDropdown([["Forward","1*"],["Reverse","-1*"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(fp),this.setTooltip(""),this.setHelpUrl("")}},Qp={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_RGB_PIN_COUNT)}},Jp={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_RGB_NUM_R_G_B)}},qp={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_RGB_NUM),this.appendDummyInput("").setAlign(q.inputs.Align.RIGHT).appendField(new q.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},jp={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.MIXLY_RGB),this.appendDummyInput().appendField(q.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(q.Msg.MIXLY_ESP32_MUSIC_WRI)}},zp={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.MIXLY_SETUP+" "+q.Msg.QJ00X_MP3),this.appendValueInput("RX").setAlign(q.inputs.Align.RIGHT).appendField("RX#"),this.appendValueInput("TX").setAlign(q.inputs.Align.RIGHT).appendField("TX#"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var Zp=[[q.Msg.MIXLY_MP3_PLAY,"play"],[q.Msg.MIXLY_MP3_PAUSE,"pause"],[q.Msg.MIXLY_MP3_NEXT,"next_track"],[q.Msg.MIXLY_MP3_PREV,"prev_track"],[q.Msg.MIXLY_MP3_VOL_UP,"inc_vol"],[q.Msg.MIXLY_MP3_VOL_DOWN,"dec_vol"]];const $p={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(Zp),"CONTROL_TYPE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var tl=[[q.Msg.MIXLY_MP3_LOOP_ALL,"0"],[q.Msg.MIXLY_MP3_LOOP_FOLDER,"1"],[q.Msg.MIXLY_MP3_LOOP_ONE,"2"],[q.Msg.MIXLY_MP3_LOOP_RAM,"3"]];const el={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_LOOP_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(tl),"LOOP_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}};var il=[[q.Msg.MIXLY_MP3_EQ_NORMAL,"0"],[q.Msg.MIXLY_MP3_EQ_POP,"1"],[q.Msg.MIXLY_MP3_EQ_ROCK,"2"],[q.Msg.MIXLY_MP3_EQ_JAZZ,"3"],[q.Msg.MIXLY_MP3_EQ_CLASSIC,"4"],[q.Msg.MIXLY_MP3_EQ_BASS,"5"]];const nl={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_EQ_MODE).appendField(q.Msg.MIXLY_STAT).appendField(new q.FieldDropdown(il),"EQ_MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},sl={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendDummyInput("").appendField(q.Msg.MIXLY_MP3_VOL),this.appendValueInput("vol",Number).appendField(q.Msg.MIXLY_STAT).setCheck(Number),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},ol={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},_l={init:function(){this.setColour(fp),this.appendDummyInput("").appendField(q.Msg.QJ00X_MP3),this.appendValueInput("FOLDER",Number).appendField(q.Msg.DFPLAYER_MINI_FOLDER).setCheck(Number),this.appendValueInput("NUM",Number).appendField(q.Msg.MIXLY_MP3_PLAY_NUM).setCheck(Number),this.appendDummyInput("").appendField("首"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(),this.setHelpUrl()}},ul=140,al={init:function(){this.setColour(225),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"on"],[q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"off"],[q.Msg.HTML_RESET,"reset"]]),"type").appendField(q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("type"),i=q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_WIFI;return{on:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,off:q.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,reset:q.Blockly.Msg.HTML_RESET}[e]+i}))}},rl={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.on",tooltip:"Turn on the radio. This needs to be explicitly called since the radio draws power and takes up memory that you may otherwise need.",message0:q.Msg.MIXLY_MICROBIT_Switch_on_radio})}},pl={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.off",tooltip:"Turn off the radio, thus saving power and memory.",message0:q.Msg.MIXLY_MICROBIT_Switch_off_radio})}},ll={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.config",tooltip:q.Msg.MIXLY_MICROBIT_Configure_radio1,message0:q.Msg.MIXLY_MICROBIT_Configure_radio,args0:[{min:4,value:32,type:"input_value",max:251,name:"length"},{type:"input_dummy"},{min:1,value:3,type:"input_value",max:32,name:"queue"},{type:"input_dummy"},{min:0,value:7,type:"input_value",max:100,name:"channel"},{type:"input_dummy"},{name:"power",type:"input_value"},{type:"input_dummy"},{name:"address",type:"input_value"},{type:"input_dummy"},{name:"group",type:"input_value"},{type:"input_dummy"},{name:"data_rate",type:"input_value"}]})}},Il={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.reset",tooltip:"Reset the radio to default settings.",message0:q.Msg.MIXLY_MICROBIT_Reset_radio})}},Tl={init:function(){this.jsonInit({colour:225,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.send",tooltip:"Broadcast a text message.",message0:q.Msg.MIXLY_MICROBIT_Send_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},dl={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_RADIO_SEND),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"send"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"send_bytes"]]),"type"),this.appendValueInput("data"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Send_message1)}},hl={init:function(){this.jsonInit({colour:225,output:"String",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/radio.html#radio.receive",tooltip:q.Msg.MIXLY_MICROBIT_Receive_message,message0:q.Msg.MIXLY_MICROBIT_Receive_message})}},Ml={init:function(){this.setColour(225),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_Receive_message),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_MSG,"receive"],[q.Msg.MIXLY_MICROBIT_MSG_BYTE,"receive_bytes"],[q.Msg.MIXLY_MICROBIT_MSG_FULL,"receive_full"]]),"type"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_Receive_message)}},Ol={init:function(){this.setColour(ul),this.appendValueInput("RX",Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_SETUP).appendField("sda").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("TX",Number).appendField("scl").setCheck(Number).setAlign(q.inputs.Align.RIGHT),this.appendValueInput("freq").setCheck(Number).appendField("频率").setAlign(q.inputs.Align.RIGHT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ml={init:function(){this.setColour(ul),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_READ_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.LANG_MATH_BYTE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_READ)}},cl={init:function(){this.setColour(ul),this.appendValueInput("address").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE_ADDRESS),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_I2C_VALUE),this.appendDummyInput().appendField(q.Msg.CONTROLS_REPEAT_TITLE_REPEAT).appendField(new q.FieldCheckbox(!1),"is_repeated"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_I2C_WRITE)}},El={init:function(){this.jsonInit({colour:ul,nextStatement:null,previousStatement:null,message0:q.Msg.MIXLY_MICROBIT_SPI_INIT,args0:[{value:1e6,type:"field_number",name:"freq"},{type:"input_dummy"},{value:8,type:"field_number",name:"bits"},{type:"input_dummy"},{value:0,type:"field_number",name:"mode"},{type:"input_dummy"},{name:"mosi",options:j.Profile.default.digital,type:"field_dropdown"},{name:"miso",options:j.Profile.default.digital,type:"field_dropdown"},{name:"sck",options:j.Profile.default.digital,type:"field_dropdown"}]}),this.setFieldValue("15","mosi"),this.setFieldValue("14","miso"),this.setFieldValue("13","sck")}},Rl={init:function(){this.setColour(ul),this.appendValueInput("data").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_SPI_WRITE)}},Cl=180,gl={init:function(){this.jsonInit({colour:Cl,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.clear",message0:q.Msg.MIXLY_MICROBIT_Clear_display}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Clear_display)}},Al={init:function(){this.setColour(Cl),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_GET).appendField(q.Msg.MIXLY_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS1)}},Ll={init:function(){this.setColour(Cl),this.appendValueInput("x").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SET_BRIGHTNESS).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_GET_POINT_X),this.appendValueInput("y").setCheck(Number).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_PLOT_POINT_Y),this.appendValueInput("brightness").setCheck(Number).appendField(q.Msg.MIXLY_BRIGHTNESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_BRIGHTNESS2)}},Sl={init:function(){this.setColour(Cl),this.appendValueInput("data").setCheck([String,"microbit_image"]).appendField(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_SHOW_IMAGE_OR_STRING)}},Nl={init:function(){this.setColour(Cl),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Dl={init:function(){this.setColour(Cl),this.appendValueInput("data").setCheck(String).appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.appendValueInput("delay").setCheck(null).appendField(q.Msg.MIXLY_DELAY),this.appendDummyInput().appendField(q.Msg.MIXLY_MILLIS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},fl={init:function(){this.setColour(Cl),this.appendValueInput("PIN",String).setCheck("microbit_image").appendField(q.Msg.OLED_BITMAP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.OLED_BITMAP)}},Pl={init:function(){this.jsonInit({colour:Cl,InputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Show the referenced image on the display.",message0:q.Msg.OLED_BITMAP,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}]})}},Fl={init:function(){this.jsonInit({colour:Cl,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",message0:q.Msg.MIXLY_MICROBIT_Animate_images_or_string,args0:[{check:[String,"List"],type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_delay+q.Msg.MIXLY_MICROBIT_Animate_images1)}},vl={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING),this.jsonInit({colour:Cl,inputsInline:!0,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.show",tooltip:"Display the list of images as an animation with a certain delay between each frame. Indicate if you need to wait before continuing, continuously loop the animation and clear the display when finished.",message0:q.Msg.MIXLY_MICROBIT_SHOW_STRING,args0:[{check:String,type:"input_value",name:"images"},{type:"input_value",name:"delay"},{type:"input_dummy"},{checked:!0,type:"field_checkbox",name:"wait"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"loop"},{type:"input_dummy"},{checked:!1,type:"field_checkbox",name:"clear"}]}),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_MICROBIT_JS_MONITOR_SCROLL_STRING)}},Yl={init:function(){this.jsonInit({colour:Cl,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.scroll",tooltip:"Scroll the referenced text across the display.",message0:q.Msg.MIXLY_MICROBIT_Scroll_message,args0:[{check:"String",type:"input_value",name:"message"}]})}},Vl={init:function(){this.setColour(Cl),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_MICROBIT_Turn_on_display,"on"],[q.Msg.MIXLY_MICROBIT_Turn_off_display,"off"]]),"on_off").appendField(q.Msg.MIXLY_MICROBIT_monitor),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("on_off"),i=q.Msg.MIXLY_MICROBIT_monitor;return{on:q.Msg.MIXLY_MICROBIT_Turn_on_display,off:q.Msg.MIXLY_MICROBIT_Turn_off_display}[e]+i}))}},bl={init:function(){this.jsonInit({colour:Cl,nextStatement:null,previousStatement:null,helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.off",tooltip:"Turn off the display.",message0:q.Msg.MIXLY_MICROBIT_Turn_off_display})}},Xl={init:function(){this.jsonInit({colour:Cl,output:"Boolean",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/display.html#microbit.display.is_on",message0:q.Msg.MIXLY_MICROBIT_Display_is_on}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Display_is_on1)}},yl={init:function(){this.jsonInit({colour:Cl,args0:[{name:"image",options:[["HEART","HEART"],["HEART_SMALL","HEART_SMALL"],["HAPPY","HAPPY"],["SMILE","SMILE"],["SAD","SAD"],["CONFUSED","CONFUSED"],["ANGRY","ANGRY"],["ASLEEP","ASLEEP"],["SURPRISED","SURPRISED"],["SILLY","SILLY"],["FABULOUS","FABULOUS"],["MEH","MEH"],["YES","YES"],["NO","NO"],["CLOCK12","CLOCK12"],["CLOCK11","CLOCK11"],["CLOCK10","CLOCK10"],["CLOCK9","CLOCK9"],["CLOCK8","CLOCK8"],["CLOCK7","CLOCK7"],["CLOCK6","CLOCK6"],["CLOCK5","CLOCK5"],["CLOCK4","CLOCK4"],["CLOCK3","CLOCK3"],["CLOCK2","CLOCK2"],["CLOCK1","CLOCK1"],["ARROW_N","ARROW_N"],["ARROW_NE","ARROW_NE"],["ARROW_E","ARROW_E"],["ARROW_SE","ARROW_SE"],["ARROW_S","ARROW_S"],["ARROW_SW","ARROW_SW"],["ARROW_W","ARROW_W"],["ARROW_NW","ARROW_NW"],["TRIANGLE","TRIANGLE"],["TRIANGLE_LEFT","TRIANGLE_LEFT"],["CHESSBOARD","CHESSBOARD"],["DIAMOND","DIAMOND"],["DIAMOND_SMALL","DIAMOND_SMALL"],["SQUARE","SQUARE"],["SQUARE_SMALL","SQUARE_SMALL"],["RABBIT","RABBIT"],["COW","COW"],["MUSIC_CROTCHET","MUSIC_CROTCHET"],["MUSIC_QUAVER","MUSIC_QUAVER"],["MUSIC_QUAVERS","MUSIC_QUAVERS"],["PITCHFORK","PITCHFORK"],["XMAS","XMAS"],["PACMAN","PACMAN"],["TARGET","TARGET"],["TSHIRT","TSHIRT"],["ROLLERSKATE","ROLLERSKATE"],["DUCK","DUCK"],["HOUSE","HOUSE"],["TORTOISE","TORTOISE"],["BUTTERFLY","BUTTERFLY"],["STICKFIGURE","STICKFIGURE"],["GHOST","GHOST"],["SWORD","SWORD"],["GIRAFFE","GIRAFFE"],["SKULL","SKULL"],["UMBRELLA","UMBRELLA"],["SNAKE","SNAKE"],["ALL_CLOCKS","ALL_CLOCKS"],["ALL_ARROWS","ALL_ARROWS"]],type:"field_dropdown"}],output:["microbit_image","List"],helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#attributes",tooltip:q.Msg.MIXLY_MICROBIT_Built_in_image1,message0:q.Msg.MIXLY_MICROBIT_Built_in_image})}},Ul={init:function(){this.jsonInit({colour:Cl,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.copy",message0:q.Msg.MIXLY_MICROBIT_Copy_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Copy_image1)}},Bl={init:function(){this.jsonInit({colour:Cl,args0:[{check:["microbit_image","List",String],type:"input_value",name:"image"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image.invert",message0:q.Msg.MIXLY_MICROBIT_Invert_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Invert_image1)}},wl={init:function(){this.jsonInit({colour:Cl,args0:[{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"00"},{colour:"#000000",type:"field_colour",name:"01"},{colour:"#000000",type:"field_colour",name:"02"},{colour:"#000000",type:"field_colour",name:"03"},{colour:"#000000",type:"field_colour",name:"04"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"10"},{colour:"#000000",type:"field_colour",name:"11"},{colour:"#000000",type:"field_colour",name:"12"},{colour:"#000000",type:"field_colour",name:"13"},{colour:"#000000",type:"field_colour",name:"14"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"20"},{colour:"#000000",type:"field_colour",name:"21"},{colour:"#000000",type:"field_colour",name:"22"},{colour:"#000000",type:"field_colour",name:"23"},{colour:"#000000",type:"field_colour",name:"24"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"30"},{colour:"#000000",type:"field_colour",name:"31"},{colour:"#000000",type:"field_colour",name:"32"},{colour:"#000000",type:"field_colour",name:"33"},{colour:"#000000",type:"field_colour",name:"34"},{type:"input_dummy"},{colour:"#000000",type:"field_colour",name:"40"},{colour:"#000000",type:"field_colour",name:"41"},{colour:"#000000",type:"field_colour",name:"42"},{colour:"#000000",type:"field_colour",name:"43"},{colour:"#000000",type:"field_colour",name:"44"}],output:"microbit_image",helpUrl:"https://microbit-micropython.readthedocs.io/en/latest/image.html#microbit.Image",message0:q.Msg.MIXLY_MICROBIT_Create_image}),this.setTooltip(q.Msg.MIXLY_MICROBIT_Create_image1)}},kl={init:function(){var t=[[q.Msg.MIXLY_UP,"up"],[q.Msg.MIXLY_DOWN,"down"],[q.Msg.MIXLY_LEFT,"left"],[q.Msg.MIXLY_RIGHT,"right"]];this.setColour(Cl),this.setOutput(!0,"microbit_image"),this.setInputsInline(!0),this.appendValueInput("img").appendField(q.Msg.DISPLAY_IMAGE_LET).setCheck(["microbit_image","List",String]),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_LET2).appendField(new q.FieldDropdown(t),"OP"),this.appendValueInput("val").appendField(q.Msg.DISPLAY_IMAGE_SHIFT).setCheck(Number),this.appendDummyInput("").appendField(q.Msg.DISPLAY_IMAGE_UNIT);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i=q.Msg.DISPLAY_IMAGE_LET,n=q.Msg.DISPLAY_IMAGE_LET2,s=q.Msg.DISPLAY_IMAGE_LET3;return i+n+{up:q.Msg.MIXLY_UP,down:q.Msg.MIXLY_DOWN,left:q.Msg.MIXLY_LEFT,right:q.Msg.MIXLY_RIGHT}[t]+s}))}},Gl={init:function(){var t=[[q.Msg.MICROBIT_DISPLAY_UNION,"+"],[q.Msg.MICROBIT_DISPLAY_MINUS,"-"]];this.setColour(Cl),this.setOutput(!0,"microbit_image"),this.appendValueInput("A").appendField(q.Msg.MICROBIT_DISPLAY_MERGE_SHAPE),this.appendValueInput("B").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{"+":q.Msg.MIXLY_MICROBIT_image_add,"-":q.Msg.MIXLY_MICROBIT_image_reduce}[t]}))}},Hl={init:function(){this.setColour(Cl),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_PRINT1),this.appendValueInput("TEXT2",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT2),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT4_TOOLTIP)}},xl={init:function(){this.setColour(Cl),this.appendValueInput("device").setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_SETUP).appendField(q.Msg.MIXLY_DF_LCD).appendField("1602").appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ADDRESS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(q.Msg.MIXLY_SETUP+q.Msg.MIXLY_DF_LCD+q.Msg.MIXLY_LCD_ADDRESS)}},Wl={init:function(){this.setColour(Cl),this.appendValueInput("row",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(q.Msg.MIXLY_LCD_ROW),this.appendValueInput("column",Number).setCheck(Number).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_COLUMN),this.appendValueInput("TEXT",String).setCheck([String,Number]).setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.MIXLY_LCD_PRINT),this.setPreviousStatement(!0,null),this.setInputsInline(!0),this.setNextStatement(!0,null),this.setTooltip(q.Msg.MIXLY_LCD_PRINT3_TOOLTIP)}},Kl={init:function(){this.setColour(Cl),this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD).appendField("mylcd").appendField(new q.FieldDropdown([[q.Msg.MIXLY_ON,"on()"],[q.Msg.MIXLY_OFF,"off()"],[q.Msg.MIXLY_LCD_STAT_CLEAR,"clear()"],[q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(False)"],[q.Msg.MIXLY_LCD_BACKLIGHT,"backlight(True)"]]),"STAT"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);var t=this;this.setTooltip((function(){var e=t.getFieldValue("STAT");return q.Msg.LISTS_SET_INDEX_SET+q.Msg.MIXLY_DF_LCD+{"on()":q.Msg.MIXLY_ON,"off()":q.Msg.MIXLY_OFF,"clear()":q.Msg.MIXLY_LCD_STAT_CLEAR,"backlight(off)":q.Msg.MIXLY_LCD_NOBACKLIGHT,"backlight(on)":q.Msg.MIXLY_LCD_BACKLIGHT}[e]}))}},Ql={init:function(){this.appendDummyInput().appendField(q.Msg.MIXLY_DF_LCD+" OLED "+q.Msg.OLEDDISPLAY),this.appendValueInput("Text_line1","String").setAlign(q.inputs.Align.RIGHT).appendField("(128*64) "+q.Msg.line1),this.appendValueInput("Text_line2","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line2),this.appendValueInput("Text_line3","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line3),this.appendValueInput("Text_line4","String").setAlign(q.inputs.Align.RIGHT).appendField(q.Msg.line4),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Cl),this.setTooltip(q.Msg.MIXLY_DF_LCD+q.Msg.OLEDDISPLAY+q.Msg.MIXLY_MICROBIT_TYPE_STRING)}},Jl={init:function(){var t=[[q.Msg.MIXLY_HEIGHT,"height"],[q.Msg.MIXLY_WIDTH,"width"]];this.setColour(Cl),this.appendDummyInput().appendField(q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE),this.appendValueInput("VAR").setCheck("microbit_image"),this.appendDummyInput("").appendField(new q.FieldDropdown(t),"OP"),this.setInputsInline(!0),this.setOutput(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return q.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+q.Msg.MIXLY_MICROBIT_IMAGE+{height:q.Msg.MIXLY_HEIGHT,width:q.Msg.MIXLY_WIDTH}[t]}))}},ql={init:function(){this.setColour(Cl),this.appendValueInput("SUB"),this.appendDummyInput().appendField(new q.FieldDropdown([[q.Msg.MIXLY_LCD_STAT_CLEAR,"0"],[q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL,"1"]]),"key"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i={0:q.Msg.MIXLY_LCD_STAT_CLEAR,1:q.Msg.MIXLY_HANDBIT_DISLPAY_OLED_FILL};return q.Msg.MIXLY_DF_LCD+i[e]}))}},jl="#777777",zl={init:function(){this.setColour(jl),this.appendDummyInput("").appendField("from ").appendField(new q.FieldTextInput("microbit"),"path").appendField(" import ").appendField(new q.FieldTextInput("*"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zl={init:function(){this.setColour(jl),this.appendDummyInput("").appendField("import ").appendField(new q.FieldTextInput("module"),"module"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$l={init:function(){this.setColour(jl),this.appendDummyInput("").appendField(new q.FieldTextInput("my_function"),"NAME"),this.itemCount_=1,this.arguments_=["x"],this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new q.icons.MutatorIcon(["factory_create_with_item"],this))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("items",this.itemCount_);for(var e=0;e0)var u="rgb_show.mixly_rgb_show("+(i-1)+", "+s+", "+o+", "+_+")\n";else u="rgb_show.mixly_rgb_show_all("+s+", "+o+", "+_+")\n";return u},Ch=function(t,e){var i=this.getFieldValue("LED");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_neopixel="import neopixel",e.definitions_.import_rgb_show="import rgb_show",i>0)var n="rgb_show.mixly_rgb_show("+(i-1)+", 0, 0, 0)\n";else n="rgb_show.mixly_rgb_show_all(0, 0, 0)\n";return n},gh=function(t,e){var i=e.valueToCode(this,"_LED_",e.ORDER_ATOMIC),n=e.valueToCode(this,"RVALUE",e.ORDER_ATOMIC),s=e.valueToCode(this,"GVALUE",e.ORDER_ATOMIC),o=e.valueToCode(this,"BVALUE",e.ORDER_ATOMIC);return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_neopixel="import neopixel",e.definitions_.import_rgb_show="import rgb_show","rgb_show.mixly_rgb_show("+i+", "+n+", "+s+", "+o+")\n"},Ah=function(t,e){var i=this.getFieldValue("NUMBER"),n=e.valueToCode(this,"SPEED",e.ORDER_ATOMIC),s=this.getFieldValue("DIRECTION");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_motor_control="import motor_control",0==i)var o="motor_control.motor1("+n+", "+s+")\nmotor_control.motor2("+n+", "+s+")\nmotor_control.motor3("+n+", "+s+")\n";else if(1==i)o="motor_control.motor1("+n+", "+s+")\n";else if(2==i)o="motor_control.motor2("+n+", "+s+")\n";else if(3==i)o="motor_control.motor3("+n+", "+s+")\n";return o},Lh=function(t,e){var i=this.getFieldValue("NUMBER");if(e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_motor_control="import motor_control",0==i)var n="motor_control.motor1(0)\nmotor_control.motor2(0)\nmotor_control.motor3(0)\n";else if(1==i)n="motor_control.motor1(0)\n";else if(2==i)n="motor_control.motor2(0)\n";else if(3==i)n="motor_control.motor3(0)\n";return n},Sh=function(t,e){return["pin"+this.getFieldValue("NUMBER")+".read_analog()",e.ORDER_ATOMIC]},Nh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"btn",e.ORDER_ATOMIC);e.setups_["on_"+i]="def on_"+i+"():\n while True:\n if "+i+".was_pressed():\n yield callback_"+i+"()\n else:\n yield\n\nfunc_"+i+" = on_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_"+i+")\n","def callback_"+i+"():\n"+n},Dh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=this.getFieldValue("gesture");e.setups_["on_"+i]="def on_gesture_"+i+'():\n while True:\n if accelerometer.is_gesture("'+i+'"):\n yield callback_gesture_'+i+"()\n else:\n yield\n\nfunc_gesture_"+i+" = on_gesture_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_gesture_"+i+")\n","def callback_gesture_"+i+"():\n"+n},fh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=this.getFieldValue("near");e.setups_["on_"+i]="def on_near_"+i+"():\n while True:\n if not pin"+i+".read_digital():\n yield callback_near_"+i+"()\n else:\n yield\n\nfunc_near_"+i+" = on_near_"+i+"()\n";var n=e.statementToCode(t,"DO");n=e.addLoopTrap(n,t.id)||e.PASS;return e.loops_[i+"_loop"]=" next(func_near_"+i+")\n","def callback_near_"+i+"():\n"+n},Ph=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"TIMES",e.ORDER_ATOMIC),n=e.statementToCode(t,"DO");return"for _my_variable in range("+i+"):\n"+(n=e.addLoopTrap(n,t.id)||e.PASS)},Fh=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},vh=Fh,Yh=Fh,Vh=Fh,bh=Fh,Xh=Fh,yh=Fh,Uh=Fh,Bh=Fh,wh=Fh,kh=Fh,Gh=Fh,Hh=Fh,xh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".is_pressed()",e.ORDER_ATOMIC]},Wh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".was_pressed()",e.ORDER_ATOMIC]},Kh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",[e.valueToCode(this,"btn",e.ORDER_ATOMIC)+".get_presses()",e.ORDER_ATOMIC]},Qh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['"'+this.getFieldValue("gesture")+'"',e.ORDER_ATOMIC]},Jh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",'if accelerometer.is_gesture("'+this.getFieldValue("gesture")+'"):\n'+(e.statementToCode(this,"DO")||e.PASS)},qh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['accelerometer.is_gesture("'+this.getFieldValue("gesture")+'")',e.ORDER_ATOMIC]},jh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",['accelerometer.was_gesture("'+this.getFieldValue("gesture")+'")',e.ORDER_ATOMIC]},zh=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",'if accelerometer.was_gesture("'+this.getFieldValue("gesture")+'"):\n'+(e.statementToCode(this,"DO")||e.PASS)},Zh=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i,n=this.getFieldValue("GES");return"all"==n?i="accelerometer.get_gestures()":"current"==n&&(i="accelerometer.current_gesture()"),[i,e.ORDER_ATOMIC]},$h=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["accelerometer.current_gesture()",e.ORDER_ATOMIC]},tM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["accelerometer.get_"+this.getFieldValue("key")+"()",e.ORDER_ATOMIC]},eM=function(){return"input.setAccelerometerRange("+this.getFieldValue("key")+")\n"},iM=function(t,e){return["input.lightLevel()",e.ORDER_ATOMIC]},nM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.calibrate()\n"},sM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass.is_calibrated()",e.ORDER_ATOMIC]},oM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass.heading()",e.ORDER_ATOMIC]},_M=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["temperature()",e.ORDER_ATOMIC]},uM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["compass."+this.getFieldValue("compass")+"()",e.ORDER_ATOMIC]},aM=function(t,e){return["input.rotation("+this.getFieldValue("key")+")",e.ORDER_ATOMIC]},rM=function(t,e){return["input.magneticForce("+this.getFieldValue("key")+")",e.ORDER_ATOMIC]},pM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="import ultrasonic",["ultrasonic.distance_cm(t_pin=pin"+i+", e_pin=pin"+n+")",e.ORDER_ATOMIC]},lM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.setups_.class_hrsc04_="class HCSR04:\n def __init__(self, tpin=pin"+i+", epin=pin"+n+', spin=pin13):\n self.trigger_pin = tpin\n self.echo_pin = epin\n self.sclk_pin = spin\n\n def distance_mm(self):\n spi.init(baudrate=125000, sclk=self.sclk_pin,\n mosi=self.trigger_pin, miso=self.echo_pin)\n pre = 0\n post = 0\n k = -1\n length = 500\n resp = bytearray(length)\n resp[0] = 0xFF\n spi.write_readinto(resp, resp)\n # find first non zero value\n try:\n i, value = next((ind, v) for ind, v in enumerate(resp) if v)\n except StopIteration:\n i = -1\n if i > 0:\n pre = bin(value).count("1")\n # find first non full high value afterwards\n try:\n k, value = next((ind, v)\n for ind, v in enumerate(resp[i:length - 2]) if resp[i + ind + 1] == 0)\n post = bin(value).count("1") if k else 0\n k = k + i\n except StopIteration:\n i = -1\n dist= -1 if i < 0 else round((pre + (k - i) * 8. + post) * 8 * 0.172)\n return dist\n\n def distance_cm(self):\n return self.distance_mm() / 10.0\n\nsonar=HCSR04()\n\n',["sonar.distance_cm()",e.ORDER_ATOMIC]},IM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *"},TM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *";var i=this.getFieldValue("TIME_TYPE");switch(i){case"Year":case"Month":case"Day":case"Hour":case"Minute":case"Second":case"Week":return["ds."+i+"()",e.ORDER_ASSIGNMENT];case"Mix1":return["ds.get_date()",e.ORDER_ASSIGNMENT];case"Mix2":return["ds.get_time()",e.ORDER_ASSIGNMENT]}},dM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_time("+e.valueToCode(this,"hour",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"minute",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"second",e.ORDER_ASSIGNMENT)+")\n"},hM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_RTC="from RTC import *","ds.set_date("+e.valueToCode(this,"year",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"month",e.ORDER_ASSIGNMENT)+", "+e.valueToCode(this,"day",e.ORDER_ASSIGNMENT)+")\n"},MM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","compass.clear_calibration()\n"},OM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["display.read_light_level()",e.ORDER_ATOMIC]},mM=function(t,e){var i=this.getFieldValue("Trig"),n=this.getFieldValue("Echo");return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_ultrasonic="from ultrasonic import *","sonar = HCSR04(tpin=pin"+i+", epin=pin"+n+")\n"},cM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",e.definitions_.import_TCS="from TCS import *",["tcs.getRawRGBData("+this.getFieldValue("TCS34725_COLOR")+")",e.ORDER_ATOMIC]},EM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+"))\n"},RM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||'""')+")+'\\r\\n')\n"},CM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.write(str(hex("+(e.valueToCode(this,"CONTENT",e.ORDER_ATOMIC)||"0")+")) + '\\r\\n')\n"},gM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"char_marker",e.ORDER_ATOMIC)||";",n=e.statementToCode(this,"DO");e.definitions_["func_serial_receive_data_event_"+i.charCodeAt(1)]="serial.onDataReceived("+i+", () => {\n"+n+"}\n"},AM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.any()",e.ORDER_ATOMIC]},LM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.read()",e.ORDER_ATOMIC]},SM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["uart.readline()",e.ORDER_ATOMIC]},NM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["serial.readUntil("+this.getFieldValue("char_marker")+")",e.ORDER_ATOMIC]},DM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";var i=e.valueToCode(this,"RX",e.ORDER_ATOMIC),n=e.valueToCode(this,"TX",e.ORDER_ATOMIC);return isNaN(parseInt(i))||(i="pin"+i),isNaN(parseInt(n))||(n="pin"+n),"uart.init(rx="+i+", tx="+n+", baudrate="+this.getFieldValue("baudrate")+")\n"},fM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","uart.init(baudrate="+this.getFieldValue("baudrate")+")\n"},PM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *",["input("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")",e.ORDER_ATOMIC]},FM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+")\n"},vM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","print("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||'""')+',end ="")\n'},YM=function(t,e){return"control.inBackground(() => {\n"+e.statementToCode(this,"do")+"})\n"},VM=function(){return"control.reset()\n"},bM=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},XM=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+")\n"},yM=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||j.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||j.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},UM=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},BM=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},wM=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},kM=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},GM=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},HM=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},xM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","sleep("+(e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000")+")\n"},WM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},KM=function(t,e){e.definitions_["import_microbit_*"]="from microbit import *";return["running_time()",e.ORDER_ATOMIC]},QM=function(){return"while True:\n pass\n"},JM=function(t,e){return e.definitions_["import_microbit_*"]="from microbit import *","reset()\n"},qM=function(t,e){return e.definitions_.import_os="import os",["os.uname()",e.ORDER_ATOMIC]};Object.assign(q.Variables,Z),Object.assign(q.Procedures,Vn),q.Python=ur,q.generator=ur,j.Profile.default={},Object.assign(j.Profile,Dp),Object.assign(j.Profile.default,Dp.microbit),Object.assign(q.Blocks,e,i,n,s,o,_,u,a,r,p,l,I,T,N,f,P,F,F,v,Y,V,b,X,y,U),Object.assign(q.Python.forBlock,d,h,M,O,m,c,E,R,C,g,A,L,S,D,B,w,k,k,G,H,x,W,K,Q,J)})(); \ No newline at end of file diff --git a/boards/default/micropython_robot/main.bundle.js b/boards/default/micropython_robot/main.bundle.js index 2eb8e741..944dc477 100644 --- a/boards/default/micropython_robot/main.bundle.js +++ b/boards/default/micropython_robot/main.bundle.js @@ -1,4 +1,4 @@ -(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Rt,controls_typeLists:()=>ct,lists_zip:()=>gt,lists_zip_container:()=>Ct,lists_zip_item:()=>St,unpack_iterable_object:()=>At,variables_change:()=>Et,variables_get:()=>ht,variables_global:()=>Ot,variables_set:()=>mt});var i={};t.r(i),t.d(i,{base_setup:()=>Dt,controls_delay:()=>ft,controls_end_program:()=>Ft,controls_except:()=>Ht,controls_finally:()=>kt,controls_flow_statements:()=>xt,controls_for:()=>yt,controls_forEach:()=>vt,controls_for_range:()=>Vt,controls_if:()=>Pt,controls_if_else:()=>Ut,controls_if_elseif:()=>Gt,controls_if_if:()=>Bt,controls_lambda:()=>Kt,controls_main:()=>Nt,controls_pass:()=>Jt,controls_range:()=>Yt,controls_repeat_ext:()=>Wt,controls_thread:()=>Qt,controls_try:()=>wt,controls_try_finally:()=>bt,controls_whileUntil:()=>Xt,datetime_fromtimestamp:()=>te,do_while:()=>qt,garbage_collection:()=>zt,gene_unique_identifier:()=>ee,get_mem_alloc:()=>jt,get_mem_free:()=>Zt,get_unique_identifier:()=>$t});var n={};t.r(n),t.d(n,{base_map:()=>ge,generate_cartesian_product:()=>Se,math_arithmetic:()=>oe,math_bit:()=>ae,math_constant:()=>se,math_constant_mp:()=>_e,math_constrain:()=>Me,math_dec:()=>re,math_indexer_number:()=>me,math_map:()=>he,math_max_min:()=>le,math_number:()=>ne,math_number_base_conversion:()=>Ie,math_random:()=>Te,math_random_seed:()=>Ee,math_round:()=>Oe,math_selfcalcu:()=>pe,math_to_int:()=>de,math_trig:()=>ue,text_to_number:()=>Re,text_to_number_skulpt:()=>ce,turn_to_int:()=>Ce});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Fe,char_to_ascii:()=>Pe,number_to_text:()=>Ye,os_system:()=>ni,text:()=>Le,text_capital:()=>Ue,text_center:()=>we,text_char:()=>De,text_char_at:()=>be,text_char_at2:()=>Xe,text_char_at3:()=>$e,text_compareTo:()=>Ze,text_compare_to:()=>Ge,text_create_with_container:()=>qe,text_create_with_item:()=>ze,text_encode:()=>ei,text_equals_starts_ends:()=>Be,text_eval:()=>ii,text_find:()=>He,text_format:()=>Qe,text_format_noreturn:()=>ti,text_join:()=>fe,text_join_seq:()=>ke,text_length:()=>ve,text_random_char:()=>xe,text_replace:()=>We,text_split:()=>Ke,text_strip:()=>Je,text_substring:()=>Ve,text_substring2:()=>ye,text_substring3:()=>je,text_textarea:()=>Ne});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Bi,content_in_lists:()=>Ui,enumerate:()=>Gi,list_many_input:()=>Li,list_tolist:()=>Fi,list_tolist2:()=>Vi,list_trig:()=>Ci,lists_2d_get_col_row_data:()=>ai,lists_2d_get_data_with_col_row:()=>pi,lists_append_extend:()=>Ti,lists_change_to:()=>Ai,lists_change_to_general:()=>Di,lists_clear:()=>Oi,lists_create_with:()=>ui,lists_create_with2:()=>Pi,lists_create_with_container:()=>di,lists_create_with_item:()=>li,lists_create_with_noreturn:()=>Ni,lists_create_with_text:()=>ri,lists_create_with_text2:()=>Yi,lists_del_general:()=>fi,lists_find:()=>gi,lists_getIndex3:()=>vi,lists_getSublist3:()=>Xi,lists_get_index:()=>_i,lists_get_random_item:()=>Mi,lists_get_random_sublist:()=>hi,lists_get_sublist:()=>oi,lists_insert_value:()=>mi,lists_insert_value2:()=>xi,lists_pop:()=>ci,lists_remove_at:()=>Ri,lists_remove_at2:()=>yi,lists_reverse:()=>Ei,lists_setIndex3:()=>bi,lists_set_index:()=>Ii,lists_sort:()=>Si});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>sn,dicts_add_or_change:()=>qi,dicts_clear:()=>Zi,dicts_create_with:()=>Hi,dicts_create_with_container:()=>ki,dicts_create_with_item:()=>Wi,dicts_create_with_noreturn:()=>pn,dicts_deldict:()=>nn,dicts_delete:()=>zi,dicts_get:()=>Ji,dicts_get_default:()=>Qi,dicts_items:()=>$i,dicts_keys:()=>Ki,dicts_length:()=>en,dicts_pop:()=>_n,dicts_setdefault:()=>on,dicts_to_json:()=>un,dicts_to_json2:()=>ln,dicts_to_to:()=>dn,dicts_todict:()=>an,dicts_update:()=>ji,dicts_values:()=>tn,json_to_dicts:()=>rn});var p={};t.r(p),t.d(p,{logic_boolean:()=>En,logic_compare:()=>Tn,logic_compare_continous:()=>Mn,logic_is:()=>gn,logic_is_in:()=>cn,logic_negate:()=>mn,logic_null:()=>On,logic_operation:()=>hn,logic_tobool:()=>Cn,logic_true_or_false:()=>Rn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>Kn,sdcard_use_spi_init:()=>Wn,storage_can_write_ornot:()=>Yn,storage_change_dir:()=>Hn,storage_close_file:()=>Xn,storage_delete_file:()=>xn,storage_file_seek:()=>Bn,storage_file_tell:()=>Vn,storage_file_write:()=>Dn,storage_fileopen:()=>An,storage_fileopen_new:()=>Ln,storage_fileopen_new_encoding:()=>Nn,storage_get_a_line:()=>Pn,storage_get_contents:()=>Fn,storage_get_contents_without_para:()=>fn,storage_get_current_dir:()=>Gn,storage_get_file_size:()=>yn,storage_get_filename:()=>vn,storage_is_file:()=>kn,storage_list_all_files:()=>bn,storage_make_dir:()=>Un,storage_open_file_with_os:()=>Sn,storage_rename:()=>wn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>$n,procedures_callreturn:()=>ts,procedures_defnoreturn:()=>qn,procedures_defreturn:()=>zn,procedures_ifreturn:()=>es,procedures_mutatorarg:()=>Zn,procedures_mutatorcontainer:()=>jn,procedures_return:()=>is});var r={};t.r(r),t.d(r,{tuple_change_to:()=>Ts,tuple_create_with:()=>ss,tuple_create_with_container:()=>_s,tuple_create_with_item:()=>os,tuple_create_with_noreturn:()=>Es,tuple_create_with_text2:()=>ps,tuple_create_with_text_return:()=>as,tuple_del:()=>ds,tuple_find:()=>Ms,tuple_getIndex:()=>us,tuple_getSublist:()=>ms,tuple_get_random_item:()=>Rs,tuple_get_sublist:()=>Os,tuple_join:()=>ls,tuple_length:()=>rs,tuple_max:()=>Is,tuple_totuple:()=>cs,tuple_trig:()=>hs});var d={};t.r(d),t.d(d,{set_add_discard:()=>Ps,set_clear:()=>Ds,set_create_with:()=>Cs,set_create_with_container:()=>Ss,set_create_with_item:()=>As,set_create_with_text_return:()=>Xs,set_length:()=>Ls,set_operate:()=>fs,set_operate_update:()=>Fs,set_pop:()=>Ns,set_sub:()=>Ys,set_toset:()=>bs,set_update:()=>vs});var l={};t.r(l),t.d(l,{html_content:()=>Gs,html_content_more:()=>Us,html_document:()=>ys,html_form:()=>Hs,html_head_body:()=>Bs,html_style:()=>ws,html_style_color:()=>Ws,html_style_content:()=>ks,html_text:()=>Ks,html_title:()=>Vs});var I={};t.r(I),t.d(I,{attribute_access:()=>o_,function_call:()=>n_,function_call_container:()=>s_,function_call_item:()=>__,raw_block:()=>qs,raw_empty:()=>js,raw_expression:()=>zs,raw_table:()=>Qs,text_comment:()=>Zs,text_print_multiple:()=>t_,text_print_multiple_container:()=>e_,text_print_multiple_item:()=>i_,type_check:()=>$s});var T={};t.r(T),t.d(T,{controls_type:()=>d_,controls_typeLists:()=>l_,lists_zip:()=>I_,unpack_iterable_object:()=>T_,variables_change:()=>u_,variables_get:()=>p_,variables_global:()=>r_,variables_set:()=>a_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>S_,base_setup:()=>h_,controls_delay:()=>C_,controls_flow_statements:()=>g_,controls_for:()=>O_,controls_forEach:()=>f_,controls_for_range:()=>R_,controls_if:()=>m_,controls_interrupts:()=>N_,controls_lambda:()=>P_,controls_main:()=>M_,controls_millis:()=>A_,controls_nointerrupts:()=>D_,controls_pass:()=>v_,controls_range:()=>F_,controls_repeat:()=>U_,controls_repeat_ext:()=>x_,controls_thread:()=>X_,controls_try_finally:()=>E_,controls_whileUntil:()=>c_,datetime_fromtimestamp:()=>w_,do_while:()=>b_,garbage_collection:()=>y_,gene_unique_identifier:()=>H_,get_mem_alloc:()=>V_,get_mem_free:()=>B_,get_unique_identifier:()=>G_,reset:()=>L_,time_sleep:()=>Y_});var h={};t.r(h),t.d(h,{base_map:()=>ro,generate_cartesian_product:()=>Io,math_arithmetic:()=>Q_,math_bit:()=>J_,math_constant:()=>W_,math_constant_mp:()=>K_,math_constrain:()=>no,math_dec:()=>Z_,math_indexer_number:()=>oo,math_map:()=>io,math_max_min:()=>to,math_number:()=>k_,math_number_base_conversion:()=>so,math_random:()=>eo,math_random_seed:()=>_o,math_round:()=>po,math_selfcalcu:()=>q_,math_single:()=>z_,math_to_int:()=>$_,math_trig:()=>j_,text_to_number:()=>ao,text_to_number_skulpt:()=>uo,turn_to_int:()=>lo});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Eo,char_to_ascii:()=>Oo,number_to_text:()=>Ro,os_system:()=>Ho,text:()=>To,text_capital:()=>fo,text_center:()=>Fo,text_char:()=>ho,text_char_at:()=>Co,text_char_at2:()=>go,text_char_at3:()=>Go,text_compareTo:()=>Bo,text_compare_to:()=>Lo,text_encode:()=>Uo,text_equals_starts_ends:()=>Ao,text_eval:()=>wo,text_find:()=>Po,text_format:()=>xo,text_format_noreturn:()=>yo,text_join:()=>mo,text_join_seq:()=>Yo,text_length:()=>co,text_random_char:()=>So,text_replace:()=>vo,text_split:()=>Xo,text_strip:()=>bo,text_substring:()=>Do,text_substring2:()=>No,text_substring3:()=>Vo,text_textarea:()=>Mo});var E={};t.r(E),t.d(E,{content_in_lists:()=>Cp,enumerate:()=>gp,list_many_input:()=>up,list_tolist:()=>Rp,list_tolist2:()=>cp,list_trig:()=>op,lists_2d_get_col_row_data:()=>Ko,lists_2d_get_data_with_col_row:()=>Wo,lists_append_extend:()=>jo,lists_change_to:()=>ap,lists_change_to_general:()=>dp,lists_clear:()=>ip,lists_create_with:()=>Jo,lists_create_with2:()=>Ip,lists_create_with_noreturn:()=>rp,lists_create_with_text:()=>Qo,lists_create_with_text2:()=>Tp,lists_del_general:()=>lp,lists_find:()=>np,lists_getIndex3:()=>Mp,lists_getSublist3:()=>hp,lists_get_index:()=>qo,lists_get_random_item:()=>Zo,lists_get_random_sublist:()=>$o,lists_get_sublist:()=>ko,lists_insert_value:()=>tp,lists_insert_value2:()=>Ep,lists_pop:()=>_p,lists_remove_at:()=>sp,lists_remove_at2:()=>Op,lists_reverse:()=>ep,lists_setIndex3:()=>mp,lists_set_index:()=>zo,lists_sort:()=>pp});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>xp,dicts_add_or_change:()=>Dp,dicts_clear:()=>Pp,dicts_create_with:()=>Sp,dicts_create_with_noreturn:()=>Bp,dicts_deldict:()=>bp,dicts_delete:()=>fp,dicts_get:()=>Lp,dicts_get_default:()=>Np,dicts_items:()=>Yp,dicts_keys:()=>Ap,dicts_length:()=>Xp,dicts_pop:()=>yp,dicts_setdefault:()=>Vp,dicts_to_json:()=>Up,dicts_to_json2:()=>kp,dicts_to_to:()=>Hp,dicts_todict:()=>Gp,dicts_update:()=>Fp,dicts_values:()=>vp,json_to_dicts:()=>wp});var R={};t.r(R),t.d(R,{logic_boolean:()=>qp,logic_compare:()=>Wp,logic_compare_continous:()=>Kp,logic_is:()=>$p,logic_is_in:()=>Zp,logic_negate:()=>Qp,logic_null:()=>zp,logic_operation:()=>Jp,logic_tobool:()=>ta,logic_true_or_false:()=>jp});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Ca,sdcard_use_spi_init:()=>ga,storage_can_write_ornot:()=>ua,storage_change_dir:()=>ma,storage_close_file:()=>da,storage_delete_file:()=>Ia,storage_file_seek:()=>ha,storage_file_tell:()=>Ma,storage_file_write:()=>_a,storage_fileopen:()=>ia,storage_fileopen_new:()=>na,storage_fileopen_new_encoding:()=>sa,storage_get_a_line:()=>aa,storage_get_contents:()=>pa,storage_get_contents_without_para:()=>oa,storage_get_current_dir:()=>Ea,storage_get_file_size:()=>Ta,storage_get_filename:()=>ra,storage_is_file:()=>ca,storage_list_all_files:()=>la,storage_make_dir:()=>Oa,storage_open_file_with_os:()=>ea,storage_rename:()=>Ra});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Na,procedures_callreturn:()=>La,procedures_defnoreturn:()=>Aa,procedures_defreturn:()=>Sa,procedures_ifreturn:()=>Da,procedures_return:()=>fa});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Va,tuple_create_with:()=>Fa,tuple_create_with_noreturn:()=>wa,tuple_create_with_text2:()=>Pa,tuple_create_with_text_return:()=>Ya,tuple_del:()=>ba,tuple_find:()=>Ba,tuple_getIndex:()=>va,tuple_getSublist:()=>Ua,tuple_get_random_item:()=>ka,tuple_get_sublist:()=>Ha,tuple_join:()=>xa,tuple_length:()=>Xa,tuple_max:()=>ya,tuple_totuple:()=>Wa,tuple_trig:()=>Ga});var S={};t.r(S),t.d(S,{set_add_discard:()=>Za,set_clear:()=>qa,set_create_with:()=>Ka,set_create_with_text_return:()=>eu,set_length:()=>Ja,set_operate:()=>za,set_operate_update:()=>ja,set_pop:()=>Qa,set_sub:()=>$a,set_toset:()=>iu,set_update:()=>tu});var A={};t.r(A),t.d(A,{html_content:()=>ou,html_content_more:()=>pu,html_document:()=>nu,html_form:()=>uu,html_head_body:()=>_u,html_style:()=>au,html_style_content:()=>ru,html_text:()=>du,html_title:()=>su});var L={};t.r(L),t.d(L,{attribute_access:()=>Eu,function_call:()=>mu,raw_block:()=>lu,raw_empty:()=>Tu,raw_expression:()=>Iu,raw_table:()=>Mu,type_check:()=>hu});var N={};t.r(N),t.d(N,{PIN_init:()=>Or,actuator_extern_get_led_bright:()=>Fu,actuator_extern_get_led_state:()=>Pu,actuator_extern_led_bright:()=>fu,actuator_extern_led_brightness:()=>Yu,actuator_ms32006_dcmotor:()=>Uu,actuator_ms32006_init:()=>Gu,actuator_ms32006_stepper:()=>wu,actuator_neopixel_init:()=>Hu,actuator_neopixel_rgb:()=>ku,actuator_neopixel_rgb_all:()=>Wu,actuator_neopixel_write:()=>Ku,actuator_use_uart_init:()=>Ju,esp32_music_get_tempo_extern:()=>Lu,esp32_music_pitch:()=>gu,esp32_music_pitch_init:()=>cu,esp32_music_pitch_with_time:()=>Cu,esp32_music_play_list:()=>Su,esp32_music_reset_extern:()=>Nu,esp32_music_set_tempo_extern:()=>Au,esp32_music_stop:()=>Du,mixbot_actuator_extern_get_addr:()=>mr,mixbot_actuator_extern_set_addr:()=>Er,mixbot_addr_extern:()=>sr,parrot_PIN_init:()=>Cr,parrot_move_speed:()=>Sr,pin_led_bright:()=>Rr,player_insert_music:()=>$u,player_play_music:()=>Zu,player_set_mode:()=>ju,player_set_play:()=>qu,player_set_volume:()=>zu,player_whether_stop:()=>Qu,robot_led_extern:()=>ar,robot_led_extern_get_value:()=>ur,robot_motor_extern:()=>_r,robot_motor_extern_get_speed:()=>or,robot_servo_extern_absolute_run:()=>Ir,robot_servo_extern_get_status:()=>rr,robot_servo_extern_relative_continue:()=>hr,robot_servo_extern_relative_origin:()=>Tr,robot_servo_extern_relative_run:()=>Mr,robot_servo_extern_stop:()=>lr,robot_servo_extern_stop_mode:()=>dr,robot_traffic_light_extern:()=>pr,servo_PIN_init:()=>cr,servo_get_angle:()=>Vu,servo_get_speed:()=>Bu,servo_init:()=>vu,servo_move:()=>Xu,servo_move_angle:()=>gr,servo_set_angle:()=>xu,servo_set_speed:()=>yu,servo_speed_360:()=>bu,syn6288_builtin_voice:()=>ir,syn6288_get_voice:()=>er,syn6288_set_voice:()=>tr,syn6288_tts_play:()=>nr});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>id,actuator_dc_motor_stop:()=>nd,actuator_get_led_bright:()=>fr,actuator_get_led_state:()=>Fr,actuator_led_bright:()=>Dr,actuator_led_brightness:()=>Pr,actuator_mixbot_buzzer_on_off:()=>ad,actuator_mixgo_nova_mic_get:()=>Id,actuator_mixgo_nova_mic_set:()=>ld,actuator_mixgo_nova_onboard_music_pitch:()=>Od,actuator_mixgo_nova_onboard_music_stop:()=>Rd,actuator_mixgo_nova_play_audio:()=>md,actuator_mixgo_nova_play_online_audio:()=>Ed,actuator_mixgo_nova_record_audio:()=>hd,actuator_mixgo_nova_voice_get:()=>Md,actuator_mixgo_nova_voice_set:()=>Td,actuator_mixgo_zero_led_color:()=>Yr,actuator_onboard_neopixel_rgb:()=>Vr,actuator_onboard_neopixel_rgb_all:()=>Br,actuator_onboard_neopixel_rgb_show_all_chase:()=>Ur,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>Gr,actuator_onboard_neopixel_write:()=>wr,actuator_rm_onboard_neopixel_rgb:()=>Hr,actuator_rm_onboard_neopixel_rgb_all:()=>kr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>Wr,actuator_stepper_keep:()=>td,actuator_stepper_stop:()=>ed,analog_ble_keyboard_init:()=>vd,analog_ble_keyboard_input:()=>xd,analog_ble_keyboard_mouse_init:()=>kd,analog_ble_keyboard_mouse_input:()=>Qd,analog_ble_keyboard_mouse_send_battery:()=>Jd,analog_ble_keyboard_mouse_str:()=>qd,analog_ble_keyboard_send_battery:()=>Vd,analog_ble_keyboard_str:()=>yd,analog_ble_mouse_init:()=>Bd,analog_ble_mouse_input:()=>wd,analog_ble_mouse_keyboard_input:()=>zd,analog_ble_mouse_send_battery:()=>Hd,analog_keyboard_input:()=>Sd,analog_keyboard_str:()=>Yd,analog_mouse_input:()=>Fd,bitbot_motor:()=>dd,bitbot_move:()=>ud,bitbot_stop:()=>rd,ble_keyboard_connect:()=>bd,ble_keyboard_get_mac:()=>Xd,ble_keyboard_mouse_connect:()=>Kd,ble_keyboard_mouse_get_mac:()=>Wd,ble_mouse_connect:()=>Ud,ble_mouse_get_mac:()=>Gd,cc_number:()=>yr,educore_ble_keyboard_input:()=>ol,educore_ble_sensor_connected:()=>_l,educore_ble_sensor_init:()=>sl,educore_buzzer:()=>jd,educore_buzzer_play_tone:()=>Zd,educore_buzzer_play_tone_time:()=>$d,educore_buzzer_stop:()=>tl,educore_neopixel_clear:()=>nl,educore_neopixel_rgb:()=>il,educore_rgb_light:()=>el,esp32_music_get_tempo:()=>Jr,esp32_music_reset:()=>Qr,esp32_music_set_tempo:()=>Kr,esp32_onboard_music_pitch:()=>qr,esp32_onboard_music_pitch_with_time:()=>zr,esp32_onboard_music_play_list:()=>Zr,esp32_onboard_music_stop:()=>jr,general_key:()=>Ld,general_key_tuple:()=>Nd,generalkey_container:()=>Dd,generalkey_create_with_item:()=>fd,get_power_output:()=>gd,ledswitch:()=>Nr,mixbot_motor:()=>pd,mixbot_motor_status:()=>sd,mixbot_move:()=>_d,mixbot_stop:()=>od,mouse_key:()=>Pd,number:()=>Lr,rm_actuator_get_led_bright:()=>Xr,rm_actuator_get_led_state:()=>br,rm_actuator_led_bright:()=>vr,rm_actuator_led_brightness:()=>xr,rm_motor:()=>$r,set_all_power_output:()=>Cd,set_power_output:()=>cd,special_key:()=>Ad});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>Gl,ai_sensor_ailocal_class:()=>fl,ai_sensor_ailocal_class_result:()=>Fl,ai_sensor_ailocal_train:()=>Dl,ai_sensor_asr_recognize:()=>bl,ai_sensor_audio_play:()=>Yl,ai_sensor_audio_record:()=>Pl,ai_sensor_barcode:()=>Tl,ai_sensor_circle:()=>Rl,ai_sensor_classifier_faces:()=>Bl,ai_sensor_color:()=>Sl,ai_sensor_color_chases:()=>Nl,ai_sensor_color_chases_result:()=>Ll,ai_sensor_config:()=>ll,ai_sensor_face:()=>Vl,ai_sensor_find_20objects:()=>Ul,ai_sensor_find_barcodes:()=>Ml,ai_sensor_find_circles:()=>cl,ai_sensor_find_colors:()=>Al,ai_sensor_find_licenseplates:()=>yl,ai_sensor_find_lines:()=>Ol,ai_sensor_find_qrcodes:()=>dl,ai_sensor_find_rects:()=>Cl,ai_sensor_find_tags:()=>ml,ai_sensor_licenseplate:()=>xl,ai_sensor_line:()=>El,ai_sensor_qrcode:()=>ul,ai_sensor_qrcode_lite:()=>rl,ai_sensor_rect:()=>gl,ai_sensor_rgb:()=>Il,ai_sensor_tag:()=>hl,ai_sensor_use_uart_init:()=>al,ai_sensor_yolo_recognize:()=>vl,ai_sensor_yolo_recognize_result:()=>Xl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>kl,MICROPYTHON_AI_Speech_unit:()=>Hl,MICROPYTHON_AI_client:()=>wl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>_I,mpython_blynk_app_notify:()=>Zl,mpython_blynk_email:()=>eI,mpython_blynk_get_timers:()=>iI,mpython_blynk_on_connected:()=>ql,mpython_blynk_on_disconnected:()=>Ql,mpython_blynk_run:()=>jl,mpython_blynk_sensor_data_to_app:()=>sI,mpython_blynk_set_property:()=>tI,mpython_blynk_setup:()=>oI,mpython_blynk_stop_timers:()=>$l,mpython_blynk_sync_virtual:()=>Jl,mpython_blynk_terminal_widget_vpin:()=>Kl,mpython_blynktimer:()=>nI,mpython_blynktimer_run:()=>zl});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>wI,communicate_bluetooth_connect:()=>KI,communicate_bluetooth_disconnect:()=>JI,communicate_bluetooth_handle:()=>ZI,communicate_bluetooth_is_connected:()=>qI,communicate_bluetooth_mac:()=>WI,communicate_bluetooth_peripheral_init:()=>HI,communicate_bluetooth_recv:()=>zI,communicate_bluetooth_recv_only:()=>jI,communicate_bluetooth_scan:()=>kI,communicate_bluetooth_send:()=>QI,communicate_espnow_init:()=>$I,communicate_espnow_init_new:()=>tT,communicate_i2c_available:()=>SI,communicate_i2c_init:()=>rI,communicate_i2c_master_read:()=>CI,communicate_i2c_onboard:()=>aI,communicate_i2c_read:()=>dI,communicate_i2c_scan:()=>II,communicate_i2c_write:()=>lI,communicate_ir_recv_init:()=>YI,communicate_ir_send_init:()=>yI,communicate_ow_init:()=>LI,communicate_ow_read:()=>DI,communicate_ow_reset:()=>PI,communicate_ow_scan:()=>NI,communicate_ow_select:()=>FI,communicate_ow_write:()=>fI,communicate_spi_buffer:()=>hI,communicate_spi_init:()=>TI,communicate_spi_onboard:()=>uI,communicate_spi_read:()=>mI,communicate_spi_read_output:()=>EI,communicate_spi_readinto:()=>OI,communicate_spi_readinto_output:()=>RI,communicate_spi_set:()=>MI,communicate_spi_write:()=>cI,communicate_spi_write_readinto:()=>gI,espnow_radio_channel:()=>oT,espnow_radio_channel_new:()=>aT,espnow_radio_on_off:()=>uT,espnow_radio_rec:()=>dT,espnow_radio_recv:()=>IT,espnow_radio_recv_certain_msg:()=>TT,espnow_radio_recv_certain_msg_new:()=>hT,espnow_radio_recv_msg:()=>lT,espnow_radio_recv_new:()=>MT,espnow_radio_send:()=>rT,espnow_radio_txpower:()=>pT,i2c_available:()=>VT,i2c_init:()=>ST,i2c_master_reader2:()=>yT,i2c_read:()=>AT,i2c_scan:()=>NT,i2c_slave_onreceive:()=>AI,i2c_write:()=>LT,internal_variable:()=>vI,ir_recv_timeout:()=>xI,ir_transmit_busy:()=>UI,ir_transmit_conventional_data:()=>VI,ir_transmit_raw_code:()=>GI,ir_transmit_study_code:()=>BI,ir_whether_recv:()=>bI,lora_init:()=>mT,lora_packet:()=>ET,lora_recv:()=>RT,lora_send:()=>OT,network_espnow_info:()=>iT,network_espnow_mac:()=>eT,network_espnow_recv:()=>nT,network_espnow_recv_handle:()=>_T,network_espnow_send:()=>sT,recv_fun:()=>XI,spi_buffer:()=>FT,spi_init:()=>DT,spi_read:()=>PT,spi_read_output:()=>YT,spi_readinto:()=>vT,spi_readinto_output:()=>XT,spi_set:()=>fT,spi_write:()=>bT,spi_write_readinto:()=>xT,urequests_attribute:()=>gT,urequests_get:()=>cT,urequests_method:()=>CT});var v={};t.r(v),t.d(v,{display_animate:()=>TM,display_blink_rate:()=>rM,display_circle:()=>MM,display_color_seclet:()=>NM,display_draw_4strings:()=>sM,display_fill:()=>IM,display_get_screen_image:()=>uM,display_help:()=>mM,display_image_size:()=>_M,display_lcd_use_i2c_init:()=>vM,display_line:()=>pM,display_line_arbitrarily:()=>aM,display_matrix_extern_bright_point:()=>zT,display_matrix_extern_bright_screen:()=>ZT,display_matrix_extern_clear:()=>$T,display_matrix_extern_get_pixel:()=>qT,display_matrix_extern_get_screen_pixel:()=>jT,display_matrix_extern_image_builtins:()=>tM,display_matrix_extern_scroll_string:()=>kT,display_matrix_extern_scroll_string_delay:()=>WT,display_matrix_extern_shift:()=>QT,display_matrix_extern_show_frame_string:()=>KT,display_matrix_extern_show_frame_string_delay:()=>JT,display_matrix_extern_show_image:()=>wT,display_matrix_extern_show_image_or_string_delay:()=>HT,display_matrix_use_i2c_init:()=>UT,display_oled_drawPixel:()=>OM,display_oled_showBitmap:()=>EM,display_oled_use_i2c_init:()=>VM,display_onoff:()=>lM,display_rect:()=>oM,display_rgb_color:()=>dM,display_tm1650_power:()=>cM,display_tm1650_set_brightness:()=>SM,display_tm1650_show_dot:()=>CM,display_tm1650_show_num:()=>gM,display_tm_use_i2c_init:()=>RM,display_triangle:()=>hM,display_use_i2c_init:()=>nM,extern_oled_bright_point:()=>qM,extern_oled_clear:()=>zM,extern_oled_get_pixel:()=>QM,extern_oled_hvline:()=>ZM,extern_oled_line:()=>$M,extern_oled_scroll_string:()=>HM,extern_oled_scroll_string_delay:()=>kM,extern_oled_shape_rect:()=>jM,extern_oled_shift:()=>JM,extern_oled_show_frame_string:()=>WM,extern_oled_show_frame_string_delay:()=>KM,extern_oled_show_image:()=>BM,extern_oled_show_image_or_string_delay:()=>wM,extern_oled_show_image_xy:()=>GM,extern_oled_show_string:()=>UM,lcd_backlight:()=>xM,lcd_clear:()=>yM,lcd_print_string:()=>bM,lcd_show_image_or_string_delay:()=>XM,matrix_extern_image_arithmetic:()=>eM,matrix_extern_image_invert:()=>iM,tft_fill:()=>PM,tft_line_arbitrarily:()=>YM,tft_scroll_string_delay:()=>fM,tft_show_frame_string_delay:()=>FM,tft_show_image_or_string_delay:()=>DM,tft_show_image_xy:()=>LM,tft_use_spi_init:()=>AM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>Vh,display_bright_point:()=>Th,display_bright_screen:()=>hh,display_clear:()=>mh,display_get_pixel:()=>Ih,display_get_screen_pixel:()=>Mh,display_image_builtins:()=>ah,display_image_builtins_all:()=>uh,display_image_create:()=>ph,display_scroll_string:()=>nh,display_scroll_string_delay:()=>sh,display_shift:()=>lh,display_show_frame_string:()=>_h,display_show_frame_string_delay:()=>oh,display_show_image:()=>eh,display_show_image_or_string_delay:()=>ih,draw_pointer:()=>am,image_arithmetic:()=>rh,image_invert:()=>dh,mixbot_display_bright_screen:()=>xh,mixbot_display_get_ambientbright:()=>bh,mixbot_display_get_screen_pixel:()=>Xh,mixbot_display_image_create:()=>vh,mixbot_display_rotate:()=>yh,mixgo_display_image_create_new:()=>Rh,mixgome_display_font:()=>ch,mixgome_display_image_create:()=>Eh,mixgomini_display_image_create:()=>Oh,mpython_display_hvline:()=>Fh,mpython_display_line:()=>Ph,mpython_display_shape_rect:()=>fh,mpython_pbm_image:()=>Yh,onboard_oled_bright_point:()=>Dh,onboard_oled_scroll_string_delay:()=>Lh,onboard_oled_show_frame_string_delay:()=>Nh,onboard_oled_show_image:()=>gh,onboard_oled_show_image_or_string_delay:()=>Ah,onboard_oled_show_image_xy:()=>Ch,onboard_oled_show_string:()=>Sh,onboard_tft_bright_point:()=>jh,onboard_tft_bright_screen:()=>tm,onboard_tft_clear:()=>Zh,onboard_tft_clock_clear:()=>om,onboard_tft_clock_draw:()=>_m,onboard_tft_clock_get_rtctime:()=>nm,onboard_tft_clock_init:()=>im,onboard_tft_clock_set_time:()=>sm,onboard_tft_display_hvline:()=>Jh,onboard_tft_display_line:()=>Qh,onboard_tft_display_shape_circle:()=>pm,onboard_tft_display_shape_rect:()=>Kh,onboard_tft_fill:()=>em,onboard_tft_get_pixel:()=>zh,onboard_tft_get_screen_pixel:()=>$h,onboard_tft_scroll_string:()=>wh,onboard_tft_scroll_string_delay:()=>Hh,onboard_tft_shift:()=>qh,onboard_tft_show_frame_string:()=>kh,onboard_tft_show_frame_string_delay:()=>Wh,onboard_tft_show_image:()=>Bh,onboard_tft_show_image_or_string_delay:()=>Uh,onboard_tft_show_image_xy:()=>Gh});var b={};t.r(b),t.d(b,{factory_block:()=>Om,factory_block_return:()=>Rm,factory_block_return_with_textarea:()=>gm,factory_block_with_textarea:()=>cm,factory_callMethod_noreturn:()=>mm,factory_callMethod_return:()=>Em,factory_create_with_container:()=>Im,factory_create_with_item:()=>Tm,factory_declare:()=>hm,factory_from_import:()=>rm,factory_function_noreturn:()=>lm,factory_function_return:()=>Mm,factory_import:()=>dm,folding_block:()=>Cm});var x={};t.r(x),t.d(x,{controls_pin_attachInterrupt:()=>Wm,inout_analog_atten:()=>vm,inout_analog_read:()=>Ym,inout_analog_read_init:()=>Bm,inout_analog_write:()=>fm,inout_analog_write_init:()=>Vm,inout_analog_write_set:()=>Fm,inout_analog_write_set_freq:()=>wm,inout_digital_init:()=>xm,inout_digital_read:()=>Nm,inout_digital_write:()=>Lm,inout_highlow:()=>Am,inout_pinMode:()=>Um,inout_pin_attachInterrupt:()=>bm,inout_pin_pressed:()=>Xm,inout_pin_pressed_init:()=>Gm,inout_pwm_analog_write:()=>Dm,inout_pwm_analog_write_init:()=>ym,inout_pwm_analog_write_set_freq:()=>Pm,pin_pressed:()=>km,pin_pressed_init:()=>Hm});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>ME,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>TE,IOT_EMQX_PING:()=>lE,IOT_FORMATTING:()=>rE,IOT_FORMAT_STRING:()=>dE,IOT_MIXIO_NTP:()=>IE,IOT_MIXIO_PUBLISH:()=>nE,IOT_MIXIO_SUBSCRIBE:()=>sE,iot_checkonenet:()=>AE,iot_client_onboard:()=>mE,iot_create_with_item:()=>eE,iot_http_client:()=>EE,iot_http_data:()=>OE,iot_mixio_check:()=>pE,iot_mixio_connect:()=>iE,iot_mixio_connect_only:()=>oE,iot_mixio_disconnect:()=>_E,iot_mixio_format_msg:()=>uE,iot_mixio_format_topic:()=>aE,iot_mixly_key:()=>hE,iot_mqtt_client:()=>RE,iot_mqtt_data:()=>cE,iot_onenet_check:()=>zm,iot_onenet_connect:()=>Qm,iot_onenet_disconnect:()=>qm,iot_onenet_publish:()=>Zm,iot_onenet_publish_dict:()=>jm,iot_onenetconnect:()=>CE,iot_onenetdisconnect:()=>SE,iot_publish:()=>LE,iot_publish_container:()=>$m,iot_publish_item:()=>tE,iot_wifi_connect:()=>Jm,iot_wificonnect:()=>gE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>_O,educore_mqtt_connect_success:()=>uO,educore_mqtt_subscribe_message:()=>oO,educore_mqtt_topic_publish:()=>aO,educore_mqtt_topic_subscribe:()=>pO,educore_wifi_connect:()=>sO,network_ap_connect:()=>yE,network_connect:()=>YE,network_get_connect:()=>XE,network_get_wifi:()=>xE,network_init:()=>DE,network_is_active:()=>FE,network_open:()=>fE,network_scan:()=>PE,network_server:()=>VE,network_socket_accept:()=>HE,network_socket_bind:()=>GE,network_socket_close:()=>QE,network_socket_connect:()=>UE,network_socket_init:()=>BE,network_socket_listen:()=>wE,network_socket_receive:()=>kE,network_socket_receive_from:()=>KE,network_socket_send:()=>WE,network_socket_send_to:()=>JE,network_stop:()=>bE,network_wifi_connect:()=>vE,ntptime_address:()=>$E,ntptime_time:()=>ZE,requests_attribute:()=>zE,requests_attribute2:()=>nO,requests_get:()=>qE,requests_get2:()=>eO,requests_method:()=>jE,requests_post:()=>iO});var B={};t.r(B),t.d(B,{CI130X_BROADCAST:()=>XO,CI130X_GET_THE_RECOGNIZED_CMD:()=>vO,CI130X_GET_WHETHER_IDENTIFY:()=>YO,CI130X_IDENTIFY_AND_SAVE:()=>PO,CI130X_SET_SYSTEM_CMD:()=>bO,HCSR04:()=>cR,PS2_Button:()=>AR,PS2_Buttons:()=>NR,PS2_Buttons_new:()=>PR,PS2_State:()=>LR,PS2_init:()=>gR,PS2_init_new:()=>fR,PS2_stk:()=>DR,PS2_stk_new:()=>YR,PS2_vibration:()=>SR,PS2_vibration_new:()=>FR,camera_sensor_init:()=>pc,camera_sensor_result:()=>ac,educore_body_sensor:()=>jR,educore_button_sensor_extern:()=>ec,educore_camera_sensor:()=>oc,educore_infrared_sensor:()=>tc,educore_soilhum_sensor:()=>ZR,educore_temp_sensor:()=>_c,educore_temphum_sensor:()=>$R,educore_ultrasonic_sensor:()=>nc,esp32_s2_weather_init:()=>mR,esp32_s2_weather_rain:()=>OR,esp32_s2_weather_wd:()=>ER,esp32_s2_weather_ws:()=>RR,extern_rfid_read:()=>nR,extern_rfid_readcontent:()=>_R,extern_rfid_readid:()=>sR,extern_rfid_status:()=>aR,extern_rfid_write:()=>oR,extern_rfid_write_return:()=>pR,gnss_get_data:()=>xR,gnss_have_data:()=>bR,interaction_whether_to_interaction:()=>fO,interaction_whether_to_interaction_SANT:()=>FO,mixbot_sensor_extern_get_addr:()=>HR,mixbot_sensor_extern_set_addr:()=>kR,pm25_get_data:()=>XR,radar_set_DETECTION_THRESHOLD:()=>NO,radar_set_DETECTION_THRESHOLD_SANT:()=>DO,robot_button_extern_get_value:()=>yR,robot_color_extern_get_value:()=>wR,robot_infrared_extern_get_value:()=>BR,robot_infrared_extern_grey_get_value:()=>GR,robot_potentiometer_extern_get_value:()=>UR,robot_sonar_extern_get_value:()=>WR,robot_sonar_extern_led:()=>KR,robot_touch_extern_get_value:()=>VR,sensor_APDS9960_extern:()=>yO,sensor_DS18X20:()=>SO,sensor_LTR308_extern:()=>VO,sensor_LTR390UV_extern:()=>UO,sensor_MAX30102_extern:()=>xO,sensor_QMC5883L_extern:()=>JO,sensor_VL530LX_extern:()=>wO,sensor_adxl345_get_acceleration:()=>hO,sensor_aht11_extern:()=>kO,sensor_bmp:()=>gO,sensor_compass_reset:()=>eR,sensor_dht11:()=>EO,sensor_hp203_extern:()=>WO,sensor_light_level:()=>mO,sensor_lm35:()=>AO,sensor_ltr381_extern:()=>BO,sensor_mixgo_extern_button_attachInterrupt:()=>TO,sensor_mixgo_extern_button_get_presses:()=>IO,sensor_mixgo_extern_button_is_pressed:()=>dO,sensor_mixgo_extern_button_was_pressed:()=>lO,sensor_mixgo_extern_light:()=>OO,sensor_mixgo_extern_pin_near:()=>cO,sensor_mixgo_extern_sound:()=>RO,sensor_mixgoce_hot_wheel_degrees:()=>hR,sensor_mixgoce_hot_wheel_is_touched:()=>MR,sensor_mpu9250_attachGestureInterrupt:()=>MO,sensor_mpu9250_calibrate_compass:()=>ZO,sensor_mpu9250_field_strength:()=>tR,sensor_mpu9250_gesture:()=>QO,sensor_mpu9250_get_acceleration:()=>qO,sensor_mpu9250_get_gyro:()=>jO,sensor_mpu9250_get_magnetic:()=>zO,sensor_mpu9250_temperature:()=>$O,sensor_read_humiture:()=>ic,sensor_sht:()=>CO,sensor_shtc3_extern:()=>HO,sensor_spl06_001_extern:()=>KO,sensor_ucs12071_extern:()=>GO,sensor_use_i2c_init:()=>LO,sensor_use_spi_init:()=>iR,sensor_use_uart_init:()=>vR,sensor_weather_solo_init:()=>JR,sensor_weather_solo_rain:()=>zR,sensor_weather_solo_wd:()=>QR,sensor_weather_solo_ws:()=>qR,sensor_weigh_init:()=>uc,ultrasonic_sensor_read_distance:()=>sc,weather_data:()=>uR,weather_have_data:()=>rR,weather_set_label:()=>lR,weather_set_label_container:()=>IR,weather_set_label_item:()=>TR,weather_uart_mixio:()=>dR,weigh_sensor_get_weight:()=>rc});var G={};t.r(G),t.d(G,{CI130X_BROADCAST_SANT:()=>sC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>nC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>iC,CI130X_IDENTIFY_AND_SAVE_SANT:()=>eC,CI130X_SET_SYSTEM_CMD_SANT:()=>_C,HCSR04:()=>Nc,RTC_set_date:()=>Lc,RTC_set_time:()=>Ac,bitbot_als_num:()=>Xg,dht11:()=>Ug,educore_button_sensor:()=>zg,educore_button_was_pressed:()=>jg,educore_gyroscope_sensor:()=>Jg,educore_gyroscope_sensor_read:()=>Qg,educore_gyroscope_sensor_shake:()=>qg,educore_light_sensor:()=>Kg,educore_rfid_sensor:()=>Zg,educore_rfid_sensor_scan:()=>$g,educore_rfid_sensor_scan_data:()=>tC,educore_voice_sensor:()=>kg,number1:()=>fc,number2:()=>Fc,number3:()=>Pc,number4:()=>Yc,number5:()=>vc,number6:()=>Xc,number7:()=>bc,onboard_RTC_get_time:()=>Hc,onboard_RTC_get_time_str:()=>qc,onboard_RTC_get_timestamp:()=>kc,onboard_RTC_set_datetime:()=>Jc,onboard_RTC_settime_string:()=>Kc,onboard_RTC_timestamp_totuple:()=>Wc,rfid_readcontent:()=>ig,rfid_readid:()=>eg,rfid_write:()=>ng,rfid_write_return:()=>sg,sensor_LTR308:()=>zc,sensor_aht11:()=>Zc,sensor_bitbot_ALS:()=>vg,sensor_button_get_presses:()=>yg,sensor_button_is_pressed:()=>bg,sensor_button_was_pressed:()=>xg,sensor_distance_hrsc04:()=>Sc,sensor_eulerangles:()=>og,sensor_field_strength:()=>wg,sensor_get_acceleration:()=>_g,sensor_get_temperature:()=>$c,sensor_hp203:()=>tg,sensor_light:()=>Gg,sensor_mixbot_get_gyro:()=>Yg,sensor_mixbot_patrol_calibrate:()=>fg,sensor_mixbot_patrol_value:()=>Fg,sensor_mixbot_temperature:()=>Pg,sensor_mixgo_LTR308:()=>Uc,sensor_mixgo_button_attachInterrupt:()=>Mc,sensor_mixgo_button_get_presses:()=>Tc,sensor_mixgo_button_is_pressed:()=>lc,sensor_mixgo_button_was_pressed:()=>Ic,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>mg,sensor_mixgo_cc_mmc5603_get_angle:()=>hg,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Mg,sensor_mixgo_light:()=>Dc,sensor_mixgo_nova_LTR308:()=>Gc,sensor_mixgo_nova_pin_near:()=>Bc,sensor_mixgo_pin_near:()=>Vc,sensor_mixgo_pin_near_double:()=>yc,sensor_mixgo_pin_near_single:()=>xc,sensor_mixgo_pin_pressed:()=>Rc,sensor_mixgo_sant_color:()=>wc,sensor_mixgo_touch_slide:()=>Cc,sensor_mixgocar42_button_attachInterrupt:()=>Oc,sensor_mixgocar42_button_get_presses:()=>Ec,sensor_mixgocar42_button_is_pressed:()=>hc,sensor_mixgocar42_button_was_pressed:()=>mc,sensor_mixgocar_battery_left:()=>Dg,sensor_mixgocar_pin_near:()=>Lg,sensor_mixgocar_pin_near_line:()=>Ag,sensor_mixgocar_pin_near_state_change:()=>Ng,sensor_mixgoce_pin_pressed:()=>cc,sensor_mixgoce_temperature:()=>Og,sensor_mixgome_temperature:()=>Eg,sensor_mpython_pin_pressed:()=>gc,sensor_mpython_qmi8658_get_gyro:()=>Rg,sensor_mpython_qmi8658_temperature:()=>cg,sensor_onboard_compass_reset:()=>Tg,sensor_onboard_mpu9250_calibrate_compass:()=>dg,sensor_onboard_mpu9250_field_strength:()=>Ig,sensor_onboard_mpu9250_gesture:()=>pg,sensor_onboard_mpu9250_get_acceleration:()=>ag,sensor_onboard_mpu9250_get_gyro:()=>rg,sensor_onboard_mpu9250_get_magnetic:()=>ug,sensor_onboard_mpu9250_temperature:()=>lg,sensor_pin_near:()=>Bg,sensor_pin_pressed:()=>Vg,sensor_read:()=>Wg,sensor_rm_acc:()=>Sg,sensor_rm_battery_left:()=>Cg,sensor_rm_pin_near_double:()=>gg,sensor_rtc_init:()=>Qc,sensor_sound:()=>jc,sensor_temperature:()=>Hg});var U={};t.r(U),t.d(U,{serial_any:()=>IC,serial_begin:()=>EC,serial_print:()=>aC,serial_print_byte:()=>pC,serial_print_hex:()=>rC,serial_println:()=>uC,serial_read_from_ai:()=>NC,serial_readline:()=>TC,serial_readstr:()=>lC,serial_readstr_until:()=>MC,serial_receive_data_event:()=>dC,serial_send_to_ai:()=>LC,serial_softserial:()=>mC,serial_softserial_new:()=>hC,system_input:()=>OC,system_print:()=>RC,system_print_container:()=>SC,system_print_end:()=>gC,system_print_inline:()=>cC,system_print_item:()=>AC,system_print_many:()=>CC});var w={};t.r(w),t.d(w,{Panic_with_status_code:()=>PC,Timer_init:()=>kC,base_delay:()=>JC,controls_delay:()=>FC,controls_delay_new:()=>fC,controls_millis:()=>vC,controls_uname:()=>bC,raw_block:()=>XC,reset:()=>YC,system_bitbot_shutdown:()=>HC,system_machine_reset:()=>wC,system_ticks_diff:()=>VC,system_timer:()=>yC,system_timer_init:()=>BC,system_wdt_feed:()=>UC,system_wdt_init:()=>GC,time_ticks_diff:()=>KC,timer:()=>xC,timer2:()=>WC});var H={};t.r(H),t.d(H,{Air_daily_content:()=>pS,Air_now_content:()=>tS,Geo_moon_content:()=>uS,Geo_sun_content:()=>aS,Life_suggestion_content:()=>iS,Location_search_content:()=>sS,Tide_daily_content:()=>nS,WEATHER_DAILY:()=>zC,WEATHER_HOUR:()=>jC,WEATHER_NOW:()=>qC,Weather_alarm_content:()=>eS,Weather_daily:()=>_S,Weather_daily_content:()=>oS,Weather_now:()=>ZC,Weather_now_content:()=>$C});var k={};t.r(k),t.d(k,{PIN_init:()=>pA,actuator_extern_get_led_bright:()=>fS,actuator_extern_get_led_state:()=>FS,actuator_extern_led_bright:()=>DS,actuator_extern_led_brightness:()=>PS,actuator_ms32006_dcmotor:()=>mS,actuator_ms32006_init:()=>hS,actuator_ms32006_stepper:()=>ES,actuator_neopixel_init:()=>YS,actuator_neopixel_rgb:()=>bS,actuator_neopixel_rgb_all:()=>vS,actuator_neopixel_write:()=>XS,actuator_use_uart_init:()=>xS,esp32_music_get_tempo_extern:()=>SS,esp32_music_pitch:()=>RS,esp32_music_pitch_init:()=>OS,esp32_music_pitch_with_time:()=>cS,esp32_music_play_list:()=>AS,esp32_music_reset_extern:()=>LS,esp32_music_set_tempo_extern:()=>CS,esp32_music_stop:()=>gS,mixbot_actuator_extern_get_addr:()=>_A,mixbot_actuator_extern_set_addr:()=>oA,mixbot_addr_extern:()=>KS,parrot_PIN_init:()=>dA,parrot_move_speed:()=>lA,pin_led_bright:()=>aA,player_play_music:()=>US,player_set_mode:()=>GS,player_set_play:()=>VS,player_set_volume:()=>BS,player_whether_stop:()=>yS,robot_led_extern:()=>zS,robot_led_extern_get_value:()=>jS,robot_motor_extern:()=>JS,robot_motor_extern_get_speed:()=>QS,robot_servo_extern_absolute_run:()=>eA,robot_servo_extern_get_status:()=>ZS,robot_servo_extern_relative_continue:()=>sA,robot_servo_extern_relative_origin:()=>iA,robot_servo_extern_relative_run:()=>nA,robot_servo_extern_stop:()=>tA,robot_servo_extern_stop_mode:()=>$S,robot_traffic_light_extern:()=>qS,servo_PIN_init:()=>uA,servo_get_angle:()=>TS,servo_get_speed:()=>MS,servo_init:()=>rS,servo_move:()=>NS,servo_move_angle:()=>rA,servo_set_angle:()=>lS,servo_set_speed:()=>IS,servo_speed_360:()=>dS,syn6288_builtin_voice:()=>kS,syn6288_get_voice:()=>HS,syn6288_set_voice:()=>wS,syn6288_tts_play:()=>WS});var W={};t.r(W),t.d(W,{actuator_dc_motor:()=>GA,actuator_dc_motor_stop:()=>UA,actuator_get_led_bright:()=>CA,actuator_get_led_state:()=>SA,actuator_led_bright:()=>gA,actuator_led_brightness:()=>AA,actuator_mixbot_buzzer_on_off:()=>KA,actuator_mixgo_nova_mic_get:()=>jA,actuator_mixgo_nova_mic_set:()=>zA,actuator_mixgo_nova_onboard_music_pitch:()=>nL,actuator_mixgo_nova_onboard_music_stop:()=>sL,actuator_mixgo_nova_play_audio:()=>eL,actuator_mixgo_nova_play_online_audio:()=>iL,actuator_mixgo_nova_record_audio:()=>tL,actuator_mixgo_nova_voice_get:()=>$A,actuator_mixgo_nova_voice_set:()=>ZA,actuator_mixgo_zero_led_color:()=>LA,actuator_onboard_neopixel_rgb:()=>vA,actuator_onboard_neopixel_rgb_all:()=>XA,actuator_onboard_neopixel_rgb_show_all_chase:()=>bA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>xA,actuator_onboard_neopixel_write:()=>YA,actuator_stepper_keep:()=>VA,actuator_stepper_stop:()=>BA,analog_ble_keyboard_init:()=>ML,analog_ble_keyboard_input:()=>EL,analog_ble_keyboard_mouse_init:()=>LL,analog_ble_keyboard_mouse_input:()=>FL,analog_ble_keyboard_mouse_send_battery:()=>fL,analog_ble_keyboard_mouse_str:()=>PL,analog_ble_keyboard_send_battery:()=>RL,analog_ble_keyboard_str:()=>OL,analog_ble_mouse_init:()=>cL,analog_ble_mouse_input:()=>SL,analog_ble_mouse_keyboard_input:()=>YL,analog_ble_mouse_send_battery:()=>AL,analog_keyboard_input:()=>aL,analog_keyboard_str:()=>IL,analog_mouse_input:()=>dL,bitbot_motor:()=>qA,bitbot_move:()=>JA,bitbot_stop:()=>QA,ble_keyboard_connect:()=>mL,ble_keyboard_get_mac:()=>hL,ble_keyboard_mouse_connect:()=>DL,ble_keyboard_mouse_get_mac:()=>NL,ble_mouse_connect:()=>CL,ble_mouse_get_mac:()=>gL,cc_number:()=>NA,educore_ble_keyboard_input:()=>wL,educore_ble_sensor_connected:()=>UL,educore_ble_sensor_init:()=>GL,educore_buzzer:()=>vL,educore_buzzer_play_tone:()=>XL,educore_buzzer_play_tone_time:()=>bL,educore_buzzer_stop:()=>xL,educore_neopixel_clear:()=>BL,educore_neopixel_rgb:()=>VL,educore_rgb_light:()=>yL,esp32_music_get_tempo:()=>TA,esp32_music_reset:()=>OA,esp32_music_set_tempo:()=>IA,esp32_onboard_music_pitch:()=>MA,esp32_onboard_music_pitch_with_time:()=>hA,esp32_onboard_music_play_list:()=>EA,esp32_onboard_music_stop:()=>mA,general_key:()=>rL,general_key_tuple:()=>TL,get_power_output:()=>oL,ledswitch:()=>cA,mixbot_motor:()=>WA,mixbot_motor_status:()=>wA,mixbot_move:()=>HA,mixbot_stop:()=>kA,mouse_key:()=>lL,number:()=>RA,rm_actuator_get_led_bright:()=>fA,rm_actuator_get_led_state:()=>FA,rm_actuator_led_bright:()=>DA,rm_actuator_led_brightness:()=>PA,rm_motor:()=>yA,set_all_power_output:()=>pL,set_power_output:()=>_L,special_key:()=>uL});var K={};t.r(K),t.d(K,{ai_sensor_20object:()=>cN,ai_sensor_ailocal_class:()=>rN,ai_sensor_ailocal_class_result:()=>dN,ai_sensor_ailocal_train:()=>uN,ai_sensor_asr_recognize:()=>hN,ai_sensor_audio_play:()=>IN,ai_sensor_audio_record:()=>lN,ai_sensor_barcode:()=>qL,ai_sensor_circle:()=>eN,ai_sensor_classifier_faces:()=>RN,ai_sensor_color:()=>_N,ai_sensor_color_chases:()=>aN,ai_sensor_color_chases_result:()=>pN,ai_sensor_config:()=>WL,ai_sensor_face:()=>ON,ai_sensor_find_20objects:()=>gN,ai_sensor_find_barcodes:()=>zL,ai_sensor_find_circles:()=>iN,ai_sensor_find_colors:()=>oN,ai_sensor_find_licenseplates:()=>EN,ai_sensor_find_lines:()=>tN,ai_sensor_find_qrcodes:()=>QL,ai_sensor_find_rects:()=>sN,ai_sensor_find_tags:()=>ZL,ai_sensor_licenseplate:()=>mN,ai_sensor_line:()=>$L,ai_sensor_qrcode:()=>JL,ai_sensor_qrcode_lite:()=>kL,ai_sensor_rect:()=>nN,ai_sensor_rgb:()=>KL,ai_sensor_tag:()=>jL,ai_sensor_use_uart_init:()=>HL,ai_sensor_yolo_recognize:()=>TN,ai_sensor_yolo_recognize_result:()=>MN});var J={};t.r(J),t.d(J,{MICROPYTHON_AI_Speech_asr:()=>AN,MICROPYTHON_AI_Speech_unit:()=>SN,MICROPYTHON_AI_client:()=>CN});var Q={};t.r(Q),t.d(Q,{mpython_blynk_app_data:()=>yN,mpython_blynk_app_notify:()=>YN,mpython_blynk_email:()=>VN,mpython_blynk_get_timers:()=>XN,mpython_blynk_on_connected:()=>fN,mpython_blynk_on_disconnected:()=>DN,mpython_blynk_run:()=>PN,mpython_blynk_sensor_data_to_app:()=>xN,mpython_blynk_set_property:()=>BN,mpython_blynk_setup:()=>GN,mpython_blynk_stop_timers:()=>vN,mpython_blynk_sync_virtual:()=>NN,mpython_blynk_terminal_widget_vpin:()=>LN,mpython_blynktimer:()=>bN,mpython_blynktimer_run:()=>FN});var q={};t.r(q),t.d(q,{communicate_bluetooth_central_init:()=>cD,communicate_bluetooth_connect:()=>SD,communicate_bluetooth_disconnect:()=>AD,communicate_bluetooth_handle:()=>PD,communicate_bluetooth_is_connected:()=>ND,communicate_bluetooth_mac:()=>LD,communicate_bluetooth_peripheral_init:()=>gD,communicate_bluetooth_recv:()=>FD,communicate_bluetooth_recv_only:()=>fD,communicate_bluetooth_scan:()=>CD,communicate_bluetooth_send:()=>DD,communicate_espnow_init:()=>YD,communicate_espnow_init_new:()=>vD,communicate_i2c_available:()=>QN,communicate_i2c_init:()=>HN,communicate_i2c_master_read:()=>JN,communicate_i2c_onboard:()=>UN,communicate_i2c_read:()=>kN,communicate_i2c_scan:()=>KN,communicate_i2c_write:()=>WN,communicate_ir_recv_init:()=>dD,communicate_ir_send_init:()=>hD,communicate_ow_init:()=>_D,communicate_ow_read:()=>aD,communicate_ow_reset:()=>pD,communicate_ow_scan:()=>oD,communicate_ow_select:()=>rD,communicate_ow_write:()=>uD,communicate_spi_buffer:()=>ZN,communicate_spi_init:()=>zN,communicate_spi_onboard:()=>wN,communicate_spi_read:()=>$N,communicate_spi_read_output:()=>tD,communicate_spi_readinto:()=>eD,communicate_spi_readinto_output:()=>iD,communicate_spi_set:()=>jN,communicate_spi_write:()=>nD,communicate_spi_write_readinto:()=>sD,espnow_radio_channel:()=>BD,espnow_radio_channel_new:()=>UD,espnow_radio_on_off:()=>wD,espnow_radio_rec:()=>kD,espnow_radio_recv:()=>KD,espnow_radio_recv_certain_msg:()=>JD,espnow_radio_recv_certain_msg_new:()=>qD,espnow_radio_recv_msg:()=>WD,espnow_radio_recv_new:()=>QD,espnow_radio_send:()=>HD,espnow_radio_txpower:()=>GD,i2c_slave_onreceive:()=>qN,internal_variable:()=>lD,ir_recv_timeout:()=>MD,ir_transmit_busy:()=>RD,ir_transmit_conventional_data:()=>mD,ir_transmit_raw_code:()=>OD,ir_transmit_study_code:()=>ED,ir_whether_recv:()=>TD,lora_init:()=>zD,lora_packet:()=>jD,lora_recv:()=>$D,lora_send:()=>ZD,network_espnow_info:()=>bD,network_espnow_mac:()=>XD,network_espnow_recv:()=>xD,network_espnow_recv_handle:()=>VD,network_espnow_send:()=>yD,recv_fun:()=>ID,urequests_attribute:()=>ef,urequests_get:()=>tf,urequests_method:()=>nf});var z={};t.r(z),t.d(z,{display_animate:()=>Df,display_circle:()=>ff,display_color_seclet:()=>Gf,display_draw_4strings:()=>cf,display_fill:()=>Nf,display_lcd_use_i2c_init:()=>Kf,display_line:()=>Sf,display_line_arbitrarily:()=>gf,display_matrix_extern_bright_point:()=>Tf,display_matrix_extern_bright_screen:()=>hf,display_matrix_extern_clear:()=>df,display_matrix_extern_get_pixel:()=>If,display_matrix_extern_get_screen_pixel:()=>Mf,display_matrix_extern_image_builtins:()=>mf,display_matrix_extern_scroll_string:()=>uf,display_matrix_extern_scroll_string_delay:()=>rf,display_matrix_extern_shift:()=>lf,display_matrix_extern_show_frame_string:()=>pf,display_matrix_extern_show_frame_string_delay:()=>af,display_matrix_extern_show_image:()=>_f,display_matrix_extern_show_image_or_string_delay:()=>of,display_matrix_use_i2c_init:()=>sf,display_oled_drawPixel:()=>Yf,display_oled_showBitmap:()=>Pf,display_oled_use_i2c_init:()=>jf,display_onoff:()=>Af,display_rect:()=>Cf,display_tm1650_power:()=>Xf,display_tm1650_set_brightness:()=>yf,display_tm1650_show_dot:()=>xf,display_tm1650_show_num:()=>bf,display_tm_use_i2c_init:()=>vf,display_triangle:()=>Ff,display_use_i2c_init:()=>Rf,extern_oled_bright_point:()=>uF,extern_oled_clear:()=>oF,extern_oled_get_pixel:()=>aF,extern_oled_hvline:()=>dF,extern_oled_line:()=>lF,extern_oled_scroll_string:()=>sF,extern_oled_scroll_string_delay:()=>_F,extern_oled_shape_rect:()=>rF,extern_oled_shift:()=>pF,extern_oled_show_frame_string:()=>iF,extern_oled_show_frame_string_delay:()=>nF,extern_oled_show_image:()=>Zf,extern_oled_show_image_or_string_delay:()=>eF,extern_oled_show_image_xy:()=>$f,extern_oled_show_string:()=>tF,image_shift:()=>Lf,lcd_backlight:()=>qf,lcd_clear:()=>zf,lcd_print_string:()=>Qf,lcd_show_image_or_string_delay:()=>Jf,matrix_extern_image_arithmetic:()=>Ef,matrix_extern_image_invert:()=>Of,tft_fill:()=>kf,tft_line_arbitrarily:()=>Wf,tft_scroll_string_delay:()=>Hf,tft_show_frame_string_delay:()=>wf,tft_show_image_or_string_delay:()=>Uf,tft_show_image_xy:()=>Bf,tft_use_spi_init:()=>Vf});var j={};t.r(j),t.d(j,{bitbot_display_image_create:()=>zF,display_bright_point:()=>NF,display_bright_screen:()=>fF,display_clear:()=>gF,display_get_pixel:()=>LF,display_get_screen_pixel:()=>DF,display_image_builtins:()=>OF,display_image_builtins_all:()=>RF,display_image_create:()=>cF,display_scroll_string:()=>mF,display_scroll_string_delay:()=>EF,display_shift:()=>AF,display_show_frame_string:()=>MF,display_show_frame_string_delay:()=>hF,display_show_image:()=>IF,display_show_image_or_string_delay:()=>TF,draw_pointer:()=>RP,image_arithmetic:()=>CF,image_invert:()=>SF,mixbot_display_bright_screen:()=>QF,mixbot_display_get_ambientbright:()=>JF,mixbot_display_get_screen_pixel:()=>KF,mixbot_display_image_create:()=>WF,mixbot_display_rotate:()=>qF,mixgo_display_image_create_new:()=>vF,mixgome_display_font:()=>YF,mixgome_display_image_create:()=>FF,mixgomini_display_image_create:()=>PF,mpython_display_hvline:()=>HF,mpython_display_line:()=>kF,mpython_display_shape_rect:()=>wF,mpython_pbm_image:()=>XF,onboard_oled_bright_point:()=>UF,onboard_oled_scroll_string_delay:()=>GF,onboard_oled_show_frame_string_delay:()=>BF,onboard_oled_show_image:()=>bF,onboard_oled_show_image_or_string_delay:()=>VF,onboard_oled_show_image_xy:()=>xF,onboard_oled_show_string:()=>yF,onboard_tft_bright_point:()=>rP,onboard_tft_bright_screen:()=>lP,onboard_tft_clear:()=>pP,onboard_tft_clock_clear:()=>EP,onboard_tft_clock_draw:()=>mP,onboard_tft_clock_get_rtctime:()=>MP,onboard_tft_clock_init:()=>TP,onboard_tft_clock_set_time:()=>hP,onboard_tft_display_hvline:()=>_P,onboard_tft_display_line:()=>oP,onboard_tft_display_shape_circle:()=>OP,onboard_tft_display_shape_rect:()=>sP,onboard_tft_fill:()=>IP,onboard_tft_get_pixel:()=>uP,onboard_tft_get_screen_pixel:()=>dP,onboard_tft_scroll_string:()=>iP,onboard_tft_scroll_string_delay:()=>nP,onboard_tft_shift:()=>aP,onboard_tft_show_frame_string:()=>tP,onboard_tft_show_frame_string_delay:()=>eP,onboard_tft_show_image:()=>jF,onboard_tft_show_image_or_string_delay:()=>$F,onboard_tft_show_image_xy:()=>ZF});var Z={};t.r(Z),t.d(Z,{factory_block:()=>DP,factory_block_return:()=>fP,factory_block_return_with_textarea:()=>PP,factory_block_with_textarea:()=>FP,factory_callMethod_noreturn:()=>LP,factory_callMethod_return:()=>NP,factory_declare:()=>AP,factory_from_import:()=>cP,factory_function_noreturn:()=>CP,factory_function_return:()=>SP,factory_import:()=>gP,folding_block:()=>YP});var $={};t.r($),t.d($,{inout_analog_atten:()=>JP,inout_analog_read:()=>GP,inout_analog_read_init:()=>KP,inout_analog_write:()=>yP,inout_analog_write_init:()=>WP,inout_analog_write_set:()=>VP,inout_digital_init:()=>HP,inout_digital_read:()=>bP,inout_digital_write:()=>XP,inout_highlow:()=>vP,inout_pin_attachInterrupt:()=>wP,inout_pin_pressed:()=>UP,inout_pin_pressed_init:()=>QP,inout_pwm_analog_write:()=>xP,inout_pwm_analog_write_init:()=>kP,inout_pwm_analog_write_set_freq:()=>BP});var tt={};t.r(tt),t.d(tt,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>IY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>dY,IOT_EMQX_PING:()=>TY,IOT_FORMATTING:()=>uY,IOT_FORMAT_STRING:()=>rY,IOT_MIXIO_NTP:()=>MY,IOT_MIXIO_PUBLISH:()=>iY,IOT_MIXIO_SUBSCRIBE:()=>nY,iot_client_onboard:()=>hY,iot_http_client:()=>mY,iot_http_data:()=>EY,iot_mixio_check:()=>oY,iot_mixio_connect:()=>eY,iot_mixio_connect_only:()=>_Y,iot_mixio_disconnect:()=>sY,iot_mixio_format_msg:()=>aY,iot_mixio_format_topic:()=>pY,iot_mixly_key:()=>lY,iot_mqtt_client:()=>OY,iot_mqtt_data:()=>RY,iot_onenet_check:()=>$P,iot_onenet_connect:()=>zP,iot_onenet_disconnect:()=>jP,iot_onenet_publish:()=>tY,iot_onenet_publish_dict:()=>ZP,iot_wifi_connect:()=>qP});var et={};t.r(et),t.d(et,{educore_mqtt_connect:()=>jY,educore_mqtt_connect_success:()=>ev,educore_mqtt_subscribe_message:()=>ZY,educore_mqtt_topic_publish:()=>tv,educore_mqtt_topic_subscribe:()=>$Y,educore_wifi_connect:()=>zY,network_ap_connect:()=>fY,network_connect:()=>gY,network_get_connect:()=>SY,network_get_wifi:()=>DY,network_init:()=>cY,network_is_active:()=>NY,network_open:()=>LY,network_scan:()=>FY,network_server:()=>PY,network_socket_accept:()=>xY,network_socket_bind:()=>vY,network_socket_close:()=>UY,network_socket_connect:()=>XY,network_socket_init:()=>YY,network_socket_listen:()=>bY,network_socket_receive:()=>yY,network_socket_receive_from:()=>BY,network_socket_send:()=>VY,network_socket_send_to:()=>GY,network_stop:()=>AY,network_wifi_connect:()=>CY,ntptime_address:()=>KY,ntptime_time:()=>WY,requests_attribute:()=>HY,requests_attribute2:()=>QY,requests_get:()=>wY,requests_get2:()=>JY,requests_method:()=>kY,requests_post:()=>qY});var it={};t.r(it),t.d(it,{CI130X_BROADCAST:()=>Sv,CI130X_GET_THE_RECOGNIZED_CMD:()=>Cv,CI130X_GET_WHETHER_IDENTIFY:()=>gv,CI130X_IDENTIFY_AND_SAVE:()=>cv,CI130X_SET_SYSTEM_CMD:()=>Av,HCSR04:()=>eX,PS2_Button:()=>sX,PS2_Buttons:()=>_X,PS2_Buttons_new:()=>IX,PS2_State:()=>oX,PS2_init:()=>iX,PS2_init_new:()=>dX,PS2_stk:()=>pX,PS2_stk_new:()=>TX,PS2_vibration:()=>nX,PS2_vibration_new:()=>lX,RTC_get_time:()=>uX,RTC_set_date:()=>uv,RTC_set_datetime:()=>aX,RTC_set_time:()=>av,camera_sensor_init:()=>kX,camera_sensor_result:()=>WX,educore_body_sensor:()=>XX,educore_button_sensor_extern:()=>VX,educore_camera_sensor:()=>HX,educore_infrared_sensor:()=>yX,educore_soilhum_sensor:()=>bX,educore_temp_sensor:()=>wX,educore_temphum_sensor:()=>xX,educore_ultrasonic_sensor:()=>GX,esp32_s2_weather_init:()=>jv,esp32_s2_weather_rain:()=>$v,esp32_s2_weather_wd:()=>Zv,esp32_s2_weather_ws:()=>tX,extern_rfid_read:()=>Bv,extern_rfid_readcontent:()=>Uv,extern_rfid_readid:()=>Gv,extern_rfid_status:()=>kv,extern_rfid_write:()=>wv,extern_rfid_write_return:()=>Hv,gnss_get_data:()=>mX,gnss_have_data:()=>EX,interaction_whether_to_interaction:()=>Ov,interaction_whether_to_interaction_SANT:()=>Rv,mixbot_sensor_extern_get_addr:()=>NX,mixbot_sensor_extern_set_addr:()=>DX,pm25_get_data:()=>hX,radar_set_DETECTION_THRESHOLD:()=>mv,radar_set_DETECTION_THRESHOLD_SANT:()=>Ev,robot_button_extern_get_value:()=>OX,robot_color_extern_get_value:()=>SX,robot_infrared_extern_get_value:()=>cX,robot_infrared_extern_grey_get_value:()=>gX,robot_potentiometer_extern_get_value:()=>CX,robot_sonar_extern_get_value:()=>AX,robot_sonar_extern_led:()=>LX,robot_touch_extern_get_value:()=>RX,sensor_APDS9960_extern:()=>Nv,sensor_DS18X20:()=>vX,sensor_LTR308_extern:()=>Dv,sensor_LTR390UV_extern:()=>vv,sensor_MAX30102_extern:()=>Lv,sensor_QMC5883L_extern:()=>Xv,sensor_VL530LX_extern:()=>yv,sensor_aht11_extern:()=>xv,sensor_bmp:()=>Tv,sensor_dht11:()=>rX,sensor_distance_hrsc04:()=>pv,sensor_hp203_extern:()=>fv,sensor_ltr381_extern:()=>Pv,sensor_mixgo_extern_button_attachInterrupt:()=>_v,sensor_mixgo_extern_button_get_presses:()=>sv,sensor_mixgo_extern_button_is_pressed:()=>iv,sensor_mixgo_extern_button_was_pressed:()=>nv,sensor_mixgo_extern_light:()=>rv,sensor_mixgo_extern_pin_near:()=>lv,sensor_mixgo_extern_sound:()=>dv,sensor_mixgoce_hot_wheel_degrees:()=>zv,sensor_mixgoce_hot_wheel_is_touched:()=>qv,sensor_mpu9250_attachGestureInterrupt:()=>ov,sensor_read_humiture:()=>BX,sensor_rtc_init:()=>Iv,sensor_sht:()=>Mv,sensor_shtc3_extern:()=>bv,sensor_spl06_001_extern:()=>Fv,sensor_ucs12071_extern:()=>Yv,sensor_use_i2c_init:()=>hv,sensor_use_spi_init:()=>Vv,sensor_use_uart_init:()=>MX,sensor_weather_solo_init:()=>fX,sensor_weather_solo_rain:()=>YX,sensor_weather_solo_wd:()=>FX,sensor_weather_solo_ws:()=>PX,sensor_weigh_init:()=>KX,ultrasonic_sensor_read_distance:()=>UX,weather_data:()=>Wv,weather_have_data:()=>Kv,weather_set_label:()=>Qv,weather_uart_mixio:()=>Jv,weigh_sensor_get_weight:()=>JX});var nt={};t.r(nt),t.d(nt,{CI130X_BROADCAST_SANT:()=>Wx,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>kx,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>Hx,CI130X_IDENTIFY_AND_SAVE_SANT:()=>wx,CI130X_SET_SYSTEM_CMD_SANT:()=>Kx,HCSR04:()=>ib,bitbot_als_num:()=>gx,dht11:()=>Fx,educore_button_sensor:()=>yx,educore_button_was_pressed:()=>Vx,educore_gyroscope_sensor:()=>Xx,educore_gyroscope_sensor_read:()=>bx,educore_gyroscope_sensor_shake:()=>xx,educore_light_sensor:()=>vx,educore_rfid_sensor:()=>Bx,educore_rfid_sensor_scan:()=>Gx,educore_rfid_sensor_scan_data:()=>Ux,educore_voice_sensor:()=>Px,number1:()=>nb,number2:()=>sb,number3:()=>_b,number4:()=>ob,number5:()=>pb,number6:()=>ab,number7:()=>ub,onboard_RTC_get_time:()=>$b,onboard_RTC_get_time_str:()=>ix,onboard_RTC_get_timestamp:()=>tx,onboard_RTC_set_datetime:()=>jb,onboard_RTC_settime_string:()=>Zb,onboard_RTC_timestamp_totuple:()=>ex,rfid_readcontent:()=>Ab,rfid_readid:()=>Sb,rfid_write:()=>Lb,rfid_write_return:()=>Nb,sensor_LTR308:()=>Ob,sensor_adxl345_get_acceleration:()=>xb,sensor_aht11:()=>gb,sensor_bitbot_ALS:()=>cx,sensor_button_get_presses:()=>Ax,sensor_button_is_pressed:()=>Cx,sensor_button_was_pressed:()=>Sx,sensor_compass_reset:()=>wb,sensor_ds18x20:()=>mb,sensor_eulerangles:()=>fb,sensor_get_acceleration:()=>Db,sensor_get_temperature:()=>Cb,sensor_hp203:()=>cb,sensor_light:()=>fx,sensor_lm35:()=>Eb,sensor_mixbot_get_gyro:()=>Rx,sensor_mixbot_patrol_calibrate:()=>mx,sensor_mixbot_patrol_value:()=>Ex,sensor_mixbot_temperature:()=>Ox,sensor_mixgo_LTR308:()=>Tb,sensor_mixgo_button_attachInterrupt:()=>jX,sensor_mixgo_button_get_presses:()=>zX,sensor_mixgo_button_is_pressed:()=>QX,sensor_mixgo_button_was_pressed:()=>qX,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>_x,sensor_mixgo_cc_mmc5603_get_angle:()=>sx,sensor_mixgo_cc_mmc5603_get_magnetic:()=>nx,sensor_mixgo_light:()=>Dx,sensor_mixgo_nova_LTR308:()=>hb,sensor_mixgo_nova_pin_near:()=>Ib,sensor_mixgo_pin_near:()=>lb,sensor_mixgo_pin_near_double:()=>db,sensor_mixgo_pin_near_single:()=>rb,sensor_mixgo_pin_pressed:()=>Xb,sensor_mixgo_sant_color:()=>Mb,sensor_mixgo_touch_slide:()=>vb,sensor_mixgocar42_button_attachInterrupt:()=>eb,sensor_mixgocar42_button_get_presses:()=>tb,sensor_mixgocar42_button_is_pressed:()=>ZX,sensor_mixgocar42_button_was_pressed:()=>$X,sensor_mixgocar_battery_left:()=>hx,sensor_mixgocar_pin_near:()=>Tx,sensor_mixgocar_pin_near_line:()=>Ix,sensor_mixgocar_pin_near_state_change:()=>Mx,sensor_mixgoce_pin_pressed:()=>Yb,sensor_mixgoce_temperature:()=>px,sensor_mixgome_temperature:()=>ox,sensor_mpu9250_calibrate_compass:()=>Bb,sensor_mpu9250_field_strength:()=>Ub,sensor_mpu9250_gesture:()=>Fb,sensor_mpu9250_get_acceleration:()=>Pb,sensor_mpu9250_get_gyro:()=>Vb,sensor_mpu9250_get_magnetic:()=>yb,sensor_mpu9250_temperature:()=>Gb,sensor_mpython_pin_pressed:()=>bb,sensor_mpython_qmi8658_get_gyro:()=>ax,sensor_mpython_qmi8658_temperature:()=>ux,sensor_onboard_compass_reset:()=>zb,sensor_onboard_mpu9250_calibrate_compass:()=>Jb,sensor_onboard_mpu9250_field_strength:()=>qb,sensor_onboard_mpu9250_gesture:()=>Hb,sensor_onboard_mpu9250_get_acceleration:()=>kb,sensor_onboard_mpu9250_get_gyro:()=>Kb,sensor_onboard_mpu9250_get_magnetic:()=>Wb,sensor_onboard_mpu9250_temperature:()=>Qb,sensor_pin_near:()=>Nx,sensor_pin_pressed:()=>Lx,sensor_read:()=>Yx,sensor_rm_acc:()=>lx,sensor_rm_battery_left:()=>dx,sensor_rm_pin_near_double:()=>rx,sensor_sound:()=>Rb});var st={};t.r(st),t.d(st,{serial_any:()=>jx,serial_print:()=>Jx,serial_print_byte:()=>Qx,serial_print_hex:()=>zx,serial_println:()=>qx,serial_read_from_ai:()=>ay,serial_readline:()=>$x,serial_readstr:()=>Zx,serial_send_to_ai:()=>py,serial_softserial:()=>ty,serial_softserial_new:()=>ey,system_input:()=>iy,system_print:()=>ny,system_print_end:()=>_y,system_print_inline:()=>sy,system_print_many:()=>oy});var _t={};t.r(_t),t.d(_t,{Panic_with_status_code:()=>Ry,Timer_init:()=>by,base_delay:()=>Vy,controls_delay:()=>Ay,controls_delay_new:()=>Ly,controls_end_program:()=>gy,controls_millis:()=>cy,controls_uname:()=>Sy,reset:()=>Cy,system_bitbot_shutdown:()=>Xy,system_device_name:()=>Ey,system_device_serial_number:()=>Oy,system_event_bus_source:()=>hy,system_event_bus_value:()=>my,system_machine_reset:()=>vy,system_on_event:()=>Iy,system_raise_event:()=>ly,system_reset:()=>ry,system_run_in_background:()=>uy,system_ticks_diff:()=>fy,system_timer:()=>Dy,system_timer_init:()=>Fy,system_timestamp:()=>Ty,system_value:()=>My,system_wait:()=>dy,system_wdt_feed:()=>Yy,system_wdt_init:()=>Py,time_ticks_diff:()=>yy,timer:()=>Ny,timer2:()=>xy});var ot={};t.r(ot),t.d(ot,{Air_daily_content:()=>jy,Air_now_content:()=>ky,Geo_moon_content:()=>$y,Geo_sun_content:()=>Zy,Life_suggestion_content:()=>Ky,Location_search_content:()=>Qy,Tide_daily_content:()=>Jy,WEATHER_DAILY:()=>Gy,WEATHER_HOUR:()=>Uy,WEATHER_NOW:()=>By,Weather_alarm_content:()=>Wy,Weather_daily:()=>qy,Weather_daily_content:()=>zy,Weather_now:()=>wy,Weather_now_content:()=>Hy});var pt={};t.r(pt),t.d(pt,{analog_input:()=>dV,analog_output:()=>IV,espnow_channel:()=>aV,haskylens_model:()=>uV,i2c_A_pin:()=>TV,i2c_B_pin:()=>MV,pins_analog:()=>RV,pins_analog_pin:()=>cV,pins_axis:()=>yV,pins_brightness:()=>VV,pins_builtinimg:()=>FV,pins_builtinimg_extern:()=>PV,pins_button:()=>SV,pins_dac:()=>gV,pins_dac_pin:()=>CV,pins_digital:()=>nV,pins_digital_dot:()=>KV,pins_digital_pin:()=>sV,pins_exlcdh:()=>bV,pins_exlcdv:()=>xV,pins_imglist:()=>YV,pins_input_pin:()=>_V,pins_mpython_touch:()=>pV,pins_one_more:()=>WV,pins_output_pin:()=>oV,pins_playlist:()=>vV,pins_playlist_extern:()=>XV,pins_pwm:()=>AV,pins_pwm_pin:()=>LV,pins_radio_datarate:()=>kV,pins_radio_power:()=>HV,pins_serial:()=>fV,pins_tone_notes:()=>wV,pins_touch:()=>DV,pins_touch_pin:()=>NV,pins_tts_bgmusic:()=>UV,pins_tts_builtin_music:()=>GV,pins_tts_voice:()=>BV,pwm_input:()=>rV,pwm_output:()=>lV,spi_A_pin:()=>hV,spi_B_pin:()=>mV,spi_C_pin:()=>EV,spi_D_pin:()=>OV});var at={};t.r(at),t.d(at,{espnow_channel:()=>iB,haskylens_model:()=>nB,pins_analog:()=>$V,pins_analog_pin:()=>ZV,pins_axis:()=>hB,pins_brightness:()=>OB,pins_builtinimg:()=>dB,pins_builtinimg_extern:()=>lB,pins_button:()=>QV,pins_dac:()=>oB,pins_dac_pin:()=>_B,pins_digital:()=>JV,pins_digital_dot:()=>NB,pins_digital_pin:()=>qV,pins_exlcdh:()=>mB,pins_exlcdv:()=>EB,pins_imglist:()=>IB,pins_input_pin:()=>zV,pins_interrupt:()=>uB,pins_mpython_touch:()=>sB,pins_one_more:()=>LB,pins_output_pin:()=>jV,pins_playlist:()=>TB,pins_playlist_extern:()=>MB,pins_pwm:()=>eB,pins_pwm_pin:()=>tB,pins_radio_datarate:()=>AB,pins_radio_power:()=>SB,pins_serial:()=>rB,pins_tone_notes:()=>CB,pins_touch:()=>aB,pins_touch_pin:()=>pB,pins_tts_bgmusic:()=>gB,pins_tts_builtin_music:()=>cB,pins_tts_voice:()=>RB});const ut=Blockly,rt=Mixly,dt={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},lt=dt; +(()=>{"use strict";var t={d:(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{controls_type:()=>Rt,controls_typeLists:()=>ct,lists_zip:()=>gt,lists_zip_container:()=>Ct,lists_zip_item:()=>St,unpack_iterable_object:()=>At,variables_change:()=>Et,variables_get:()=>ht,variables_global:()=>Ot,variables_set:()=>mt});var i={};t.r(i),t.d(i,{base_setup:()=>Dt,controls_delay:()=>ft,controls_end_program:()=>Ft,controls_except:()=>Ht,controls_finally:()=>kt,controls_flow_statements:()=>xt,controls_for:()=>yt,controls_forEach:()=>vt,controls_for_range:()=>Vt,controls_if:()=>Pt,controls_if_else:()=>Ut,controls_if_elseif:()=>Gt,controls_if_if:()=>Bt,controls_lambda:()=>Kt,controls_main:()=>Nt,controls_pass:()=>Jt,controls_range:()=>Yt,controls_repeat_ext:()=>Wt,controls_thread:()=>Qt,controls_try:()=>wt,controls_try_finally:()=>bt,controls_whileUntil:()=>Xt,datetime_fromtimestamp:()=>te,do_while:()=>qt,garbage_collection:()=>zt,gene_unique_identifier:()=>ee,get_mem_alloc:()=>jt,get_mem_free:()=>Zt,get_unique_identifier:()=>$t});var n={};t.r(n),t.d(n,{base_map:()=>ge,generate_cartesian_product:()=>Se,math_arithmetic:()=>oe,math_bit:()=>ae,math_constant:()=>se,math_constant_mp:()=>_e,math_constrain:()=>Me,math_dec:()=>re,math_indexer_number:()=>me,math_map:()=>he,math_max_min:()=>le,math_number:()=>ne,math_number_base_conversion:()=>Ie,math_random:()=>Te,math_random_seed:()=>Ee,math_round:()=>Oe,math_selfcalcu:()=>pe,math_to_int:()=>de,math_trig:()=>ue,text_to_number:()=>Re,text_to_number_skulpt:()=>ce,turn_to_int:()=>Ce});var s={};t.r(s),t.d(s,{ascii_to_char:()=>Fe,char_to_ascii:()=>Pe,number_to_text:()=>Ye,os_system:()=>ni,text:()=>Le,text_capital:()=>Ue,text_center:()=>we,text_char:()=>De,text_char_at:()=>be,text_char_at2:()=>Xe,text_char_at3:()=>$e,text_compareTo:()=>Ze,text_compare_to:()=>Ge,text_create_with_container:()=>qe,text_create_with_item:()=>ze,text_encode:()=>ei,text_equals_starts_ends:()=>Be,text_eval:()=>ii,text_find:()=>He,text_format:()=>Qe,text_format_noreturn:()=>ti,text_join:()=>fe,text_join_seq:()=>ke,text_length:()=>ve,text_random_char:()=>xe,text_replace:()=>We,text_split:()=>Ke,text_strip:()=>Je,text_substring:()=>Ve,text_substring2:()=>ye,text_substring3:()=>je,text_textarea:()=>Ne});var _={};t.r(_),t.d(_,{ENUMERATE:()=>Bi,content_in_lists:()=>Ui,enumerate:()=>Gi,list_many_input:()=>Li,list_tolist:()=>Fi,list_tolist2:()=>Vi,list_trig:()=>Ci,lists_2d_get_col_row_data:()=>ai,lists_2d_get_data_with_col_row:()=>pi,lists_append_extend:()=>Ti,lists_change_to:()=>Ai,lists_change_to_general:()=>Di,lists_clear:()=>Oi,lists_create_with:()=>ui,lists_create_with2:()=>Pi,lists_create_with_container:()=>di,lists_create_with_item:()=>li,lists_create_with_noreturn:()=>Ni,lists_create_with_text:()=>ri,lists_create_with_text2:()=>Yi,lists_del_general:()=>fi,lists_find:()=>gi,lists_getIndex3:()=>vi,lists_getSublist3:()=>Xi,lists_get_index:()=>_i,lists_get_random_item:()=>Mi,lists_get_random_sublist:()=>hi,lists_get_sublist:()=>oi,lists_insert_value:()=>mi,lists_insert_value2:()=>xi,lists_pop:()=>ci,lists_remove_at:()=>Ri,lists_remove_at2:()=>yi,lists_reverse:()=>Ei,lists_setIndex3:()=>bi,lists_set_index:()=>Ii,lists_sort:()=>Si});var o={};t.r(o),t.d(o,{dicts_add_change_del:()=>sn,dicts_add_or_change:()=>qi,dicts_clear:()=>Zi,dicts_create_with:()=>Hi,dicts_create_with_container:()=>ki,dicts_create_with_item:()=>Wi,dicts_create_with_noreturn:()=>pn,dicts_deldict:()=>nn,dicts_delete:()=>zi,dicts_get:()=>Ji,dicts_get_default:()=>Qi,dicts_items:()=>$i,dicts_keys:()=>Ki,dicts_length:()=>en,dicts_pop:()=>_n,dicts_setdefault:()=>on,dicts_to_json:()=>un,dicts_to_json2:()=>ln,dicts_to_to:()=>dn,dicts_todict:()=>an,dicts_update:()=>ji,dicts_values:()=>tn,json_to_dicts:()=>rn});var p={};t.r(p),t.d(p,{logic_boolean:()=>En,logic_compare:()=>Tn,logic_compare_continous:()=>Mn,logic_is:()=>gn,logic_is_in:()=>cn,logic_negate:()=>mn,logic_null:()=>On,logic_operation:()=>hn,logic_tobool:()=>Cn,logic_true_or_false:()=>Rn});var a={};t.r(a),t.d(a,{sdcard_mount:()=>Kn,sdcard_use_spi_init:()=>Wn,storage_can_write_ornot:()=>Yn,storage_change_dir:()=>Hn,storage_close_file:()=>Xn,storage_delete_file:()=>xn,storage_file_seek:()=>Bn,storage_file_tell:()=>Vn,storage_file_write:()=>Dn,storage_fileopen:()=>An,storage_fileopen_new:()=>Ln,storage_fileopen_new_encoding:()=>Nn,storage_get_a_line:()=>Pn,storage_get_contents:()=>Fn,storage_get_contents_without_para:()=>fn,storage_get_current_dir:()=>Gn,storage_get_file_size:()=>yn,storage_get_filename:()=>vn,storage_is_file:()=>kn,storage_list_all_files:()=>bn,storage_make_dir:()=>Un,storage_open_file_with_os:()=>Sn,storage_rename:()=>wn});var u={};t.r(u),t.d(u,{procedures_callnoreturn:()=>$n,procedures_callreturn:()=>ts,procedures_defnoreturn:()=>qn,procedures_defreturn:()=>zn,procedures_ifreturn:()=>es,procedures_mutatorarg:()=>Zn,procedures_mutatorcontainer:()=>jn,procedures_return:()=>is});var r={};t.r(r),t.d(r,{tuple_change_to:()=>Ts,tuple_create_with:()=>ss,tuple_create_with_container:()=>_s,tuple_create_with_item:()=>os,tuple_create_with_noreturn:()=>Es,tuple_create_with_text2:()=>ps,tuple_create_with_text_return:()=>as,tuple_del:()=>ds,tuple_find:()=>Ms,tuple_getIndex:()=>us,tuple_getSublist:()=>ms,tuple_get_random_item:()=>Rs,tuple_get_sublist:()=>Os,tuple_input:()=>gs,tuple_join:()=>ls,tuple_length:()=>rs,tuple_max:()=>Is,tuple_totuple:()=>cs,tuple_trig:()=>hs});var d={};t.r(d),t.d(d,{set_add_discard:()=>Ys,set_clear:()=>fs,set_create_with:()=>Ss,set_create_with_container:()=>As,set_create_with_item:()=>Ls,set_create_with_text_return:()=>bs,set_length:()=>Ns,set_operate:()=>Fs,set_operate_update:()=>Ps,set_pop:()=>Ds,set_sub:()=>vs,set_toset:()=>xs,set_update:()=>Xs});var l={};t.r(l),t.d(l,{html_content:()=>Us,html_content_more:()=>ws,html_document:()=>Vs,html_form:()=>ks,html_head_body:()=>Gs,html_style:()=>Hs,html_style_color:()=>Ks,html_style_content:()=>Ws,html_text:()=>Js,html_title:()=>Bs});var I={};t.r(I),t.d(I,{attribute_access:()=>p_,function_call:()=>s_,function_call_container:()=>__,function_call_item:()=>o_,raw_block:()=>zs,raw_empty:()=>Zs,raw_expression:()=>js,raw_table:()=>qs,text_comment:()=>$s,text_print_multiple:()=>e_,text_print_multiple_container:()=>i_,text_print_multiple_item:()=>n_,type_check:()=>t_});var T={};t.r(T),t.d(T,{controls_type:()=>l_,controls_typeLists:()=>I_,lists_zip:()=>T_,unpack_iterable_object:()=>M_,variables_change:()=>r_,variables_get:()=>a_,variables_global:()=>d_,variables_set:()=>u_});var M={};t.r(M),t.d(M,{Panic_with_status_code:()=>A_,base_setup:()=>m_,controls_delay:()=>S_,controls_flow_statements:()=>C_,controls_for:()=>R_,controls_forEach:()=>F_,controls_for_range:()=>c_,controls_if:()=>E_,controls_interrupts:()=>D_,controls_lambda:()=>Y_,controls_main:()=>h_,controls_millis:()=>L_,controls_nointerrupts:()=>f_,controls_pass:()=>X_,controls_range:()=>P_,controls_repeat:()=>w_,controls_repeat_ext:()=>y_,controls_thread:()=>b_,controls_try_finally:()=>O_,controls_whileUntil:()=>g_,datetime_fromtimestamp:()=>H_,do_while:()=>x_,garbage_collection:()=>V_,gene_unique_identifier:()=>k_,get_mem_alloc:()=>B_,get_mem_free:()=>G_,get_unique_identifier:()=>U_,reset:()=>N_,time_sleep:()=>v_});var h={};t.r(h),t.d(h,{base_map:()=>lo,generate_cartesian_product:()=>To,math_arithmetic:()=>q_,math_bit:()=>Q_,math_constant:()=>K_,math_constant_mp:()=>J_,math_constrain:()=>so,math_dec:()=>$_,math_indexer_number:()=>po,math_map:()=>no,math_max_min:()=>eo,math_number:()=>W_,math_number_base_conversion:()=>_o,math_random:()=>io,math_random_seed:()=>oo,math_round:()=>ao,math_selfcalcu:()=>z_,math_single:()=>j_,math_to_int:()=>to,math_trig:()=>Z_,text_to_number:()=>uo,text_to_number_skulpt:()=>ro,turn_to_int:()=>Io});var m={};t.r(m),t.d(m,{ascii_to_char:()=>Oo,char_to_ascii:()=>Ro,number_to_text:()=>co,os_system:()=>ko,text:()=>Mo,text_capital:()=>Fo,text_center:()=>Po,text_char:()=>mo,text_char_at:()=>So,text_char_at2:()=>Co,text_char_at3:()=>Uo,text_compareTo:()=>Go,text_compare_to:()=>No,text_encode:()=>wo,text_equals_starts_ends:()=>Lo,text_eval:()=>Ho,text_find:()=>Yo,text_format:()=>yo,text_format_noreturn:()=>Vo,text_join:()=>Eo,text_join_seq:()=>vo,text_length:()=>go,text_random_char:()=>Ao,text_replace:()=>Xo,text_split:()=>bo,text_strip:()=>xo,text_substring:()=>fo,text_substring2:()=>Do,text_substring3:()=>Bo,text_textarea:()=>ho});var E={};t.r(E),t.d(E,{content_in_lists:()=>Sp,enumerate:()=>Cp,list_many_input:()=>rp,list_tolist:()=>cp,list_tolist2:()=>gp,list_trig:()=>pp,lists_2d_get_col_row_data:()=>Jo,lists_2d_get_data_with_col_row:()=>Ko,lists_append_extend:()=>Zo,lists_change_to:()=>up,lists_change_to_general:()=>lp,lists_clear:()=>np,lists_create_with:()=>Qo,lists_create_with2:()=>Tp,lists_create_with_noreturn:()=>dp,lists_create_with_text:()=>qo,lists_create_with_text2:()=>Mp,lists_del_general:()=>Ip,lists_find:()=>sp,lists_getIndex3:()=>hp,lists_getSublist3:()=>mp,lists_get_index:()=>zo,lists_get_random_item:()=>$o,lists_get_random_sublist:()=>tp,lists_get_sublist:()=>Wo,lists_insert_value:()=>ep,lists_insert_value2:()=>Op,lists_pop:()=>op,lists_remove_at:()=>_p,lists_remove_at2:()=>Rp,lists_reverse:()=>ip,lists_setIndex3:()=>Ep,lists_set_index:()=>jo,lists_sort:()=>ap});var O={};t.r(O),t.d(O,{dicts_add_change_del:()=>yp,dicts_add_or_change:()=>fp,dicts_clear:()=>Yp,dicts_create_with:()=>Ap,dicts_create_with_noreturn:()=>Gp,dicts_deldict:()=>xp,dicts_delete:()=>Fp,dicts_get:()=>Np,dicts_get_default:()=>Dp,dicts_items:()=>vp,dicts_keys:()=>Lp,dicts_length:()=>bp,dicts_pop:()=>Vp,dicts_setdefault:()=>Bp,dicts_to_json:()=>wp,dicts_to_json2:()=>Wp,dicts_to_to:()=>kp,dicts_todict:()=>Up,dicts_update:()=>Pp,dicts_values:()=>Xp,json_to_dicts:()=>Hp});var R={};t.r(R),t.d(R,{logic_boolean:()=>zp,logic_compare:()=>Kp,logic_compare_continous:()=>Jp,logic_is:()=>ta,logic_is_in:()=>$p,logic_negate:()=>qp,logic_null:()=>jp,logic_operation:()=>Qp,logic_tobool:()=>ea,logic_true_or_false:()=>Zp});var c={};t.r(c),t.d(c,{sdcard_mount:()=>Sa,sdcard_use_spi_init:()=>Ca,storage_can_write_ornot:()=>ra,storage_change_dir:()=>Ea,storage_close_file:()=>la,storage_delete_file:()=>Ta,storage_file_seek:()=>ma,storage_file_tell:()=>ha,storage_file_write:()=>oa,storage_fileopen:()=>na,storage_fileopen_new:()=>sa,storage_fileopen_new_encoding:()=>_a,storage_get_a_line:()=>ua,storage_get_contents:()=>aa,storage_get_contents_without_para:()=>pa,storage_get_current_dir:()=>Oa,storage_get_file_size:()=>Ma,storage_get_filename:()=>da,storage_is_file:()=>ga,storage_list_all_files:()=>Ia,storage_make_dir:()=>Ra,storage_open_file_with_os:()=>ia,storage_rename:()=>ca});var g={};t.r(g),t.d(g,{procedures_callnoreturn:()=>Da,procedures_callreturn:()=>Na,procedures_defnoreturn:()=>La,procedures_defreturn:()=>Aa,procedures_ifreturn:()=>fa,procedures_return:()=>Fa});var C={};t.r(C),t.d(C,{tuple_change_to:()=>Ba,tuple_create_with:()=>Pa,tuple_create_with_noreturn:()=>Ha,tuple_create_with_text2:()=>Ya,tuple_create_with_text_return:()=>va,tuple_del:()=>xa,tuple_find:()=>Ga,tuple_getIndex:()=>Xa,tuple_getSublist:()=>wa,tuple_get_random_item:()=>Wa,tuple_get_sublist:()=>ka,tuple_input:()=>Ja,tuple_join:()=>ya,tuple_length:()=>ba,tuple_max:()=>Va,tuple_totuple:()=>Ka,tuple_trig:()=>Ua});var S={};t.r(S),t.d(S,{set_add_discard:()=>tu,set_clear:()=>ja,set_create_with:()=>Qa,set_create_with_text_return:()=>nu,set_length:()=>qa,set_operate:()=>Za,set_operate_update:()=>$a,set_pop:()=>za,set_sub:()=>eu,set_toset:()=>su,set_update:()=>iu});var A={};t.r(A),t.d(A,{html_content:()=>au,html_content_more:()=>uu,html_document:()=>_u,html_form:()=>du,html_head_body:()=>pu,html_style:()=>ru,html_style_content:()=>lu,html_text:()=>Iu,html_title:()=>ou});var L={};t.r(L),t.d(L,{attribute_access:()=>Ru,function_call:()=>Ou,raw_block:()=>Tu,raw_empty:()=>hu,raw_expression:()=>Mu,raw_table:()=>mu,type_check:()=>Eu});var N={};t.r(N),t.d(N,{PIN_init:()=>cr,actuator_extern_get_led_bright:()=>Yu,actuator_extern_get_led_state:()=>vu,actuator_extern_led_bright:()=>Pu,actuator_extern_led_brightness:()=>Xu,actuator_ms32006_dcmotor:()=>Hu,actuator_ms32006_init:()=>wu,actuator_ms32006_stepper:()=>ku,actuator_neopixel_init:()=>Wu,actuator_neopixel_rgb:()=>Ku,actuator_neopixel_rgb_all:()=>Ju,actuator_neopixel_write:()=>Qu,actuator_use_uart_init:()=>qu,esp32_music_get_tempo_extern:()=>Du,esp32_music_pitch:()=>Su,esp32_music_pitch_init:()=>Cu,esp32_music_pitch_with_time:()=>Au,esp32_music_play_list:()=>Lu,esp32_music_reset_extern:()=>fu,esp32_music_set_tempo_extern:()=>Nu,esp32_music_stop:()=>Fu,mixbot_actuator_extern_get_addr:()=>Or,mixbot_actuator_extern_set_addr:()=>Rr,mixbot_addr_extern:()=>or,parrot_PIN_init:()=>Ar,parrot_move_speed:()=>Lr,pin_led_bright:()=>gr,player_insert_music:()=>er,player_play_music:()=>tr,player_set_mode:()=>$u,player_set_play:()=>ju,player_set_volume:()=>Zu,player_whether_stop:()=>zu,robot_led_extern:()=>rr,robot_led_extern_get_value:()=>dr,robot_motor_extern:()=>pr,robot_motor_extern_get_speed:()=>ar,robot_servo_extern_absolute_run:()=>Mr,robot_servo_extern_get_status:()=>lr,robot_servo_extern_relative_continue:()=>Er,robot_servo_extern_relative_origin:()=>hr,robot_servo_extern_relative_run:()=>mr,robot_servo_extern_stop:()=>Tr,robot_servo_extern_stop_mode:()=>Ir,robot_traffic_light_extern:()=>ur,servo_PIN_init:()=>Cr,servo_get_angle:()=>Gu,servo_get_speed:()=>Uu,servo_init:()=>bu,servo_move:()=>xu,servo_move_angle:()=>Sr,servo_set_angle:()=>Vu,servo_set_speed:()=>Bu,servo_speed_360:()=>yu,syn6288_builtin_voice:()=>sr,syn6288_get_voice:()=>nr,syn6288_set_voice:()=>ir,syn6288_tts_play:()=>_r});var D={};t.r(D),t.d(D,{actuator_dc_motor:()=>sd,actuator_dc_motor_stop:()=>_d,actuator_get_led_bright:()=>Pr,actuator_get_led_state:()=>Yr,actuator_led_bright:()=>Fr,actuator_led_brightness:()=>vr,actuator_mixbot_buzzer_on_off:()=>rd,actuator_mixgo_nova_mic_get:()=>Md,actuator_mixgo_nova_mic_set:()=>Td,actuator_mixgo_nova_onboard_music_pitch:()=>cd,actuator_mixgo_nova_onboard_music_stop:()=>gd,actuator_mixgo_nova_play_audio:()=>Od,actuator_mixgo_nova_play_online_audio:()=>Rd,actuator_mixgo_nova_record_audio:()=>Ed,actuator_mixgo_nova_voice_get:()=>md,actuator_mixgo_nova_voice_set:()=>hd,actuator_mixgo_zero_led_color:()=>Xr,actuator_onboard_neopixel_rgb:()=>Gr,actuator_onboard_neopixel_rgb_all:()=>Ur,actuator_onboard_neopixel_rgb_show_all_chase:()=>Hr,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>wr,actuator_onboard_neopixel_write:()=>kr,actuator_rm_onboard_neopixel_rgb:()=>Wr,actuator_rm_onboard_neopixel_rgb_all:()=>Kr,actuator_rm_onboard_neopixel_rgb_show_all_chase:()=>Jr,actuator_stepper_keep:()=>id,actuator_stepper_stop:()=>nd,analog_ble_keyboard_init:()=>bd,analog_ble_keyboard_input:()=>Vd,analog_ble_keyboard_mouse_init:()=>Kd,analog_ble_keyboard_mouse_input:()=>zd,analog_ble_keyboard_mouse_send_battery:()=>qd,analog_ble_keyboard_mouse_str:()=>jd,analog_ble_keyboard_send_battery:()=>Gd,analog_ble_keyboard_str:()=>Bd,analog_ble_mouse_init:()=>Ud,analog_ble_mouse_input:()=>kd,analog_ble_mouse_keyboard_input:()=>Zd,analog_ble_mouse_send_battery:()=>Wd,analog_keyboard_input:()=>Ld,analog_keyboard_str:()=>Xd,analog_mouse_input:()=>Yd,bitbot_motor:()=>Id,bitbot_move:()=>dd,bitbot_stop:()=>ld,ble_keyboard_connect:()=>yd,ble_keyboard_get_mac:()=>xd,ble_keyboard_mouse_connect:()=>Qd,ble_keyboard_mouse_get_mac:()=>Jd,ble_mouse_connect:()=>Hd,ble_mouse_get_mac:()=>wd,cc_number:()=>Br,educore_ble_keyboard_input:()=>al,educore_ble_sensor_connected:()=>pl,educore_ble_sensor_init:()=>ol,educore_buzzer:()=>$d,educore_buzzer_play_tone:()=>tl,educore_buzzer_play_tone_time:()=>el,educore_buzzer_stop:()=>il,educore_neopixel_clear:()=>_l,educore_neopixel_rgb:()=>sl,educore_rgb_light:()=>nl,esp32_music_get_tempo:()=>qr,esp32_music_reset:()=>zr,esp32_music_set_tempo:()=>Qr,esp32_onboard_music_pitch:()=>jr,esp32_onboard_music_pitch_with_time:()=>Zr,esp32_onboard_music_play_list:()=>td,esp32_onboard_music_stop:()=>$r,general_key:()=>Dd,general_key_tuple:()=>fd,generalkey_container:()=>Fd,generalkey_create_with_item:()=>Pd,get_power_output:()=>Sd,ledswitch:()=>fr,mixbot_motor:()=>ud,mixbot_motor_status:()=>od,mixbot_move:()=>pd,mixbot_stop:()=>ad,mouse_key:()=>vd,number:()=>Dr,rm_actuator_get_led_bright:()=>xr,rm_actuator_get_led_state:()=>yr,rm_actuator_led_bright:()=>br,rm_actuator_led_brightness:()=>Vr,rm_motor:()=>ed,set_all_power_output:()=>Ad,set_power_output:()=>Cd,special_key:()=>Nd});var f={};t.r(f),t.d(f,{ai_sensor_20object:()=>wl,ai_sensor_ailocal_class:()=>Pl,ai_sensor_ailocal_class_result:()=>Yl,ai_sensor_ailocal_train:()=>Fl,ai_sensor_asr_recognize:()=>yl,ai_sensor_audio_play:()=>Xl,ai_sensor_audio_record:()=>vl,ai_sensor_barcode:()=>hl,ai_sensor_circle:()=>gl,ai_sensor_classifier_faces:()=>Ul,ai_sensor_color:()=>Ll,ai_sensor_color_chases:()=>fl,ai_sensor_color_chases_result:()=>Dl,ai_sensor_config:()=>Tl,ai_sensor_face:()=>Gl,ai_sensor_find_20objects:()=>Hl,ai_sensor_find_barcodes:()=>ml,ai_sensor_find_circles:()=>Cl,ai_sensor_find_colors:()=>Nl,ai_sensor_find_licenseplates:()=>Bl,ai_sensor_find_lines:()=>cl,ai_sensor_find_qrcodes:()=>Il,ai_sensor_find_rects:()=>Al,ai_sensor_find_tags:()=>Ol,ai_sensor_licenseplate:()=>Vl,ai_sensor_line:()=>Rl,ai_sensor_qrcode:()=>dl,ai_sensor_qrcode_lite:()=>ll,ai_sensor_rect:()=>Sl,ai_sensor_rgb:()=>Ml,ai_sensor_tag:()=>El,ai_sensor_use_uart_init:()=>rl,ai_sensor_yolo_recognize:()=>bl,ai_sensor_yolo_recognize_result:()=>xl});var F={};t.r(F),t.d(F,{MICROPYTHON_AI_Speech_asr:()=>Kl,MICROPYTHON_AI_Speech_unit:()=>Wl,MICROPYTHON_AI_client:()=>kl});var P={};t.r(P),t.d(P,{mpython_blynk_app_data:()=>pI,mpython_blynk_app_notify:()=>tI,mpython_blynk_email:()=>nI,mpython_blynk_get_timers:()=>sI,mpython_blynk_on_connected:()=>jl,mpython_blynk_on_disconnected:()=>zl,mpython_blynk_run:()=>$l,mpython_blynk_sensor_data_to_app:()=>oI,mpython_blynk_set_property:()=>iI,mpython_blynk_setup:()=>aI,mpython_blynk_stop_timers:()=>eI,mpython_blynk_sync_virtual:()=>ql,mpython_blynk_terminal_widget_vpin:()=>Ql,mpython_blynktimer:()=>_I,mpython_blynktimer_run:()=>Zl});var Y={};t.r(Y),t.d(Y,{communicate_bluetooth_central_init:()=>kI,communicate_bluetooth_connect:()=>QI,communicate_bluetooth_disconnect:()=>qI,communicate_bluetooth_handle:()=>tT,communicate_bluetooth_is_connected:()=>jI,communicate_bluetooth_mac:()=>JI,communicate_bluetooth_peripheral_init:()=>WI,communicate_bluetooth_recv:()=>ZI,communicate_bluetooth_recv_only:()=>$I,communicate_bluetooth_scan:()=>KI,communicate_bluetooth_send:()=>zI,communicate_espnow_init:()=>eT,communicate_espnow_init_new:()=>iT,communicate_i2c_available:()=>LI,communicate_i2c_init:()=>lI,communicate_i2c_master_read:()=>AI,communicate_i2c_onboard:()=>rI,communicate_i2c_read:()=>II,communicate_i2c_scan:()=>MI,communicate_i2c_write:()=>TI,communicate_ir_recv_init:()=>XI,communicate_ir_send_init:()=>BI,communicate_ow_init:()=>DI,communicate_ow_read:()=>FI,communicate_ow_reset:()=>vI,communicate_ow_scan:()=>fI,communicate_ow_select:()=>YI,communicate_ow_write:()=>PI,communicate_spi_buffer:()=>EI,communicate_spi_init:()=>hI,communicate_spi_onboard:()=>dI,communicate_spi_read:()=>OI,communicate_spi_read_output:()=>RI,communicate_spi_readinto:()=>cI,communicate_spi_readinto_output:()=>gI,communicate_spi_set:()=>mI,communicate_spi_write:()=>CI,communicate_spi_write_readinto:()=>SI,espnow_radio_channel:()=>aT,espnow_radio_channel_new:()=>rT,espnow_radio_on_off:()=>dT,espnow_radio_rec:()=>IT,espnow_radio_recv:()=>MT,espnow_radio_recv_certain_msg:()=>hT,espnow_radio_recv_certain_msg_new:()=>ET,espnow_radio_recv_msg:()=>TT,espnow_radio_recv_new:()=>mT,espnow_radio_send:()=>lT,espnow_radio_txpower:()=>uT,i2c_available:()=>GT,i2c_init:()=>LT,i2c_master_reader2:()=>BT,i2c_read:()=>NT,i2c_scan:()=>fT,i2c_slave_onreceive:()=>NI,i2c_write:()=>DT,internal_variable:()=>bI,ir_recv_timeout:()=>VI,ir_transmit_busy:()=>HI,ir_transmit_conventional_data:()=>GI,ir_transmit_raw_code:()=>wI,ir_transmit_study_code:()=>UI,ir_whether_recv:()=>yI,lora_init:()=>OT,lora_packet:()=>RT,lora_recv:()=>gT,lora_send:()=>cT,network_espnow_info:()=>sT,network_espnow_mac:()=>nT,network_espnow_recv:()=>_T,network_espnow_recv_handle:()=>pT,network_espnow_send:()=>oT,recv_fun:()=>xI,spi_buffer:()=>YT,spi_init:()=>FT,spi_read:()=>vT,spi_read_output:()=>XT,spi_readinto:()=>bT,spi_readinto_output:()=>xT,spi_set:()=>PT,spi_write:()=>yT,spi_write_readinto:()=>VT,urequests_attribute:()=>ST,urequests_get:()=>CT,urequests_method:()=>AT});var v={};t.r(v),t.d(v,{display_animate:()=>hM,display_blink_rate:()=>lM,display_circle:()=>mM,display_color_seclet:()=>fM,display_draw_4strings:()=>oM,display_fill:()=>MM,display_get_screen_image:()=>dM,display_help:()=>OM,display_image_size:()=>pM,display_lcd_use_i2c_init:()=>bM,display_line:()=>uM,display_line_arbitrarily:()=>rM,display_matrix_extern_bright_point:()=>ZT,display_matrix_extern_bright_screen:()=>tM,display_matrix_extern_clear:()=>eM,display_matrix_extern_get_pixel:()=>jT,display_matrix_extern_get_screen_pixel:()=>$T,display_matrix_extern_image_builtins:()=>iM,display_matrix_extern_scroll_string:()=>KT,display_matrix_extern_scroll_string_delay:()=>JT,display_matrix_extern_shift:()=>zT,display_matrix_extern_show_frame_string:()=>QT,display_matrix_extern_show_frame_string_delay:()=>qT,display_matrix_extern_show_image:()=>kT,display_matrix_extern_show_image_or_string_delay:()=>WT,display_matrix_use_i2c_init:()=>HT,display_oled_drawPixel:()=>cM,display_oled_showBitmap:()=>RM,display_oled_use_i2c_init:()=>GM,display_onoff:()=>TM,display_rect:()=>aM,display_rgb_color:()=>IM,display_tm1650_power:()=>CM,display_tm1650_set_brightness:()=>LM,display_tm1650_show_dot:()=>AM,display_tm1650_show_num:()=>SM,display_tm_use_i2c_init:()=>gM,display_triangle:()=>EM,display_use_i2c_init:()=>_M,extern_oled_bright_point:()=>jM,extern_oled_clear:()=>ZM,extern_oled_get_pixel:()=>zM,extern_oled_hvline:()=>th,extern_oled_line:()=>eh,extern_oled_scroll_string:()=>WM,extern_oled_scroll_string_delay:()=>KM,extern_oled_shape_rect:()=>$M,extern_oled_shift:()=>qM,extern_oled_show_frame_string:()=>JM,extern_oled_show_frame_string_delay:()=>QM,extern_oled_show_image:()=>UM,extern_oled_show_image_or_string_delay:()=>kM,extern_oled_show_image_xy:()=>wM,extern_oled_show_string:()=>HM,lcd_backlight:()=>VM,lcd_clear:()=>BM,lcd_print_string:()=>yM,lcd_show_image_or_string_delay:()=>xM,matrix_extern_image_arithmetic:()=>nM,matrix_extern_image_invert:()=>sM,tft_fill:()=>vM,tft_line_arbitrarily:()=>XM,tft_scroll_string_delay:()=>PM,tft_show_frame_string_delay:()=>YM,tft_show_image_or_string_delay:()=>FM,tft_show_image_xy:()=>DM,tft_use_spi_init:()=>NM});var X={};t.r(X),t.d(X,{bitbot_display_image_create:()=>Gh,display_bright_point:()=>hh,display_bright_screen:()=>Eh,display_clear:()=>Oh,display_get_pixel:()=>Mh,display_get_screen_pixel:()=>mh,display_image_builtins:()=>rh,display_image_builtins_all:()=>dh,display_image_create:()=>uh,display_scroll_string:()=>_h,display_scroll_string_delay:()=>oh,display_shift:()=>Th,display_show_frame_string:()=>ph,display_show_frame_string_delay:()=>ah,display_show_image:()=>nh,display_show_image_or_string_delay:()=>sh,draw_pointer:()=>rm,image_arithmetic:()=>lh,image_invert:()=>Ih,mixbot_display_bright_screen:()=>Vh,mixbot_display_get_ambientbright:()=>yh,mixbot_display_get_screen_pixel:()=>xh,mixbot_display_image_create:()=>bh,mixbot_display_rotate:()=>Bh,mixgo_display_image_create_new:()=>gh,mixgome_display_font:()=>Ch,mixgome_display_image_create:()=>Rh,mixgomini_display_image_create:()=>ch,mpython_display_hvline:()=>Yh,mpython_display_line:()=>vh,mpython_display_shape_rect:()=>Ph,mpython_pbm_image:()=>Xh,onboard_oled_bright_point:()=>Fh,onboard_oled_scroll_string_delay:()=>Dh,onboard_oled_show_frame_string_delay:()=>fh,onboard_oled_show_image:()=>Sh,onboard_oled_show_image_or_string_delay:()=>Nh,onboard_oled_show_image_xy:()=>Ah,onboard_oled_show_string:()=>Lh,onboard_tft_bright_point:()=>$h,onboard_tft_bright_screen:()=>im,onboard_tft_clear:()=>tm,onboard_tft_clock_clear:()=>am,onboard_tft_clock_draw:()=>pm,onboard_tft_clock_get_rtctime:()=>_m,onboard_tft_clock_init:()=>sm,onboard_tft_clock_set_time:()=>om,onboard_tft_display_hvline:()=>qh,onboard_tft_display_line:()=>zh,onboard_tft_display_shape_circle:()=>um,onboard_tft_display_shape_rect:()=>Qh,onboard_tft_fill:()=>nm,onboard_tft_get_pixel:()=>Zh,onboard_tft_get_screen_pixel:()=>em,onboard_tft_scroll_string:()=>kh,onboard_tft_scroll_string_delay:()=>Wh,onboard_tft_shift:()=>jh,onboard_tft_show_frame_string:()=>Kh,onboard_tft_show_frame_string_delay:()=>Jh,onboard_tft_show_image:()=>Uh,onboard_tft_show_image_or_string_delay:()=>Hh,onboard_tft_show_image_xy:()=>wh});var b={};t.r(b),t.d(b,{factory_block:()=>cm,factory_block_return:()=>gm,factory_block_return_with_textarea:()=>Sm,factory_block_with_textarea:()=>Cm,factory_callMethod_noreturn:()=>Om,factory_callMethod_return:()=>Rm,factory_create_with_container:()=>Mm,factory_create_with_item:()=>hm,factory_declare:()=>Em,factory_from_import:()=>lm,factory_function_noreturn:()=>Tm,factory_function_return:()=>mm,factory_import:()=>Im,folding_block:()=>Am});var x={};t.r(x),t.d(x,{controls_pin_attachInterrupt:()=>Jm,inout_analog_atten:()=>bm,inout_analog_read:()=>Xm,inout_analog_read_init:()=>Um,inout_analog_write:()=>Pm,inout_analog_write_init:()=>Gm,inout_analog_write_set:()=>Ym,inout_analog_write_set_freq:()=>km,inout_digital_init:()=>Vm,inout_digital_read:()=>fm,inout_digital_write:()=>Dm,inout_highlow:()=>Nm,inout_pinMode:()=>Hm,inout_pin_attachInterrupt:()=>ym,inout_pin_pressed:()=>xm,inout_pin_pressed_init:()=>wm,inout_pwm_analog_write:()=>Fm,inout_pwm_analog_write_init:()=>Bm,inout_pwm_analog_write_set_freq:()=>vm,pin_pressed:()=>Km,pin_pressed_init:()=>Wm});var y={};t.r(y),t.d(y,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>mE,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>hE,IOT_EMQX_PING:()=>TE,IOT_FORMATTING:()=>lE,IOT_FORMAT_STRING:()=>IE,IOT_MIXIO_NTP:()=>ME,IOT_MIXIO_PUBLISH:()=>_E,IOT_MIXIO_SUBSCRIBE:()=>oE,iot_checkonenet:()=>NE,iot_client_onboard:()=>OE,iot_create_with_item:()=>nE,iot_http_client:()=>RE,iot_http_data:()=>cE,iot_mixio_check:()=>uE,iot_mixio_connect:()=>sE,iot_mixio_connect_only:()=>aE,iot_mixio_disconnect:()=>pE,iot_mixio_format_msg:()=>dE,iot_mixio_format_topic:()=>rE,iot_mixly_key:()=>EE,iot_mqtt_client:()=>gE,iot_mqtt_data:()=>CE,iot_onenet_check:()=>Zm,iot_onenet_connect:()=>zm,iot_onenet_disconnect:()=>jm,iot_onenet_publish:()=>tE,iot_onenet_publish_dict:()=>$m,iot_onenetconnect:()=>AE,iot_onenetdisconnect:()=>LE,iot_publish:()=>DE,iot_publish_container:()=>eE,iot_publish_item:()=>iE,iot_wifi_connect:()=>qm,iot_wificonnect:()=>SE});var V={};t.r(V),t.d(V,{educore_mqtt_connect:()=>pO,educore_mqtt_connect_success:()=>dO,educore_mqtt_subscribe_message:()=>aO,educore_mqtt_topic_publish:()=>rO,educore_mqtt_topic_subscribe:()=>uO,educore_wifi_connect:()=>oO,network_ap_connect:()=>BE,network_connect:()=>XE,network_get_connect:()=>xE,network_get_wifi:()=>VE,network_init:()=>FE,network_is_active:()=>YE,network_open:()=>PE,network_scan:()=>vE,network_server:()=>GE,network_socket_accept:()=>WE,network_socket_bind:()=>wE,network_socket_close:()=>zE,network_socket_connect:()=>HE,network_socket_init:()=>UE,network_socket_listen:()=>kE,network_socket_receive:()=>KE,network_socket_receive_from:()=>QE,network_socket_send:()=>JE,network_socket_send_to:()=>qE,network_stop:()=>yE,network_wifi_connect:()=>bE,ntptime_address:()=>eO,ntptime_time:()=>tO,requests_attribute:()=>ZE,requests_attribute2:()=>_O,requests_get:()=>jE,requests_get2:()=>nO,requests_method:()=>$E,requests_post:()=>sO});var B={};t.r(B),t.d(B,{CI130X_BROADCAST:()=>xO,CI130X_GET_THE_RECOGNIZED_CMD:()=>bO,CI130X_GET_WHETHER_IDENTIFY:()=>XO,CI130X_IDENTIFY_AND_SAVE:()=>vO,CI130X_SET_SYSTEM_CMD:()=>yO,HCSR04:()=>CR,PS2_Button:()=>NR,PS2_Buttons:()=>fR,PS2_Buttons_new:()=>vR,PS2_State:()=>DR,PS2_init:()=>SR,PS2_init_new:()=>PR,PS2_stk:()=>FR,PS2_stk_new:()=>XR,PS2_vibration:()=>LR,PS2_vibration_new:()=>YR,camera_sensor_init:()=>uc,camera_sensor_result:()=>rc,educore_body_sensor:()=>$R,educore_button_sensor_extern:()=>nc,educore_camera_sensor:()=>ac,educore_infrared_sensor:()=>ic,educore_soilhum_sensor:()=>tc,educore_temp_sensor:()=>pc,educore_temphum_sensor:()=>ec,educore_ultrasonic_sensor:()=>_c,esp32_s2_weather_init:()=>OR,esp32_s2_weather_rain:()=>cR,esp32_s2_weather_wd:()=>RR,esp32_s2_weather_ws:()=>gR,extern_rfid_read:()=>_R,extern_rfid_readcontent:()=>pR,extern_rfid_readid:()=>oR,extern_rfid_status:()=>rR,extern_rfid_write:()=>aR,extern_rfid_write_return:()=>uR,gnss_get_data:()=>VR,gnss_have_data:()=>yR,interaction_whether_to_interaction:()=>PO,interaction_whether_to_interaction_SANT:()=>YO,mixbot_sensor_extern_get_addr:()=>WR,mixbot_sensor_extern_set_addr:()=>KR,pm25_get_data:()=>xR,radar_set_DETECTION_THRESHOLD:()=>fO,radar_set_DETECTION_THRESHOLD_SANT:()=>FO,robot_button_extern_get_value:()=>BR,robot_color_extern_get_value:()=>kR,robot_infrared_extern_get_value:()=>UR,robot_infrared_extern_grey_get_value:()=>wR,robot_potentiometer_extern_get_value:()=>HR,robot_sonar_extern_get_value:()=>JR,robot_sonar_extern_led:()=>QR,robot_touch_extern_get_value:()=>GR,sensor_APDS9960_extern:()=>BO,sensor_DS18X20:()=>LO,sensor_LTR308_extern:()=>GO,sensor_LTR390UV_extern:()=>HO,sensor_MAX30102_extern:()=>VO,sensor_QMC5883L_extern:()=>qO,sensor_VL530LX_extern:()=>kO,sensor_adxl345_get_acceleration:()=>EO,sensor_aht11_extern:()=>KO,sensor_bmp:()=>SO,sensor_compass_reset:()=>nR,sensor_dht11:()=>RO,sensor_hp203_extern:()=>JO,sensor_light_level:()=>OO,sensor_lm35:()=>NO,sensor_ltr381_extern:()=>UO,sensor_mixgo_extern_button_attachInterrupt:()=>hO,sensor_mixgo_extern_button_get_presses:()=>MO,sensor_mixgo_extern_button_is_pressed:()=>IO,sensor_mixgo_extern_button_was_pressed:()=>TO,sensor_mixgo_extern_light:()=>cO,sensor_mixgo_extern_pin_near:()=>CO,sensor_mixgo_extern_sound:()=>gO,sensor_mixgoce_hot_wheel_degrees:()=>ER,sensor_mixgoce_hot_wheel_is_touched:()=>mR,sensor_mpu9250_attachGestureInterrupt:()=>mO,sensor_mpu9250_calibrate_compass:()=>tR,sensor_mpu9250_field_strength:()=>iR,sensor_mpu9250_gesture:()=>zO,sensor_mpu9250_get_acceleration:()=>jO,sensor_mpu9250_get_gyro:()=>$O,sensor_mpu9250_get_magnetic:()=>ZO,sensor_mpu9250_temperature:()=>eR,sensor_read_humiture:()=>sc,sensor_sht:()=>AO,sensor_shtc3_extern:()=>WO,sensor_spl06_001_extern:()=>QO,sensor_ucs12071_extern:()=>wO,sensor_use_i2c_init:()=>DO,sensor_use_spi_init:()=>sR,sensor_use_uart_init:()=>bR,sensor_weather_solo_init:()=>qR,sensor_weather_solo_rain:()=>ZR,sensor_weather_solo_wd:()=>zR,sensor_weather_solo_ws:()=>jR,sensor_weigh_init:()=>dc,ultrasonic_sensor_read_distance:()=>oc,weather_data:()=>dR,weather_have_data:()=>lR,weather_set_label:()=>TR,weather_set_label_container:()=>MR,weather_set_label_item:()=>hR,weather_uart_mixio:()=>IR,weigh_sensor_get_weight:()=>lc});var G={};t.r(G),t.d(G,{CI130X_BROADCAST_SANT:()=>pC,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>oC,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>_C,CI130X_IDENTIFY_AND_SAVE_SANT:()=>sC,CI130X_SET_SYSTEM_CMD_SANT:()=>aC,HCSR04:()=>fc,RTC_set_date:()=>Dc,RTC_set_time:()=>Nc,bitbot_als_num:()=>yg,dht11:()=>kg,educore_button_sensor:()=>$g,educore_button_was_pressed:()=>tC,educore_gyroscope_sensor:()=>zg,educore_gyroscope_sensor_read:()=>jg,educore_gyroscope_sensor_shake:()=>Zg,educore_light_sensor:()=>qg,educore_rfid_sensor:()=>eC,educore_rfid_sensor_scan:()=>iC,educore_rfid_sensor_scan_data:()=>nC,educore_voice_sensor:()=>Jg,number1:()=>Pc,number2:()=>Yc,number3:()=>vc,number4:()=>Xc,number5:()=>bc,number6:()=>xc,number7:()=>yc,onboard_RTC_get_time:()=>Wc,onboard_RTC_get_time_str:()=>jc,onboard_RTC_get_timestamp:()=>Kc,onboard_RTC_get_timetuple_to_str:()=>Zc,onboard_RTC_set_datetime:()=>qc,onboard_RTC_settime_string:()=>Qc,onboard_RTC_timestamp_totuple:()=>Jc,rfid_readcontent:()=>_g,rfid_readid:()=>sg,rfid_write:()=>og,rfid_write_return:()=>pg,sensor_LTR308:()=>$c,sensor_aht11:()=>eg,sensor_bitbot_ALS:()=>xg,sensor_button_get_presses:()=>Gg,sensor_button_is_pressed:()=>Vg,sensor_button_was_pressed:()=>Bg,sensor_distance_hrsc04:()=>Lc,sensor_eulerangles:()=>ug,sensor_field_strength:()=>Wg,sensor_get_acceleration:()=>ag,sensor_get_temperature:()=>ig,sensor_hp203:()=>ng,sensor_light:()=>Hg,sensor_mixbot_get_gyro:()=>bg,sensor_mixbot_patrol_calibrate:()=>Yg,sensor_mixbot_patrol_value:()=>vg,sensor_mixbot_temperature:()=>Xg,sensor_mixgo_LTR308:()=>Hc,sensor_mixgo_button_attachInterrupt:()=>mc,sensor_mixgo_button_get_presses:()=>hc,sensor_mixgo_button_is_pressed:()=>Tc,sensor_mixgo_button_was_pressed:()=>Mc,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>Rg,sensor_mixgo_cc_mmc5603_get_angle:()=>Og,sensor_mixgo_cc_mmc5603_get_magnetic:()=>Eg,sensor_mixgo_light:()=>Fc,sensor_mixgo_nova_LTR308:()=>wc,sensor_mixgo_nova_pin_near:()=>Uc,sensor_mixgo_pin_near:()=>Gc,sensor_mixgo_pin_near_double:()=>Bc,sensor_mixgo_pin_near_single:()=>Vc,sensor_mixgo_pin_pressed:()=>gc,sensor_mixgo_sant_color:()=>kc,sensor_mixgo_touch_slide:()=>Ac,sensor_mixgocar42_button_attachInterrupt:()=>cc,sensor_mixgocar42_button_get_presses:()=>Rc,sensor_mixgocar42_button_is_pressed:()=>Ec,sensor_mixgocar42_button_was_pressed:()=>Oc,sensor_mixgocar_battery_left:()=>Pg,sensor_mixgocar_pin_near:()=>fg,sensor_mixgocar_pin_near_line:()=>Dg,sensor_mixgocar_pin_near_state_change:()=>Fg,sensor_mixgoce_pin_pressed:()=>Cc,sensor_mixgoce_temperature:()=>gg,sensor_mixgome_temperature:()=>cg,sensor_mpython_pin_pressed:()=>Sc,sensor_mpython_qmi8658_get_gyro:()=>Cg,sensor_mpython_qmi8658_temperature:()=>Sg,sensor_onboard_compass_reset:()=>mg,sensor_onboard_mpu9250_calibrate_compass:()=>Tg,sensor_onboard_mpu9250_field_strength:()=>hg,sensor_onboard_mpu9250_gesture:()=>rg,sensor_onboard_mpu9250_get_acceleration:()=>dg,sensor_onboard_mpu9250_get_gyro:()=>Ig,sensor_onboard_mpu9250_get_magnetic:()=>lg,sensor_onboard_mpu9250_temperature:()=>Mg,sensor_pin_near:()=>wg,sensor_pin_pressed:()=>Ug,sensor_read:()=>Qg,sensor_rm_acc:()=>Ng,sensor_rm_battery_left:()=>Lg,sensor_rm_pin_near_double:()=>Ag,sensor_rtc_init:()=>zc,sensor_sound:()=>tg,sensor_temperature:()=>Kg});var U={};t.r(U),t.d(U,{serial_any:()=>hC,serial_begin:()=>cC,serial_print:()=>dC,serial_print_byte:()=>rC,serial_print_hex:()=>IC,serial_println:()=>lC,serial_read_from_ai:()=>FC,serial_readline:()=>mC,serial_readstr:()=>MC,serial_readstr_until:()=>EC,serial_receive_data_event:()=>TC,serial_send_to_ai:()=>fC,serial_softserial:()=>RC,serial_softserial_new:()=>OC,system_input:()=>gC,system_print:()=>CC,system_print_container:()=>NC,system_print_end:()=>AC,system_print_inline:()=>SC,system_print_item:()=>DC,system_print_many:()=>LC});var w={};t.r(w),t.d(w,{Panic_with_status_code:()=>XC,Timer_init:()=>JC,base_delay:()=>zC,controls_delay:()=>vC,controls_delay_new:()=>YC,controls_millis:()=>xC,controls_uname:()=>VC,raw_block:()=>yC,reset:()=>bC,system_bitbot_shutdown:()=>KC,system_machine_reset:()=>WC,system_ticks_diff:()=>UC,system_timer:()=>GC,system_timer_init:()=>wC,system_wdt_feed:()=>kC,system_wdt_init:()=>HC,time_ticks_diff:()=>qC,timer:()=>BC,timer2:()=>QC});var H={};t.r(H),t.d(H,{Air_daily_content:()=>rS,Air_now_content:()=>nS,Geo_moon_content:()=>lS,Geo_sun_content:()=>dS,Life_suggestion_content:()=>_S,Location_search_content:()=>pS,Tide_daily_content:()=>oS,WEATHER_DAILY:()=>$C,WEATHER_HOUR:()=>tS,WEATHER_NOW:()=>ZC,Weather_alarm_content:()=>sS,Weather_daily:()=>aS,Weather_daily_content:()=>uS,Weather_now:()=>eS,Weather_now_content:()=>iS});var k={};t.r(k),t.d(k,{PIN_init:()=>rA,actuator_extern_get_led_bright:()=>YS,actuator_extern_get_led_state:()=>vS,actuator_extern_led_bright:()=>PS,actuator_extern_led_brightness:()=>XS,actuator_ms32006_dcmotor:()=>RS,actuator_ms32006_init:()=>OS,actuator_ms32006_stepper:()=>cS,actuator_neopixel_init:()=>bS,actuator_neopixel_rgb:()=>VS,actuator_neopixel_rgb_all:()=>xS,actuator_neopixel_write:()=>yS,actuator_use_uart_init:()=>BS,esp32_music_get_tempo_extern:()=>NS,esp32_music_pitch:()=>CS,esp32_music_pitch_init:()=>gS,esp32_music_pitch_with_time:()=>SS,esp32_music_play_list:()=>DS,esp32_music_reset_extern:()=>fS,esp32_music_set_tempo_extern:()=>LS,esp32_music_stop:()=>AS,mixbot_actuator_extern_get_addr:()=>aA,mixbot_actuator_extern_set_addr:()=>uA,mixbot_addr_extern:()=>qS,parrot_PIN_init:()=>TA,parrot_move_speed:()=>MA,pin_led_bright:()=>dA,player_play_music:()=>kS,player_set_mode:()=>HS,player_set_play:()=>US,player_set_volume:()=>wS,player_whether_stop:()=>GS,robot_led_extern:()=>$S,robot_led_extern_get_value:()=>tA,robot_motor_extern:()=>zS,robot_motor_extern_get_speed:()=>jS,robot_servo_extern_absolute_run:()=>sA,robot_servo_extern_get_status:()=>eA,robot_servo_extern_relative_continue:()=>pA,robot_servo_extern_relative_origin:()=>_A,robot_servo_extern_relative_run:()=>oA,robot_servo_extern_stop:()=>nA,robot_servo_extern_stop_mode:()=>iA,robot_traffic_light_extern:()=>ZS,servo_PIN_init:()=>lA,servo_get_angle:()=>mS,servo_get_speed:()=>ES,servo_init:()=>IS,servo_move:()=>FS,servo_move_angle:()=>IA,servo_set_angle:()=>MS,servo_set_speed:()=>hS,servo_speed_360:()=>TS,syn6288_builtin_voice:()=>JS,syn6288_get_voice:()=>KS,syn6288_set_voice:()=>WS,syn6288_tts_play:()=>QS});var W={};t.r(W),t.d(W,{actuator_dc_motor:()=>HA,actuator_dc_motor_stop:()=>kA,actuator_get_led_bright:()=>LA,actuator_get_led_state:()=>NA,actuator_led_bright:()=>AA,actuator_led_brightness:()=>DA,actuator_mixbot_buzzer_on_off:()=>qA,actuator_mixgo_nova_mic_get:()=>tL,actuator_mixgo_nova_mic_set:()=>$A,actuator_mixgo_nova_onboard_music_pitch:()=>oL,actuator_mixgo_nova_onboard_music_stop:()=>pL,actuator_mixgo_nova_play_audio:()=>sL,actuator_mixgo_nova_play_online_audio:()=>_L,actuator_mixgo_nova_record_audio:()=>nL,actuator_mixgo_nova_voice_get:()=>iL,actuator_mixgo_nova_voice_set:()=>eL,actuator_mixgo_zero_led_color:()=>fA,actuator_onboard_neopixel_rgb:()=>xA,actuator_onboard_neopixel_rgb_all:()=>yA,actuator_onboard_neopixel_rgb_show_all_chase:()=>VA,actuator_onboard_neopixel_rgb_show_all_rainbow:()=>BA,actuator_onboard_neopixel_write:()=>bA,actuator_stepper_keep:()=>UA,actuator_stepper_stop:()=>wA,analog_ble_keyboard_init:()=>EL,analog_ble_keyboard_input:()=>cL,analog_ble_keyboard_mouse_init:()=>fL,analog_ble_keyboard_mouse_input:()=>vL,analog_ble_keyboard_mouse_send_battery:()=>YL,analog_ble_keyboard_mouse_str:()=>XL,analog_ble_keyboard_send_battery:()=>CL,analog_ble_keyboard_str:()=>gL,analog_ble_mouse_init:()=>SL,analog_ble_mouse_input:()=>NL,analog_ble_mouse_keyboard_input:()=>bL,analog_ble_mouse_send_battery:()=>DL,analog_keyboard_input:()=>dL,analog_keyboard_str:()=>hL,analog_mouse_input:()=>TL,bitbot_motor:()=>ZA,bitbot_move:()=>zA,bitbot_stop:()=>jA,ble_keyboard_connect:()=>RL,ble_keyboard_get_mac:()=>OL,ble_keyboard_mouse_connect:()=>PL,ble_keyboard_mouse_get_mac:()=>FL,ble_mouse_connect:()=>LL,ble_mouse_get_mac:()=>AL,cc_number:()=>FA,educore_ble_keyboard_input:()=>WL,educore_ble_sensor_connected:()=>kL,educore_ble_sensor_init:()=>HL,educore_buzzer:()=>xL,educore_buzzer_play_tone:()=>yL,educore_buzzer_play_tone_time:()=>VL,educore_buzzer_stop:()=>BL,educore_neopixel_clear:()=>wL,educore_neopixel_rgb:()=>UL,educore_rgb_light:()=>GL,esp32_music_get_tempo:()=>mA,esp32_music_reset:()=>gA,esp32_music_set_tempo:()=>hA,esp32_onboard_music_pitch:()=>EA,esp32_onboard_music_pitch_with_time:()=>OA,esp32_onboard_music_play_list:()=>cA,esp32_onboard_music_stop:()=>RA,general_key:()=>IL,general_key_tuple:()=>mL,get_power_output:()=>uL,ledswitch:()=>SA,mixbot_motor:()=>QA,mixbot_motor_status:()=>WA,mixbot_move:()=>KA,mixbot_stop:()=>JA,mouse_key:()=>ML,number:()=>CA,rm_actuator_get_led_bright:()=>YA,rm_actuator_get_led_state:()=>vA,rm_actuator_led_bright:()=>PA,rm_actuator_led_brightness:()=>XA,rm_motor:()=>GA,set_all_power_output:()=>rL,set_power_output:()=>aL,special_key:()=>lL});var K={};t.r(K),t.d(K,{ai_sensor_20object:()=>SN,ai_sensor_ailocal_class:()=>IN,ai_sensor_ailocal_class_result:()=>TN,ai_sensor_ailocal_train:()=>lN,ai_sensor_asr_recognize:()=>ON,ai_sensor_audio_play:()=>hN,ai_sensor_audio_record:()=>MN,ai_sensor_barcode:()=>ZL,ai_sensor_circle:()=>sN,ai_sensor_classifier_faces:()=>CN,ai_sensor_color:()=>aN,ai_sensor_color_chases:()=>dN,ai_sensor_color_chases_result:()=>rN,ai_sensor_config:()=>QL,ai_sensor_face:()=>gN,ai_sensor_find_20objects:()=>AN,ai_sensor_find_barcodes:()=>$L,ai_sensor_find_circles:()=>_N,ai_sensor_find_colors:()=>uN,ai_sensor_find_licenseplates:()=>cN,ai_sensor_find_lines:()=>nN,ai_sensor_find_qrcodes:()=>jL,ai_sensor_find_rects:()=>pN,ai_sensor_find_tags:()=>eN,ai_sensor_licenseplate:()=>RN,ai_sensor_line:()=>iN,ai_sensor_qrcode:()=>zL,ai_sensor_qrcode_lite:()=>JL,ai_sensor_rect:()=>oN,ai_sensor_rgb:()=>qL,ai_sensor_tag:()=>tN,ai_sensor_use_uart_init:()=>KL,ai_sensor_yolo_recognize:()=>mN,ai_sensor_yolo_recognize_result:()=>EN});var J={};t.r(J),t.d(J,{MICROPYTHON_AI_Speech_asr:()=>DN,MICROPYTHON_AI_Speech_unit:()=>NN,MICROPYTHON_AI_client:()=>LN});var Q={};t.r(Q),t.d(Q,{mpython_blynk_app_data:()=>GN,mpython_blynk_app_notify:()=>bN,mpython_blynk_email:()=>UN,mpython_blynk_get_timers:()=>yN,mpython_blynk_on_connected:()=>YN,mpython_blynk_on_disconnected:()=>PN,mpython_blynk_run:()=>XN,mpython_blynk_sensor_data_to_app:()=>BN,mpython_blynk_set_property:()=>wN,mpython_blynk_setup:()=>HN,mpython_blynk_stop_timers:()=>xN,mpython_blynk_sync_virtual:()=>FN,mpython_blynk_terminal_widget_vpin:()=>fN,mpython_blynktimer:()=>VN,mpython_blynktimer_run:()=>vN});var q={};t.r(q),t.d(q,{communicate_bluetooth_central_init:()=>SD,communicate_bluetooth_connect:()=>ND,communicate_bluetooth_disconnect:()=>DD,communicate_bluetooth_handle:()=>XD,communicate_bluetooth_is_connected:()=>FD,communicate_bluetooth_mac:()=>fD,communicate_bluetooth_peripheral_init:()=>AD,communicate_bluetooth_recv:()=>vD,communicate_bluetooth_recv_only:()=>YD,communicate_bluetooth_scan:()=>LD,communicate_bluetooth_send:()=>PD,communicate_espnow_init:()=>bD,communicate_espnow_init_new:()=>xD,communicate_i2c_available:()=>jN,communicate_i2c_init:()=>KN,communicate_i2c_master_read:()=>zN,communicate_i2c_onboard:()=>kN,communicate_i2c_read:()=>JN,communicate_i2c_scan:()=>qN,communicate_i2c_write:()=>QN,communicate_ir_recv_init:()=>TD,communicate_ir_send_init:()=>OD,communicate_ow_init:()=>aD,communicate_ow_read:()=>dD,communicate_ow_reset:()=>rD,communicate_ow_scan:()=>uD,communicate_ow_select:()=>ID,communicate_ow_write:()=>lD,communicate_spi_buffer:()=>eD,communicate_spi_init:()=>$N,communicate_spi_onboard:()=>WN,communicate_spi_read:()=>iD,communicate_spi_read_output:()=>nD,communicate_spi_readinto:()=>sD,communicate_spi_readinto_output:()=>_D,communicate_spi_set:()=>tD,communicate_spi_write:()=>oD,communicate_spi_write_readinto:()=>pD,espnow_radio_channel:()=>wD,espnow_radio_channel_new:()=>kD,espnow_radio_on_off:()=>WD,espnow_radio_rec:()=>JD,espnow_radio_recv:()=>qD,espnow_radio_recv_certain_msg:()=>zD,espnow_radio_recv_certain_msg_new:()=>ZD,espnow_radio_recv_msg:()=>QD,espnow_radio_recv_new:()=>jD,espnow_radio_send:()=>KD,espnow_radio_txpower:()=>HD,i2c_slave_onreceive:()=>ZN,internal_variable:()=>MD,ir_recv_timeout:()=>ED,ir_transmit_busy:()=>CD,ir_transmit_conventional_data:()=>RD,ir_transmit_raw_code:()=>gD,ir_transmit_study_code:()=>cD,ir_whether_recv:()=>mD,lora_init:()=>$D,lora_packet:()=>tf,lora_recv:()=>nf,lora_send:()=>ef,network_espnow_info:()=>VD,network_espnow_mac:()=>yD,network_espnow_recv:()=>BD,network_espnow_recv_handle:()=>UD,network_espnow_send:()=>GD,recv_fun:()=>hD,urequests_attribute:()=>_f,urequests_get:()=>sf,urequests_method:()=>of});var z={};t.r(z),t.d(z,{display_animate:()=>Pf,display_circle:()=>Yf,display_color_seclet:()=>Hf,display_draw_4strings:()=>Sf,display_fill:()=>Ff,display_lcd_use_i2c_init:()=>qf,display_line:()=>Nf,display_line_arbitrarily:()=>Af,display_matrix_extern_bright_point:()=>mf,display_matrix_extern_bright_screen:()=>Of,display_matrix_extern_clear:()=>Tf,display_matrix_extern_get_pixel:()=>hf,display_matrix_extern_get_screen_pixel:()=>Ef,display_matrix_extern_image_builtins:()=>Rf,display_matrix_extern_scroll_string:()=>lf,display_matrix_extern_scroll_string_delay:()=>If,display_matrix_extern_shift:()=>Mf,display_matrix_extern_show_frame_string:()=>rf,display_matrix_extern_show_frame_string_delay:()=>df,display_matrix_extern_show_image:()=>af,display_matrix_extern_show_image_or_string_delay:()=>uf,display_matrix_use_i2c_init:()=>pf,display_oled_drawPixel:()=>bf,display_oled_showBitmap:()=>Xf,display_oled_use_i2c_init:()=>tF,display_onoff:()=>Df,display_rect:()=>Lf,display_tm1650_power:()=>yf,display_tm1650_set_brightness:()=>Gf,display_tm1650_show_dot:()=>Bf,display_tm1650_show_num:()=>Vf,display_tm_use_i2c_init:()=>xf,display_triangle:()=>vf,display_use_i2c_init:()=>Cf,extern_oled_bright_point:()=>lF,extern_oled_clear:()=>uF,extern_oled_get_pixel:()=>dF,extern_oled_hvline:()=>TF,extern_oled_line:()=>MF,extern_oled_scroll_string:()=>pF,extern_oled_scroll_string_delay:()=>aF,extern_oled_shape_rect:()=>IF,extern_oled_shift:()=>rF,extern_oled_show_frame_string:()=>_F,extern_oled_show_frame_string_delay:()=>oF,extern_oled_show_image:()=>eF,extern_oled_show_image_or_string_delay:()=>sF,extern_oled_show_image_xy:()=>iF,extern_oled_show_string:()=>nF,image_shift:()=>ff,lcd_backlight:()=>Zf,lcd_clear:()=>$f,lcd_print_string:()=>jf,lcd_show_image_or_string_delay:()=>zf,matrix_extern_image_arithmetic:()=>cf,matrix_extern_image_invert:()=>gf,tft_fill:()=>Jf,tft_line_arbitrarily:()=>Qf,tft_scroll_string_delay:()=>Kf,tft_show_frame_string_delay:()=>Wf,tft_show_image_or_string_delay:()=>kf,tft_show_image_xy:()=>wf,tft_use_spi_init:()=>Uf});var j={};t.r(j),t.d(j,{bitbot_display_image_create:()=>$F,display_bright_point:()=>FF,display_bright_screen:()=>YF,display_clear:()=>AF,display_get_pixel:()=>fF,display_get_screen_pixel:()=>PF,display_image_builtins:()=>gF,display_image_builtins_all:()=>CF,display_image_create:()=>SF,display_scroll_string:()=>RF,display_scroll_string_delay:()=>cF,display_shift:()=>DF,display_show_frame_string:()=>EF,display_show_frame_string_delay:()=>OF,display_show_image:()=>hF,display_show_image_or_string_delay:()=>mF,draw_pointer:()=>CP,image_arithmetic:()=>LF,image_invert:()=>NF,mixbot_display_bright_screen:()=>jF,mixbot_display_get_ambientbright:()=>zF,mixbot_display_get_screen_pixel:()=>qF,mixbot_display_image_create:()=>QF,mixbot_display_rotate:()=>ZF,mixgo_display_image_create_new:()=>xF,mixgome_display_font:()=>bF,mixgome_display_image_create:()=>vF,mixgomini_display_image_create:()=>XF,mpython_display_hvline:()=>KF,mpython_display_line:()=>JF,mpython_display_shape_rect:()=>WF,mpython_pbm_image:()=>yF,onboard_oled_bright_point:()=>kF,onboard_oled_scroll_string_delay:()=>HF,onboard_oled_show_frame_string_delay:()=>wF,onboard_oled_show_image:()=>VF,onboard_oled_show_image_or_string_delay:()=>UF,onboard_oled_show_image_xy:()=>BF,onboard_oled_show_string:()=>GF,onboard_tft_bright_point:()=>IP,onboard_tft_bright_screen:()=>MP,onboard_tft_clear:()=>rP,onboard_tft_clock_clear:()=>cP,onboard_tft_clock_draw:()=>RP,onboard_tft_clock_get_rtctime:()=>EP,onboard_tft_clock_init:()=>mP,onboard_tft_clock_set_time:()=>OP,onboard_tft_display_hvline:()=>aP,onboard_tft_display_line:()=>uP,onboard_tft_display_shape_circle:()=>gP,onboard_tft_display_shape_rect:()=>pP,onboard_tft_fill:()=>hP,onboard_tft_get_pixel:()=>lP,onboard_tft_get_screen_pixel:()=>TP,onboard_tft_scroll_string:()=>_P,onboard_tft_scroll_string_delay:()=>oP,onboard_tft_shift:()=>dP,onboard_tft_show_frame_string:()=>nP,onboard_tft_show_frame_string_delay:()=>sP,onboard_tft_show_image:()=>tP,onboard_tft_show_image_or_string_delay:()=>iP,onboard_tft_show_image_xy:()=>eP});var Z={};t.r(Z),t.d(Z,{factory_block:()=>PP,factory_block_return:()=>YP,factory_block_return_with_textarea:()=>XP,factory_block_with_textarea:()=>vP,factory_callMethod_noreturn:()=>fP,factory_callMethod_return:()=>FP,factory_declare:()=>DP,factory_from_import:()=>SP,factory_function_noreturn:()=>LP,factory_function_return:()=>NP,factory_import:()=>AP,folding_block:()=>bP});var $={};t.r($),t.d($,{inout_analog_atten:()=>zP,inout_analog_read:()=>HP,inout_analog_read_init:()=>qP,inout_analog_write:()=>GP,inout_analog_write_init:()=>QP,inout_analog_write_set:()=>UP,inout_digital_init:()=>KP,inout_digital_read:()=>VP,inout_digital_write:()=>yP,inout_highlow:()=>xP,inout_pin_attachInterrupt:()=>WP,inout_pin_pressed:()=>kP,inout_pin_pressed_init:()=>jP,inout_pwm_analog_write:()=>BP,inout_pwm_analog_write_init:()=>JP,inout_pwm_analog_write_set_freq:()=>wP});var tt={};t.r(tt),t.d(tt,{IOT_EMQX_INIT_AND_CONNECT_BY_MIXLY_CODE:()=>hY,IOT_EMQX_INIT_AND_CONNECT_BY_SHARE_CODE:()=>TY,IOT_EMQX_PING:()=>mY,IOT_FORMATTING:()=>lY,IOT_FORMAT_STRING:()=>IY,IOT_MIXIO_NTP:()=>EY,IOT_MIXIO_PUBLISH:()=>_Y,IOT_MIXIO_SUBSCRIBE:()=>oY,iot_client_onboard:()=>OY,iot_http_client:()=>RY,iot_http_data:()=>cY,iot_mixio_check:()=>uY,iot_mixio_connect:()=>sY,iot_mixio_connect_only:()=>aY,iot_mixio_disconnect:()=>pY,iot_mixio_format_msg:()=>dY,iot_mixio_format_topic:()=>rY,iot_mixly_key:()=>MY,iot_mqtt_client:()=>gY,iot_mqtt_data:()=>CY,iot_onenet_check:()=>iY,iot_onenet_connect:()=>$P,iot_onenet_disconnect:()=>tY,iot_onenet_publish:()=>nY,iot_onenet_publish_dict:()=>eY,iot_wifi_connect:()=>ZP});var et={};t.r(et),t.d(et,{educore_mqtt_connect:()=>tv,educore_mqtt_connect_success:()=>sv,educore_mqtt_subscribe_message:()=>ev,educore_mqtt_topic_publish:()=>nv,educore_mqtt_topic_subscribe:()=>iv,educore_wifi_connect:()=>$Y,network_ap_connect:()=>YY,network_connect:()=>AY,network_get_connect:()=>NY,network_get_wifi:()=>PY,network_init:()=>SY,network_is_active:()=>FY,network_open:()=>fY,network_scan:()=>vY,network_server:()=>XY,network_socket_accept:()=>BY,network_socket_bind:()=>xY,network_socket_close:()=>kY,network_socket_connect:()=>yY,network_socket_init:()=>bY,network_socket_listen:()=>VY,network_socket_receive:()=>GY,network_socket_receive_from:()=>wY,network_socket_send:()=>UY,network_socket_send_to:()=>HY,network_stop:()=>DY,network_wifi_connect:()=>LY,ntptime_address:()=>qY,ntptime_time:()=>QY,requests_attribute:()=>KY,requests_attribute2:()=>jY,requests_get:()=>WY,requests_get2:()=>zY,requests_method:()=>JY,requests_post:()=>ZY});var it={};t.r(it),t.d(it,{CI130X_BROADCAST:()=>Nv,CI130X_GET_THE_RECOGNIZED_CMD:()=>Lv,CI130X_GET_WHETHER_IDENTIFY:()=>Av,CI130X_IDENTIFY_AND_SAVE:()=>Sv,CI130X_SET_SYSTEM_CMD:()=>Dv,HCSR04:()=>sX,PS2_Button:()=>pX,PS2_Buttons:()=>aX,PS2_Buttons_new:()=>hX,PS2_State:()=>uX,PS2_init:()=>_X,PS2_init_new:()=>TX,PS2_stk:()=>rX,PS2_stk_new:()=>mX,PS2_vibration:()=>oX,PS2_vibration_new:()=>MX,RTC_get_time:()=>lX,RTC_set_date:()=>lv,RTC_set_datetime:()=>dX,RTC_set_time:()=>dv,camera_sensor_init:()=>JX,camera_sensor_result:()=>QX,educore_body_sensor:()=>yX,educore_button_sensor_extern:()=>UX,educore_camera_sensor:()=>KX,educore_infrared_sensor:()=>GX,educore_soilhum_sensor:()=>VX,educore_temp_sensor:()=>WX,educore_temphum_sensor:()=>BX,educore_ultrasonic_sensor:()=>HX,esp32_s2_weather_init:()=>tX,esp32_s2_weather_rain:()=>iX,esp32_s2_weather_wd:()=>eX,esp32_s2_weather_ws:()=>nX,extern_rfid_read:()=>wv,extern_rfid_readcontent:()=>kv,extern_rfid_readid:()=>Hv,extern_rfid_status:()=>Jv,extern_rfid_write:()=>Wv,extern_rfid_write_return:()=>Kv,gnss_get_data:()=>RX,gnss_have_data:()=>cX,interaction_whether_to_interaction:()=>gv,interaction_whether_to_interaction_SANT:()=>Cv,mixbot_sensor_extern_get_addr:()=>FX,mixbot_sensor_extern_set_addr:()=>PX,pm25_get_data:()=>OX,radar_set_DETECTION_THRESHOLD:()=>Rv,radar_set_DETECTION_THRESHOLD_SANT:()=>cv,robot_button_extern_get_value:()=>gX,robot_color_extern_get_value:()=>NX,robot_infrared_extern_get_value:()=>SX,robot_infrared_extern_grey_get_value:()=>AX,robot_potentiometer_extern_get_value:()=>LX,robot_sonar_extern_get_value:()=>DX,robot_sonar_extern_led:()=>fX,robot_touch_extern_get_value:()=>CX,sensor_APDS9960_extern:()=>Fv,sensor_DS18X20:()=>xX,sensor_LTR308_extern:()=>Pv,sensor_LTR390UV_extern:()=>xv,sensor_MAX30102_extern:()=>fv,sensor_QMC5883L_extern:()=>yv,sensor_VL530LX_extern:()=>Gv,sensor_aht11_extern:()=>Bv,sensor_bmp:()=>mv,sensor_dht11:()=>IX,sensor_distance_hrsc04:()=>rv,sensor_hp203_extern:()=>Yv,sensor_ltr381_extern:()=>Xv,sensor_mixgo_extern_button_attachInterrupt:()=>av,sensor_mixgo_extern_button_get_presses:()=>pv,sensor_mixgo_extern_button_is_pressed:()=>_v,sensor_mixgo_extern_button_was_pressed:()=>ov,sensor_mixgo_extern_light:()=>Iv,sensor_mixgo_extern_pin_near:()=>Mv,sensor_mixgo_extern_sound:()=>Tv,sensor_mixgoce_hot_wheel_degrees:()=>$v,sensor_mixgoce_hot_wheel_is_touched:()=>Zv,sensor_mpu9250_attachGestureInterrupt:()=>uv,sensor_read_humiture:()=>wX,sensor_rtc_init:()=>hv,sensor_sht:()=>Ev,sensor_shtc3_extern:()=>Vv,sensor_spl06_001_extern:()=>vv,sensor_ucs12071_extern:()=>bv,sensor_use_i2c_init:()=>Ov,sensor_use_spi_init:()=>Uv,sensor_use_uart_init:()=>EX,sensor_weather_solo_init:()=>YX,sensor_weather_solo_rain:()=>bX,sensor_weather_solo_wd:()=>vX,sensor_weather_solo_ws:()=>XX,sensor_weigh_init:()=>qX,ultrasonic_sensor_read_distance:()=>kX,weather_data:()=>Qv,weather_have_data:()=>qv,weather_set_label:()=>jv,weather_uart_mixio:()=>zv,weigh_sensor_get_weight:()=>zX});var nt={};t.r(nt),t.d(nt,{CI130X_BROADCAST_SANT:()=>qx,CI130X_GET_THE_RECOGNIZED_CMD_SANT:()=>Qx,CI130X_GET_WHETHER_IDENTIFY_SANT:()=>Jx,CI130X_IDENTIFY_AND_SAVE_SANT:()=>Kx,CI130X_SET_SYSTEM_CMD_SANT:()=>zx,HCSR04:()=>_b,bitbot_als_num:()=>Lx,dht11:()=>Xx,educore_button_sensor:()=>Ux,educore_button_was_pressed:()=>wx,educore_gyroscope_sensor:()=>Vx,educore_gyroscope_sensor_read:()=>Bx,educore_gyroscope_sensor_shake:()=>Gx,educore_light_sensor:()=>yx,educore_rfid_sensor:()=>Hx,educore_rfid_sensor_scan:()=>kx,educore_rfid_sensor_scan_data:()=>Wx,educore_voice_sensor:()=>bx,number1:()=>ob,number2:()=>pb,number3:()=>ab,number4:()=>ub,number5:()=>rb,number6:()=>db,number7:()=>lb,onboard_RTC_get_time:()=>ix,onboard_RTC_get_time_str:()=>_x,onboard_RTC_get_timestamp:()=>nx,onboard_RTC_get_timetuple_to_str:()=>ox,onboard_RTC_set_datetime:()=>tx,onboard_RTC_settime_string:()=>ex,onboard_RTC_timestamp_totuple:()=>sx,rfid_readcontent:()=>Db,rfid_readid:()=>Nb,rfid_write:()=>fb,rfid_write_return:()=>Fb,sensor_LTR308:()=>gb,sensor_adxl345_get_acceleration:()=>Bb,sensor_aht11:()=>Ab,sensor_bitbot_ALS:()=>Ax,sensor_button_get_presses:()=>fx,sensor_button_is_pressed:()=>Nx,sensor_button_was_pressed:()=>Dx,sensor_compass_reset:()=>Wb,sensor_ds18x20:()=>Rb,sensor_eulerangles:()=>Yb,sensor_get_acceleration:()=>Pb,sensor_get_temperature:()=>Lb,sensor_hp203:()=>Sb,sensor_light:()=>vx,sensor_lm35:()=>cb,sensor_mixbot_get_gyro:()=>Sx,sensor_mixbot_patrol_calibrate:()=>cx,sensor_mixbot_patrol_value:()=>gx,sensor_mixbot_temperature:()=>Cx,sensor_mixgo_LTR308:()=>mb,sensor_mixgo_button_attachInterrupt:()=>tb,sensor_mixgo_button_get_presses:()=>$X,sensor_mixgo_button_is_pressed:()=>jX,sensor_mixgo_button_was_pressed:()=>ZX,sensor_mixgo_cc_mmc5603_calibrate_compass:()=>ux,sensor_mixgo_cc_mmc5603_get_angle:()=>ax,sensor_mixgo_cc_mmc5603_get_magnetic:()=>px,sensor_mixgo_light:()=>Yx,sensor_mixgo_nova_LTR308:()=>Ob,sensor_mixgo_nova_pin_near:()=>hb,sensor_mixgo_pin_near:()=>Mb,sensor_mixgo_pin_near_double:()=>Tb,sensor_mixgo_pin_near_single:()=>Ib,sensor_mixgo_pin_pressed:()=>yb,sensor_mixgo_sant_color:()=>Eb,sensor_mixgo_touch_slide:()=>xb,sensor_mixgocar42_button_attachInterrupt:()=>sb,sensor_mixgocar42_button_get_presses:()=>nb,sensor_mixgocar42_button_is_pressed:()=>eb,sensor_mixgocar42_button_was_pressed:()=>ib,sensor_mixgocar_battery_left:()=>Rx,sensor_mixgocar_pin_near:()=>Ex,sensor_mixgocar_pin_near_line:()=>mx,sensor_mixgocar_pin_near_state_change:()=>Ox,sensor_mixgoce_pin_pressed:()=>bb,sensor_mixgoce_temperature:()=>dx,sensor_mixgome_temperature:()=>rx,sensor_mpu9250_calibrate_compass:()=>wb,sensor_mpu9250_field_strength:()=>kb,sensor_mpu9250_gesture:()=>vb,sensor_mpu9250_get_acceleration:()=>Xb,sensor_mpu9250_get_gyro:()=>Ub,sensor_mpu9250_get_magnetic:()=>Gb,sensor_mpu9250_temperature:()=>Hb,sensor_mpython_pin_pressed:()=>Vb,sensor_mpython_qmi8658_get_gyro:()=>lx,sensor_mpython_qmi8658_temperature:()=>Ix,sensor_onboard_compass_reset:()=>$b,sensor_onboard_mpu9250_calibrate_compass:()=>zb,sensor_onboard_mpu9250_field_strength:()=>Zb,sensor_onboard_mpu9250_gesture:()=>Kb,sensor_onboard_mpu9250_get_acceleration:()=>Jb,sensor_onboard_mpu9250_get_gyro:()=>qb,sensor_onboard_mpu9250_get_magnetic:()=>Qb,sensor_onboard_mpu9250_temperature:()=>jb,sensor_pin_near:()=>Px,sensor_pin_pressed:()=>Fx,sensor_read:()=>xx,sensor_rm_acc:()=>hx,sensor_rm_battery_left:()=>Mx,sensor_rm_pin_near_double:()=>Tx,sensor_sound:()=>Cb});var st={};t.r(st),t.d(st,{serial_any:()=>ey,serial_print:()=>jx,serial_print_byte:()=>Zx,serial_print_hex:()=>ty,serial_println:()=>$x,serial_read_from_ai:()=>ly,serial_readline:()=>ny,serial_readstr:()=>iy,serial_send_to_ai:()=>dy,serial_softserial:()=>sy,serial_softserial_new:()=>_y,system_input:()=>oy,system_print:()=>py,system_print_end:()=>uy,system_print_inline:()=>ay,system_print_many:()=>ry});var _t={};t.r(_t),t.d(_t,{Panic_with_status_code:()=>Sy,Timer_init:()=>By,base_delay:()=>wy,controls_delay:()=>fy,controls_delay_new:()=>Fy,controls_end_program:()=>Ly,controls_millis:()=>Ay,controls_uname:()=>Dy,reset:()=>Ny,system_bitbot_shutdown:()=>Vy,system_device_name:()=>gy,system_device_serial_number:()=>Cy,system_event_bus_source:()=>Ry,system_event_bus_value:()=>cy,system_machine_reset:()=>yy,system_on_event:()=>my,system_raise_event:()=>hy,system_reset:()=>Ty,system_run_in_background:()=>Iy,system_ticks_diff:()=>vy,system_timer:()=>Yy,system_timer_init:()=>Xy,system_timestamp:()=>Ey,system_value:()=>Oy,system_wait:()=>My,system_wdt_feed:()=>xy,system_wdt_init:()=>by,time_ticks_diff:()=>Uy,timer:()=>Py,timer2:()=>Gy});var ot={};t.r(ot),t.d(ot,{Air_daily_content:()=>eV,Air_now_content:()=>Qy,Geo_moon_content:()=>nV,Geo_sun_content:()=>iV,Life_suggestion_content:()=>zy,Location_search_content:()=>Zy,Tide_daily_content:()=>jy,WEATHER_DAILY:()=>ky,WEATHER_HOUR:()=>Wy,WEATHER_NOW:()=>Hy,Weather_alarm_content:()=>qy,Weather_daily:()=>$y,Weather_daily_content:()=>tV,Weather_now:()=>Ky,Weather_now_content:()=>Jy});var pt={};t.r(pt),t.d(pt,{analog_input:()=>MV,analog_output:()=>mV,espnow_channel:()=>lV,haskylens_model:()=>IV,i2c_A_pin:()=>EV,i2c_B_pin:()=>OV,pins_analog:()=>SV,pins_analog_pin:()=>AV,pins_axis:()=>UV,pins_brightness:()=>wV,pins_builtinimg:()=>XV,pins_builtinimg_extern:()=>bV,pins_button:()=>DV,pins_dac:()=>LV,pins_dac_pin:()=>NV,pins_digital:()=>pV,pins_digital_dot:()=>zV,pins_digital_pin:()=>aV,pins_exlcdh:()=>BV,pins_exlcdv:()=>GV,pins_imglist:()=>xV,pins_input_pin:()=>uV,pins_mpython_touch:()=>dV,pins_one_more:()=>qV,pins_output_pin:()=>rV,pins_playlist:()=>yV,pins_playlist_extern:()=>VV,pins_pwm:()=>fV,pins_pwm_pin:()=>FV,pins_radio_datarate:()=>QV,pins_radio_power:()=>JV,pins_serial:()=>vV,pins_tone_notes:()=>KV,pins_touch:()=>YV,pins_touch_pin:()=>PV,pins_tts_bgmusic:()=>WV,pins_tts_builtin_music:()=>kV,pins_tts_voice:()=>HV,pwm_input:()=>TV,pwm_output:()=>hV,spi_A_pin:()=>RV,spi_B_pin:()=>cV,spi_C_pin:()=>gV,spi_D_pin:()=>CV});var at={};t.r(at),t.d(at,{espnow_channel:()=>oB,haskylens_model:()=>pB,pins_analog:()=>nB,pins_analog_pin:()=>iB,pins_axis:()=>RB,pins_brightness:()=>CB,pins_builtinimg:()=>MB,pins_builtinimg_extern:()=>hB,pins_button:()=>ZV,pins_dac:()=>rB,pins_dac_pin:()=>uB,pins_digital:()=>jV,pins_digital_dot:()=>PB,pins_digital_pin:()=>$V,pins_exlcdh:()=>cB,pins_exlcdv:()=>gB,pins_imglist:()=>mB,pins_input_pin:()=>tB,pins_interrupt:()=>IB,pins_mpython_touch:()=>aB,pins_one_more:()=>FB,pins_output_pin:()=>eB,pins_playlist:()=>EB,pins_playlist_extern:()=>OB,pins_pwm:()=>_B,pins_pwm_pin:()=>sB,pins_radio_datarate:()=>fB,pins_radio_power:()=>DB,pins_serial:()=>TB,pins_tone_notes:()=>NB,pins_touch:()=>lB,pins_touch_pin:()=>dB,pins_tts_bgmusic:()=>LB,pins_tts_builtin_music:()=>AB,pins_tts_voice:()=>SB});const ut=Blockly,rt=Mixly,dt={NAME_TYPE:"VARIABLE",allVariables:function(t){var e;if(t.getDescendants)e=t.getDescendants();else{if(!t.getAllBlocks)throw"Not Block or Workspace: "+t;e=t.getAllBlocks()}for(var i=Object.create(null),n=0;n1&&(o+=n)):i=o}else i="i";return i}},lt=dt; /** * @license * Visual Blocks Editor @@ -18,4 +18,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Yt={init:function(){this.setColour(Lt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vt={init:function(){this.setColour(Lt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Lt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},yt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Gt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ut={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Ht={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},kt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Wt={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Lt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Kt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},Jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Qt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},qt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_GET_UNIQUE_IDEN)}},te={init:function(){this.setColour(Lt),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ut.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ee={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},ie=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ne={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ie),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ie),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ue={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(ie),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ie={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ie),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Te={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ie),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ie),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},me={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ie),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Re={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"],[ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_INT,"bti"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ce={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ge=he,Ce={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Se={init:function(){this.setColour(ie),this.itemCount_=1,this.setMutator(new ut.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ut.Msg.MIXLY_PRODUCT+ut.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ut.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ut.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const De={init:function(){this.setColour(Ae),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},fe={init:function(){this.setColour(Ae),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Fe={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Pe={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ye={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Xe={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},be={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},xe={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ye={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ve={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Be={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Ge={init:function(){this.setColour(Ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},Ue={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},we={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ae),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},He={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},We={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Ke={init:function(){this.setColour(Ae),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Je={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ae),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Qe={init:function(){this.setColour(Ae),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(wi),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(wi),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ki={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ji={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},Qi={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},qi={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},zi={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},ji={init:function(){this.setColour(wi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$i={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},nn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sn={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},_n={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},pn={init:function(){this.setColour(wi),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},an={init:function(){this.setColour(wi),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},un={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},rn={init:function(){this.setColour(wi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},In=210,Tn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Mn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},hn={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},mn={init:function(){this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},En={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},On={init:function(){this.setColour(In),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},Rn={init:function(){this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},cn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},gn={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Cn={init:function(){this.setColour(In),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Sn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},An={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},bn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const xn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Jn={};Jn.NAME_TYPE=ut.PROCEDURE_CATEGORY_NAME,Jn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ws={init:function(){this.setColour(xs),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},Hs={init:function(){this.setColour(xs),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ks={init:function(){this.setColour(xs),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(xs),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ks={init:function(){this.setColour(xs),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js=160,Qs={init:function(){this.setColour(Js),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},qs={init:function(){this.setColour(Js),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},zs={init:function(){this.setColour(Js),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},js={init:function(){this.setColour(Js),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},Zs={init:function(){this.setColour(Js),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},$s={init:function(){this.setColour(Js),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},t_={init:function(){this.setColour(Js),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const Jp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},Qp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},qp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},zp=function(t,e){return["None",e.ORDER_ATOMIC]},jp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},Zp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},$p=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ta=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ea=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},ia=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},na=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},sa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},_a=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},oa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},pa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},aa=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ua=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},da=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},la=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ia=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ta=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ma=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ha=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},ma=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ea=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Oa=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},Ra=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ca=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},ga=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Ca=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},su=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},_u=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},pu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},au=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},uu=function(t,e){return'"},ru=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},du=function(){return this.getFieldValue("TEXT")+"\n"},lu=function(t){return t.getFieldValue("TEXT")+"\n"},Iu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},Tu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},Mu=function(){return""},hu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},mu=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},Ou.scrubNakedValue=function(t){return t+"\n"},Ou.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},Ou.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},Ou.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=ut.utils.string.wrap(_,Ou.COMMENT_WRAP-3),n+=Ou.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const Ru="#74A55B",cu={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},gu={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Cu={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Su={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Au={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Lu={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Nu={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Du={init:function(){this.setColour(Ru),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},fu={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Fu={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Pu={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Yu={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},vu={init:function(){this.setColour(Ru),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Xu={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},bu={init:function(){this.setColour(Ru),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},xu={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},yu={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Vu={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Bu={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},Gu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Uu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},wu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Hu={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},ku={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Wu={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Ku={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Ju={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+ut.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Qu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_WHETHER).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_STOPPED,"0"],[ut.Msg.MIXLY_PLAYING,"1"],[ut.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},qu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_PLAY,"1"],[ut.Msg.MIXLY_MP3_PAUSE,"2"],[ut.Msg.MIXLY_STOP,"3"],[ut.Msg.MIXLY_MP3_PREV,"4"],[ut.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},zu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(ut.Msg.MIXLY_MP3_VOL+ut.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},ju={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE+ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_LOOP_ALL,"0"],[ut.Msg.MIXLY_MP3_LOOP_ONE,"1"],[ut.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[ut.Msg.MIXLY_MP3_LOOP_RAM,"3"],[ut.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[ut.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zu={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[ut.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},$u={},tr={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},er={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},ir={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},nr={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},sr={init:function(){this.setColour(Ru),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},_r={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},or={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},pr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ar={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ur={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},rr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},lr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},Tr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},hr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Er={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Rr={init:function(){this.setColour(Ru),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SERVO+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},gr={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Cr={init:function(){this.setColour(Ru),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MOTOR+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Sr={init:function(){this.setColour(Ru),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ar="#6C9858",Lr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},Nr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Dr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},fr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Fr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Pr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Yr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},vr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Xr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},br={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},xr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},yr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Vr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Br={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Gr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Ur={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},wr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Hr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},kr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Wr={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Kr={init:function(){this.setColour(Ar),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Jr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},Qr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},qr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},zr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},jr={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zr={init:function(){this.setColour(Ar),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},$r={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},td={init:function(){this.setColour(Ar),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ed={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},id={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},sd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},_d={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},od={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},pd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ad={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},ud={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(Ar),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Id={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Td={init:function(){this.setColour(Ar),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Md={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},hd={init:function(){this.setColour(Ar),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},md={init:function(){this.setColour(Ar),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Ed={init:function(){this.setColour(Ar),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Rd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},gd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Cd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Sd={init:function(){this.setColour(Ar),this.appendDummyInput().appendField(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RELEASE).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT)}},Ad={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SPECIAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[ut.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[ut.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[ut.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[ut.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[ut.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[ut.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Ld={init:function(){this.setColour(Ar),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GENERAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},Nd={init:function(){this.setColour(Ar),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new ut.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(ut.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},$m={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},tE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},eE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},iE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},nE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},sE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},_E={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},pE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},uE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},rE={init:function(){this.setColour(Km),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},dE={init:function(){this.setColour(Km),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},lE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},IE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},TE={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},ME={init:function(){this.setColour(Km),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},hE={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Km),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},mE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},EE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},OE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},RE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cE={init:function(){this.setColour(Km),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},gE=Jm,CE=Qm,SE=qm,AE=zm,LE=Zm,NE=225,DE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},fE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},FE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},PE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},YE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},vE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT+ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},XE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},bE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},xE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},yE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},VE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},BE={init:function(){this.setColour(NE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},GE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},UE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},wE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},HE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},kE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},WE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},KE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},JE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},QE={init:function(){this.setColour(NE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},qE={init:function(){this.setColour(NE),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},zE={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(NE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},jE={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(NE),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},ZE={init:function(){this.setColour(NE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},$E={init:function(){this.setColour(NE),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},tO="#3288dd",eO={init:function(){this.setColour(tO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS).appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},iO={init:function(){this.setColour(tO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ut.Msg.blockpy_REQUESTS+ut.Msg.OLED_STRING),this.appendDummyInput("").appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},nO={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ut.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(tO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},sO={init:function(){this.setColour(tO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},_O={init:function(){this.setColour(tO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(ut.Msg.MIXLY_EMQX_PORT).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},oO={init:function(){this.setColour(tO),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(ut.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},pO={init:function(){this.setColour(tO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aO={init:function(){this.setColour(tO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uO={init:function(){this.setColour(tO),this.appendDummyInput().appendField("mqtt"+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},rO="#A58C5B",dO={init:function(){this.setColour(rO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},lO={init:function(){this.setColour(rO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},IO={init:function(){this.setColour(rO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},TO={init:function(){this.setColour(rO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},MO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},hO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},mO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},EO={init:function(){var t=[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(rO),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},OO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},RO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},cO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},gO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},CO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},SO={init:function(){this.setColour(rO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},AO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},LO={init:function(){this.setColour(rO),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[ut.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[ut.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[ut.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[ut.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[ut.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[ut.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[ut.Msg.HTML_COLOUR+"、"+ut.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+ut.Msg.MIXLY_NEXT+"、"+ut.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[ut.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[ut.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[ut.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[ut.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},NO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},DO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},fO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},FO={init:function(){this.setColour(rO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},PO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},YO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_HELLO_XIAOZHI,"1"],[ut.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[ut.Msg.MIXLY_THE_FIRST,"3"],[ut.Msg.MIXLY_THE_SECOND,"4"],[ut.Msg.MIXLY_THE_THIRD,"5"],[ut.Msg.MIXLY_THE_FOURTH,"6"],[ut.Msg.MIXLY_THE_FIFTH,"7"],[ut.Msg.MIXLY_THE_SIXTH,"8"],[ut.Msg.MIXLY_THE_SEVENTH,"9"],[ut.Msg.MIXLY_THE_EIGHTH,"10"],[ut.Msg.MIXLY_THE_NINTH,"11"],[ut.Msg.MIXLY_THE_TENTH,"12"],[ut.Msg.MIXLY_THE_ELEVENTH,"13"],[ut.Msg.MIXLY_THE_TWELFTH,"14"],[ut.Msg.MIXLY_THE_13TH,"15"],[ut.Msg.MIXLY_THE_14TH,"16"],[ut.Msg.MIXLY_THE_15TH,"17"],[ut.Msg.MIXLY_THE_16TH,"18"],[ut.Msg.MIXLY_THE_17TH,"19"],[ut.Msg.MIXLY_THE_18TH,"20"],[ut.Msg.MIXLY_THE_19TH,"21"],[ut.Msg.MIXLY_THE_20TH,"22"],[ut.Msg.MIXLY_Turn_on_the_lights,"23"],[ut.Msg.MIXLY_Turn_off_the_lights,"24"],[ut.Msg.MIXLY_Turn_up_the_brightness,"25"],[ut.Msg.MIXLY_Turn_down_the_brightness,"26"],[ut.Msg.MIXLY_Set_it_to_red,"27"],[ut.Msg.MIXLY_Set_it_to_orange,"28"],[ut.Msg.MIXLY_Set_it_to_yellow,"29"],[ut.Msg.MIXLY_Set_it_to_green,"30"],[ut.Msg.MIXLY_Set_it_to_cyan,"31"],[ut.Msg.MIXLY_Set_it_to_blue,"32"],[ut.Msg.MIXLY_Set_it_to_purple,"33"],[ut.Msg.MIXLY_Set_it_to_white,"34"],[ut.Msg.MIXLY_Turn_on_the_fan,"35"],[ut.Msg.MIXLY_Turn_off_the_fan,"36"],[ut.Msg.MIXLY_First_gear,"37"],[ut.Msg.MIXLY_Wind_speed_second,"38"],[ut.Msg.MIXLY_Third_gear,"39"],[ut.Msg.MIXLY_Previous,"40"],[ut.Msg.MIXLY_Next_page,"41"],[ut.Msg.MIXLY_Show_smiley_face,"42"],[ut.Msg.MIXLY_Show_crying_face,"43"],[ut.Msg.MIXLY_Show_love,"44"],[ut.Msg.MIXLY_Close_display,"45"],[ut.Msg.MIXLY_Start_execution,"46"],[ut.Msg.MIXLY_FORWARD,"47"],[ut.Msg.MIXLY_BACKWARD,"48"],[ut.Msg.MIXLY_TURNLEFT,"49"],[ut.Msg.MIXLY_TURNRIGHT,"50"],[ut.Msg.MIXLY_STOP,"51"],[ut.Msg.MIXLY_Accelerate,"52"],[ut.Msg.MIXLY_retard,"53"],[ut.Msg.ROTATION_FORWARD,"54"],[ut.Msg.ROTATION_BACKWARD,"55"],[ut.Msg.MIXLY_Query_temperature,"56"],[ut.Msg.MIXLY_Query_humidity,"57"],[ut.Msg.MIXLY_Query_brightness,"58"],[ut.Msg.MIXLY_Query_sound,"59"],[ut.Msg.MIXLY_Query_time,"60"],[ut.Msg.MIXLY_Query_distance,"61"],[ut.Msg.MIXLY_Query_pressure,"62"],[ut.Msg.MIXLY_Query_key,"63"],[ut.Msg.MIXLY_Query_touch,"64"],[ut.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(ut.Msg.MIXLY_WHETHER+ut.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},vO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[ut.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[ut.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},XO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MP3_PLAY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_WIND_SPEED,"154"],[ut.Msg.MIXLY_HYETAL,"155"],[ut.Msg.MIXLY_TEMPERATURE,"156"],[ut.Msg.MIXLY_Humidity,"157"],[ut.Msg.MIXLY_Altitude,"158"],[ut.Msg.MIXLY_SOUND,"159"],[ut.Msg.MIXLY_BRIGHTNESS,"160"],[ut.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[ut.Msg.MIXLY_SERVO,"162"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[ut.Msg.MIXLY_BUTTON2,"164"],[ut.Msg.MIXLY_ESP32_TOUCH,"165"],[ut.Msg.MIXLY_PAY,"166"],[ut.Msg.MIXLY_CARSH_CHANGE,"167"],[ut.Msg.MIXLY_COUNTDOWN,"168"],[ut.Msg.MIXLY_TIMING,"169"],[ut.Msg.MIXLY_AT_THE_MOMENT,"170"],[ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[ut.Msg.MIXLY_FORWARD,"172"],[ut.Msg.MIXLY_BACKWARD,"173"],[ut.Msg.MIXLY_TURNLEFT,"174"],[ut.Msg.MIXLY_TURNRIGHT,"175"],[ut.Msg.MIXLY_STOP,"176"],[ut.Msg.MIXLY_Accelerate,"177"],[ut.Msg.MIXLY_retard,"178"],[ut.Msg.ROTATION_FORWARD,"179"],[ut.Msg.ROTATION_BACKWARD,"180"],[ut.Msg.TUPLE_JOIN,"181"],[ut.Msg.MIXLY_SHOW,"182"],[ut.Msg.MIXLY_LAMPLIGHT,"183"],[ut.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(ut.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(ut.Msg.MIXLY_UNIT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_YEAR,"117"],[ut.Msg.MIXLY_MONTH,"118"],[ut.Msg.MIXLY_DAY,"119"],[ut.Msg.MIXLY_HOUR,"120"],[ut.Msg.MIXLY_MINUTE,"121"],[ut.Msg.MIXLY_SECOND,"122"],[ut.Msg.MIXLY_WEEK2,"123"],[ut.Msg.MIXLY_RMB_UNIT,"124"],[ut.Msg.blockpy_setheading_degree,"125"],[ut.Msg.MIXLY_GEAR,"126"],[ut.Msg.MIXLY_LAYER,"127"],[ut.Msg.MIXLY_GRAM,"128"],[ut.Msg.MIXLY_METER,"129"],[ut.Msg.MIXLY_CENTIMETER,"130"],[ut.Msg.MIXLY_MILLIMETER,"131"],[ut.Msg.MIXLY_LUMEN,"132"],[ut.Msg.MIXLY_DECIBEL,"133"],[ut.Msg.MIXLY_hectopascal,"134"],[ut.Msg.MIXLY_PERCENT,"135"],[ut.Msg.MIXLY_CELSIUS,"136"],[ut.Msg.MIXLY_METER_PER_SEC,"137"],[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[ut.Msg.MIXLY_SUCCESS,"140"],[ut.Msg.MIXLY_FAILED,"141"],[ut.Msg.MIXLY_WRONG,"142"],[ut.Msg.MIXLY_GOOD,"143"],[ut.Msg.MIXLY_blockpy_set_add,"144"],[ut.Msg.MIXLY_DECREASE,"145"],[ut.Msg.COLOUR_RGB_RED,"146"],[ut.Msg.COLOUR_RGB_ORANGE,"147"],[ut.Msg.COLOUR_YELLOW,"148"],[ut.Msg.COLOUR_RGB_GREEN,"149"],[ut.Msg.COLOUR_CYAN,"150"],[ut.Msg.COLOUR_RGB_BLUE,"151"],[ut.Msg.COLOUR_RGB_PURPLE,"152"],[ut.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},bO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_SYSTEM+ut.Msg.MIXLY_CMD).appendField(new ut.FieldDropdown([[ut.Msg.MILXY_ENTER_WAKE_UP,"1"],[ut.Msg.MIXLY_INCREASE_VOLUME,"202"],[ut.Msg.MIXLY_REDUCE_VOLUME,"203"],[ut.Msg.MIXLY_MAX_VOLUME,"204"],[ut.Msg.MIXLY_MINIMUM,"205"],[ut.Msg.MIXLY_OPEN_RESPONSE,"206"],[ut.Msg.MIXLY_CLOSE_RESPONSE,"207"],[ut.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},xO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},yO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},VO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},BO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+"RGB"+ut.Msg.HTML_COLOUR,"0"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_RGB_RAW,"1"],[ut.Msg.MIXLY_GET_ENV_LIGHT+ut.Msg.MIXLY_BRIGHTNESS,"2"],[ut.Msg.GET_IR_STRENGTH+ut.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},HO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},kO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},WO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},KO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},JO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},QO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},qO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},zO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},jO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ZO={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},$O={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},tR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},eR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},iR={init:function(){this.setColour(rO),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},nR={init:function(){this.setColour(rO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},sR={init:function(){this.setColour(rO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},_R={init:function(){this.setColour(rO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},oR={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},pR={init:function(){this.setColour(rO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},aR={init:function(){this.setColour(rO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},uR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},rR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},lR={init:function(){this.setColour(rO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},_f=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},of=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},pf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},af=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},uf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},rf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},df=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},lf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},If=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},Tf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},Mf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},hf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},mf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},Ef=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Of=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Rf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},cf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},gf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},Cf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},Sf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},Af=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},Lf=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Nf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},Df=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},ff=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},Ff=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},Pf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},Yf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},vf=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},Xf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},bf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},xf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},yf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},Vf=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},Bf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},Gf=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},Uf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},wf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},Hf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},kf=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},Wf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},Kf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},Jf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},Qf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},qf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},zf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},jf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},Zf=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},$f=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},tF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},eF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},iF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},nF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},sF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},_F=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},oF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},pF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},aF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},uF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},rF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},dF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},lF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},IF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},TF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},MF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},hF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},mF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},EF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},OF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},RF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},cF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},$F=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},tP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},eP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},iP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},nP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},sP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},_P=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},oP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},pP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},aP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},uP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},rP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},dP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},lP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},IP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},TP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},MP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},hP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},mP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},EP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},OP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},RP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},cP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},gP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},CP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},ry=function(){return"control.reset()\n"},dy=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},ly=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},Iy=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Ty=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},My=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},hy=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},my=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},Ey=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},Oy=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},Ry=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},cy=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},gy=function(){return"while True:\n pass\n"},Cy=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},Sy=function(t,e){return e.definitions_.import_os="import os","os.uname()"},Ay=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Ly=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Ny=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},Dy=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},fy=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},Fy=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},Py=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},Yy=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},vy=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},Xy=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},by=Fy,xy=Dy,yy=fy,Vy=Ay,By=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Gy=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Uy=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},wy=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},Hy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},ky=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Wy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Ky=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Jy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Qy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},qy=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},zy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},jy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},Zy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},$y=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},tV={};tV["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},tV["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},tV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["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"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},tV["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const eV=tV,iV=230,nV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},sV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},_V={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},oV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},pV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},aV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},uV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},rV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},dV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},lV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},IV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},TV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},MV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},hV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},mV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},EV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},OV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},RV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},cV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},gV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},CV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},SV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},AV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},LV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},NV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},DV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},fV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},FV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},PV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},YV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},vV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},XV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},bV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},xV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},yV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},VV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},BV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},GV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},UV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},wV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},HV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},kV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},WV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},KV={init:function(){this.setColour(iV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},JV=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},QV=JV,qV=JV,zV=JV,jV=JV,ZV=JV,$V=JV,tB=JV,eB=JV,iB=JV,nB=JV,sB=JV,_B=JV,oB=JV,pB=JV,aB=JV,uB=JV,rB=JV,dB=JV,lB=JV,IB=JV,TB=JV,MB=JV,hB=JV,mB=JV,EB=JV,OB=JV,RB=JV,cB=JV,gB=JV,CB=JV,SB=JV,AB=JV,LB=JV,NB=JV;Object.assign(ut.Variables,lt),Object.assign(ut.Procedures,Qn),ut.Python=Ou,ut.generator=Ou,rt.Profile.default={},Object.assign(rt.Profile,eV),Object.assign(rt.Profile.default,eV["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,x,w,U,Y,y,H,f,G,B,V,F,D,N,X,v,b,P,pt),Object.assign(ut.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,$,_t,st,q,tt,ot,K,nt,it,et,J,W,k,j,z,Z,Q,at)})(); \ No newline at end of file +class It{constructor(t,e){if(this.variablePrefix_=e||"",this.reservedDict_=Object.create(null),t)for(var i=t.split(","),n=0;n0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+s).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_if_if");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_if_elseif");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_if_else");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_if_elseif":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_if_else":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_if_elseif":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_if_else":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.CONTROLS_IF_MSG_ELSEIF),this.appendStatementInput("DO"+t).appendField(ut.Msg.CONTROLS_IF_MSG_THEN);this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.CONTROLS_IF_MSG_ELSE)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},Yt={init:function(){this.setColour(Lt),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.PYTHON_RANGE_STEP),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_RANGE_TOOLTIP)}},vt={init:function(){this.setColour(Lt),this.appendValueInput("LIST").setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.CONTROLS_FOREACH_INPUT),this.appendValueInput("VAR").appendField(ut.Msg.CONTROLS_FOREACH_INPUT_ITEM),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("“%1”","")}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Xt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT).appendField(new ut.FieldDropdown(this.OPERATORS),"MODE"),this.appendStatementInput("DO").appendField(ut.Msg.LANG_CONTROLS_WHILEUNTIL_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return{WHILE:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_WHILE,UNTIL:ut.Msg.CONTROLS_WHILEUNTIL_TOOLTIP_UNTIL}[e]}))}},bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TRY),this.appendStatementInput("try"),this.appendValueInput("IF1").appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO1").appendField(""),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["controls_except","controls_finally"],this)),this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_TRY_TOOLTIP),this.elseifCount_=1,this.elseCount_=0},mutationToDom:function(){if(!this.elseifCount_&&!this.elseCount_)return null;var t=document.createElement("mutation");return this.elseifCount_&&t.setAttribute("elseif",this.elseifCount_),this.elseCount_&&t.setAttribute("else",1),t},domToMutation:function(t){var e=this,i=[],n=[];this.elseCount_&&this.removeInput("ELSE");for(var s=this.elseifCount_;s>0;s--)e.getInputTargetBlock("IF"+s)&&e.getInputTargetBlock("IF"+s).previousConnection?i[s]=e.getInputTargetBlock("IF"+s).previousConnection:i[s]=null,this.removeInput("IF"+s),e.getInputTargetBlock("DO"+s)&&e.getInputTargetBlock("DO"+s).previousConnection?n[s]=e.getInputTargetBlock("DO"+s).previousConnection:n[s]=null,this.removeInput("DO"+s);this.elseifCount_=parseInt(t.getAttribute("elseif"),10),this.elseCount_=parseInt(t.getAttribute("else"),10);for(s=1;s<=this.elseifCount_;s++)this.appendValueInput("IF"+s).setCheck([Boolean,Number]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+s).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY);for(s=i.length-2;s>0;s--)i[s]&&i[s].reconnect(this,"IF"+s);for(s=n.length-2;s>0;s--)n[s]&&n[s].reconnect(this,"DO"+s)},decompose:function(t){var e=t.newBlock("controls_try");e.initSvg();for(var i=e.getInput("STACK").connection,n=1;n<=this.elseifCount_;n++){var s=t.newBlock("controls_except");s.initSvg(),i.connect(s.previousConnection),i=s.nextConnection}if(this.elseCount_){var _=t.newBlock("controls_finally");_.initSvg(),i.connect(_.previousConnection)}return e},compose:function(t){this.elseCount_&&this.removeInput("ELSE"),this.elseCount_=0;for(var e=this.elseifCount_;e>0;e--)this.removeInput("IF"+e),this.removeInput("DO"+e);this.elseifCount_=0;for(var i=t.getInputTargetBlock("STACK"),n=[null],s=[null],_=null;i;){switch(i.type){case"controls_except":this.elseifCount_++,n.push(i.valueConnection_),s.push(i.statementConnection_);break;case"controls_finally":this.elseCount_++,_=i.statementConnection_;break;default:throw Error("Unknown block type: "+i.type)}i=i.nextConnection&&i.nextConnection.targetBlock()}this.updateShape_(),this.reconnectChildBlocks_(n,s,_)},saveConnections:function(t){for(var e=t.getInputTargetBlock("STACK"),i=1;e;){switch(e.type){case"controls_except":var n=this.getInput("IF"+i),s=this.getInput("DO"+i);e.valueConnection_=n&&n.connection.targetConnection,e.statementConnection_=s&&s.connection.targetConnection,i++;break;case"controls_finally":s=this.getInput("ELSE");e.statementConnection_=s&&s.connection.targetConnection;break;default:throw"Unknown block type."}e=e.nextConnection&&e.nextConnection.targetBlock()}},rebuildShape_:function(){var t=[null],e=[null],i=null;this.getInput("ELSE")&&(i=this.getInput("ELSE").connection.targetConnection);for(var n=1;this.getInput("IF"+n);){var s=this.getInput("IF"+n),_=this.getInput("DO"+n);console.log(s.connection.targetConnection),t.push(s.connection.targetConnection),e.push(_.connection.targetConnection),n++}this.updateShape_(),this.reconnectChildBlocks_(t,e,i)},updateShape_:function(){this.getInput("ELSE")&&this.removeInput("ELSE");for(var t=1;this.getInput("IF"+t);)this.removeInput("IF"+t),this.removeInput("DO"+t),t++;for(t=1;t<=this.elseifCount_;t++)this.appendValueInput("IF"+t).setCheck([Number,Boolean]).appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.appendStatementInput("DO"+t).appendField("");this.elseCount_&&this.appendStatementInput("ELSE").appendField(ut.Msg.MIXLY_PYTHON_FINALLY)},reconnectChildBlocks_:function(t,e,i){for(var n=1;n<=this.elseifCount_;n++)t[n]&&t[n].reconnect(this,"IF"+n),e[n]&&e[n].reconnect(this,"DO"+n);i&&i.reconnect(this,"ELSE")}},xt={init:function(){this.setColour(Lt);var t=new ut.FieldDropdown(this.OPERATORS);this.appendDummyInput().appendField(t,"FLOW").appendField(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_INPUT_OFLOOP),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_FLOW_STATEMENTS_TOOLTIP);var e=this;this.setTooltip((function(){var t=e.getFieldValue("FLOW");return{BREAK:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_BREAK,CONTINUE:ut.Msg.CONTROLS_FLOW_STATEMENTS_TOOLTIP_CONTINUE}[t]}))},onchange:function(){if(this.workspace){var t=!1,e=this;do{if("controls_repeat"==e.type||"controls_for"==e.type||"controls_forEach"==e.type||"controls_repeat_ext"==e.type||"controls_whileUntil"==e.type||"do_while"==e.type){t=!0;break}e=e.getSurroundParent()}while(e);t?this.setWarningText(null):this.setWarningText(ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_WARNING)}}},yt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.CONTROLS_FOR_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Vt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_WITH).appendField(new ut.FieldTextInput("i"),"VAR"),this.appendValueInput("FROM").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_TO),this.appendValueInput("STEP").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEP),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){return ut.Msg.MIXLY_PYTHON_CONTROLS_FOR_RANGE_TOOLTIP.replace("%1",t.getFieldValue("VAR"))}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}};Xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"WHILE"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"UNTIL"]],xt.OPERATORS=[[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_BREAK,"BREAK"],[ut.Msg.LANG_CONTROLS_FLOW_STATEMENTS_OPERATOR_CONTINUE,"CONTINUE"]];const Bt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_IF_TITLE_IF),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.CONTROLS_IF_IF_TOOLTIP),this.contextMenu=!1}},Gt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSEIF_TITLE_ELSEIF),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSEIF_TOOLTIP),this.contextMenu=!1}},Ut={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.CONTROLS_IF_ELSE_TITLE_ELSE),this.setPreviousStatement(!0),this.setTooltip(ut.Msg.CONTROLS_IF_ELSE_TOOLTIP),this.contextMenu=!1}},wt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField("try"),this.appendStatementInput("STACK"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.contextMenu=!1}},Ht={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_EXCEPT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_EXCEPT_TOOLTIP)}},kt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_FINALLY),this.setPreviousStatement(!0),this.contextMenu=!1,this.setTooltip(ut.Msg.MIXLY_MIXPY_CONTROL_FINALLY_TOOLTIP)}},Wt={init:function(){this.jsonInit({message0:ut.Msg.CONTROLS_REPEAT_TITLE,args0:[{type:"input_value",name:"TIMES"}],previousStatement:null,nextStatement:null,colour:Lt,tooltip:ut.Msg.CONTROLS_REPEAT_TOOLTIP,helpUrl:ut.Msg.CONTROLS_REPEAT_HELPURL}),this.appendStatementInput("DO")}},Kt={init:function(){this.setColour(Lt),this.appendValueInput("BOOL").appendField("lambda"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_STAT),this.setOutput(!0)}},Jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_PASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_PASS_TOOLTIP)}},Qt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_START),this.appendValueInput("callback").appendField(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_USE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_CONTROLS_THREAD_TOOLTIP)}},qt={init:function(){this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_REPEAT+ut.Msg.MIXLY_DO),this.appendStatementInput("input_data").setCheck(null),this.appendValueInput("select_data").setCheck(null).appendField(ut.Msg.CONTROLS_OPERATOR_UNTIL).appendField(new ut.FieldDropdown([[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_WHILE,"true"],[ut.Msg.LANG_CONTROLS_WHILEUNTIL_OPERATOR_UNTIL,"false"]]),"type"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(Lt),this.setTooltip("do-while loop"),this.setHelpUrl("")}},zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_OP_GARBAGE_COLLECT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},jt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_ALLOC),this.setOutput(!0)}},Zt={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_MEM_FREE),this.setOutput(!0)}},$t={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_DEVICE+"ID"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_GET_UNIQUE_IDEN)}},te={init:function(){this.setColour(Lt),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_RTC_TIMESTAMP),this.appendDummyInput().appendField(ut.Msg.MIXLY_TIMESTAMP_TO_DATA),this.setInputsInline(!0),this.setOutput(!0,Number)}},ee={init:function(){this.setColour(Lt),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_UNIQUE_IDEN),this.setOutput(!0)}},ie=230;ut.FieldTextInput.math_number_validator=function(t){return String(t)},ut.FieldTextInput.math_number_validator_include_blank=function(t){if(""===t)return"";return/^-?(0X|0x|0O|0o|0B|0b)?[a-fA-F0-9]{1,}(\.[a-fA-F0-9]+)?$/.test(t)?String(t):null};const ne={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator),"NUM"),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},se={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_TOOLTIP}[e]}))}},_e={init:function(){this.setColour(ie);this.appendDummyInput("").appendField(ut.Msg.MIXLY_PYTHON_MATH_CONSTANT).appendField(new ut.FieldDropdown([["π","pi"],["e","e"]]),"CONSTANT"),this.setOutput(!0,Number);var t=this;this.setTooltip((function(){var e=t.getFieldValue("CONSTANT");return{pi:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_PI_MP_TOOLTIP,e:ut.Msg.MIXLY_PYTHON_MATH_CONSTANT_E_MP_TOOLTIP}[e]}))}},oe={init:function(){this.setColour(ie),this.setOutput(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+","ADD"],["-","MINUS"],["×","MULTIPLY"],["÷","DIVIDE"],["%","QUYU"],["//","ZHENGCHU"],["**","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},pe={init:function(){this.setColour(ie),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown([["+=","ADD"],["-=","MINUS"],["×=","MULTIPLY"],["÷=","DIVIDE"],["%=","QUYU"],["//=","ZHENGCHU"],["**=","POWER"]]),"OP"),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{ADD:ut.Msg.MATH_ARITHMETIC_TOOLTIP_ADD,MINUS:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MINUS,MULTIPLY:ut.Msg.MATH_ARITHMETIC_TOOLTIP_MULTIPLY,DIVIDE:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,QUYU:ut.Msg.MATH_MODULO_TOOLTIP,ZHENGCHU:ut.Msg.MATH_ARITHMETIC_TOOLTIP_DIVIDE,POWER:ut.Msg.MATH_ARITHMETIC_TOOLTIP_POWER}[e]}))}},ae={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("A").setCheck(Number),this.appendValueInput("B").setCheck(Number).appendField(new ut.FieldDropdown([["&","&"],["|","|"],[">>",">>"],["<<","<<"]]),"OP"),this.setInputsInline(!0),this.setTooltip("位运算")}},ue={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown([["sin","SIN"],["cos","COS"],["tan","TAN"],["asin","ASIN"],["acos","ACOS"],["atan","ATAN"],["-","-"],["ln","LN"],["log10","LOG10"],["e^","EXP"],["10^","POW10"]]),"OP");var t=this;this.setTooltip((function(){var e=t.getFieldValue("OP");return{SIN:ut.Msg.MATH_TRIG_TOOLTIP_SIN,COS:ut.Msg.MATH_TRIG_TOOLTIP_COS,TAN:ut.Msg.MATH_TRIG_TOOLTIP_TAN,ASIN:ut.Msg.MATH_TRIG_TOOLTIP_ASIN,ACOS:ut.Msg.MATH_TRIG_TOOLTIP_ACOS,ATAN:ut.Msg.MATH_TRIG_TOOLTIP_ATAN,LN:ut.Msg.MATH_SINGLE_TOOLTIP_LN}[e]}))}},re={init:function(){var t=[[ut.Msg.MATH_BIN,"bin"],[ut.Msg.MATH_OCT,"oct"],[ut.Msg.MATH_HEX,"hex"]];this.setColour(ie),this.setOutput(!0,String),this.appendValueInput("NUM").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP");var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{bin:ut.Msg.MATH_DEC_TOOLTIP_BIN,oct:ut.Msg.MATH_DEC_TOOLTIP_OCT,hex:ut.Msg.MATH_DEC_TOOLTIP_HEX}[t]}))}},de={init:function(){var t=[[ut.Msg.LANG_MATH_TO_ROUND,"round"],[ut.Msg.LANG_MATH_TO_CEIL,"ceil"],[ut.Msg.LANG_MATH_TO_FLOOR,"floor"],[ut.Msg.MATH_ABS,"fabs"],[ut.Msg.MATH_SQRT,"sqrt"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).appendField(new ut.FieldDropdown(t),"OP"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{sqrt:ut.Msg.MATH_SINGLE_TOOLTIP_ROOT,fabs:ut.Msg.MATH_SINGLE_TOOLTIP_ABS,sq:ut.Msg.MATH_SINGLE_TOOLTIP_SQ,round:ut.Msg.MATH_SINGLE_TOOLTIP_ROUND,ceil:ut.Msg.MATH_SINGLE_TOOLTIP_CEIL,floor:ut.Msg.MATH_SINGLE_TOOLTIP_FLOOR}[t]}))}},le={init:function(){var t=[[ut.Msg.MIXLY_MAX,"max"],[ut.Msg.MIXLY_MIN,"min"]];this.setColour(ie),this.appendValueInput("A").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown(t),"OP").appendField("("),this.appendValueInput("B").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(","),this.appendDummyInput("").setAlign(ut.inputs.Align.RIGHT).appendField(")"),this.setInputsInline(!0),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{max:ut.Msg.MIXLY_TOOLTIP_MATH_MAX,min:ut.Msg.MIXLY_TOOLTIP_MATH_MIN}[t]}))}},Ie={init:function(){var t=[[ut.Msg.MATH_TWO,"two"],[ut.Msg.MATH_EIGHT,"eight"],[ut.Msg.MATH_TEN,"ten"],[ut.Msg.MATH_SIXTEEN,"sixteen"]];this.setColour(ie),this.appendDummyInput("").appendField(ut.Msg.MATH_BA),this.appendValueInput("NUM").appendField(new ut.FieldDropdown(t),"OP").appendField(ut.Msg.MATH_JinZhi).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MATH_ZHW).appendField(new ut.FieldDropdown(t),"OP2").appendField(ut.Msg.MATH_JinZhi),this.setFieldValue("ten","OP2"),this.setOutput(!0),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP"),i={two:ut.Msg.MATH_Before_two,eight:ut.Msg.MATH_Before_eight,ten:ut.Msg.MATH_Before_ten,sixteen:ut.Msg.MATH_Before_sixteen},n=e.getFieldValue("OP2"),s={two:ut.Msg.MATH_Behind_two,eight:ut.Msg.MATH_Behind_eight,ten:ut.Msg.MATH_Behind_ten,sixteen:ut.Msg.MATH_Behind_sixteen};return i[t]+s[n]}))}},Te={init:function(){var t=[[ut.Msg.LANG_MATH_INT,"int"],[ut.Msg.LANG_MATH_FLOAT,"float"]];this.setColour(ie),this.setOutput(!0,Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_RANDOM).appendField(new ut.FieldDropdown(t),"TYPE"),this.appendValueInput("FROM").setCheck(Number).appendField(ut.Msg.LANG_CONTROLS_FOR_INPUT_FROM),this.appendValueInput("TO").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LANG_MATH_RANDOM_INT_INPUT_TO),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TYPE"),i={int:ut.Msg.LANG_MATH_INT,float:ut.Msg.LANG_MATH_FLOAT_RANDOM};return ut.Msg.MATH_RANDOM_INT_TOOLTIP+i[t]}))}},Me={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_CONSTRAIN),this.appendValueInput("LOW").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_LOW),this.appendValueInput("HIGH").setCheck(Number).appendField(ut.Msg.LANG_MATH_CONSTRAIN_INPUT_HIGH),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_CONSTRAIN_TOOLTIP)}},he={init:function(){this.setColour(ie),this.appendValueInput("NUM",Number).appendField(ut.Msg.MIXLY_MAP).setCheck(Number),this.appendValueInput("fromLow",Number).appendField(ut.Msg.MIXLY_MAP_FROM).setCheck(Number),this.appendValueInput("fromHigh",Number).appendField(",").setCheck(Number),this.appendValueInput("toLow",Number).appendField(ut.Msg.MIXLY_MAP_TO).setCheck(Number),this.appendValueInput("toHigh",Number).appendField(",").setCheck(Number),this.appendDummyInput("").appendField("]"),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_MAP)}},me={init:function(){this.setColour(ie),this.appendDummyInput().appendField(new ut.FieldTextInput("0",ut.FieldTextInput.math_number_validator_include_blank),"NUM"),this.setOutput(!0),this.setTooltip(ut.Msg.MATH_NUMBER_TOOLTIP)}},Ee={init:function(){this.setColour(ie),this.appendValueInput("NUM").setCheck(Number).appendField(ut.Msg.LANG_MATH_RANDOM_SEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_MATH_RANDOM_SEED)}},Oe={init:function(){this.setColour(ie),this.setOutput(!0,Number),this.appendValueInput("VALUE").setCheck(Number),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MATH_ROUND).appendField(ut.Msg.TEXT_KEEP),this.appendDummyInput().appendField(ut.Msg.TEXT_DECIMAL),this.setInputsInline(!0),this.setTooltip(ut.Msg.MATH_ROUND_NEW_TOOLTIP)}},Re={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"],[ut.Msg.MIXLY_TO_BITES,"b"],[ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_INT,"bti"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOINT,float:ut.Msg.MIXLY_PYTHON_TOOLTIP_TOFLOAT,b:ut.Msg.MIXLY_TOOLTIP_TEXT_TOBYTE}[t]}))}},ce={init:function(){var t=[[ut.Msg.MIXLY_TO_INT,"int"],[ut.Msg.MIXLY_TO_FLOAT,"float"]];this.setColour(ie),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{int:ut.Msg.MIXLY_TOOLTIP_TEXT_TOINT,float:ut.Msg.MIXLY_TOOLTIP_TEXT_TOFLOAT}[t]}))}},ge=he,Ce={init:function(){this.setColour(ie),this.appendValueInput("VAR").appendField(ut.Msg.LANG_MATH_BYTE+ut.Msg.MIXLY_TO_HEX),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOHEX)}},Se={init:function(){this.setColour(ie),this.itemCount_=1,this.setMutator(new ut.icons.MutatorIcon(["lists_create_with_item"],this)),this.appendDummyInput("DUMMY").appendField(ut.Msg.MIXLY_PRODUCT+ut.Msg.MIXLY_GENERATE_CARTESIAN_PRODUCT),this.appendValueInput("REPEAT").appendField(ut.Msg.MIXLY_EVERY_PER_ELEPER_ELEMENT),this.appendDummyInput().appendField(ut.Msg.CONTROLS_REPEAT_TITLE_TIMES),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0),this.setTooltip(ut.Msg.LISTS_CREATE_WITH_PYTHON_TOOLTIP),this.updateShape_()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("lists_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n1&&"\\"===t.charAt(0)){var e=t.charAt(1);if("0"===e||"b"===e||"f"===e||"n"===e||"r"===e||"t"===e||"\\"===e||"'"===e)return String(t).substring(0,2);if("x"===e&&"0"===t.charAt(2)&&"B"===t.charAt(3))return String(t).substring(0,4)}return String(t).substring(0,1)};const De={init:function(){this.setColour(Ae),this.appendDummyInput().appendField(this.newQuote_(!0)).appendField(new ut.FieldTextInput("",ut.FieldTextInput.char_validator),"TEXT").appendField(this.newQuote_(!1)),this.setOutput(!0,Number),this.setTooltip(ut.Msg.TEXT_CHAR_TOOLTIP)},newQuote_:function(t){if(1==t)var e="../../media/quote2.png";else e="../../media/quote3.png";return new ut.FieldImage(e,7,12,'"')}},fe={init:function(){this.setColour(Ae),this.appendValueInput("A").setCheck([String,Number]),this.appendValueInput("B").setCheck([String,Number]).appendField(ut.Msg.MIXLY_TEXT_JOIN),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_JOIN)}},Fe={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_TOCHAR),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOCHAR)}},Pe={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(String).appendField(ut.Msg.MIXLY_TOASCII),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_TOASCII)}},Ye={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOSTRING),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOTEXT)}},ve={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_LENGTH),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_TEXT_LENGTH)}},Xe={init:function(){this.WHERE_OPTIONS=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.TEXT_GET_INDEX_RANDOM+1+ut.Msg.TEXT_CHARAT2,"RANDOM"]],this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.LISTS_GET_INDEX_GET,"MODE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.appendDummyInput("TAIL").appendField(ut.Msg.LISTS_GET_INDEX_TAIL),this.setInputsInline(!0),this.setOutput(!0),this.updateAt_(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=t.getFieldValue("WHERE"),n="";switch(e+" "+i){case"GET FROM_START":case"GET FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_FROM;break;case"GET RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_RANDOM;break;case"GET_REMOVE FROM_START":case"GET_REMOVE FROM_END":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM;break;case"GET_REMOVE RANDOM":n=ut.Msg.LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM}return"FROM_START"!=i&&"FROM_END"!=i||(n+=" "+ut.Msg.LISTS_INDEX_FROM_START_TOOLTIP.replace("%1",ut.Msg.ONE_BASED_INDEXING?"#1":"#0")),n}));var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHERE"),i={FROM_START:ut.Msg.LISTS_GET_INDEX_FROM_START,FROM_END:ut.Msg.LISTS_GET_INDEX_FROM_END,RANDOM:ut.Msg.TEXT_GET_INDEX_RANDOM};return ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+i[t]+"n"+ut.Msg.TEXT_CHARAT2}))},mutationToDom:function(){var t=document.createElement("mutation");t.setAttribute("statement",!this.outputConnection);var e=this.getInput("AT").type==ut.INPUT_VALUE;return t.setAttribute("at",e),t},domToMutation:function(t){var e="true"==t.getAttribute("statement");this.updateStatement_(e),t="false"!=t.getAttribute("at"),this.updateAt_(t)},updateStatement_:function(t){t!=!this.outputConnection&&(this.unplug(!0,!0),t?(this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)):(this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0)))},updateAt_:function(t){this.removeInput("AT"),this.removeInput("ORDINAL",!0),t?(this.appendValueInput("AT").setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL").appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT");var e=new ut.FieldDropdown(this.WHERE_OPTIONS,(function(e){var i="FROM_START"==e||"FROM_END"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT").appendField(e,"WHERE"),ut.Msg.LISTS_GET_INDEX_TAIL&&this.moveInputBefore("TAIL",null)}},be={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT").setCheck(Number).appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setOutput(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.LISTS_GET_INDEX_FROM_START+"n"+ut.Msg.TEXT_CHARAT2)}},xe={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_INDEX_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput().appendField(ut.Msg.TEXT_RANDOM_CHAR),this.setOutput(!0),this.setTooltip(ut.Msg.TEXT_RANDOM_CHAR_TOOLTIP)}},ye={init:function(){this.WHERE_OPTIONS_1=[[ut.Msg.LISTS_GET_INDEX_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_INDEX_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_START_FIRST,"FIRST"]],this.WHERE_OPTIONS_2=[[ut.Msg.LISTS_GET_SUBLIST_END_FROM_START,"FROM_START"],[ut.Msg.LISTS_GET_SUBLIST_END_FROM_END,"FROM_END"],[ut.Msg.LISTS_GET_SUBLIST_END_LAST,"LAST"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput("AT1"),this.appendDummyInput("AT2"),this.setInputsInline(!0),this.setOutput(!0,"List"),this.updateAt_(1,!0),this.updateAt_(2,!0),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT1").type==ut.INPUT_VALUE;t.setAttribute("at1",e);var i=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",i),t},domToMutation:function(t){var e="true"==t.getAttribute("at1"),i="true"==t.getAttribute("at2");this.updateAt_(1,e),this.updateAt_(2,i)},updateAt_:function(t,e){this.removeInput("AT"+t),this.removeInput("ORDINAL"+t,!0),e?(this.appendValueInput("AT"+t).setCheck(Number),ut.Msg.TEXT_CHARAT2&&this.appendDummyInput("ORDINAL"+t).appendField(ut.Msg.TEXT_CHARAT2)):this.appendDummyInput("AT"+t);var i=new ut.FieldDropdown(this["WHERE_OPTIONS_"+t],(function(i){var n="FROM_START"==i||"FROM_END"==i;if(n!=e){var s=this.sourceBlock_;return s.updateAt_(t,n),s.setFieldValue(i,"WHERE"+t),null}}));this.getInput("AT"+t).appendField(i,"WHERE"+t),1==t&&(this.moveInputBefore("AT1","AT2"),this.getInput("ORDINAL1")&&this.moveInputBefore("ORDINAL1","AT2"))}},Ve={init:function(){this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("AT1").appendField(ut.Msg.LISTS_GET_INDEX_GET+" "+ut.Msg.LISTS_GET_INDEX_FROM_START),this.appendValueInput("AT2").appendField(ut.Msg.LISTS_GET_SUBLIST_END_FROM_START),this.appendDummyInput().appendField(ut.Msg.TEXT_CHARAT2),this.setInputsInline(!0),this.setOutput(!0,["List",String]),this.setTooltip(ut.Msg._GET_TEXT_SUBLIST_TOOLTIP)}},Be={init:function(){var t=[[ut.Msg.MIXLY_EQUALS,"==="],[ut.Msg.MIXLY_STARTSWITH,"startswith"],[ut.Msg.MIXLY_ENDSWITH,"endswith"]];this.setColour(Ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(new ut.FieldDropdown(t),"DOWHAT").setCheck(String),this.setOutput(!0,[Boolean,Number]),this.setInputsInline(!0)}},Ge={init:function(){this.setColour(Ae),this.appendValueInput("STR1").setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.MIXLY_COMPARETO).setCheck(String),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_COMPARETO_HELP)}},Ue={init:function(){var t=[[ut.Msg.TEXT_UPPER,"upper"],[ut.Msg.TEXT_TITLE,"title"],[ut.Msg.TEXT_CAPITALIZE,"capitalize"],[ut.Msg.TEXT_SWAPCASE,"swapcase"],[ut.Msg.TEXT_LOWER,"lower"]];this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown(t),"CAPITAL").setCheck(String),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("CAPITAL");return{upper:ut.Msg.MIXLY_MIXPY_TEXT_UPPER_TOOLTIP,title:ut.Msg.MIXLY_MIXPY_TEXT_TITLE_TOOLTIP,swapcase:ut.Msg.MIXLY_MIXPY_TEXT_SWAPCASE_TOOLTIP,capitalize:ut.Msg.MIXLY_MIXPY_TEXT_CAPITALIZE_TOOLTIP,lower:ut.Msg.MIXLY_MIXPY_TEXT_LOWER_TOOLTIP}[t]}))}},we={init:function(){var t=[[ut.Msg.TEXT_LJUST,"ljust"],[ut.Msg.TEXT_CENTER,"center"],[ut.Msg.TEXT_RJUST,"rjust"]];this.setColour(Ae),this.appendValueInput("VAR").appendField(new ut.FieldDropdown(t),"CENTER").setCheck(String),this.appendValueInput("WID").appendField(ut.Msg.MIXLY_WIDTH).setCheck(Number),this.appendValueInput("Symbol").appendField(ut.Msg.MIXLY_RECT_Fill).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_CENTER_TOOLTIP)}},He={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).setCheck(String),this.appendValueInput("STR").appendField(ut.Msg.MIXLY_MID+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER).setCheck(String),this.appendDummyInput().appendField(ut.Msg.MIXLY_LIST_INDEX),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FIND_TOOLTIP)}},ke={init:function(){this.setColour(Ae),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_USE_STR).setCheck(String),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_SEQ).setCheck("List","Tuple","Set","Dict"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_GET_STR),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_PYTHON_TEXT_JOIN_SEQ_TOOLTIP)}},We={init:function(){this.setColour(Ae),this.appendValueInput("VAR").setCheck(String),this.appendValueInput("STR1").appendField(ut.Msg.MIXLY_MIXPY_REPLACE).setCheck(String),this.appendValueInput("STR2").appendField(ut.Msg.LISTS_SET_INDEX_INPUT_TO).setCheck(String),this.setInputsInline(!0),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_REPLACE_TOOLTIP)}},Ke={init:function(){this.setColour(Ae),this.appendValueInput("VAR"),this.appendValueInput("VAL").appendField(ut.Msg.LIST_SPLIT_AS),this.appendDummyInput("").appendField(ut.Msg.LIST_SPLIT),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_SPLIT_TOOLTIP),this.setInputsInline(!0)}},Je={init:function(){var t=[[ut.Msg.TEXT_TRIM_BOTH,"strip"],[ut.Msg.TEXT_TRIM_LEFT,"lstrip"],[ut.Msg.TEXT_TRIM_RIGHT,"rstrip"]];this.setColour(Ae),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.TEXT_STRIM),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"TOWHAT"),this.appendDummyInput("").appendField(ut.Msg.TEXT_BLANK),this.setOutput(!0,String),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("TOWHAT");return{strip:ut.Msg.TEXT_TRIM_BOTH_TOOLTIP,lstrip:ut.Msg.TEXT_TRIM_LEFT_TOOLTIP,rstrip:ut.Msg.TEXT_TRIM_RIGHT_TOOLTIP}[t]}))}},Qe={init:function(){this.setColour(Ae),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT),this.appendDummyInput("").appendField(new ut.FieldTextInput("str"),"VAR"),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["text_create_with_item"],this)),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_MIXPY_TEXT_FORMAT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("text_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ki={init:function(){this.setColour(wi),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},Wi={init:function(){this.setColour(wi),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},Ki={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_KEYS),this.setTooltip(ut.Msg.DICTS_KEYS_TOOLTIP),this.setOutput(!0,"List")}},Ji={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_TOOLTIP)}},Qi={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_GET_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.setOutput(!0),this.setTooltip(ut.Msg.DICTS_GET_DEFAULT_TOOLTIP)}},qi={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_ADD),this.appendDummyInput(),this.appendValueInput("VAR").appendField(ut.Msg.DICTS_ADD_VALUE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_ADD_OR_CHANGE_TOOLTIP)}},zi={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_DELETE_IN),this.appendDummyInput("").appendField(ut.Msg.DICTS_DELETE_VALUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_DELETE_TOOLTIP)}},ji={init:function(){this.setColour(wi),this.appendValueInput("DICT2").setCheck("Dict").appendField(ut.Msg.MAKE_DICT),this.appendValueInput("DICT").setCheck("Dict").appendField(ut.Msg.DICT_UPDATE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MID),this.setTooltip(ut.Msg.DICTS_UPDATE_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zi={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_CLEAR),this.setTooltip(ut.Msg.DICTS_CLEAR_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},$i={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_ITEMS),this.setTooltip(ut.Msg.DICTS_ITEMS_TOOLTIP),this.setOutput(!0,"List")}},tn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_VALUES),this.setTooltip(ut.Msg.DICTS_VALUES_TOOLTIP),this.setOutput(!0,"List")}},en={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LENGTH),this.setTooltip(ut.Msg.DICT_LENGTH_TOOLTIP),this.setOutput(!0,Number)}},nn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.DICT_DELDICT),this.setTooltip(ut.Msg.DICTS_DEL_TOOLTIP),this.setPreviousStatement(!0),this.setNextStatement(!0)}},sn={init:function(){this.MODE=[[ut.Msg.DICTS_ADD_OR_CHANGE,"INSERT"],[ut.Msg.MIXLY_MICROBIT_JS_DELETE_VAR,"DELETE"]],this.setHelpUrl(ut.Msg.LISTS_GET_SUBLIST_HELPURL),this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("AT2"),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).appendField(ut.Msg.DICTS_ADD_VALUE),this.updateAt_(!0),this.setInputsInline(!0),this.setOutput(!1),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e="";switch(t.getFieldValue("WHERE")){case"INSERT":e=ut.Msg.DICTS_ADD_TOOLTIP;break;case"DELETE":e=ut.Msg.DICTS_DELETE_TOOLTIP}return e}))},mutationToDom:function(){var t=document.createElement("mutation"),e=this.getInput("AT2").type==ut.INPUT_VALUE;return t.setAttribute("at2",e),t},domToMutation:function(t){var e="true"==t.getAttribute("at2");this.updateAt_(e)},updateAt_:function(t){this.removeInput("AT2"),this.removeInput("ORDINAL",!0),t?this.appendValueInput("AT2").setCheck(Number):this.appendDummyInput("AT2");var e=new ut.FieldDropdown(this.MODE,(function(e){var i="INSERT"==e;if(i!=t){var n=this.sourceBlock_;return n.updateAt_(i),n.setFieldValue(e,"WHERE"),null}}));this.getInput("AT2").appendField(e,"WHERE")}},_n={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.blockpy_DICT_POP),this.appendValueInput("KEY"),this.appendDummyInput("").appendField(ut.Msg.DICTS_ADD_VALUE),this.setTooltip(ut.Msg.DICT_POP_TOOLTIP),this.setInputsInline(!0),this.setOutput(!0)}},on={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("KEY").appendField(ut.Msg.DICTS_SET_DEFAULT),this.appendDummyInput("").appendField(ut.Msg.DICTS_DEFAULT_VALUE),this.appendValueInput("VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_SETDEFAULT_TOOLTIP)}},pn={init:function(){this.setColour(wi),this.appendDummyInput("").appendField(new ut.FieldLabel(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),"TIP").appendField(" "),this.itemCount_=3,this.updateShape_(),this.setOutput(!0,"Dict"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setMutator(new ut.icons.MutatorIcon(["dicts_create_with_item"],this)),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("dicts_create_with_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:0==e?'"key"':'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},an={init:function(){this.setColour(wi),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TODICT),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TODICT)}},un={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},rn={init:function(){this.setColour(wi),this.appendValueInput("VAR"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CONVERT_TO_JSON),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},dn={init:function(){this.setColour(wi),this.appendValueInput("DICT").setCheck("Dict"),this.appendValueInput("VAR1").appendField("key1"),this.appendValueInput("VAR2").appendField("index"),this.appendValueInput("VAR3").appendField("key2"),this.appendValueInput("VAR4").appendField("key3"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CONVERT_TO_JSON_TOOLTIP),this.setOutput(!0)}},ln={init:function(){this.setColour(wi),this.appendValueInput("DICT"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TO_JSON),this.setTooltip(ut.Msg.MIXLY_TO_JSON_TOOLTIP),this.setOutput(!0)}},In=210,Tn={init:function(){var t=ut.RTL?[["=","EQ"],["≠","NEQ"],[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["=","EQ"],["≠","NEQ"],["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{EQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_EQ,NEQ:ut.Msg.LOGIC_COMPARE_TOOLTIP_NEQ,LT:ut.Msg.LOGIC_COMPARE_TOOLTIP_LT,LTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_LTE,GT:ut.Msg.LOGIC_COMPARE_TOOLTIP_GT,GTE:ut.Msg.LOGIC_COMPARE_TOOLTIP_GTE}[t]})),this.prevBlocks_=[null,null]}},Mn={init:function(){var t=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]],e=ut.RTL?[[">","LT"],["≥","LTE"],["<","GT"],["≤","GTE"]]:[["<","LT"],["≤","LTE"],[">","GT"],["≥","GTE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"OP1"),this.appendValueInput("C").appendField(new ut.FieldDropdown(e),"OP2"),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_COMPARE_CONTINOUS_TOOLTIP)}},hn={init:function(){var t=[[ut.Msg.LOGIC_OPERATION_AND,"AND"],[ut.Msg.LOGIC_OPERATION_OR,"OR"],[ut.Msg.LOGIC_OPERATION_NOR,"NOR"],[ut.Msg.LOGIC_OPERATION_XOR,"XOR"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("A").setCheck([Boolean,Number]),this.appendValueInput("B").setCheck([Boolean,Number]).appendField(new ut.FieldDropdown(t),"OP"),this.setInputsInline(!0);var e=this;this.setTooltip((function(){var t=e.getFieldValue("OP");return{AND:ut.Msg.LOGIC_OPERATION_TOOLTIP_AND,OR:ut.Msg.LOGIC_OPERATION_TOOLTIP_OR,NOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_NOR,XOR:ut.Msg.LOGIC_OPERATION_TOOLTIP_XOR}[t]}))}},mn={init:function(){this.setColour(In),this.setOutput(!0,Boolean),this.appendValueInput("BOOL").setCheck([Number,Boolean]).appendField(ut.Msg.LOGIC_NEGATE_TITLE),this.setTooltip(ut.Msg.LOGIC_NEGATE_TOOLTIP)}},En={init:function(){var t=[[ut.Msg.LOGIC_BOOLEAN_TRUE,"TRUE"],[ut.Msg.LOGIC_BOOLEAN_FALSE,"FALSE"]];this.setColour(In),this.setOutput(!0,Boolean),this.appendDummyInput().appendField(new ut.FieldDropdown(t),"BOOL"),this.setTooltip(ut.Msg.LOGIC_BOOLEAN_TOOLTIP)}},On={init:function(){this.setColour(In),this.setOutput(!0),this.appendDummyInput().appendField(ut.Msg.LOGIC_NULL),this.setTooltip(ut.Msg.LOGIC_NULL_TOOLTIP)}},Rn={init:function(){this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").appendField(ut.Msg.LOGIC_TERNARY_IF_TRUE),this.appendValueInput("C").appendField(ut.Msg.LOGIC_TERNARY_IF_FALSE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LOGIT_TRUEORFALSE)}},cn={init:function(){var t=[[ut.Msg.TEXT_APPEND_TO,"in"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT_IN,"not in"]];this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").setCheck([String,"List"]).appendField(new ut.FieldDropdown(t),"BOOL"),this.appendDummyInput("").appendField(ut.Msg.MICROBIT_LOGIC_IS_IN),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.IN)}},gn={init:function(){var t=[[ut.Msg.MIXLY_PYTHON_LOGIC_IS,"is"],[ut.Msg.MIXLY_PYTHON_LOGIC_IS_NOT,"is not"]];this.setColour(In),this.appendValueInput("A"),this.appendValueInput("B").appendField(new ut.FieldDropdown(t),"BOOL"),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PYTHON_LOGIC_IS_TOOLTIP)}},Cn={init:function(){this.setColour(In),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_TOBOOL),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_PYTHON_TOOLTIP_TOBOOL)}},Sn={init:function(){this.setColour(0),this.appendValueInput("fn").setCheck(String).appendField(ut.Msg.MIXLY_PYTHON_STORAGE_OPEN_FILE_WITH_OS+"(For Windows)"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},An={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_AS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s}))},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},Ln={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Nn={init:function(){this.setColour(0),this.appendValueInput("FILENAME").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE);this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,"r"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,"w"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,"rb"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE,"wb"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXPY_TEXT_ENCODE).appendField(new ut.FieldDropdown([["ANSI","ANSI"],["gbk","gbk"],["utf-8","utf-8"]]),"CODE"),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_USE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_OPEN_FILE,_=ut.Msg.MIXLY_BELONG,o=ut.Msg.PY_STORAGE_FILE_OBJECT;return i+{r:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_READ,w:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_WRITE,rb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_READ,wb:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_BIT_WRITE}[e]+_+n+s+o}))}},Dn={init:function(){this.setColour(0),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE+ut.Msg.MIXLY_MICROBIT_TYPE_STRING+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_WRITE)}},fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES,"readlines"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String)}},Fn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,"read"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,"readline"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE,"readlines"]]),"MODE"),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER;return i+{read:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_NO_MORE_THAN_SIZE,readline:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE,readlines:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL_LINES_NO_MORE_THAN_SIZE}[e]+"x"+n}))}},Pn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FROM_FILE),this.setNextStatement(!0),this.appendValueInput("SIZE").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ONE_LINE_NO_MORE_THAN_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MICROBIT_PYTHON_TYPE)}},Yn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.HTML_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CAN_WRITE_ORNOT1)}},vn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILENAME),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,String),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILENAME)}},Xn={init:function(){this.setColour(0),this.appendValueInput("FILE").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CLOSE_FILE)}},bn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_LIST_ALL_FILES)}};ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE;const xn={init:function(){this.setColour(0),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE,"remove"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_DIRS,"removedirs"]]),"MODE"),this.appendValueInput("FILE").setCheck(String),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_DELETE_FILE)}},yn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_FILE_SIZE+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SIZE)}},Vn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RETURN_FILE),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PRESENT_LOCATION),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_TELL)}},Bn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck("Variable").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,"start"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,"current"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END,"end"]]),"MODE"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET),this.appendValueInput("SIZE").setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_SET_FILE_POSITION+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CURRENT_POSITION,n=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHARACTER,s=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_OFFSET;return i+" "+{start:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_START,current:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_CURRENT,end:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_FILE_SEEK_END}[e]+s+"x"+n}))}},Gn={init:function(){this.setColour(0),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,"List"),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET_CURRENT_DIR)}},Un={init:function(){this.setColour(0),this.appendValueInput("PATH").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_SET),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,"mkdir"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MAKEDIRS,"makedirs"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1);var t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_PATH+"x"+ut.Msg.MIXLY_ESP32_SET+{mkdir:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,makedirs:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},wn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME),this.appendValueInput("NEWFILE").setCheck(String).appendField(ut.Msg.MIXLY_AS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_RENAME)}},Hn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setOutput(!1),this.setTooltip(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_CHANGE_DIR)}},kn={init:function(){this.setColour(0),this.appendValueInput("FILE").setCheck(String).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.HTML_FILE,"isfile"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_DIR,"isdir"]]),"MODE"),this.setInputsInline(!0),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setOutput(!0,Boolean);let t=this;this.setTooltip((function(){var e=t.getFieldValue("MODE");return ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH+"x"+ut.Msg.MIXLY_MICROBIT_PY_STORAGE_IS_OR_NOT+{isfile:ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MKDIR,isdir:ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKEDIRS}[e]}))}},Wn={init:function(){this.setColour(0),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(ut.Msg.MIXLY_SD_CARD),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},Kn={init:function(){this.setColour(0),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SD_CARD),this.appendValueInput("DIR").setCheck(String).appendField(ut.Msg.MIXLY_SDCARD_MOUNT),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip()}},Jn={};Jn.NAME_TYPE=ut.PROCEDURE_CATEGORY_NAME,Jn.allProcedures=function(t){for(var e=t.getAllBlocks(!1),i=[],n=[],s=0;s"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.appendStatementInput("DO").appendField(""),this.setInputsInline(!1),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Hs={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_STYLE),this.appendStatementInput("STYLE"),this.setOutput(!0)}},ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_FORM_CONTENT).appendField(new ut.FieldDropdown([[ut.Msg.HTML_TEXT,"text"],[ut.Msg.HTML_EMAIL,"email"],[ut.Msg.HTML_NUMBER,"number"],[ut.Msg.HTML_PASSWORD,"password"],[ut.Msg.HTML_CHECKBOX,"checkbox"],[ut.Msg.HTML_RADIOBUTTON,"radiobutton"],[ut.Msg.HTML_BUTTON,"button"],[ut.Msg.HTML_COLOUR,"colour"],[ut.Msg.HTML_DATE,"date"],[ut.Msg.HTML_LOCALTIME,"local time"],[ut.Msg.HTML_FILE,"file"],[ut.Msg.HTML_HIDDEN,"hidden"],[ut.Msg.HTML_IMAGE,"image"],[ut.Msg.HTML_MONTH,"month"],[ut.Msg.HTML_RANGE,"range"],[ut.Msg.HTML_RESET,"reset"],[ut.Msg.HTML_SEARCH,"search"],[ut.Msg.HTML_SUBMIT,"submit"],[ut.Msg.HTML_TELEPHONENUMBER,"telephone number"],[ut.Msg.HTML_TIME,"time"],[ut.Msg.HTML_URL,"url"],[ut.Msg.HTML_WEEK,"week"]]),"LEVEL"),this.appendDummyInput().appendField(ut.Msg.HTML_NAME).appendField(new ut.FieldTextInput("car"),"NAME"),this.appendDummyInput().appendField(ut.Msg.HTML_VALUE).appendField(new ut.FieldTextInput("go"),"VALUE"),this.appendValueInput("style").appendField(ut.Msg.MIXLY_AIP_ATTR).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ws={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldTextInput("value"),"VALUE"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ks={init:function(){this.setColour(ys),this.appendDummyInput().appendField(new ut.FieldTextInput("property"),"KEY").appendField(":").appendField(new ut.FieldColour("#ff0000"),"RGB_LED_COLOR"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Js={init:function(){this.setColour(ys),this.appendDummyInput().appendField(ut.Msg.HTML_TEXT).appendField(new ut.FieldTextInput("text"),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Qs=160,qs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Tabular Abstraction:"),this.appendDummyInput().appendField(new ut.FieldTable(""),"TEXT")}},zs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendDummyInput().appendField("Code Block:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT")}},js={init:function(){this.setColour(Qs),this.appendDummyInput().appendField("Code Expression:"),this.appendDummyInput().appendField(new ut.FieldMultilineInput(""),"TEXT"),this.setOutput(!0)}},Zs={init:function(){this.setColour(Qs),this.setPreviousStatement(!0),this.setNextStatement(!0),this.appendValueInput("VALUE").appendField(""),this.setInputsInline(!1)}},$s={init:function(){this.setColour(Qs),this.appendDummyInput().appendTitle("Comment:").appendTitle(new ut.FieldTextInput(""),"TEXT"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip("This comment will be ignored by Python")}},t_={init:function(){this.setColour(Qs),this.appendValueInput("VALUE").appendField(ut.Msg.TYPE_CHECK),this.setInputsInline(!1),this.setOutput(!0,"Type")}},e_={init:function(){this.setColour(Qs),this.itemCount_=1,this.updateShape_(),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setMutator(new ut.icons.MutatorIcon(["text_print_multiple_item"],this)),this.setTooltip(ut.Msg.TEXT_PRINT_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=ut.Block.obtain(t,"text_print_multiple_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n= stop:"," yield start"," start -= abs(step)"])};if(t=function(t,e,i){return"("+t+" <= "+e+") and "+a()+"("+t+", "+e+", "+i+") or "+u()+"("+t+", "+e+", "+i+")"},ut.isNumber(n)&&ut.isNumber(s)&&ut.isNumber(_))n=parseFloat(n),s=parseFloat(s),_=Math.abs(parseFloat(_)),0==n%1&&0==s%1&&0==_%1?(n<=s?(s++,t=0==n&&1==_?s:n+", "+s,1!=_&&(t+=", "+_)):t=n+", "+--s+", -"+_,t="range("+t+")"):(t=n",GTE:">="};const Qp=function(t,e){var i=this.getFieldValue("OP"),n="&&"==i?e.ORDER_LOGICAL_AND:e.ORDER_LOGICAL_OR,s=e.valueToCode(this,"A",n)||"False",_=e.valueToCode(this,"B",n)||"False";if("AND"==i)var o=s+" and "+_;else if("OR"==i)o=s+" or "+_;else if("NOR"==i)o="not("+s+"^"+_+")";else o=s+"^"+_;return[o,n]},qp=function(t,e){var i=e.ORDER_UNARY_PREFIX;return["not "+(e.valueToCode(this,"BOOL",i)||"False"),i]},zp=function(t,e){return["TRUE"==this.getFieldValue("BOOL")?"True":"False",e.ORDER_ATOMIC]},jp=function(t,e){return["None",e.ORDER_ATOMIC]},Zp=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"False";return["("+(e.valueToCode(this,"B",e.ORDER_ATOMIC)||"False")+" if "+i+" else "+(e.valueToCode(this,"C",e.ORDER_ATOMIC)||"False")+")",e.ORDER_ATOMIC]},$p=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ta=function(t,e){var i=e.valueToCode(this,"A",e.ORDER_ATOMIC)||"''",n=e.valueToCode(this,"B",e.ORDER_ATOMIC)||"''";return[i+" "+this.getFieldValue("BOOL")+" "+n,e.ORDER_ATOMIC]},ea=function(t,e){return["bool("+(e.valueToCode(this,"VAR",e.ORDER_ATOMIC)||"0")+")",e.ORDER_ATOMIC]},ia=function(t,e){return e.definitions_.import_os="import os","os.startfile("+e.valueToCode(this,"fn",e.ORDER_ATOMIC)+")\n"},na=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+" = open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')\n"},sa=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"')",e.ORDER_ATOMIC]},_a=function(t,e){return["open("+e.valueToCode(this,"FILENAME",e.ORDER_ATOMIC)+", '"+this.getFieldValue("MODE")+"', encoding=\""+this.getFieldValue("CODE")+'")',e.ORDER_ATOMIC]},oa=function(t,e){var i=e.valueToCode(this,"data",e.ORDER_ATOMIC);return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".write("+i+")\n"},pa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"()",e.ORDER_ATOMIC]},aa=function(t,e){var i=this.getFieldValue("MODE");return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+"."+i+"("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ua=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".readline("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ra=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".writable()",e.ORDER_ATOMIC]},da=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".name()",e.ORDER_ATOMIC]},la=function(t,e){return e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".close()\n"},Ia=function(t,e){e.definitions_.import_os="import os";return["os.listdir()",e.ORDER_ATOMIC]},Ta=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Ma=function(t,e){return e.definitions_.import_os="import os",["os.path.getsize("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ha=function(t,e){return[e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".tell()",e.ORDER_ATOMIC]},ma=function(t,e){var i=this.getFieldValue("MODE"),n=0;return n="start"==i?0:"current"==i?1:2,e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+".seek("+e.valueToCode(this,"SIZE",e.ORDER_ATOMIC)+","+n+")\n"},Ea=function(t,e){return e.definitions_.import_os="import os","os.chdir("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+")\n"},Oa=function(t,e){e.definitions_.import_os="import os";return["os.getcwd()",e.ORDER_ATOMIC]},Ra=function(t,e){return e.definitions_.import_os="import os","os."+this.getFieldValue("MODE")+"("+e.valueToCode(this,"PATH",e.ORDER_ATOMIC)+")\n"},ca=function(t,e){return e.definitions_.import_os="import os","os.rename("+e.valueToCode(this,"FILE",e.ORDER_ATOMIC)+","+e.valueToCode(this,"NEWFILE",e.ORDER_ATOMIC)+")\n"},ga=function(t,e){e.definitions_.import_os="import os";var i=e.valueToCode(this,"FILE",e.ORDER_ATOMIC);return["os."+this.getFieldValue("MODE")+"("+i+")",e.ORDER_ATOMIC]},Ca=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = sdcard.SDCard("+e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC)+","+e.valueToCode(this,"PINSUB",e.ORDER_ATOMIC)+")\n"},Sa=function(t,e){return e.definitions_.import_os="import os",e.definitions_.import_sdcard="import sdcard","os.mount("+e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+","+e.valueToCode(this,"DIR",e.ORDER_ATOMIC)+")\n"},Aa=function(t,e){var i=e.variableDB_.getName(this.getFieldValue("NAME"),ut.Procedures.NAME_TYPE),n=(this.getInput("STACK")&&e.statementToCode(this,"STACK"))??" pass\n";e.INFINITE_LOOP_TRAP&&(n=e.INFINITE_LOOP_TRAP.replace(/%1/g,"'"+this.id+"'")+n);var s=e.valueToCode(this,"RETURN",e.ORDER_NONE)||"";s&&(s=" return "+s+"\n");for(var _=[],o=0;o\n\n\n\t\n"+e.statementToCode(this,"HEAD")+"\n\n"+e.statementToCode(this,"BODY")+"\n\n'''",e.ORDER_ATOMIC]},ou=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"\n"+i+"\n"},pu=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");if("head"==n)var s="<"+n+'>\n\t\n'+i+"\n";else s="<"+n+">\n"+i+"\n";return s},au=function(t,e){var i=e.statementToCode(this,"DO"),n=this.getFieldValue("LEVEL");return"<"+n+">\n"+i+"\n"},uu=function(t,e){var i=e.statementToCode(this,"DO"),n=e.valueToCode(this,"style"),s=this.getFieldValue("LEVEL");return"<"+s+" "+n+" >\n"+i+"\n"},ru=function(t,e){return['style="'+e.statementToCode(this,"STYLE")+'"',e.ORDER_ATOMIC]},du=function(t,e){return'"},lu=function(){return this.getFieldValue("KEY")+":"+this.getFieldValue("VALUE")+";"},Iu=function(){return this.getFieldValue("TEXT")+"\n"},Tu=function(t){return t.getFieldValue("TEXT")+"\n"},Mu=function(t,e){return[t.getFieldValue("TEXT"),e.ORDER_ATOMIC]},hu=function(t,e){return(e.valueToCode(t,"VALUE",e.ORDER_ATOMIC)||"")+"\n"},mu=function(){return""},Eu=function(t,e){return["type("+(e.valueToCode(t,"VALUE",e.ORDER_MEMBER)||"___")+")",e.ORDER_ATOMIC]},Ou=function(t,e){for(var i=t.getFieldValue("NAME"),n=t.hasReturn_,s=new Array(t.itemCount_),_=0;_0?e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+"while True:\n"+a.join("")+u.join("\n"):e.join("\n")+i.join("\n")+n.join("\n")+o.join("\n")+p.join("")+t+u.join("\n")},cu.scrubNakedValue=function(t){return t+"\n"},cu.quote_=function(t){var e="'";return-1!==(t=t.replace(/\\/g,"\\\\").replace(/\n/g,"\\\n")).indexOf("'")&&(-1===t.indexOf('"')?e='"':t=t.replace(/'/g,"\\'")),e+t+e},cu.multiline_quote_=function(t){return"'''"+(t=t.replace(/'''/g,"\\'\\'\\'"))+"'''"},cu.scrub_=function(t,e,i){var n="";if(!t.outputConnection||!t.outputConnection.targetConnection){(_=t.getCommentText())&&(_=ut.utils.string.wrap(_,cu.COMMENT_WRAP-3),n+=cu.prefixLines(_+"\n","# "));for(var s=0;s0?"int("+p+" + "+s+")":s<0?"int("+p+" - "+-s+")":"int("+p+")",n&&(p="-"+p)),p};const gu="#74A55B",Cu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MIDI),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Su={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Au={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},Lu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},Nu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},Du={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},fu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},Fu={init:function(){this.setColour(gu),this.appendValueInput("SUB"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Pu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETONOFF)}},Yu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},vu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_GETONOFF)}},Xu={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_EXTERN_LED),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_EXTERN_LED_SETBRIGHT)}},bu={init:function(){this.setColour(gu),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_SERVO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},xu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("DEGREE",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DEGREE_0_180),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},yu={init:function(){this.setColour(gu),this.appendValueInput("VAR").appendField("360°"+ut.Msg.MIXLY_SERVO),this.appendValueInput("SPEED",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETTING+ut.Msg.blockpy_turtle_rotate+ut.Msg.MIXLY_SPEED+" (-10~10)"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_360_TOOLTIP)}},Vu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_MOVE)}},Bu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendValueInput("NUM",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SERVO_SPEED_TOOLIPS)}},Gu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("180°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},Uu={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).appendField("360°"+ut.Msg.MIXLY_SERVO).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},wu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("初始化").setCheck("var"),this.appendDummyInput().appendField("电机驱动"),this.appendDummyInput().appendField("地址").appendField(new ut.FieldDropdown([["A","ms32006.ADDRESS_A"],["B","ms32006.ADDRESS_B"]]),"mode"),this.appendValueInput("SUB1").setCheck("var").setAlign(ut.inputs.Align.RIGHT).appendField("通信"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("初始化MS32006电机驱动,使用I2C通信")}},Hu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("直流电机").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"],[ut.Msg.MOTOR_N,"ms32006.MOT_N"],[ut.Msg.MOTOR_P,"ms32006.MOT_P"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置直流电机的状态及转速(0-100)")}},ku={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("步进电机").setCheck("var"),this.appendDummyInput().appendField("选择").appendField(new ut.FieldDropdown([["A","ms32006.MOT_A"],["B","ms32006.MOT_B"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"ms32006.MOT_CW"],[ut.Msg.ANTI_CLOCKWISE,"ms32006.MOT_CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("转速"),this.appendValueInput("steps").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField("步数"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip("设置步进电机的状态、转速、步数(0-2047)")}},Wu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SETUP).setCheck("var"),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PIN),this.appendValueInput("LEDCOUNT").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_COUNT),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(ut.Msg.MIXLY_RGB_PIN_COUNT)}},Ku={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MP)}},Ju={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Qu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},qu={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"uart").appendField(new ut.FieldDropdown([["uart1","uart1"],["uart2","uart2"]]),"key"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["SYN6288"+ut.Msg.MIXLY_AipSpeech_synthesis,"SYN6288"],["NS9300"+ut.Msg.MIXLY_MUSIC_PLAYER,"NS9300"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},zu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_WHETHER).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_STOPPED,"0"],[ut.Msg.MIXLY_PLAYING,"1"],[ut.Msg.MIXLY_PAUSED,"2"]]),"key"),this.setInputsInline(!0),this.setOutput(!0)}},ju={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_PLAY,"1"],[ut.Msg.MIXLY_MP3_PAUSE,"2"],[ut.Msg.MIXLY_STOP,"3"],[ut.Msg.MIXLY_MP3_PREV,"4"],[ut.Msg.MIXLY_MP3_NEXT,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Zu={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendValueInput("volume").appendField(ut.Msg.MIXLY_MP3_VOL+ut.Msg.MIXLY_STAT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_SET_VOLUME_TOOLTIP)}},$u={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE+ut.Msg.MIXLY_STAT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MP3_LOOP_ALL,"0"],[ut.Msg.MIXLY_MP3_LOOP_ONE,"1"],[ut.Msg.MIXLY_PLAYER_DIRECTORY_LOOP,"2"],[ut.Msg.MIXLY_MP3_LOOP_RAM,"3"],[ut.Msg.MIXLY_PLAYER_SINGLE_STOP,"4"],[ut.Msg.MIXLY_PLAYER_SEQUENTIAL_PLAY,"5"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},tr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MUSIC_PLAYER).setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_START_MELODY,"play"],[ut.Msg.MIXLY_PLAYER_INSERT_MUSIC,"insert"]]),"key"),this.appendValueInput("song"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_PLAYER_PLAY_MUSIC_TOOTIP)}},er={},ir={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_SET_VOLUME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},nr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_VOLUME),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SET_VOLUME_TOOLTIP)}},sr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_PLAY_HINTS),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_HINTS_TOOLTIP)}},_r={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField("SYN6288"),this.appendValueInput("data").setCheck(String).appendField(ut.Msg.MIXLY_AipSpeech_synthesis),this.appendValueInput("VOICE").setCheck(Number).appendField(ut.Msg.MIXLY_BACKGROUND_MUSIC),this.appendDummyInput().appendField(ut.Msg.MIXLY_PROGRAM_BLOCK).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"mode"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_PLAY_TTS_TOOLTIP)}},or={init:function(){this.setColour(gu),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.extern_addr),"PIN"),this.setOutput(!0,Number)}},pr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},ar={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_SPEED),this.setOutput(!0,Number),this.setInputsInline(!0)}},ur={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_TRAFFIC_LIGHT).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.LISTS_SET_INDEX_SET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"0"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_ON,"1"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_RED_BLINK,"2"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_ON,"3"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_YELLOW_BLINK,"4"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_ON,"5"],[ut.Msg.MIXLY_TRAFFIC_LIGHT_GREEN_BLINK,"6"]]),"light"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},rr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendValueInput("value").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.BRIGHTNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},dr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_WHITE,"W"],[ut.Msg.COLOUR_RGB_RED,"R"],[ut.Msg.COLOUR_RGB_YELLOW,"Y"],[ut.Msg.COLOUR_RGB_GREEN,"G"],[ut.Msg.COLOUR_RGB_BLUE,"B"]]),"color").appendField("LED").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.BRIGHTNESS),this.setOutput(!0,Number),this.setInputsInline(!0)}},lr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"[0]"],[ut.Msg.MIXLY_SPEED,"[1]"],[ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[2]"],[ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"[3]"],[ut.Msg.MIXLY_MIXBOT_SERVO_BLOCK_OR_NOT,"[4]"],[ut.Msg.MIXLY_MIXBOT_SERVO_FINISH_OR_NOT,"[5]"],[ut.Msg.MIXLY_ALL,""]]),"status"),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ir={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_SET_STOP_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_KEEP,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_COAST,"1"],[ut.Msg.MIXLY_MIXBOT_SERVO_STOP_MODE_BRAKE,"2"]]),"status"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Tr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Mr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MATH_SINGLE_OP_ABSOLUTE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.MIXLY_MIXBOT_SERVO_NEAREST_PATH,"1"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_ABSOLUTE_ANGLE_TOOLTIP)}},hr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ORIGIN_PATH),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},mr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ENCODING_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_SERVO_RELATIVE_ANGLE_TOOLTIP)}},Er={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.ME_GO_MOTOR_EXTERN+ut.Msg.MIXLY_SERVO_MOTOR).appendField(ut.Msg.MIXLY_RELATIVE+ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE+ut.Msg.MSG.run).appendField("("+ut.Msg.MIXLY_MIXBOT_SERVO_LIKE_ORDINARY_MOTOR+")").appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LEFT,"0"],[ut.Msg.MIXLY_RIGHT,"1"]]),"mode"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MODE).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPEED+ut.Msg.MIXLY_MODE,"0"],[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER+ut.Msg.MIXLY_MODE,"1"]]),"status"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField("%"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SERVO_TURN_DIRECTION).setAlign(ut.inputs.Align.RIGHT).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"0"],[ut.Msg.ANTI_CLOCKWISE,"2"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Or={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_GET_ADDR),this.setOutput(!0),this.setInputsInline(!0)}},Rr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.ME_GO_MOTOR_EXTERN).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MOTOR,"ext_motor"],[ut.Msg.MIXLY_TRAFFIC_LIGHT,"ext_traffic"],[ut.Msg.COLOUR_RGB_WHITE+"LED","W_LED"],[ut.Msg.COLOUR_RGB_RED+"LED","R_LED"],[ut.Msg.COLOUR_RGB_YELLOW+"LED","Y_LED"],[ut.Msg.COLOUR_RGB_GREEN+"LED","G_LED"],[ut.Msg.COLOUR_RGB_BLUE+"LED","B_LED"],[ut.Msg.MIXLY_SERVO_MOTOR,"ext_servo"]]),"name"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_EXTERN_SET_ADDR),this.appendValueInput("old").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE),this.appendValueInput("new").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_UPDATE),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},cr={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},gr={init:function(){this.setColour(gu),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("pin").appendField("LED"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Cr={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SERVO+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Sr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_SERVO),this.appendValueInput("angle").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE),this.appendDummyInput().appendField(ut.Msg.DRAW_POINTER_ANGLE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Ar={init:function(){this.setColour(gu),this.appendValueInput("PIN",Number).setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_MOTOR+ut.Msg.MIXLY_SETUP+ut.Msg.MIXLY_AT).appendField(ut.Msg.MIXLY_PIN),this.setInputsInline(!0),this.setOutput(!0)}},Lr={init:function(){this.setColour(gu),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MOTOR),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_DISPLAY_MATRIX_ROTATE+ut.Msg.MIXLY_SPEED),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Nr="#6C9858",Dr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","1"],["L2","2"]]),"op"),this.setOutput(!0)}},fr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_ON,"1"],[ut.Msg.MIXLY_ESP32_OFF,"0"],[ut.Msg.MIXLY_ESP32_TOGGLE,"-1"]]),"flag"),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_HIGHLOW)}},Fr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Pr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Yr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},vr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-100%)")}},Xr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING),this.appendValueInput("led").appendField(ut.Msg.MIXLY_BUILDIN_LED),this.appendDummyInput("").appendField(ut.Msg.MIXLY_LCD_SETCOLOR).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_LIGHT_RED,"1"],[ut.Msg.MIXLY_LIGHT_GREEN,"2"],[ut.Msg.MIXLY_LIGHT_BLUE,"3"],[ut.Msg.MIXLY_LIGHT_YELLOW,"4"],[ut.Msg.MIXLY_LIGHT_CYAN,"5"],[ut.Msg.MIXLY_LIGHT_PURPLE,"6"],[ut.Msg.MIXLY_LIGHT_WHITE,"7"]]),"colorvalue"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},br={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},xr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_BRIGHTNESS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},yr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendDummyInput().appendField(ut.Msg.MIXLY_PULSEIN_STAT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Vr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_SETTING).appendField(ut.Msg.MIXLY_BUILDIN_LED).appendField(new ut.FieldDropdown([[ut.Msg.COLOUR_RGB_RED,"r"],[ut.Msg.COLOUR_RGB_GREEN,"g"]]),"color"),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_BRIGHTNESS),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_BUILDIN_LED+ut.Msg.MIXLY_BRIGHTNESS+"(0-10)")}},Br={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(new ut.FieldDropdown([["L1","20"],["L2","21"]]),"op"),this.setOutput(!0)}},Gr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgo_cc":case"micropython:esp32s2:mixgo_ce":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgo_me":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Ur={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},wr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RAINBOW),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Hr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},kr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_RGB_WRITE),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_WRI)}},Wr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("_LED_").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_NUM),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null);switch(rt.Boards.getSelectedBoardKey()){case"micropython:esp32c3:mixgocc":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOCC);break;case"micropython:esp32c3:mixgome":default:this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MIXGOME);break;case"micropython:esp32:mPython":this.setTooltip(ut.Msg.MIXLY_RGB_NUM_R_G_B_MPYTHON)}}},Kr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip(""),this.setTooltip(ut.Msg.MIXLY_RGB_ALL_R_G_B_MIXGOCC)}},Jr={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RGB),this.appendDummyInput("").appendField(ut.Msg.MIXLY_CHASE),this.appendValueInput("RVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_R),this.appendValueInput("GVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_G),this.appendValueInput("BVALUE").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_RGB_B),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.PYTHON_RANGE_STEP).appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},Qr={init:function(){this.setColour(Nr),this.appendValueInput("TICKS").setCheck(Number).appendField(ut.Msg.MIXLY_MICROBIT_JS_SET_TEMPO).appendField(ut.Msg.MICROBIT_ACTUATOR_ticks),this.appendValueInput("BPM").setCheck(Number).appendField(ut.Msg.MIXLY_SPEED),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_SET_TEMPO)}},qr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Get_current_tempo),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_GET_TEMPO)}},zr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_music),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_RESET)}},jr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},Zr={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.appendValueInput("time").setCheck(Number).appendField(ut.Msg.MIXLY_DURATION),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE2)}},$r={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},td={init:function(){this.setColour(Nr),this.appendValueInput("LIST").appendField(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_MUSIC_PLAY_LISTS)}},ed={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},id={init:function(){this.setColour(Nr),this.appendDummyInput().appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},nd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField("MixGo Car").appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setTooltip("")}},sd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_STEPPER_SET_SPEED),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},_d={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MOTOR_DC).appendField(new ut.FieldDropdown([[ut.Msg.MIXLYCAR_WHEEL_LEFT,"L"],[ut.Msg.MIXLYCAR_WHEEL_RIGHT,"R"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_STOP).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},od={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_STATUS_TOOLTIP)}},pd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},ad={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ud={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"1"],[ut.Msg.TEXT_TRIM_RIGHT,"2"],[ut.Msg.TEXT_TRIM_BOTH,"0"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BLE_POWER,"PWR"],[ut.Msg.MIXLY_SPEED,"SPEED"],[ut.Msg.MIXLY_MIXBOT_MOTOR_TURNS,"TURNS"]]),"mode"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_PARAMS),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOVE_TOOLTIP)}},rd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_BUZZER),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_ON,"0"],[ut.Msg.MIXLY_MICROBIT_PY_COMMUNICATE_OFF,"1"]]),"on_off"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},dd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.blockpy_forward,"F"],[ut.Msg.blockpy_backward,"B"],[ut.Msg.blockpy_left,"L"],[ut.Msg.blockpy_right,"R"]]),"VAR"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},ld={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(new ut.FieldDropdown([[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"VAR"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Id={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.BITBOT).appendField(ut.Msg.MIXLY_MOTOR).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"0"],[ut.Msg.TEXT_TRIM_RIGHT,"1"]]),"wheel"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Direction).appendField(new ut.FieldDropdown([[ut.Msg.CLOCKWISE,"CW"],[ut.Msg.ANTI_CLOCKWISE,"CCW"],[ut.Msg.MOTOR_P,"P"],[ut.Msg.MOTOR_N,"N"]]),"direction"),this.appendValueInput("speed").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.MIXLY_SPEED),this.appendDummyInput("").appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0)}},Td={init:function(){this.setColour(Nr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_MIXBOT_SOUND_SET_LOUDNESS),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},Md={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_MIXBOT_SOUND_LOUDNESS+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},hd={init:function(){this.setColour(Nr),this.appendValueInput("bright").appendField(ut.Msg.MIXLY_SETTING+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_SETONOFF)}},md={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.MIXLY_MIXBOT_BUZZER+ut.Msg.MIXLY_MP3_VOL+"(%)"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_LED_GETONOFF)}},Ed={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_RECORD_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.appendValueInput("TIME").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Od={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_AUDIO).appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},Rd={init:function(){this.setColour(Nr),this.appendValueInput("PATH").appendField(ut.Msg.MIXLY_PLAY_ONLINE_AUDIO).appendField("URL"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},cd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_TONE),this.appendValueInput("pitch").setCheck(Number).appendField(ut.Msg.MIXLY_FREQUENCY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_TONE)}},gd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_NOTONE),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},Cd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"],["3","3"]]),"index"),this.appendValueInput("duty").setCheck(Number).setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT),this.appendDummyInput().appendField("%"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip()}},Sd={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.PIN_NUMBERING).appendField(new ut.FieldDropdown([["1","1"],["2","2"]]),"index"),this.appendDummyInput().setAlign(ut.inputs.Align.RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_DUTY_RATIO),this.setOutput(!0,Number),this.setInputsInline(!0)}},Ad={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.ME_GO_MOTOR_EXTERN).appendField(ut.Msg.MIXLY_ALL+ut.Msg.PIN_NUMBERING),this.appendValueInput("duty").setCheck(Number).setAlign(ut.ALIGN_RIGHT).appendField(ut.Msg.blynk_IOT_IR_POWER+ut.Msg.MIXLY_PINMODEOUT+ut.Msg.MIXLY_FREQUENCY),this.appendDummyInput().appendField("Hz"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MIXBOT_MOTOR_EXTERN_TOOLTIP)}},Ld={init:function(){this.setColour(Nr),this.appendDummyInput().appendField(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT),this.appendValueInput("special"),this.appendValueInput("general"),this.appendDummyInput().appendField(ut.Msg.MIXLY_RELEASE).appendField(new ut.FieldDropdown([[ut.Msg.MICROPYTHON_DISPLAY_YES,"True"],[ut.Msg.MICROPYTHON_DISPLAY_NO,"False"]]),"release"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.ANALOG+ut.Msg.MIXLY_KEYBOARD_INPUT)}},Nd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SPECIAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x01"],[ut.Msg.MIXLY_SPECIAL_KEY2,"0x02"],[ut.Msg.MIXLY_SPECIAL_KEY1,"0x04"],[ut.Msg.MIXLY_SPECIAL_KEY8,"0x08"],[ut.Msg.MIXLY_SPECIAL_KEY16,"0x10"],[ut.Msg.MIXLY_SPECIAL_KEY32,"0x20"],[ut.Msg.MIXLY_SPECIAL_KEY64,"0x40"],[ut.Msg.MIXLY_SPECIAL_KEY128,"0x80"]]),"op"),this.setOutput(!0)}},Dd={init:function(){this.setColour(Nr),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GENERAL_KEY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_SPECIAL_KEY0,"0x00"],["A","0x04"],["B","0x05"],["C","0x06"],["D","0x07"],["E","0x08"],["F","0x09"],["G","0x0A"],["H","0x0B"],["I","0x0C"],["J","0x0D"],["K","0x0E"],["L","0x0F"],["M","0x10"],["N","0x11"],["O","0x12"],["P","0x13"],["Q","0x14"],["R","0x15"],["S","0x16"],["T","0x17"],["U","0x18"],["V","0x19"],["W","0x1A"],["X","0x1B"],["Y","0x1C"],["Z","0x1D"],["1 !","0x1E"],["2 @","0x1F"],["3 #","0x20"],["4 $","0x21"],["5 %","0x22"],["6 ^","0x23"],["7 &","0x24"],["8 *","0x25"],["9 (","0x26"],["0 )","0x27"],["ENTER","0x28"],["ESC","0x29"],["BACKSPACE","0x2A"],["TAB","0x2B"],["SPACE","0x2C"],["- _","0x2D"],["= +","0x2E"],["[ {","0x2F"],["] }","0x30"],["\\ |","0x31"],["; :","0x33"],["' \"","0x34"],["` ~","0x35"],[", <","0x36"],[". >","0x37"],["/ ?","0x38"],["CAPS_LOCK","0x39"],["F1","0x3A"],["F2","0x3B"],["F3","0x3C"],["F4","0x3D"],["F5","0x3E"],["F6","0x3F"],["F7","0x40"],["F8","0x41"],["F9","0x42"],["F10","0x43"],["F11","0x44"],["F12","0x45"],["PRINTSCREEN","0x46"],["SCROLL_LOCK","0x47"],["PAUSE","0x48"],["INSERT","0x49"],["HOME","0x4A"],["PAGE_UP","0x4B"],["DELETE","0x4C"],["END","0x4D"],["PAGE_DOWN","0x4E"],["RIGHT","0x4F"],["LEFT","0x50"],["DOWN","0x51"],["UP","0x52"],["NUM_LOCK","0x53"],["/","0x54"],["*","0x55"],["-","0x56"],["+","0x57"],["ENTER","0x58"],["1","0x59"],["2","0x5A"],["3","0x5B"],["4","0x5C"],["5","0x5D"],["6","0x5E"],["7","0x5F"],["8","0x60"],["9","0x61"],["0","0x62"],[".","0x63"]]),"op"),this.setOutput(!0)}},fd={init:function(){this.setColour(Nr),this.itemCount_=2,this.updateShape_(),this.setOutput(!0),this.setMutator(new ut.icons.MutatorIcon(["generalkey_create_with_item"],this)),this.setTooltip(ut.Msg.GENERALKEY_TUPLE_CREATE_TOOLTIP)},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("generalkey_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;ne?t[e]:'"key'+(e+1)+'"'),"KEY"+e).appendField(":")}},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},eE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_TYPE_DICT),this.appendStatementInput("STACK"),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_CONTAINER_TOOLTIP),this.contextMenu=!1}},iE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},nE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.DICTS_CREATE_WITH_ITEM_TITLE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.DICTS_CREATE_WITH_ITEM_TOOLTIP),this.contextMenu=!1}},sE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PROJECT").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_PROJECT).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},_E={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PUBLISH_TOOLTIP)}},oE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_SUBSCRIBE_TOOLTIP)}},pE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_DISCONNECT_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_CONNECT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},uE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_CHECK_ONENET),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MQTT_Topic),this.setInputsInline(!0),this.setOutput(!0)}},dE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_MSG),this.setInputsInline(!0),this.setOutput(!0)}},lE={init:function(){this.setColour(Qm),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_ESP32_IOT_MAP_FORMATING),this.setOutput(!0)}},IE={init:function(){this.setColour(Qm),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_FORMAT+"(Json)"),this.setOutput(!0)}},TE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO"),this.appendDummyInput().appendField(ut.Msg.MIXLY_EMQX_PING),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_EMQX_PING_TOOLTIP)}},ME={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MIXLY_GET_NTP),this.appendValueInput("addr").appendField(ut.Msg.blynk_SERVER_ADD),this.setInputsInline(!0),this.setOutput(!0)}},hE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+ut.Msg.MIXLY_MIXIO_SHARE_KEY).setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},mE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField(ut.Msg.MIXLY_CREATE_MQTT_CLIENT_AND_CONNECT),this.appendValueInput("SERVER").appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("KEY").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"Mixly Key").setAlign(ut.inputs.Align.RIGHT),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},EE={init:function(){this.VISITOR_ID=rt.Config.BOARD.visitorId.str32.substring(0,8).toUpperCase(),this.setColour(Qm),this.appendDummyInput("").appendField(new ut.FieldTextInput(this.visitorId),"VISITOR_ID"),this.setOutput(!0,null)},onchange:function(){const t=this.getFieldValue("VISITOR_ID");this.VISITOR_ID!==t&&this.setFieldValue(this.VISITOR_ID,"VISITOR_ID")}},OE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MixIO").appendField(ut.Msg.MSG.catEthernet_clinet),this.setOutput(!0),this.setInputsInline(!0)}},RE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.DISPLAY_IMAGE_LET2),this.appendDummyInput().appendField(ut.Msg.MIXLY_REQUESTS_GET).appendField(ut.Msg.MIXLY_GET_CURRENT_TIME).appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},cE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("HTTP"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"text"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},gE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client),this.appendValueInput("addr").appendField(ut.Msg.MIXLY_CONNECTTO),this.appendDummyInput().appendField(ut.Msg.MIXLY_INIT_SUBSCRIBE).appendField(ut.Msg.MQTT_Topic).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_CURRENT_TIME,""]]),"key").appendField(ut.Msg.MIXLY_OPEN_DEBUG).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_TRUE,"True"],[ut.Msg.MIXLY_TURTLE_WRITE_MOVE_FALSE,"False"]]),"key2"),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},CE={init:function(){this.setColour(Qm),this.appendDummyInput().appendField("MQTT"+ut.Msg.MIXLY_Client).appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_REQUESTS_LEN,"client_len"],[ut.Msg.MIXLY_REQUESTS_GET_LEN,"server_len"],[ut.Msg.MIXLY_REQUESTS_MESSAGE,"time_msg()"]]),"key"),this.setOutput(!0),this.setInputsInline(!0)}},SE=qm,AE=zm,LE=jm,NE=Zm,DE=tE,fE=225,FE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_INIT),this.appendDummyInput().appendField(ut.Msg.MIXLY_NETWORK_MODE).appendField(new ut.FieldDropdown([["STA","STA"],["AP","AP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_INIT_TOOLTIP)}},PE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_OPEN,"True"],[ut.Msg.MIXLY_NETWORK_WIFI_CLOSE,"False"]]),"op"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_FLAG),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("op"),i=ut.Msg.MIXLY_ESP32_NETWORK_OPEN_TOOLTIP;return{True:ut.Msg.MIXLY_NETWORK_WIFI_OPEN,False:ut.Msg.MIXLY_NETWORK_WIFI_CLOSE}[e]+i}))}},YE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_NETWORK_WIFI_IS_ACTIVE)}},vE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_SCAN),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip((function(){return ut.Msg.MIXLY_ESP32_NETWORK_SCAN_TOOLTIP+{0:"ssid",1:"bssid",2:"channel",3:"RSSI",4:"authmode",5:"hidden",all:ut.Msg.MIXLY_NETWORK_WIFI_SCAN_ATTRIBUTE}.all}))}},XE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT),this.appendValueInput("id").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("password").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_CONNECT_TOOLTIP)}},bE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_NETWORK_WIFI_CONNECT+ut.Msg.MIXLY_SYMBOL_QUESTION),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_WIFI_CONNECT_TOOLTIP)}},xE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_NETWORK_IP,"0"],[ut.Msg.MIXLY_ESP32_NETWORK_MASK,"1"],[ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,"2"],["DNS","3"]]),"mode"),this.setOutput(!0),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP+{0:ut.Msg.MIXLY_ESP32_NETWORK_IP,1:ut.Msg.MIXLY_ESP32_NETWORK_MASK,2:ut.Msg.MIXLY_ESP32_NETWORK_GATEWAY,3:"DNS"}[e]}))}},yE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_STOP_CONNECT),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_STOP_TOOLTIP)}},VE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_NETWORK_WIFI_ESSID,"essid"],[ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL,"channel"]]),"op"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_GET_WIFI_TOOLTIP)}},BE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET),this.appendValueInput("essid").setCheck(String).appendField(ut.Msg.MIXLY_NETWORK_WIFI_ESSID),this.appendValueInput("channel").setCheck(Number).appendField(ut.Msg.MIXLY_NETWORK_WIFI_CHANNEL),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_AP_CONNECT_TOOLTIP)}},GE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER1),this.appendDummyInput("").appendField(ut.Msg.MIXLY_ESP32_NETWORK_SERVER2),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},UE={init:function(){this.setColour(fE),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_INIT).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TYPE).appendField(new ut.FieldDropdown([["TCP","TCP"],["UDP","UDP"]]),"mode"),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("mode");return ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_INIT_TOOLTIP+{TCP:"TCP",UDP:"UDP"}[e]}))}},wE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_BIND_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_BIND_TOOLTIP)}},HE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LET_SOCKET),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CONNECT_TO_ADDRESS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CONNECT_TOOLTIP)}},kE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendValueInput("queue").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_LISTEN).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_QUEUE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_LISTEN_TOOLTIP)}},WE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_ACCEPT),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_ACCEPT_TOOLTIP)}},KE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_TOOLTIP)}},JE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("TCP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TOOLTIP)}},QE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("size").setCheck(Number).appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_RECEIVE),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_RECEIVE_FROM_TOOLTIP)}},qE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var").appendField("UDP"),this.appendValueInput("content").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_SEND),this.appendValueInput("address").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_TO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_SEND_TO_TOOLTIP)}},zE={init:function(){this.setColour(fE),this.appendValueInput("VAR").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_CLOSE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_NETWORK_SOCKET_CLOSE_TOOLTIP)}},jE={init:function(){this.setColour(fE),this.appendValueInput("DOMAIN").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS_GET).appendField(new ut.FieldTextInput("response"),"VAR"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.blockpy_REQUESTS_GET_TOOLTIP)},getVars:function(){return[this.getFieldValue("VAR")]},renameVar:function(t,e){ut.Names.equals(t,this.getFieldValue("VAR"))&&this.setTitleValue(e,"VAR")}},ZE={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_COOKIES,"cookies"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"]];this.setColour(fE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String);var e=this;this.setTooltip((function(){var t=e.getFieldValue("DIR");return{clear:ut.Msg.MIXLY_TOOLTIP_TURTEL_CLEAR,reset:ut.Msg.MIXLY_TOOLTIP_TURTEL_RESET,home:ut.Msg.MIXLY_TOOLTIP_TURTEL_HOME}[t]}))}},$E={init:function(){this.appendValueInput("VAR").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String);this.setColour(fE),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["delete","delete"],["head","head"],["option","option"]]),"DIR"),this.appendDummyInput("").appendField(ut.Msg.blockpy_REQUESTS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("DIR");return{forward:ut.Msg.MIXLY_TOOLTIP_TURTEL_FORWARD,backward:ut.Msg.MIXLY_TOOLTIP_TURTEL_BACKWARD}[e]}))}},tO={init:function(){this.setColour(fE),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_NTP+"(NTP)"),this.appendValueInput("data").appendField(ut.Msg.blynk_SERVER_ADD),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},eO={init:function(){this.setColour(fE),this.appendDummyInput("").appendField(new ut.FieldDropdown([["ntp.aliyun.com","ntp.aliyun.com"],["ntp1.aliyun.com","ntp1.aliyun.com"],["ntp2.aliyun.com","ntp2.aliyun.com"],["ntp3.aliyun.com","ntp3.aliyun.com"],["ntp4.aliyun.com","ntp4.aliyun.com"],["ntp5.aliyun.com","ntp5.aliyun.com"],["ntp6.aliyun.com","ntp6.aliyun.com"],["ntp7.aliyun.com","ntp7.aliyun.com"],["time1.cloud.tencent.com","time1.cloud.tencent.com"],["time2.cloud.tencent.com","time2.cloud.tencent.com"],["time3.cloud.tencent.com","time3.cloud.tencent.com"],["time4.cloud.tencent.com","time4.cloud.tencent.com"],["time5.cloud.tencent.com","time5.cloud.tencent.com"]]),"op"),this.setOutput(!0)}},iO="#3288dd",nO={init:function(){this.setColour(iO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["get","get"],["head","head"],["delete","delete"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS).appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},sO={init:function(){this.setColour(iO),this.appendValueInput("URL").appendField(ut.Msg.DISPLAY_IMAGE_LET2).setCheck(String),this.appendDummyInput("").appendField(ut.Msg.blockpy_CONDUCT).appendField(new ut.FieldDropdown([["post","post"],["put","put"],["patch","patch"]]),"TYPE").appendField(ut.Msg.blockpy_REQUESTS),this.appendValueInput("data").appendField(ut.Msg.blockpy_REQUESTS+ut.Msg.OLED_STRING),this.appendDummyInput("").appendField(ut.Msg.MIXPY_REQUESTS_GET_RESULT),this.setInputsInline(!0),this.setOutput(!0),this.setTooltip("")}},_O={init:function(){this.appendValueInput("VAL");var t=[[ut.Msg.blockpy_REQUESTS_GET_ATTR_TEXT,"text"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_JSON,"json()"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_STATUS_CODE,"status_code"],[ut.Msg.blockpy_REQUESTS_GET_ATTR_CONTENT,"content"],[ut.Msg.MIXPY_TEXT_ENCODE,"encoding"]];this.setColour(iO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown(t),"ATTR"),this.setInputsInline(!0),this.setOutput(!0,String)}},oO={init:function(){this.setColour(iO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_CONNECT_WIFI),this.appendValueInput("WIFINAME").setCheck(String).appendField(ut.Msg.HTML_NAME),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.HTML_PASSWORD),this.appendValueInput("TIMEOUT").setCheck(Number).appendField(ut.Msg.MIXLY_IR_TIMEOUT),this.appendDummyInput().appendField(ut.Msg.MIXLY_MILLIS),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_IOT_WIFI_CONNECT_TOOLTIP)}},pO={init:function(){this.setColour(iO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_IOT_EMQX_CONNECT_TOOLTIP),this.appendValueInput("SERVER").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_SERVER).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PORT").setCheck(Number).appendField(ut.Msg.MIXLY_EMQX_PORT).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("CLIENT_ID").setCheck(String).appendField(ut.Msg.MIXLY_EMQX_CLIENT_ID).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("USERNAME").setCheck(String).appendField(ut.Msg.MIXLY_WIFI_USERNAME).setAlign(ut.inputs.Align.RIGHT),this.appendValueInput("PASSWORD").setCheck(String).appendField(ut.Msg.MIXLY_IOT_PASSWORD).setAlign(ut.inputs.Align.RIGHT),this.setPreviousStatement(!0),this.setNextStatement(!0)}},aO={init:function(){this.setColour(iO),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MESSAGE").appendField(ut.Msg.blockpy_set_of),this.setInputsInline(!0),this.setOutput(!0)}},uO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_SUBSCRIBE+ut.Msg.MIXLY_MICROBIT_MSG).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("METHOD").appendField(ut.Msg.MIXLY_EMQX_SET_METHOD),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},rO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"),this.appendValueInput("TOPIC").appendField(ut.Msg.MIXLY_EMQX_PUBLISH_NEW).appendField(ut.Msg.MIXLY_EMQX_PUBLISH_TOPIC),this.appendValueInput("MSG").appendField(ut.Msg.HTML_BODY),this.setInputsInline(!0),this.setPreviousStatement(!0),this.setNextStatement(!0)}},dO={init:function(){this.setColour(iO),this.appendDummyInput().appendField("mqtt"+ut.Msg.MIXLY_EMQX_IS_CONNECT),this.setInputsInline(!0),this.setOutput(!0)}},lO="#A58C5B",IO={init:function(){this.setColour(lO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_IS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_IS_PRESSED)}},TO={init:function(){this.setColour(lO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_WAS_PRESSED),this.appendValueInput("STAT").appendField(ut.Msg.MIXLY_ELECLEVEL),this.setOutput(!0,Boolean),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_SENOR_WAS_PRESSED)}},MO={init:function(){this.setColour(lO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_PRESSES),this.appendValueInput("VAR").setCheck(Number).appendField(ut.Msg.MIXLY_GET_PRESSES_TIME),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.PROCEDURES_DEFRETURN_RETURN+ut.Msg.MIXLY_BUTTON+ut.Msg.MIXLY_GET_PRESSES)}},hO={init:function(){this.setColour(lO),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_BUTTON).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MODE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RISING,"machine.Pin.IRQ_RISING"],[ut.Msg.MIXLY_FALLING,"machine.Pin.IRQ_FALLING"],[ut.Msg.MIXLY_CHANGE,"(machine.Pin.IRQ_RISING | machine.Pin.IRQ_FALLING)"]]),"mode"),this.appendValueInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_INOUT_ATTACHINTERRUPT)}},mO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"],[ut.Msg.MIXLY_MICROBIT_freefall,"freefall"],["3g","3g"],["6g","6g"],["8g","8g"]]),"gesture"),this.appendStatementInput("DO").appendField(ut.Msg.MIXLY_DO),this.setPreviousStatement(!0),this.setNextStatement(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down,freefall:ut.Msg.MIXLY_MICROBIT_freefall,"3g":"3g","6g":"6g","8g":"8g"}[e]+_}))}},EO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ADXL345).setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},OO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_LIGHT_LEVEL),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_ESP32_SENSOR_LIGHT_LEVEL_TOOLTIP)}},RO={init:function(){var t=[[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]];this.setColour(lO),this.appendValueInput("PIN",Number).appendField(new ut.FieldDropdown([["DHT11","DHT11"],["DHT22","DHT22"]]),"TYPE").appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(new ut.FieldDropdown(t),"WHAT"),this.setOutput(!0,Number);var e=this;this.setTooltip((function(){var t=e.getFieldValue("WHAT");return{temperature:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM,relative_humidity:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_HUM,tempandhum:ut.Msg.MIXLY_TOOLTIP_BLOCKGROUP_GET_TEM_HUM}[t]}))}},cO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_LIGHT_TOOLTIP)}},gO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_SOUND),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_VALUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.ESP32_SENSOR_NIXGO_SOUND_TOOLTIP)}},CO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET).appendField(new ut.FieldDropdown([[ut.Msg.TEXT_TRIM_LEFT,"left"],[ut.Msg.TEXT_TRIM_RIGHT,"right"]]),"direction").appendField(ut.Msg.MIXLY_ESP32_NEAR),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("direction"),i=ut.Msg.MIXLY_ESP32_SENSOR_MIXGO_PIN_NEAR_TOOLTIP,n=ut.Msg.MIXLY_ESP32_NEAR;return i+{left:ut.Msg.TEXT_TRIM_LEFT,right:ut.Msg.TEXT_TRIM_RIGHT}[e]+n}))}},SO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_BMP_temperature()"],[ut.Msg.MIXLY_GETPRESSURE,"get_BMP_pressure()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_BMP_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_temperature_TOOLTIP,"get_BMP_pressure()":ut.Msg.MIXLY_MICROBIT_SENSOR_BMP_press_TOOLTIP}[e]}))}},AO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+" SHT20").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"get_SHT_temperature()"],[ut.Msg.MIXLY_GETHUMIDITY,"get_SHT_relative_humidity()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{"get_SHT_temperature()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,"get_SHT_relative_humidity()":ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},LO={init:function(){this.setColour(lO),this.appendValueInput("PIN",Number).appendField("DS18X20 "+ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_MICROBIT_SENSOR_DS18X20_TOOLTIP)}},NO={init:function(){this.setColour(lO),this.appendDummyInput("").appendField("LM35"+ut.Msg.MIXLY_TEMP),this.appendValueInput("PIN",Number).appendField(ut.Msg.MIXLY_PIN).setCheck(Number),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setInputsInline(!0),this.setOutput(!0,Number),this.setTooltip(ut.Msg.MIXLY_TOOLTIP_LM35)}},DO={init:function(){this.setColour(lO),this.appendValueInput("I2CSUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"I2C").setCheck("var"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)","LTR308"],[ut.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)","LTR381RGB"],[ut.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"],[ut.Msg.MIXLY_EXTERN_LIGHTUV+"(LTR390UV)","LTR390UV"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)","HP203X"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"],[ut.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)","BMP280"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHTC3)","SHTC3"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(AHT21)","AHT21"],[ut.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR+"(SHT20)","SHT20"],[ut.Msg.MIXLY_LASER_RANGE_SENSOR+"(VL53L0X)","VL53L0X"],[ut.Msg.MIXLY_GEOMAGNETIC_SENSOR+"(QMC5883L)","QMC5883L"],[ut.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)","MAX30102"],[ut.Msg.HTML_COLOUR+"、"+ut.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+ut.Msg.MIXLY_NEXT+"、"+ut.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)","APDS9960"],[ut.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)","MPU9250"],[ut.Msg.MixGo_MPU9250+"(ADXL345)","ADXL345"],["RFID","RFID"],[ut.Msg.MIXLY_RADAR_SENSOR+"(CBR817)","CBR817"],[ut.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("LTR308","key")}},fO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},FO={init:function(){this.setColour(lO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXlY_INTERACTION),this.appendValueInput("VAR").appendField(ut.Msg.MIXLY_DETECTION_THRESHOLD),this.appendValueInput("VAR2").appendField(ut.Msg.MIXLY_DELAY_TIME),this.appendDummyInput().appendField("ms"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_THRESHOLD_TOOLTIP+" ; "+ut.Msg.MIXLY_DELAY_TIME_RANGE)}},PO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_RADAR+"CBR817").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},YO={init:function(){this.setColour(lO),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RADAR).appendField(ut.Msg.MIXLY_GET_TO_INTERACTION),this.setOutput(!0),this.setInputsInline(!0)}},vO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},XO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_HELLO_XIAOZHI,"1"],[ut.Msg.MIXLY_XIAOZHIXIAOZHI,"2"],[ut.Msg.MIXLY_THE_FIRST,"3"],[ut.Msg.MIXLY_THE_SECOND,"4"],[ut.Msg.MIXLY_THE_THIRD,"5"],[ut.Msg.MIXLY_THE_FOURTH,"6"],[ut.Msg.MIXLY_THE_FIFTH,"7"],[ut.Msg.MIXLY_THE_SIXTH,"8"],[ut.Msg.MIXLY_THE_SEVENTH,"9"],[ut.Msg.MIXLY_THE_EIGHTH,"10"],[ut.Msg.MIXLY_THE_NINTH,"11"],[ut.Msg.MIXLY_THE_TENTH,"12"],[ut.Msg.MIXLY_THE_ELEVENTH,"13"],[ut.Msg.MIXLY_THE_TWELFTH,"14"],[ut.Msg.MIXLY_THE_13TH,"15"],[ut.Msg.MIXLY_THE_14TH,"16"],[ut.Msg.MIXLY_THE_15TH,"17"],[ut.Msg.MIXLY_THE_16TH,"18"],[ut.Msg.MIXLY_THE_17TH,"19"],[ut.Msg.MIXLY_THE_18TH,"20"],[ut.Msg.MIXLY_THE_19TH,"21"],[ut.Msg.MIXLY_THE_20TH,"22"],[ut.Msg.MIXLY_Turn_on_the_lights,"23"],[ut.Msg.MIXLY_Turn_off_the_lights,"24"],[ut.Msg.MIXLY_Turn_up_the_brightness,"25"],[ut.Msg.MIXLY_Turn_down_the_brightness,"26"],[ut.Msg.MIXLY_Set_it_to_red,"27"],[ut.Msg.MIXLY_Set_it_to_orange,"28"],[ut.Msg.MIXLY_Set_it_to_yellow,"29"],[ut.Msg.MIXLY_Set_it_to_green,"30"],[ut.Msg.MIXLY_Set_it_to_cyan,"31"],[ut.Msg.MIXLY_Set_it_to_blue,"32"],[ut.Msg.MIXLY_Set_it_to_purple,"33"],[ut.Msg.MIXLY_Set_it_to_white,"34"],[ut.Msg.MIXLY_Turn_on_the_fan,"35"],[ut.Msg.MIXLY_Turn_off_the_fan,"36"],[ut.Msg.MIXLY_First_gear,"37"],[ut.Msg.MIXLY_Wind_speed_second,"38"],[ut.Msg.MIXLY_Third_gear,"39"],[ut.Msg.MIXLY_Previous,"40"],[ut.Msg.MIXLY_Next_page,"41"],[ut.Msg.MIXLY_Show_smiley_face,"42"],[ut.Msg.MIXLY_Show_crying_face,"43"],[ut.Msg.MIXLY_Show_love,"44"],[ut.Msg.MIXLY_Close_display,"45"],[ut.Msg.MIXLY_Start_execution,"46"],[ut.Msg.MIXLY_FORWARD,"47"],[ut.Msg.MIXLY_BACKWARD,"48"],[ut.Msg.MIXLY_TURNLEFT,"49"],[ut.Msg.MIXLY_TURNRIGHT,"50"],[ut.Msg.MIXLY_STOP,"51"],[ut.Msg.MIXLY_Accelerate,"52"],[ut.Msg.MIXLY_retard,"53"],[ut.Msg.ROTATION_FORWARD,"54"],[ut.Msg.ROTATION_BACKWARD,"55"],[ut.Msg.MIXLY_Query_temperature,"56"],[ut.Msg.MIXLY_Query_humidity,"57"],[ut.Msg.MIXLY_Query_brightness,"58"],[ut.Msg.MIXLY_Query_sound,"59"],[ut.Msg.MIXLY_Query_time,"60"],[ut.Msg.MIXLY_Query_distance,"61"],[ut.Msg.MIXLY_Query_pressure,"62"],[ut.Msg.MIXLY_Query_key,"63"],[ut.Msg.MIXLY_Query_touch,"64"],[ut.Msg.MIXLY_Query_color,"65"]]),"cmd").appendField(ut.Msg.MIXLY_WHETHER+ut.Msg.MIXLY_BE_IDENTIFIED),this.setOutput(!0),this.setInputsInline(!0)}},bO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RECOGNIZED_STATE,"status1"],[ut.Msg.MIXLY_WHETHER_BROADCAST,"status2"],[ut.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"]]),"key"),this.setOutput(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP)}},xO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MP3_PLAY).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_WIND_SPEED,"154"],[ut.Msg.MIXLY_HYETAL,"155"],[ut.Msg.MIXLY_TEMPERATURE,"156"],[ut.Msg.MIXLY_Humidity,"157"],[ut.Msg.MIXLY_Altitude,"158"],[ut.Msg.MIXLY_SOUND,"159"],[ut.Msg.MIXLY_BRIGHTNESS,"160"],[ut.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"],[ut.Msg.MIXLY_SERVO,"162"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"],[ut.Msg.MIXLY_BUTTON2,"164"],[ut.Msg.MIXLY_ESP32_TOUCH,"165"],[ut.Msg.MIXLY_PAY,"166"],[ut.Msg.MIXLY_CARSH_CHANGE,"167"],[ut.Msg.MIXLY_COUNTDOWN,"168"],[ut.Msg.MIXLY_TIMING,"169"],[ut.Msg.MIXLY_AT_THE_MOMENT,"170"],[ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"],[ut.Msg.MIXLY_FORWARD,"172"],[ut.Msg.MIXLY_BACKWARD,"173"],[ut.Msg.MIXLY_TURNLEFT,"174"],[ut.Msg.MIXLY_TURNRIGHT,"175"],[ut.Msg.MIXLY_STOP,"176"],[ut.Msg.MIXLY_Accelerate,"177"],[ut.Msg.MIXLY_retard,"178"],[ut.Msg.ROTATION_FORWARD,"179"],[ut.Msg.ROTATION_BACKWARD,"180"],[ut.Msg.TUPLE_JOIN,"181"],[ut.Msg.MIXLY_SHOW,"182"],[ut.Msg.MIXLY_LAMPLIGHT,"183"],[ut.Msg.MIXLY_ACCELERATION,"184"]]),"star"),this.appendValueInput("NUM").appendField(ut.Msg.MIXLY_NUMBER),this.appendDummyInput("").appendField(ut.Msg.MIXLY_UNIT).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"],[ut.Msg.MIXLY_YEAR,"117"],[ut.Msg.MIXLY_MONTH,"118"],[ut.Msg.MIXLY_DAY,"119"],[ut.Msg.MIXLY_HOUR,"120"],[ut.Msg.MIXLY_MINUTE,"121"],[ut.Msg.MIXLY_SECOND,"122"],[ut.Msg.MIXLY_WEEK2,"123"],[ut.Msg.MIXLY_RMB_UNIT,"124"],[ut.Msg.blockpy_setheading_degree,"125"],[ut.Msg.MIXLY_GEAR,"126"],[ut.Msg.MIXLY_LAYER,"127"],[ut.Msg.MIXLY_GRAM,"128"],[ut.Msg.MIXLY_METER,"129"],[ut.Msg.MIXLY_CENTIMETER,"130"],[ut.Msg.MIXLY_MILLIMETER,"131"],[ut.Msg.MIXLY_LUMEN,"132"],[ut.Msg.MIXLY_DECIBEL,"133"],[ut.Msg.MIXLY_hectopascal,"134"],[ut.Msg.MIXLY_PERCENT,"135"],[ut.Msg.MIXLY_CELSIUS,"136"],[ut.Msg.MIXLY_METER_PER_SEC,"137"],[ut.Msg.MIXLY_MICROBIT_Turn_on_display,"138"],[ut.Msg.MIXLY_MICROBIT_Turn_off_display,"139"],[ut.Msg.MIXLY_SUCCESS,"140"],[ut.Msg.MIXLY_FAILED,"141"],[ut.Msg.MIXLY_WRONG,"142"],[ut.Msg.MIXLY_GOOD,"143"],[ut.Msg.MIXLY_blockpy_set_add,"144"],[ut.Msg.MIXLY_DECREASE,"145"],[ut.Msg.COLOUR_RGB_RED,"146"],[ut.Msg.COLOUR_RGB_ORANGE,"147"],[ut.Msg.COLOUR_YELLOW,"148"],[ut.Msg.COLOUR_RGB_GREEN,"149"],[ut.Msg.COLOUR_CYAN,"150"],[ut.Msg.COLOUR_RGB_BLUE,"151"],[ut.Msg.COLOUR_RGB_PURPLE,"152"],[ut.Msg.COLOUR_RGB_WHITE,"153"]]),"end"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},yO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_AipSpeech_asr+"CI130X").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.LISTS_SET_INDEX_SET+ut.Msg.MIXLY_SYSTEM+ut.Msg.MIXLY_CMD).appendField(new ut.FieldDropdown([[ut.Msg.MILXY_ENTER_WAKE_UP,"1"],[ut.Msg.MIXLY_INCREASE_VOLUME,"202"],[ut.Msg.MIXLY_REDUCE_VOLUME,"203"],[ut.Msg.MIXLY_MAX_VOLUME,"204"],[ut.Msg.MIXLY_MINIMUM,"205"],[ut.Msg.MIXLY_OPEN_RESPONSE,"206"],[ut.Msg.MIXLY_CLOSE_RESPONSE,"207"],[ut.Msg.MIXLY_QUIT_WAKE_UP,"208"]]),"cmd"),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0)}},VO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_MAX30102+" MAX30102"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_MAX30102_IR,"[0]"],[ut.Msg.MIXLY_ESP32_MAX30102_RED,"[1]"],[ut.Msg.MIXLY_ESP32_MAX30102_IR+","+ut.Msg.MIXLY_ESP32_MAX30102_RED,""]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},BO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_APDS9960+" APDS9960"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_ESP32_APDS9960_COLOR,"color"],[ut.Msg.MIXLY_ESP32_APDS9960_GESTURE,"gesture"],[ut.Msg.MIXLY_ESP32_APDS9960_APPROACH,"proximity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},GO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_ESP32_EXTERN_LIGHT+" LTR308ALS"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_LIGHT_INTENSITY),this.setOutput(!0,Number),this.setInputsInline(!0)}},UO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" LTR381RGB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+ut.Msg.HTML_COLOUR,"[2]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_IR_STRENGTH,"[1]"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_LIGHT_STRENGTH,"[0]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},wO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.HTML_COLOUR+ut.Msg.MSG.catSensor+" UCS12071").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET+"RGB"+ut.Msg.HTML_COLOUR,"0"],[ut.Msg.MIXLY_GET+ut.Msg.MIXLY_RGB_RAW,"1"],[ut.Msg.MIXLY_GET_ENV_LIGHT+ut.Msg.MIXLY_BRIGHTNESS,"2"],[ut.Msg.GET_IR_STRENGTH+ut.Msg.MIXLY_BRIGHTNESS,"3"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},HO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_EXTERN_LIGHTUV+" LTR390UV").setCheck("var"),this.appendDummyInput().appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GET_ENV_LIGHT,"E"],[ut.Msg.MIXLY_GET_ULTRAVIOLET,"U"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},kO={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_LASER_RANGE+" VL53L0X"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GET_DISTANCE+"(mm)"),this.setOutput(!0,Number),this.setInputsInline(!0)}},WO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" SHTC3").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},KO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_TEM_HUM+" AHT21").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETTEMPERATUE,"temperature"],[ut.Msg.MIXLY_GETHUMIDITY,"humidity"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key");return{temperature:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_temperature_TOOLTIP,relative_humidity:ut.Msg.MIXLY_MICROBIT_SENSOR_SHT_HUM_TOOLTIP}[e]}))}},JO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" HP203X").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},QO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_Altitude+ut.Msg.MSG.catSensor+" SPL06_001").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_GETPRESSURE,"pressure()"],[ut.Msg.MIXLY_GETTEMPERATUE,"temperature()"],[ut.Msg.MIXLY_GET_ALTITUDE,"altitude()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},qO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MIXGOPE_FIELD+ut.Msg.MSG.catSensor+" QMC5883L").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"get_bearing()"],[ut.Msg.MIXLY_TEMPERATURE,"get_temp()"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},zO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_shake,"shake"],[ut.Msg.MIXLY_UP,"up"],[ut.Msg.MIXLY_DOWN,"down"],[ut.Msg.MIXLY_LEFT,"left"],[ut.Msg.MIXLY_RIGHT,"right"],[ut.Msg.MIXLY_MICROBIT_face_up,"face up"],[ut.Msg.MIXLY_MICROBIT_face_down,"face down"]]),"gesture"),this.setOutput(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("gesture"),i=ut.Msg.MIXLY_MICROBIT_JS_CURRENT,n=ut.Msg.MSG.catSensor,s=ut.Msg.MIXLY_MICROBIT_JS_STATE,_=ut.Msg.MIXLY_MICROBIT_PERFORMANCE;return i+n+s+{shake:ut.Msg.MIXLY_MICROBIT_shake,up:ut.Msg.MIXLY_UP,down:ut.Msg.MIXLY_DOWN,left:ut.Msg.MIXLY_LEFT,right:ut.Msg.MIXLY_RIGHT,"face up":ut.Msg.MIXLY_MICROBIT_face_up,"face down":ut.Msg.MIXLY_MICROBIT_face_down}[e]+_}))}},jO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_ACCELERATION1;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},ZO={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET+ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},$O={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET+ut.Msg.MIXLY_ESP32_SENOR_GYRO).appendField(new ut.FieldDropdown([["x","x"],["y","y"],["z","z"],["(x,y,z)","values"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("key"),i=ut.Msg.MIXLY_MICROBIT_PY_STORAGE_GET,n=ut.Msg.MIXLY_MICROBIT_Direction,s=ut.Msg.MIXLY_ESP32_SENOR_GYRO;return i+{x:"x",y:"y",z:"z","(x,y,z)":ut.Msg.MIXLY_MICROBIT_Shiliang_Direction}[e]+n+s}))}},tR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS)}},eR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_GETTEMPERATUE),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_GETTEMPERATUE)}},iR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS).appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,"strength"],[ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"heading"]]),"compass"),this.setOutput(!0,Number),this.setInputsInline(!0);var t=this;this.setTooltip((function(){var e=t.getFieldValue("compass");return ut.Msg.MIXLY_MICROBIT_JS_GET_COMPASS+{strength:ut.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH,heading:ut.Msg.MIXLY_MICROBIT_JS_BY_ANGLE}[e]}))}},nR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("MPU9250").setCheck("var"),this.appendDummyInput().appendField(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setInputsInline(!0),this.setTooltip(ut.Msg.MIXLY_MICROBIT_Reset_COMPASS)}},sR={init:function(){this.setColour(lO),this.appendValueInput("SPISUB").appendField(ut.Msg.CONTROLS_FOR_INPUT_WITH+"SPI").setCheck("var"),this.appendValueInput("PINSUB").appendField("CS"),this.appendValueInput("SUB").appendField(ut.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE).setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SETUP+ut.Msg.LISTS_SET_INDEX_INPUT_TO).appendField(new ut.FieldDropdown([["RFID","RFID"],["WS-LoRa","Weather"]]),"key"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setFieldValue("RFID","key")}},_R={init:function(){this.setColour(lO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_READ_CARD_UID,"id"],[ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL,"content"],[ut.Msg.MIXLY_ALL,"ALL"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},oR={init:function(){this.setColour(lO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_RFID_READ_CARD_UID),this.setOutput(!0,Number),this.setInputsInline(!0)}},pR={init:function(){this.setColour(lO),this.appendDummyInput().appendField("RFID"+ut.Msg.MIXLY_RFID_READ_CARD),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_PY_STORAGE_ALL),this.setOutput(!0,"Tuple"),this.setInputsInline(!0)}},aR={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},uR={init:function(){this.setColour(lO),this.appendDummyInput().appendField(ut.Msg.MIXLY_COMMUNICATION_RFID_WRITE),this.appendValueInput("SUB").setCheck("var"),this.appendValueInput("SECTOR").appendField(ut.Msg.MIXLY_LIST_INDEX),this.appendValueInput("CONTENT").appendField(ut.Msg.MIXLY_COMMUNICATION_WRITE_NUM),this.appendDummyInput().appendField(ut.Msg.RETURN_SUCCESS_OR_NOT),this.setInputsInline(!0),this.setOutput(!0,Boolean)}},rR={init:function(){this.setColour(lO),this.appendDummyInput().appendField("RFID"),this.appendValueInput("SUB").setCheck("var"),this.appendDummyInput("").appendField(new ut.FieldDropdown([[ut.Msg.MIXLY_RFID_SCAN_OK,"0"],[ut.Msg.MIXLY_RFID_SCAN_NOTAGERR,"1"],[ut.Msg.MIXLY_RFID_SCAN_ERROR,"2"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0)}},dR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_MICROBIT_JS_GET).appendField(new ut.FieldDropdown([["全部(元组)","data()[0]"],["全部(json)","data()[1]"],["全部(json,附带位置信息)","data()[2]"],["编号","data()[0][0]"],["电量","data()[0][1]"],["风速","data()[0][2]"],["阵风","data()[0][3]"],["风向","data()[0][4]"],["雨量","data()[0][5]"],["温度","data()[0][6]"],["湿度","data()[0][7]"],["光照","data()[0][8]"],["紫外线","data()[0][9]"],["大气压","data()[0][10]"],["信号强度","data()[0][11]"],["信噪比","data()[0][12]"]]),"key"),this.setOutput(!0,Number),this.setInputsInline(!0),this.setTooltip("返回气象数据元组 data= (设备id,电池状态,风速m/s,阵风m/s,风向°,雨量mm,温度℃,湿度%,光照Lux,UVI,大气压Pa,信号强度dB,信噪比dB)")}},lR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendDummyInput("").appendField(ut.Msg.MIXLY_SERIAL_AVAILABLE),this.setOutput(!0,Number),this.setInputsInline(!0)}},IR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.appendValueInput("BASE").appendField("以主题"),this.appendDummyInput("").appendField("串口发送至MixIO"),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null)}},TR={init:function(){this.setColour(lO),this.appendValueInput("SUB").appendField("无线气象站 WS-LoRa").setCheck("var"),this.itemCount_=2,this.updateShape_(),this.setPreviousStatement(!1),this.setNextStatement(!1),this.setInputsInline(!0),this.setMutator(new ut.icons.MutatorIcon(["weather_set_label_item"],this)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip()},mutationToDom:function(){var t=document.createElement("mutation");return t.setAttribute("items",this.itemCount_),t},domToMutation:function(t){this.itemCount_=parseInt(t.getAttribute("items"),10),this.updateShape_()},decompose:function(t){var e=t.newBlock("weather_set_label_container");e.initSvg();for(var i=e.getInput("STACK").connection,n=0;n>6),i.push(128|63&_)):(2048<=_&&_<=55295||57344<=_&&_<=65535)&&(n+=3,i.push(224|15&_>>12),i.push(128|63&_>>6),i.push(128|63&_))}for(s=0;s>8,255&n].concat(i)}(t,!0),i="",n=0;n=0?"0x700000":["mixgo_sant"].indexOf(n)>=0?"0xE00000":"0x3A0000","32x12 Matrix"==o?(e.definitions_.import_matrix32x12="import matrix32x12",i=s+" = matrix32x12.Matrix("+_+",font_address="+p+")\n"):"16x8 Matrix"==o&&(e.definitions_.import_matrix16x8="import matrix16x8",i=s+" = matrix16x8.Matrix("+_+")\n"),i},af=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},uf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},rf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},df=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},lf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},If=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},Tf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},Mf=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},hf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},mf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},Ef=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".get_brightness()",e.ORDER_ATOMIC]},Of=function(t,e){return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},Rf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("image"),e.ORDER_ATOMIC]},cf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_"+t.getFieldValue("OP")+"("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+","+e.valueToCode(t,"B",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},gf=function(t,e){return[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".map_invert("+e.valueToCode(t,"A",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Cf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC);return e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+" = ssd1306.SSD1306_I2C("+e.valueToCode(this,"row",e.ORDER_ATOMIC)+","+e.valueToCode(this,"column",e.ORDER_ATOMIC)+","+i+")\n"},Sf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_str("+(e.valueToCode(this,"Text_line1",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line2",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line3",e.ORDER_ASSIGNMENT)||"''")+","+(e.valueToCode(this,"Text_line4",e.ORDER_ASSIGNMENT)||"''")+")\n"},Af=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_line("+e.valueToCode(this,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"y2",e.ORDER_ATOMIC)+", 1)\n"},Lf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"width",e.ORDER_ATOMIC),o=e.valueToCode(this,"height",e.ORDER_ATOMIC),p="TRUE"==this.getFieldValue("fill")?"True":"False",a=this.getFieldValue("OP");switch(p){case"True":return i+".show_fill_rect("+n+", "+s+", "+_+", "+o+","+a+")\n";case"False":return i+".show_rect("+n+", "+s+", "+_+", "+o+","+a+")\n"}},Nf=function(t,e){e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"length",e.ORDER_ATOMIC);return i+".show_"+this.getFieldValue("direction")+"("+n+", "+s+", "+_+", 1)\n"},Df=function(t,e){return["ON"==this.getFieldValue("ONOFF")?"1":"0",e.ORDER_ATOMIC]},ff=function(t,e){e.definitions_.import_matrix="import matrix";var i=t.getFieldValue("OP");return[e.valueToCode(t,"img",e.ORDER_ATOMIC)+".shift_"+i+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ff=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_ssd1306="import ssd1306",e.definitions_.import_machine="import machine",i+".show_fill("+this.getFieldValue("key")+")\n"},Pf=function(t,e){return["matrix.Image."+this.getFieldValue("ANIMATION"),e.ORDER_ATOMIC]},Yf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x",e.ORDER_ATOMIC),s=e.valueToCode(this,"y",e.ORDER_ATOMIC),_=e.valueToCode(this,"r",e.ORDER_ATOMIC),o="TRUE"==this.getFieldValue("fill")?"True":"False",p=this.getFieldValue("OP");switch(o){case"True":return i+".show_fill_circle("+n+", "+s+", "+_+", "+p+")\n";case"False":return i+".show_circle("+n+", "+s+", "+_+", "+p+")\n"}},vf=function(t,e){var i=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306";var n=e.valueToCode(this,"x0",e.ORDER_ATOMIC),s=e.valueToCode(this,"y0",e.ORDER_ATOMIC),_=e.valueToCode(this,"x1",e.ORDER_ATOMIC),o=e.valueToCode(this,"y1",e.ORDER_ATOMIC),p=e.valueToCode(this,"x2",e.ORDER_ATOMIC),a=e.valueToCode(this,"y2",e.ORDER_ATOMIC),u="TRUE"==this.getFieldValue("fill")?"True":"False",r=this.getFieldValue("OP");switch(u){case"True":return i+".show_fill_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n";case"False":return i+".show_triangle("+n+", "+s+", "+_+", "+o+", "+p+", "+a+", "+r+")\n"}},Xf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_bitmap("+e.valueToCode(this,"START_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"START_Y",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"bitmap_name",e.ORDER_ATOMIC)+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+")\n"},bf=function(t,e){return e.definitions_.import_machine="import machine",e.definitions_.import_ssd1306="import ssd1306",e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".show_pixel("+e.valueToCode(this,"POS_X",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"POS_Y",e.ORDER_ATOMIC)+")\n"},xf=function(t,e){var i,n=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),_=this.getFieldValue("key");return"TM1650"==_?(e.definitions_.import_tm1650="import tm1650",i=n+" = tm1650."+_+"("+s+")\n"):"TM1637"==_&&(e.definitions_.import_tm1637="import tm1637",i=n+" = tm1637."+_+"("+s+")\n"),i},yf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+"."+this.getFieldValue("STAT")+"()\n"},Vf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".shownum("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},Bf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".showDP("+e.valueToCode(this,"NO",e.ORDER_ATOMIC)+", "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"},Gf=function(t,e){return e.valueToCode(this,"VAR",e.ORDER_ATOMIC)+".intensity("+e.valueToCode(this,"VALUE",e.ORDER_ATOMIC)+")\n"},Uf=function(t,e){e.definitions_.import_st7789="import st7789";var i=rt.Boards.getSelectedBoardKey().split(":")[2],n="";n=["mpython","mixgo_pe","mixgo_nova"].indexOf(i)>=0?"0x700000":["mixgo_sant"].indexOf(i)>=0?"0xE00000":"0x3A0000";var s=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),_=e.valueToCode(this,"SPISUB",e.ORDER_ATOMIC),o=e.valueToCode(this,"PINCS",e.ORDER_ATOMIC),p=e.valueToCode(this,"PINDC",e.ORDER_ATOMIC);return s+" = st7789.ST7789("+_+","+e.valueToCode(this,"WIDTH",e.ORDER_ATOMIC)+","+e.valueToCode(this,"HEIGHT",e.ORDER_ATOMIC)+",dc_pin="+p+",cs_pin="+o+",rotation="+this.getFieldValue("rotate")+",font_address="+n+")\n"},wf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".image("+n+",x = "+s+",y = "+_+",size = "+o+",color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},Hf=function(t,e){var i="0x"+this.getFieldValue("COLOR").slice(1);return["0x"+((16252928&i)>>8|(64512&i)>>5|(255&i)>>3).toString(16),e.ORDER_ATOMIC]},kf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),u=this.getFieldValue("center");if("0x"==a.slice(0,2))var r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color="+a+")\n";else{const t=a.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r=i+".shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+u+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},Wf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p=i+".frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p=i+".frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},Kf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u=i+".scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},Jf=function(t,e){return e.definitions_.import_st7789="import st7789",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".fill(st7789."+this.getFieldValue("key")+")\n"},Qf=function(t,e){e.definitions_.import_st7789="import st7789";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"x1",e.ORDER_ATOMIC),s=e.valueToCode(this,"y1",e.ORDER_ATOMIC),_=e.valueToCode(this,"x2",e.ORDER_ATOMIC),o=e.valueToCode(this,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=i+".line("+n+", "+s+", "+_+", "+o+", color="+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=i+".line("+n+", "+s+", "+_+", "+o+", color=0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},qf=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=this.getFieldValue("key"),_=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC);return e.definitions_.import_i2clcd="import i2clcd",i+" = i2clcd.LCD("+n+",lcd_width="+s+",i2c_addr="+_+")\n"},zf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},jf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".print("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",column = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",line = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",delay="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},Zf=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".backlight("+this.getFieldValue("key")+")\n"},$f=function(t,e){return e.definitions_.import_i2clcd="import i2clcd",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".clear()\n"},tF=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(this,"I2CSUB",e.ORDER_ATOMIC),s=e.valueToCode(this,"ADDR",e.ORDER_ATOMIC),_=this.getFieldValue("driver"),o=rt.Boards.getSelectedBoardKey().split(":")[2],p="";return p=["mpython","mixgo_pe","mixgo_nova"].indexOf(o)>=0?"0x700000":["mixgo_sant"].indexOf(o)>=0?"0xE00000":"0x3A0000",e.definitions_.import_oled128x64="import oled128x64",i+" = oled128x64.OLED("+n+",address="+s+",font_address="+p+",types="+_+")\n"},eF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},iF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".image("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+")\n"},nF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},sF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".shows("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",x = "+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+",center = "+this.getFieldValue("center")+")\n"},_F=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},oF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",delay = "+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+")\n"},pF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"},aF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",y = "+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+",size = "+e.valueToCode(this,"size",e.ORDER_ASSIGNMENT)+",speed ="+e.valueToCode(this,"time",e.ORDER_ASSIGNMENT)+",space = "+e.valueToCode(this,"space",e.ORDER_ASSIGNMENT)+")\n"},uF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".fill(0)\n"+i+".show()\n"},rF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+"."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},dF=function(t,e){return e.definitions_.import_oled128x64="import oled128x64",[e.valueToCode(this,"SUB",e.ORDER_ATOMIC)+".pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+"))",e.ORDER_ATOMIC]},lF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".pixel(int("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+"), int("+e.valueToCode(this,"y",e.ORDER_ASSIGNMENT)+"), "+e.valueToCode(this,"STAT",e.ORDER_ATOMIC)+")\n"+i+".show()\n"},IF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=t.getFieldValue("state");return i+"."+t.getFieldValue("shape")+"("+n+", "+s+", "+_+", "+o+", "+p+")\n"+i+".show()\n"},TF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC),n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=t.getFieldValue("state");return i+"."+("0"==t.getFieldValue("dir_h_v")?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\n"+i+".show()\n"},MF=function(t,e){e.definitions_.import_oled128x64="import oled128x64";var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return i+".line("+e.valueToCode(t,"x1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y1",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"x2",e.ORDER_ATOMIC)+", "+e.valueToCode(t,"y2",e.ORDER_ATOMIC)+", "+t.getFieldValue("state")+")\n"+i+".show()\n"},hF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT);if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled";var s="oled.print("+n+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";s="onboard_matrix.shows("+n+")\n"}return s},mF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),_=this.getFieldValue("center");if("mixgo_sant"==i||"mixgo_nova"==i)return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.shows("+n+",space = "+s+",center = "+_+")\n";if("educore"==i){e.definitions_["import_"+i+"oled"]="from "+i+" import oled"}return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.shows("+n+",space = "+s+",center = "+_+")\n"},EF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},OF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var _="onboard_oled.frame("+(n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT))+",delay = "+s+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";_="onboard_matrix.frame("+n+",delay = "+s+")\n"}return _},RF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var n="onboard_oled.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";n="onboard_matrix.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+")\n"}return n},cF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2],n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT);if("mpython"==i||"educore"==i){e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_oled";var o="onboard_oled.scroll("+n+",speed ="+s+",space = "+_+")\n"}else{e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix";o="onboard_matrix.scroll("+n+",speed ="+s+",space = "+_+")\n"}return o},gF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},CF=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix",["onboard_matrix."+t.getFieldValue("image"),e.ORDER_ATOMIC]},SF=function(t,e){var i={"#000000":"0","#ff0000":"1"};function n(t){let e="";if(t.length%2==1&&(t="0"+t),t.length<8){let e=8-t.length;for(let i=1;i<=e;i++)t="0"+t}for(let i=1;i<=t.length;i++)i%2==0&&i!==t.length?e=e+t[i-1]+",0x":e+=t[i-1];return"0x"+e}let s=[];for(let e=0;e<12;e++){let _="",o=0,p=0;for(let n=0;n<32;n++)n<8?p=7-n:n<16?p=23-n:n<24?p=39-n:n<32&&(p=55-n),o+=Number(i[t.getFieldValue(e+"-"+n)])*Math.pow(2,31-p);_+=n(o.toString(16)),s.unshift(_)}let _=[];for(let t=0;t>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},iP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=this.getFieldValue("center"),u=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==u.slice(0,2))var r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color="+u+")\n";else{const t=u.match(/\d+/g);var d="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");r="onboard_tft.shows("+n+",x = "+s+",y = "+_+",size = "+o+",space = "+p+",center = "+a+",color=0x"+((16252928&d)>>8|(64512&d)>>5|(255&d)>>3).toString(16)+")\n"}return r},nP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.frame("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},sP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==o.slice(0,2))var p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color="+o+")\n";else{const t=o.match(/\d+/g);var a="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");p="onboard_tft.frame("+n+",size = "+s+",delay = "+_+",color=0x"+((16252928&a)>>8|(64512&a)>>5|(255&a)>>3).toString(16)+")\n"}return p},_P=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_oled"]="from "+i+" import onboard_tft","onboard_tft.scroll("+e.valueToCode(this,"data",e.ORDER_ASSIGNMENT)+",color=0xffff)\n"},oP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"data",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"time",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"space",e.ORDER_ASSIGNMENT),a=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==a.slice(0,2))var u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color="+a+")\n";else{const t=a.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft.scroll("+n+",y = "+s+",size = "+_+",speed ="+o+",space = "+p+",color=0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\n"}return u},pP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"w",e.ORDER_ATOMIC),o=e.valueToCode(t,"h",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),a=t.getFieldValue("shape");if("0x"==p.slice(0,2))var u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var r="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");u="onboard_tft."+a+"("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&r)>>8|(64512&r)>>5|(255&r)>>3).toString(16)+")\nonboard_tft.show()\n"}return u},aP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"length",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("dir_h_v");if("0x"==o.slice(0,2))var a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", "+o+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft."+("0"==p?"v":"h")+"line("+n+", "+s+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},uP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x1",e.ORDER_ATOMIC),s=e.valueToCode(t,"y1",e.ORDER_ATOMIC),_=e.valueToCode(t,"x2",e.ORDER_ATOMIC),o=e.valueToCode(t,"y2",e.ORDER_ATOMIC),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", "+p+")\nonboard_tft.show()\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.line("+n+", "+s+", "+_+", "+o+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\nonboard_tft.show()\n"}return a},rP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return"onboard_tft.fill(0)\nonboard_tft.show()\n"},dP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft."+t.getFieldValue("OP")+"("+e.valueToCode(t,"val",e.ORDER_ATOMIC)+")\n"},lP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft",["hex(onboard_tft.pixel(int("+e.valueToCode(t,"x",e.ORDER_ATOMIC)+"), int("+e.valueToCode(t,"y",e.ORDER_ATOMIC)+")))",e.ORDER_ATOMIC]},IP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==_.slice(0,2))var o="onboard_tft.pixel(int("+n+"), int("+s+"), "+_+")\nonboard_tft.show()\n";else{const t=_.match(/\d+/g);var p="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");o="onboard_tft.pixel(int("+n+"), int("+s+"), 0x"+((16252928&p)>>8|(64512&p)>>5|(255&p)>>3).toString(16)+")\nonboard_tft.show()\n"}return o},TP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";return["onboard_tft.get_brightness()",e.ORDER_ATOMIC]},MP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft","onboard_tft.set_brightness("+e.valueToCode(this,"x",e.ORDER_ASSIGNMENT)+")\n"},hP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(this,"VAR",e.ORDER_ASSIGNMENT);if("0x"==n.slice(0,2))var s="onboard_tft.fill("+n+")\nonboard_tft.show()\n";else{const t=n.match(/\d+/g);var _="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");s="onboard_tft.fill(0x"+((16252928&_)>>8|(64512&_)>>5|(255&_)>>3).toString(16)+")\nonboard_tft.show()\n"}return s},mP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"x",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"y",e.ORDER_ASSIGNMENT),_=e.valueToCode(this,"size",e.ORDER_ASSIGNMENT),o=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),p=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==p.slice(0,2))var a=o+"=Clock("+n+","+s+","+_+","+p+")\n";else{const t=p.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a=o+"=Clock("+n+","+s+","+_+",0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+")\n"}return a},EP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_rtctime()\n"},OP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".set_time("+e.valueToCode(this,"h",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"m",e.ORDER_ASSIGNMENT)+","+e.valueToCode(this,"s",e.ORDER_ASSIGNMENT)+")\n"},RP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock",e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT)+".draw_clock()\n"},cP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_Clock"]="from "+i+" import Clock";var n=e.valueToCode(this,"SUB",e.ORDER_ASSIGNMENT),s=e.valueToCode(this,"VAR",e.ORDER_ATOMIC);if("0x"==s.slice(0,2))var _=n+".clear("+s+")\n";else{const t=s.match(/\d+/g);var o="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");_=n+".clear(0x"+((16252928&o)>>8|(64512&o)>>5|(255&o)>>3).toString(16)+")\n"}return _},gP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];e.definitions_["import_"+i+"_onboard_tft"]="from "+i+" import onboard_tft";var n=e.valueToCode(t,"x",e.ORDER_ATOMIC),s=e.valueToCode(t,"y",e.ORDER_ATOMIC),_=e.valueToCode(t,"r",e.ORDER_ATOMIC),o=e.valueToCode(this,"VAR",e.ORDER_ATOMIC),p=t.getFieldValue("shape");if("0x"==o.slice(0,2))var a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", "+o+","+p+")\nonboard_tft.show()\n";else{const t=o.match(/\d+/g);var u="0x"+((parseInt(t[0])<<16)+(parseInt(t[1])<<8)+parseInt(t[2])).toString(16).padStart(4,"0");a="onboard_tft.ellipse("+n+", "+s+", "+_+", "+_+", 0x"+((16252928&u)>>8|(64512&u)>>5|(255&u)>>3).toString(16)+","+p+")\nonboard_tft.show()\n"}return a},CP=function(t,e){var i=rt.Boards.getSelectedBoardKey().split(":")[2];return e.definitions_["import_"+i+"_onboard_matrix"]="from "+i+" import onboard_matrix","onboard_matrix.pointern(angle="+e.valueToCode(this,"angle",e.ORDER_ASSIGNMENT)+")\n"},SP=function(t,e){var i=this.getFieldValue("path"),n=this.getFieldValue("module");return e.definitions_["import_"+i+"_"+n]="from "+i+" import "+n,""},AP=function(t,e){var i=this.getFieldValue("module");return e.definitions_["import_"+i]="import "+i,""},LP=function(t,e){for(var i=this.getFieldValue("NAME"),n=new Array(this.itemCount_),s=0;s {\n"+e.statementToCode(this,"do")+"})\n"},Ty=function(){return"control.reset()\n"},My=function(t,e){return"control.waitMicros("+(e.valueToCode(this,"data",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},hy=function(t,e){return"control.raiseEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+")\n"},my=function(t,e){return"control.onEvent("+(e.valueToCode(this,"system_event_bus_source",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", "+(e.valueToCode(this,"system_event_bus_value",e.ORDER_ATOMIC)||rt.Profile.default.serial)+", () => {\n"+e.statementToCode(this,"do")+")\n"},Ey=function(t,e){return["control.eventTimestamp()",e.ORDER_ATOMIC]},Oy=function(t,e){return["control.eventValue()",e.ORDER_ATOMIC]},Ry=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},cy=function(t,e){return[this.getFieldValue("key"),e.ORDER_ATOMIC]},gy=function(t,e){return["control.deviceName()",e.ORDER_ATOMIC]},Cy=function(t,e){return["control.deviceSerialNumber()",e.ORDER_ATOMIC]},Sy=function(t,e){return"panic("+(e.valueToCode(this,"STATUS_CODE",e.ORDER_ATOMIC)||"1000")+")\n"},Ay=function(t,e){switch(e.definitions_.import_time="import time",this.getFieldValue("Time")){case"ms":return["time.ticks_ms()",e.ORDER_ATOMIC];case"us":return["time.ticks_us()",e.ORDER_ATOMIC]}},Ly=function(){return"while True:\n pass\n"},Ny=function(t,e){return e.definitions_.import_mixgo="import mixgo","reset()\n"},Dy=function(t,e){return e.definitions_.import_os="import os","os.uname()"},fy=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Fy=function(t,e){e.definitions_.import_time="import time";var i=e.valueToCode(this,"DELAY_TIME",e.ORDER_ATOMIC)||"1000";switch(this.getFieldValue("Time")){case"s":return"time.sleep("+i+")\n";case"ms":return"time.sleep_ms("+i+")\n";case"us":return"time.sleep_us("+i+")\n"}},Py=function(t,e){return e.definitions_.import_mixgo="import mixgo",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = Timer."+(e.valueToCode(this,"mode",e.ORDER_NONE)||"None")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},Yy=function(t,e){return e.definitions_.import_machine="import machine",(e.valueToCode(this,"VAR",e.ORDER_NONE)||"None")+".init(period = "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+", mode = machine.Timer."+this.getFieldValue("mode")+", callback = "+(e.valueToCode(this,"callback",e.ORDER_NONE)||"None")+")\n"},vy=function(t,e){return e.definitions_.import_time="import time",["time.ticks_diff("+(e.valueToCode(this,"END",e.ORDER_NONE)||"0")+", "+(e.valueToCode(this,"START",e.ORDER_NONE)||"0")+")",e.ORDER_ATOMIC]},Xy=function(t,e){var i=e.valueToCode(this,"SUB",e.ORDER_ATOMIC);return e.definitions_.import_machine="import machine",i+" = machine.Timer(0)\n"},by=function(t,e){return e.definitions_.import_machine="import machine","wdt = machine.WDT(timeout= "+(e.valueToCode(this,"period",e.ORDER_NONE)||"0")+")\n"},xy=function(t,e){e.definitions_.import_machine="import machine";return"wdt.feed()\n"},yy=function(t,e){e.definitions_.import_machine="import machine";return"machine.reset()\n"},Vy=function(t,e){e.definitions_.import_bitbot_onboard_bot51="from bitbot import onboard_bot51";return"onboard_bot51.shutdown()\n"},By=Xy,Gy=Yy,Uy=vy,wy=fy,Hy=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},ky=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api."+this.getFieldValue("mode")+"("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Wy=function(t,e){return e.definitions_.import_seniverse_api="import seniverse_api",["seniverse_api.weather_hourly("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"hour",e.ORDER_ATOMIC)+")",e.ORDER_ATOMIC]},Ky=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+")\n"},Jy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_now.analysis()";else n='Weather_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Qy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Air_now.analysis()";else n='Air_now.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},qy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Weather_alarm.analysis()";else n='Weather_alarm.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},zy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Life_suggestion.analysis()";else n='Life_suggestion.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},jy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Tide_daily.analysis()";else n='Tide_daily.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},Zy=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content");if("none"==i)var n="Location_search.analysis()";else n='Location_search.analysis("'+i+'")';return[n,e.ORDER_ATOMIC]},$y=function(t,e){return e.definitions_["import_seniverse_api*"]="from seniverse_api import *",this.getFieldValue("mode")+".request("+e.valueToCode(this,"key",e.ORDER_ATOMIC)+","+e.valueToCode(this,"addr",e.ORDER_ATOMIC)+","+e.valueToCode(this,"day",e.ORDER_ATOMIC)+")\n"},tV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Weather_daily.analysis("+n+")";else s="Weather_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},eV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Air_daily.analysis("+n+")";else s="Air_daily.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},iV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_sun.analysis("+n+")";else s="Geo_sun.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},nV=function(t,e){e.definitions_["import_seniverse_api*"]="from seniverse_api import *";var i=this.getFieldValue("content"),n=e.valueToCode(this,"day",e.ORDER_ATOMIC);if("none"==i)var s="Geo_moon.analysis("+n+")";else s="Geo_moon.analysis("+n+',"'+i+'")';return[s,e.ORDER_ATOMIC]},sV={};sV["飞乙"]={description:"MicroPython[ESP32C3 Bitbot]",digital_pin:rt.Profile.generate(["0-11","18-21"]),input_pin:rt.Profile.generate(["0-11","18-21"]),output_pin:rt.Profile.generate(["0-11","18-21"]),pwm_input:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_input:rt.Profile.generate(["0-5"],"adc","adc"),pwm_output:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_output:rt.Profile.generate(["0-5"],"adc","adc"),espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),digital:rt.Profile.generate(["0-11","18-21"],"pin","pin"),pwm_pin:rt.Profile.generate(["0-11","18-21"]),pwm:rt.Profile.generate(["0-11","18-21"],"pwm","pwm"),analog_pin:rt.Profile.generate(["0-5"]),analog:rt.Profile.generate(["0-5"],"adc","adc"),button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"],["10","10"],["11","11"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-1"]),als_num:rt.Profile.generate(["0-3"])},sV["超霸大师"]={description:"MicroPython[ESP32 Mixbot]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["P","button_p"],["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["MUSIC_QUAVERS","onboard_matrix.MUSIC_QUAVERS"],["MUSIC_QUAVER","onboard_matrix.MUSIC_QUAVER"],["MUSIC_CROTCHET","onboard_matrix.MUSIC_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]],extern_addr:rt.Profile.generate(["0-3"])},sV["ESP32 Generic"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["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"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin6","pin6"],["pin7","pin7"],["pin8","pin8"],["pin9","pin9"],["pin10","pin10"],["pin11","pin11"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["7","7"],["8","8"],["12","12"],["13","13"],["14","14"],["15","15"],["19","19"],["20","20"],["21","21"],["22","22"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["A","button_a"],["B","button_b"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]},sV["机器人大师"]={description:"MicroPython[ESP32 Generic]",digital_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],digital:[["pin0","pin0"],["pin2","pin2"],["pin4","pin4"],["pin5","pin5"],["pin12","pin12"],["pin13","pin13"],["pin14","pin14"],["pin15","pin15"],["pin16","pin16"],["pin17","pin17"],["pin18","pin18"],["pin19","pin19"],["pin20","pin20"],["pin21","pin21"],["pin22","pin22"],["pin23","pin23"],["pin25","pin25"],["pin26","pin26"],["pin27","pin27"],["pin32","pin32"],["pin33","pin33"],["pin34","pin34"],["pin35","pin35"],["pin36","pin36"],["pin37","pin37"],["pin38","pin38"],["pin39","pin39"]],input_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],output_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["18","18"],["19","19"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"],["33","33"]],pwm_pin:[["0","0"],["2","2"],["4","4"],["5","5"],["12","12"],["13","13"],["14","14"],["15","15"],["16","16"],["17","17"],["18","18"],["19","19"],["20","20"],["21","21"],["22","22"],["23","23"],["25","25"],["26","26"],["27","27"],["32","32"]],pwm:[["pwm0","pwm0"],["pwm2","pwm2"],["pwm4","pwm4"],["pwm5","pwm5"],["pwm12","pwm12"],["pwm13","pwm13"],["pwm14","pwm14"],["pwm15","pwm15"],["pwm16","pwm16"],["pwm17","pwm17"],["pwm18","pwm18"],["pwm19","pwm19"],["pwm20","pwm20"],["pwm21","pwm21"],["pwm22","pwm22"],["pwm23","pwm23"],["pwm25","pwm25"],["pwm26","pwm26"],["pwm27","pwm27"],["pwm32","pwm32"]],espnow_channel:rt.Profile.generate(["1-13"]),haskylens_model:rt.Profile.generate(["0-4"]),analog_pin:[["32","32"],["33","33"],["34","34"],["35","35"],["36","36"],["37","37"],["38","38"],["39","39"]],analog:[["adc32","adc32"],["adc33","adc33"],["adc34","adc34"],["adc35","adc35"],["adc36","adc36"],["adc37","adc37"],["adc38","adc38"],["adc39","adc39"]],dac_pin:[["25","25"],["26","26"]],dac:[["dac25","dac25"],["dac26","dac26"]],touch:[["tc0","tc0"],["tc2","tc2"],["tc4","tc4"],["tc12","tc12"],["tc13","tc13"],["tc14","tc14"],["tc15","tc15"],["tc27","tc27"],["tc32","tc32"],["tc33","tc33"]],touch_pin:[["0","0"],["2","2"],["4","4"],["12","12"],["13","13"],["14","14"],["15","15"],["27","27"],["32","32"],["33","33"]],button:[["p","button_p"],["cw","button_cw"],["ccw","button_ccw"]],axis:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"]],exlcdh:[["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"]],exlcdv:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],brightness:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"],["8","8"],["9","9"]],tts_voice:rt.Profile.generate(["0-16"]),tts_builtin_music:rt.Profile.generate(["0-47"]),tts_bgmusic:rt.Profile.generate(["0-15"]),builtinimg:[["HEART","onboard_matrix.HEART"],["HEART_SMALL","onboard_matrix.HEART_SMALL"],["HAPPY","onboard_matrix.HAPPY"],["SAD","onboard_matrix.SAD"],["SMILE","onboard_matrix.SMILE"],["SILLY","onboard_matrix.SILLY"],["FABULOUS","onboard_matrix.FABULOUS"],["SURPRISED","onboard_matrix.SURPRISED"],["ASLEEP","onboard_matrix.ASLEEP"],["ANGRY","onboard_matrix.ANGRY"],["CONFUSED","onboard_matrix.CONFUSED"],["NO","onboard_matrix.NO"],["YES","onboard_matrix.YES"],["LEFT_ARROW","onboard_matrix.LEFT_ARROW"],["RIGHT_ARROW","onboard_matrix.RIGHT_ARROW"],["DRESS","onboard_matrix.DRESS"],["TRANSFORMERS","onboard_matrix.TRANSFORMERS"],["SCISSORS","onboard_matrix.SCISSORS"],["EXIT","onboard_matrix.EXIT"],["TREE","onboard_matrix.TREE"],["PACMAN","onboard_matrix.PACMAN"],["TARGET","onboard_matrix.TARGET"],["TSHIRT","onboard_matrix.TSHIRT"],["ROLLERSKATE","onboard_matrix.ROLLERSKATE"],["DUCK","onboard_matrix.DUCK"],["HOUSE","onboard_matrix.HOUSE"],["TORTOISE","onboard_matrix.TORTOISE"],["BUTTERFLY","onboard_matrix.BUTTERFLY"],["STICKFIGURE","onboard_matrix.STICKFIGURE"],["GHOST","onboard_matrix.GHOST"],["PITCHFORK","onboard_matrix.PITCHFORK"],["onboard_music_QUAVERS","onboard_matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","onboard_matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","onboard_matrix.onboard_music_CROTCHET"],["COW","onboard_matrix.COW"],["RABBIT","onboard_matrix.RABBIT"],["SQUARE_SMALL","onboard_matrix.SQUARE_SMALL"],["SQUARE","onboard_matrix.SQUARE"],["DIAMOND_SMALL","onboard_matrix.DIAMOND_SMALL"],["DIAMOND","onboard_matrix.DIAMOND"],["CHESSBOARD","onboard_matrix.CHESSBOARD"],["TRIANGLE_LEFT","onboard_matrix.TRIANGLE_LEFT"],["TRIANGLE","onboard_matrix.TRIANGLE"],["SNAKE","onboard_matrix.SNAKE"],["UMBRELLA","onboard_matrix.UMBRELLA"],["SKULL","onboard_matrix.SKULL"],["GIRAFFE","onboard_matrix.GIRAFFE"],["SWORD","onboard_matrix.SWORD"]],builtinimg_extern:[["HEART","matrix32x12.Matrix.HEART"],["HEART_SMALL","matrix32x12.Matrix.HEART_SMALL"],["HAPPY","matrix32x12.Matrix.HAPPY"],["SAD","matrix32x12.Matrix.SAD"],["SMILE","matrix32x12.Matrix.SMILE"],["SILLY","matrix32x12.Matrix.SILLY"],["FABULOUS","matrix32x12.Matrix.FABULOUS"],["SURPRISED","matrix32x12.Matrix.SURPRISED"],["ASLEEP","matrix32x12.Matrix.ASLEEP"],["ANGRY","matrix32x12.Matrix.ANGRY"],["CONFUSED","matrix32x12.Matrix.CONFUSED"],["NO","matrix32x12.Matrix.NO"],["YES","matrix32x12.Matrix.YES"],["LEFT_ARROW","matrix32x12.Matrix.LEFT_ARROW"],["RIGHT_ARROW","matrix32x12.Matrix.RIGHT_ARROW"],["DRESS","matrix32x12.Matrix.DRESS"],["TRANSFORMERS","matrix32x12.Matrix.TRANSFORMERS"],["SCISSORS","matrix32x12.Matrix.SCISSORS"],["EXIT","matrix32x12.Matrix.EXIT"],["TREE","matrix32x12.Matrix.TREE"],["PACMAN","matrix32x12.Matrix.PACMAN"],["TARGET","matrix32x12.Matrix.TARGET"],["TSHIRT","matrix32x12.Matrix.TSHIRT"],["ROLLERSKATE","matrix32x12.Matrix.ROLLERSKATE"],["DUCK","matrix32x12.Matrix.DUCK"],["HOUSE","matrix32x12.Matrix.HOUSE"],["TORTOISE","matrix32x12.Matrix.TORTOISE"],["BUTTERFLY","matrix32x12.Matrix.BUTTERFLY"],["STICKFIGURE","matrix32x12.Matrix.STICKFIGURE"],["GHOST","matrix32x12.Matrix.GHOST"],["PITCHFORK","matrix32x12.Matrix.PITCHFORK"],["onboard_music_QUAVERS","matrix32x12.Matrix.onboard_music_QUAVERS"],["onboard_music_QUAVER","matrix32x12.Matrix.onboard_music_QUAVER"],["onboard_music_CROTCHET","matrix32x12.Matrix.onboard_music_CROTCHET"],["COW","matrix32x12.Matrix.COW"],["RABBIT","matrix32x12.Matrix.RABBIT"],["SQUARE_SMALL","matrix32x12.Matrix.SQUARE_SMALL"],["SQUARE","matrix32x12.Matrix.SQUARE"],["DIAMOND_SMALL","matrix32x12.Matrix.DIAMOND_SMALL"],["DIAMOND","matrix32x12.Matrix.DIAMOND"],["CHESSBOARD","matrix32x12.Matrix.CHESSBOARD"],["TRIANGLE_LEFT","matrix32x12.Matrix.TRIANGLE_LEFT"],["TRIANGLE","matrix32x12.Matrix.TRIANGLE"],["SNAKE","matrix32x12.Matrix.SNAKE"],["UMBRELLA","matrix32x12.Matrix.UMBRELLA"],["SKULL","matrix32x12.Matrix.SKULL"],["GIRAFFE","matrix32x12.Matrix.GIRAFFE"],["SWORD","matrix32x12.Matrix.SWORD"]],imglist:[["ALL_CLOCKS","onboard_matrix.ALL_CLOCKS"],["ALL_ARROWS","onboard_matrix.ALL_ARROWS"]],playlist:[["DADADADUM","onboard_music.DADADADUM"],["ENTERTAINER","onboard_music.ENTERTAINER"],["PRELUDE","onboard_music.PRELUDE"],["ODE","onboard_music.ODE"],["NYAN","onboard_music.NYAN"],["RINGTONE","onboard_music.RINGTONE"],["FUNK","onboard_music.FUNK"],["BLUES","onboard_music.BLUES"],["BIRTHDAY","onboard_music.BIRTHDAY"],["WEDDING","onboard_music.WEDDING"],["FUNERAL","onboard_music.FUNERAL"],["PUNCHLINE","onboard_music.PUNCHLINE"],["PYTHON","onboard_music.PYTHON"],["BADDY","onboard_music.BADDY"],["CHASE","onboard_music.CHASE"],["BA_DING","onboard_music.BA_DING"],["WAWAWAWAA","onboard_music.WAWAWAWAA"],["JUMP_UP","onboard_music.JUMP_UP"],["JUMP_DOWN","onboard_music.JUMP_DOWN"],["POWER_UP","onboard_music.POWER_UP"],["POWER_DOWN","onboard_music.POWER_DOWN"]],playlist_extern:[["DADADADUM","DADADADUM"],["ENTERTAINER","ENTERTAINER"],["PRELUDE","PRELUDE"],["ODE","ODE"],["NYAN","NYAN"],["RINGTONE","RINGTONE"],["FUNK","FUNK"],["BLUES","BLUES"],["BIRTHDAY","BIRTHDAY"],["WEDDING","WEDDING"],["FUNERAL","FUNERAL"],["PUNCHLINE","PUNCHLINE"],["PYTHON","PYTHON"],["BADDY","BADDY"],["CHASE","CHASE"],["BA_DING","BA_DING"],["WAWAWAWAA","WAWAWAWAA"],["JUMP_UP","JUMP_UP"],["JUMP_DOWN","JUMP_DOWN"],["POWER_UP","POWER_UP"],["POWER_DOWN","POWER_DOWN"]],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"]],serial_pin:[["pin0","0"],["pin1","1"],["pin2","2"],["pin8","8"],["pin12","12"],["pin13","13"],["pin14","14"],["pin15","15"],["pin16","16"]],radio_power:[["0","0"],["1","1"],["2","2"],["3","3"],["4","4"],["5","5"],["6","6"],["7","7"]],radio_datarate:[["1Mbit","RATE_1MBIT"],["250Kbit","RATE_250KBIT"],["2Mbit","RATE_2MBIT"]],one_more:[["ONE_SHOT","ONE_SHOT"],["PERIODIC","PERIODIC"]],digital_dot:[["0","0"],["1","1"],["2","2"],["3","3"]]};const _V=sV,oV=230,pV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital),"PIN"),this.setOutput(!0)}},aV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_pin),"PIN"),this.setOutput(!0,Number)}},uV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.input_pin),"PIN"),this.setOutput(!0,Number)}},rV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.output_pin),"PIN"),this.setOutput(!0,Number)}},dV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_mpython),"PIN"),this.setOutput(!0,Number)}},lV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.espnow_channel),"PIN"),this.setOutput(!0,Number)}},IV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.haskylens_model),"PIN"),this.setOutput(!0,Number)}},TV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_input),"PIN"),this.setOutput(!0)}},MV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_input),"PIN"),this.setOutput(!0)}},hV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_output),"PIN"),this.setOutput(!0)}},mV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_output),"PIN"),this.setOutput(!0)}},EV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_A_pin),"PIN"),this.setOutput(!0,Number)}},OV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.i2c_B_pin),"PIN"),this.setOutput(!0,Number)}},RV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_A_pin),"PIN"),this.setOutput(!0,Number)}},cV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_B_pin),"PIN"),this.setOutput(!0,Number)}},gV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_C_pin),"PIN"),this.setOutput(!0,Number)}},CV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.spi_D_pin),"PIN"),this.setOutput(!0,Number)}},SV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog),"PIN"),this.setOutput(!0)}},AV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.analog_pin),"PIN"),this.setOutput(!0,Number)}},LV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac),"PIN"),this.setOutput(!0)}},NV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.dac_pin),"PIN"),this.setOutput(!0,Number)}},DV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.button),"PIN"),this.setOutput(!0,Number)}},fV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm),"PIN"),this.setOutput(!0)}},FV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.pwm_pin),"PIN"),this.setOutput(!0,Number)}},PV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch_pin),"PIN"),this.setOutput(!0,Number)}},YV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.touch),"PIN"),this.setOutput(!0)}},vV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.serial_pin),"PIN"),this.setOutput(!0,Number)}},XV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg),"PIN"),this.setOutput(!0,"esp32_image")}},bV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.builtinimg_extern),"PIN"),this.setOutput(!0,"esp32_image")}},xV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.imglist),"PIN"),this.setOutput(!0)}},yV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist),"PIN"),this.setOutput(!0)}},VV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.playlist_extern),"PIN"),this.setOutput(!0)}},BV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdh),"PIN"),this.setOutput(!0,Number)}},GV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.exlcdv),"PIN"),this.setOutput(!0,Number)}},UV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.axis),"PIN"),this.setOutput(!0,Number)}},wV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.brightness),"PIN"),this.setOutput(!0,Number)}},HV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_voice),"PIN"),this.setOutput(!0,Number)}},kV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_builtin_music),"PIN"),this.setOutput(!0,Number)}},WV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tts_bgmusic),"PIN"),this.setOutput(!0,Number)}},KV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.tone_notes),"PIN"),this.setOutput(!0,Number)}},JV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_power),"PIN"),this.setOutput(!0,Number)}},QV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.radio_datarate),"PIN"),this.setOutput(!0,Number)}},qV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.one_more),"PIN"),this.setOutput(!0)}},zV={init:function(){this.setColour(oV),this.appendDummyInput("").appendField(new ut.FieldDropdown(rt.Profile.default.digital_dot),"PIN"),this.setOutput(!0,Number)}},jV=function(t,e){return[this.getFieldValue("PIN"),e.ORDER_ATOMIC]},ZV=jV,$V=jV,tB=jV,eB=jV,iB=jV,nB=jV,sB=jV,_B=jV,oB=jV,pB=jV,aB=jV,uB=jV,rB=jV,dB=jV,lB=jV,IB=jV,TB=jV,MB=jV,hB=jV,mB=jV,EB=jV,OB=jV,RB=jV,cB=jV,gB=jV,CB=jV,SB=jV,AB=jV,LB=jV,NB=jV,DB=jV,fB=jV,FB=jV,PB=jV;Object.assign(ut.Variables,lt),Object.assign(ut.Procedures,Qn),ut.Python=cu,ut.generator=cu,rt.Profile.default={},Object.assign(rt.Profile,_V),Object.assign(rt.Profile.default,_V["ESP32 Generic"]),Object.assign(ut.Blocks,e,i,n,s,_,o,p,a,u,r,d,l,I,x,w,U,Y,y,H,f,G,B,V,F,D,N,X,v,b,P,pt),Object.assign(ut.Python.forBlock,T,M,h,m,E,O,R,c,g,C,S,A,L,$,_t,st,q,tt,ot,K,nt,it,et,J,W,k,j,z,Z,Q,at)})(); \ No newline at end of file diff --git a/boards/default_src/micropython/blocks/display_extern.js b/boards/default_src/micropython/blocks/display_extern.js index 12f96b17..f7a0fc5e 100644 --- a/boards/default_src/micropython/blocks/display_extern.js +++ b/boards/default_src/micropython/blocks/display_extern.js @@ -989,25 +989,25 @@ export const display_color_seclet = { .appendField(new Blockly.FieldColour('#000', null, { colourOptions: [ // grays - '#ffffff', '#cccccc', '#c0c0c0', '#999999', '#666666', '#333333', '#000000', - // reds - '#ffcccc', '#ff6666', '#ff0000', '#cc0000', '#990000', '#660000', '#330000', - // oranges - '#ffcc99', '#ff9966', '#ff9900', '#ff6600', '#cc6600', '#993300', '#663300', - // yellows - '#ffff99', '#ffff66', '#ffcc66', '#ffcc33', '#cc9933', '#996633', '#663333', - // olives - '#ffffcc', '#ffff33', '#ffff00', '#ffcc00', '#999900', '#666600', '#333300', - // greens - '#99ff99', '#66ff99', '#33ff33', '#33cc00', '#009900', '#006600', '#003300', - // turquoises - '#99ffff', '#33ffff', '#66cccc', '#00cccc', '#339999', '#336666', '#003333', - // blues - '#ccffff', '#66ffff', '#33ccff', '#3366ff', '#3333ff', '#000099', '#000066', - // purples - '#ccccff', '#9999ff', '#6666cc', '#6633ff', '#6600cc', '#333399', '#330099', - // violets - '#ffccff', '#ff99ff', '#cc66cc', '#cc33cc', '#993399', '#663366', '#330033' + '#ffffff', '#cccccc', '#c0c0c0', '#999999', '#666666', '#333333', '#000000', + // reds + '#ffcccc', '#ff6666', '#ff0000', '#cc0000', '#990000', '#660000', '#330000', + // oranges + '#ffcc99', '#ff9966', '#ff9900', '#ff6600', '#cc6600', '#993300', '#663300', + // yellows + '#ffff99', '#ffff66', '#ffcc66', '#ffcc33', '#cc9933', '#996633', '#663333', + // olives + '#ffffcc', '#ffff33', '#ffff00', '#ffcc00', '#999900', '#666600', '#333300', + // greens + '#99ff99', '#66ff99', '#33ff33', '#33cc00', '#009900', '#006600', '#003300', + // turquoises + '#99ffff', '#33ffff', '#66cccc', '#00cccc', '#339999', '#336666', '#003333', + // blues + '#ccffff', '#66ffff', '#33ccff', '#3366ff', '#3333ff', '#000099', '#000066', + // purples + '#ccccff', '#9999ff', '#6666cc', '#6633ff', '#6600cc', '#333399', '#330099', + // violets + '#ffccff', '#ff99ff', '#cc66cc', '#cc33cc', '#993399', '#663366', '#330033' ], columns: 7 }), "COLOR"); @@ -1322,9 +1322,9 @@ export const display_oled_use_i2c_init = { this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_DRIVER) .appendField(new Blockly.FieldDropdown([ - ['SSD1306','0'], - ['SSD1315','1'] - ]),'driver'); + ['SSD1306', '0'], + ['SSD1315', '1'] + ]), 'driver'); this.setInputsInline(true); this.setPreviousStatement(true, null); this.setNextStatement(true, null); diff --git a/boards/default_src/micropython/blocks/sensor_extern.js b/boards/default_src/micropython/blocks/sensor_extern.js index 3cf0afd6..44ba7023 100644 --- a/boards/default_src/micropython/blocks/sensor_extern.js +++ b/boards/default_src/micropython/blocks/sensor_extern.js @@ -251,7 +251,7 @@ export const sensor_bmp = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_ALTITUDE_SENSOR+" BMP280") + .appendField(Blockly.Msg.MIXLY_ALTITUDE_SENSOR + " BMP280") .setCheck("var"); this.appendDummyInput("") .appendField(new Blockly.FieldDropdown([ @@ -276,7 +276,7 @@ export const sensor_sht = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR +" SHT20") + .appendField(Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + " SHT20") .setCheck("var"); this.appendDummyInput("") .appendField(new Blockly.FieldDropdown([ @@ -341,25 +341,25 @@ export const sensor_use_i2c_init = { this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT+"(LTR308ALS)", "LTR308"], - [Blockly.Msg.MIXLY_COLOR_SENSOR+"(LTR381RGB)", "LTR381RGB"], - [Blockly.Msg.MIXLY_COLOR_SENSOR+"(UCS12071)","UCS12071"], - [Blockly.Msg.MIXLY_EXTERN_LIGHTUV +"(LTR390UV)","LTR390UV"], - [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+"(HP203X)", "HP203X"], - [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+"(SPL06_001)","SPL06_001"], - [Blockly.Msg.MIXLY_ALTITUDE_SENSOR+"(BMP280)", "BMP280"], + [Blockly.Msg.MIXLY_ESP32_EXTERN_LIGHT + "(LTR308ALS)", "LTR308"], + [Blockly.Msg.MIXLY_COLOR_SENSOR + "(LTR381RGB)", "LTR381RGB"], + [Blockly.Msg.MIXLY_COLOR_SENSOR + "(UCS12071)", "UCS12071"], + [Blockly.Msg.MIXLY_EXTERN_LIGHTUV + "(LTR390UV)", "LTR390UV"], + [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(HP203X)", "HP203X"], + [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(SPL06_001)", "SPL06_001"], + [Blockly.Msg.MIXLY_ALTITUDE_SENSOR + "(BMP280)", "BMP280"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHTC3)", "SHTC3"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(AHT21)", "AHT21"], [Blockly.Msg.MIXLY_TEMP_AND_HUMIDITY_SENSOR + "(SHT20)", "SHT20"], [Blockly.Msg.MIXLY_LASER_RANGE_SENSOR + "(VL53L0X)", "VL53L0X"], [Blockly.Msg.MIXLY_GEOMAGNETIC_SENSOR + "(QMC5883L)", "QMC5883L"], - [Blockly.Msg.MIXLY_ESP32_MAX30102+"(MAX30102)", "MAX30102"], - [Blockly.Msg.HTML_COLOUR +"、"+ Blockly.Msg.MIXLY_ENVIRONMENT_LIGHT+"、"+Blockly.Msg.MIXLY_NEXT+"、"+Blockly.Msg.MIXLY_ESP32_APDS9960+"(APDS9960)", "APDS9960"], - [Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+"(MPU9250)", "MPU9250"], - [Blockly.Msg.MixGo_MPU9250+"(ADXL345)", "ADXL345"], + [Blockly.Msg.MIXLY_ESP32_MAX30102 + "(MAX30102)", "MAX30102"], + [Blockly.Msg.HTML_COLOUR + "、" + Blockly.Msg.MIXLY_ENVIRONMENT_LIGHT + "、" + Blockly.Msg.MIXLY_NEXT + "、" + Blockly.Msg.MIXLY_ESP32_APDS9960 + "(APDS9960)", "APDS9960"], + [Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + "(MPU9250)", "MPU9250"], + [Blockly.Msg.MixGo_MPU9250 + "(ADXL345)", "ADXL345"], ["RFID", "RFID"], - [Blockly.Msg.MIXLY_RADAR_SENSOR+"(CBR817)", "CBR817"], - [Blockly.Msg.MIXLY_AipSpeech_asr+"(CI130X)","CI130X"] + [Blockly.Msg.MIXLY_RADAR_SENSOR + "(CBR817)", "CBR817"], + [Blockly.Msg.MIXLY_AipSpeech_asr + "(CI130X)", "CI130X"] ]), "key"); this.setInputsInline(true); this.setPreviousStatement(true, null); @@ -372,7 +372,7 @@ export const radar_set_DETECTION_THRESHOLD = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_RADAR+'CBR817') + .appendField(Blockly.Msg.MIXLY_RADAR + 'CBR817') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXlY_INTERACTION) @@ -385,7 +385,7 @@ export const radar_set_DETECTION_THRESHOLD = { this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); - this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+Blockly.Msg.MIXLY_DELAY_TIME_RANGE) + this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP + ' ; ' + Blockly.Msg.MIXLY_DELAY_TIME_RANGE) } }; @@ -404,15 +404,15 @@ export const radar_set_DETECTION_THRESHOLD_SANT = { this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); - this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP+' ; '+Blockly.Msg.MIXLY_DELAY_TIME_RANGE) + this.setTooltip(Blockly.Msg.MIXLY_THRESHOLD_TOOLTIP + ' ; ' + Blockly.Msg.MIXLY_DELAY_TIME_RANGE) } }; export const interaction_whether_to_interaction = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_RADAR+'CBR817') + .appendField(Blockly.Msg.MIXLY_RADAR + 'CBR817') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION) @@ -422,8 +422,8 @@ export const interaction_whether_to_interaction = { }; export const interaction_whether_to_interaction_SANT = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_RADAR) .appendField(Blockly.Msg.MIXLY_GET_TO_INTERACTION) @@ -433,10 +433,10 @@ export const interaction_whether_to_interaction_SANT = { }; export const CI130X_IDENTIFY_AND_SAVE = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X') + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE) @@ -447,99 +447,99 @@ export const CI130X_IDENTIFY_AND_SAVE = { }; export const CI130X_GET_WHETHER_IDENTIFY = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X') + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_GET) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_HELLO_XIAOZHI,"1"], - [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI ,"2"], - [Blockly.Msg.MIXLY_THE_FIRST ,"3"], - [Blockly.Msg.MIXLY_THE_SECOND ,"4"], - [Blockly.Msg.MIXLY_THE_THIRD ,"5"], - [Blockly.Msg.MIXLY_THE_FOURTH ,"6"], - [Blockly.Msg.MIXLY_THE_FIFTH ,"7"], - [Blockly.Msg.MIXLY_THE_SIXTH ,"8"], - [Blockly.Msg.MIXLY_THE_SEVENTH ,"9"], - [Blockly.Msg.MIXLY_THE_EIGHTH ,"10"], - [Blockly.Msg.MIXLY_THE_NINTH ,"11"], - [Blockly.Msg.MIXLY_THE_TENTH ,"12"], - [Blockly.Msg.MIXLY_THE_ELEVENTH ,"13"], - [Blockly.Msg.MIXLY_THE_TWELFTH ,"14"], - [Blockly.Msg.MIXLY_THE_13TH ,"15"], - [Blockly.Msg.MIXLY_THE_14TH ,"16"], - [Blockly.Msg.MIXLY_THE_15TH ,"17"], - [Blockly.Msg.MIXLY_THE_16TH ,"18"], - [Blockly.Msg.MIXLY_THE_17TH ,"19"], - [Blockly.Msg.MIXLY_THE_18TH ,"20"], - [Blockly.Msg.MIXLY_THE_19TH ,"21"], - [Blockly.Msg.MIXLY_THE_20TH ,"22"], - [Blockly.Msg.MIXLY_Turn_on_the_lights ,"23"], - [Blockly.Msg.MIXLY_Turn_off_the_lights ,"24"], - [Blockly.Msg.MIXLY_Turn_up_the_brightness ,"25"], - [Blockly.Msg.MIXLY_Turn_down_the_brightness ,"26"], - [Blockly.Msg.MIXLY_Set_it_to_red ,"27"], - [Blockly.Msg.MIXLY_Set_it_to_orange ,"28"], - [Blockly.Msg.MIXLY_Set_it_to_yellow ,"29"], - [Blockly.Msg.MIXLY_Set_it_to_green ,"30"], - [Blockly.Msg.MIXLY_Set_it_to_cyan ,"31"], - [Blockly.Msg.MIXLY_Set_it_to_blue ,"32"], - [Blockly.Msg.MIXLY_Set_it_to_purple ,"33"], - [Blockly.Msg.MIXLY_Set_it_to_white ,"34"], - [Blockly.Msg.MIXLY_Turn_on_the_fan ,"35"], - [Blockly.Msg.MIXLY_Turn_off_the_fan ,"36"], - [Blockly.Msg.MIXLY_First_gear ,"37"], - [Blockly.Msg.MIXLY_Wind_speed_second ,"38"], - [Blockly.Msg.MIXLY_Third_gear ,"39"], - [Blockly.Msg.MIXLY_Previous ,"40"], - [Blockly.Msg.MIXLY_Next_page ,"41"], - [Blockly.Msg.MIXLY_Show_smiley_face ,"42"], - [Blockly.Msg.MIXLY_Show_crying_face ,"43"], - [Blockly.Msg.MIXLY_Show_love ,"44"], - [Blockly.Msg.MIXLY_Close_display ,"45"], - [Blockly.Msg.MIXLY_Start_execution ,"46"], - [Blockly.Msg.MIXLY_FORWARD ,"47"], - [Blockly.Msg.MIXLY_BACKWARD ,"48"], - [Blockly.Msg.MIXLY_TURNLEFT ,"49"], - [Blockly.Msg.MIXLY_TURNRIGHT ,"50"], - [Blockly.Msg.MIXLY_STOP ,"51"], - [Blockly.Msg.MIXLY_Accelerate ,"52"], - [Blockly.Msg.MIXLY_retard ,"53"], - [Blockly.Msg.ROTATION_FORWARD ,"54"], - [Blockly.Msg.ROTATION_BACKWARD ,"55"], - [Blockly.Msg.MIXLY_Query_temperature ,"56"], - [Blockly.Msg.MIXLY_Query_humidity ,"57"], - [Blockly.Msg.MIXLY_Query_brightness ,"58"], - [Blockly.Msg.MIXLY_Query_sound ,"59"], - [Blockly.Msg.MIXLY_Query_time ,"60"], - [Blockly.Msg.MIXLY_Query_distance ,"61"], - [Blockly.Msg.MIXLY_Query_pressure ,"62"], - [Blockly.Msg.MIXLY_Query_key ,"63"], - [Blockly.Msg.MIXLY_Query_touch ,"64"], - [Blockly.Msg.MIXLY_Query_color ,"65"] - ]),"cmd") - .appendField(Blockly.Msg.MIXLY_WHETHER+Blockly.Msg.MIXLY_BE_IDENTIFIED); + [Blockly.Msg.MIXLY_HELLO_XIAOZHI, "1"], + [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI, "2"], + [Blockly.Msg.MIXLY_THE_FIRST, "3"], + [Blockly.Msg.MIXLY_THE_SECOND, "4"], + [Blockly.Msg.MIXLY_THE_THIRD, "5"], + [Blockly.Msg.MIXLY_THE_FOURTH, "6"], + [Blockly.Msg.MIXLY_THE_FIFTH, "7"], + [Blockly.Msg.MIXLY_THE_SIXTH, "8"], + [Blockly.Msg.MIXLY_THE_SEVENTH, "9"], + [Blockly.Msg.MIXLY_THE_EIGHTH, "10"], + [Blockly.Msg.MIXLY_THE_NINTH, "11"], + [Blockly.Msg.MIXLY_THE_TENTH, "12"], + [Blockly.Msg.MIXLY_THE_ELEVENTH, "13"], + [Blockly.Msg.MIXLY_THE_TWELFTH, "14"], + [Blockly.Msg.MIXLY_THE_13TH, "15"], + [Blockly.Msg.MIXLY_THE_14TH, "16"], + [Blockly.Msg.MIXLY_THE_15TH, "17"], + [Blockly.Msg.MIXLY_THE_16TH, "18"], + [Blockly.Msg.MIXLY_THE_17TH, "19"], + [Blockly.Msg.MIXLY_THE_18TH, "20"], + [Blockly.Msg.MIXLY_THE_19TH, "21"], + [Blockly.Msg.MIXLY_THE_20TH, "22"], + [Blockly.Msg.MIXLY_Turn_on_the_lights, "23"], + [Blockly.Msg.MIXLY_Turn_off_the_lights, "24"], + [Blockly.Msg.MIXLY_Turn_up_the_brightness, "25"], + [Blockly.Msg.MIXLY_Turn_down_the_brightness, "26"], + [Blockly.Msg.MIXLY_Set_it_to_red, "27"], + [Blockly.Msg.MIXLY_Set_it_to_orange, "28"], + [Blockly.Msg.MIXLY_Set_it_to_yellow, "29"], + [Blockly.Msg.MIXLY_Set_it_to_green, "30"], + [Blockly.Msg.MIXLY_Set_it_to_cyan, "31"], + [Blockly.Msg.MIXLY_Set_it_to_blue, "32"], + [Blockly.Msg.MIXLY_Set_it_to_purple, "33"], + [Blockly.Msg.MIXLY_Set_it_to_white, "34"], + [Blockly.Msg.MIXLY_Turn_on_the_fan, "35"], + [Blockly.Msg.MIXLY_Turn_off_the_fan, "36"], + [Blockly.Msg.MIXLY_First_gear, "37"], + [Blockly.Msg.MIXLY_Wind_speed_second, "38"], + [Blockly.Msg.MIXLY_Third_gear, "39"], + [Blockly.Msg.MIXLY_Previous, "40"], + [Blockly.Msg.MIXLY_Next_page, "41"], + [Blockly.Msg.MIXLY_Show_smiley_face, "42"], + [Blockly.Msg.MIXLY_Show_crying_face, "43"], + [Blockly.Msg.MIXLY_Show_love, "44"], + [Blockly.Msg.MIXLY_Close_display, "45"], + [Blockly.Msg.MIXLY_Start_execution, "46"], + [Blockly.Msg.MIXLY_FORWARD, "47"], + [Blockly.Msg.MIXLY_BACKWARD, "48"], + [Blockly.Msg.MIXLY_TURNLEFT, "49"], + [Blockly.Msg.MIXLY_TURNRIGHT, "50"], + [Blockly.Msg.MIXLY_STOP, "51"], + [Blockly.Msg.MIXLY_Accelerate, "52"], + [Blockly.Msg.MIXLY_retard, "53"], + [Blockly.Msg.ROTATION_FORWARD, "54"], + [Blockly.Msg.ROTATION_BACKWARD, "55"], + [Blockly.Msg.MIXLY_Query_temperature, "56"], + [Blockly.Msg.MIXLY_Query_humidity, "57"], + [Blockly.Msg.MIXLY_Query_brightness, "58"], + [Blockly.Msg.MIXLY_Query_sound, "59"], + [Blockly.Msg.MIXLY_Query_time, "60"], + [Blockly.Msg.MIXLY_Query_distance, "61"], + [Blockly.Msg.MIXLY_Query_pressure, "62"], + [Blockly.Msg.MIXLY_Query_key, "63"], + [Blockly.Msg.MIXLY_Query_touch, "64"], + [Blockly.Msg.MIXLY_Query_color, "65"] + ]), "cmd") + .appendField(Blockly.Msg.MIXLY_WHETHER + Blockly.Msg.MIXLY_BE_IDENTIFIED); this.setOutput(true); this.setInputsInline(true); } }; export const CI130X_GET_THE_RECOGNIZED_CMD = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X') + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_GET) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_RECOGNIZED_STATE,"status1"], - [Blockly.Msg.MIXLY_WHETHER_BROADCAST,"status2"], - [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"] - ]),"key") + [Blockly.Msg.MIXLY_RECOGNIZED_STATE, "status1"], + [Blockly.Msg.MIXLY_WHETHER_BROADCAST, "status2"], + [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD, "result"] + ]), "key") this.setOutput(true); this.setInputsInline(true); this.setTooltip(Blockly.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP); @@ -547,91 +547,91 @@ export const CI130X_GET_THE_RECOGNIZED_CMD = { }; export const CI130X_BROADCAST = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X') + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_MP3_PLAY) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [Blockly.Msg.MIXLY_WIND_SPEED,"154"], - [Blockly.Msg.MIXLY_HYETAL,"155"], - [Blockly.Msg.MIXLY_TEMPERATURE,"156"], - [Blockly.Msg.MIXLY_Humidity,"157"], + [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"], + [Blockly.Msg.MIXLY_WIND_SPEED, "154"], + [Blockly.Msg.MIXLY_HYETAL, "155"], + [Blockly.Msg.MIXLY_TEMPERATURE, "156"], + [Blockly.Msg.MIXLY_Humidity, "157"], [Blockly.Msg.MIXLY_Altitude, "158"], [Blockly.Msg.MIXLY_SOUND, "159"], [Blockly.Msg.MIXLY_BRIGHTNESS, "160"], - [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"], - [Blockly.Msg.MIXLY_SERVO,"162"], - [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"], - [Blockly.Msg.MIXLY_BUTTON2,"164"], - [Blockly.Msg.MIXLY_ESP32_TOUCH,"165"], - [Blockly.Msg.MIXLY_PAY,"166"], - [Blockly.Msg.MIXLY_CARSH_CHANGE,"167"], - [Blockly.Msg.MIXLY_COUNTDOWN,"168"], - [Blockly.Msg.MIXLY_TIMING,"169"], - [Blockly.Msg.MIXLY_AT_THE_MOMENT,"170"], - [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"], - [Blockly.Msg.MIXLY_FORWARD ,"172"], - [Blockly.Msg.MIXLY_BACKWARD ,"173"], - [Blockly.Msg.MIXLY_TURNLEFT ,"174"], - [Blockly.Msg.MIXLY_TURNRIGHT ,"175"], - [Blockly.Msg.MIXLY_STOP ,"176"], - [Blockly.Msg.MIXLY_Accelerate ,"177"], - [Blockly.Msg.MIXLY_retard ,"178"], - [Blockly.Msg.ROTATION_FORWARD ,"179"], - [Blockly.Msg.ROTATION_BACKWARD ,"180"], - [Blockly.Msg.TUPLE_JOIN,"181"], - [Blockly.Msg.MIXLY_SHOW,"182"], - [Blockly.Msg.MIXLY_LAMPLIGHT,"183"], - [Blockly.Msg.MIXLY_ACCELERATION,"184"] - ]),"star"); + [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE, "161"], + [Blockly.Msg.MIXLY_SERVO, "162"], + [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "163"], + [Blockly.Msg.MIXLY_BUTTON2, "164"], + [Blockly.Msg.MIXLY_ESP32_TOUCH, "165"], + [Blockly.Msg.MIXLY_PAY, "166"], + [Blockly.Msg.MIXLY_CARSH_CHANGE, "167"], + [Blockly.Msg.MIXLY_COUNTDOWN, "168"], + [Blockly.Msg.MIXLY_TIMING, "169"], + [Blockly.Msg.MIXLY_AT_THE_MOMENT, "170"], + [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE, "171"], + [Blockly.Msg.MIXLY_FORWARD, "172"], + [Blockly.Msg.MIXLY_BACKWARD, "173"], + [Blockly.Msg.MIXLY_TURNLEFT, "174"], + [Blockly.Msg.MIXLY_TURNRIGHT, "175"], + [Blockly.Msg.MIXLY_STOP, "176"], + [Blockly.Msg.MIXLY_Accelerate, "177"], + [Blockly.Msg.MIXLY_retard, "178"], + [Blockly.Msg.ROTATION_FORWARD, "179"], + [Blockly.Msg.ROTATION_BACKWARD, "180"], + [Blockly.Msg.TUPLE_JOIN, "181"], + [Blockly.Msg.MIXLY_SHOW, "182"], + [Blockly.Msg.MIXLY_LAMPLIGHT, "183"], + [Blockly.Msg.MIXLY_ACCELERATION, "184"] + ]), "star"); this.appendValueInput('NUM') .appendField(Blockly.Msg.MIXLY_NUMBER); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_UNIT) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [Blockly.Msg.MIXLY_YEAR,"117"], - [Blockly.Msg.MIXLY_MONTH,"118"], - [Blockly.Msg.MIXLY_DAY,"119"], - [Blockly.Msg.MIXLY_HOUR,"120"], - [Blockly.Msg.MIXLY_MINUTE,"121"], - [Blockly.Msg.MIXLY_SECOND,"122"], - [Blockly.Msg.MIXLY_WEEK2,"123"], - [Blockly.Msg.MIXLY_RMB_UNIT,"124"], - [Blockly.Msg.blockpy_setheading_degree,"125"], - [Blockly.Msg.MIXLY_GEAR,"126"], - [Blockly.Msg.MIXLY_LAYER,"127"], - [Blockly.Msg.MIXLY_GRAM,"128"], - [Blockly.Msg.MIXLY_METER,"129"], - [Blockly.Msg.MIXLY_CENTIMETER,"130"], - [Blockly.Msg.MIXLY_MILLIMETER,"131"], - [Blockly.Msg.MIXLY_LUMEN,"132"], - [Blockly.Msg.MIXLY_DECIBEL,"133"], - [Blockly.Msg.MIXLY_hectopascal,"134"], - [Blockly.Msg.MIXLY_PERCENT,"135"], - [Blockly.Msg.MIXLY_CELSIUS,"136"], - [Blockly.Msg.MIXLY_METER_PER_SEC,"137"], - [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,"138"], - [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display,"139"], - [Blockly.Msg.MIXLY_SUCCESS,"140"], - [Blockly.Msg.MIXLY_FAILED,"141"], - [Blockly.Msg.MIXLY_WRONG,"142"], - [Blockly.Msg.MIXLY_GOOD,"143"], - [Blockly.Msg.MIXLY_blockpy_set_add,"144"], - [Blockly.Msg.MIXLY_DECREASE,"145"], - [Blockly.Msg.COLOUR_RGB_RED,"146"], - [Blockly.Msg.COLOUR_RGB_ORANGE,"147"], - [Blockly.Msg.COLOUR_YELLOW,"148"], - [Blockly.Msg.COLOUR_RGB_GREEN,"149"], - [Blockly.Msg.COLOUR_CYAN,"150"], - [Blockly.Msg.COLOUR_RGB_BLUE,"151"], - [Blockly.Msg.COLOUR_RGB_PURPLE,"152"], - [Blockly.Msg.COLOUR_RGB_WHITE,"153"] - ]),"end"); + [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"], + [Blockly.Msg.MIXLY_YEAR, "117"], + [Blockly.Msg.MIXLY_MONTH, "118"], + [Blockly.Msg.MIXLY_DAY, "119"], + [Blockly.Msg.MIXLY_HOUR, "120"], + [Blockly.Msg.MIXLY_MINUTE, "121"], + [Blockly.Msg.MIXLY_SECOND, "122"], + [Blockly.Msg.MIXLY_WEEK2, "123"], + [Blockly.Msg.MIXLY_RMB_UNIT, "124"], + [Blockly.Msg.blockpy_setheading_degree, "125"], + [Blockly.Msg.MIXLY_GEAR, "126"], + [Blockly.Msg.MIXLY_LAYER, "127"], + [Blockly.Msg.MIXLY_GRAM, "128"], + [Blockly.Msg.MIXLY_METER, "129"], + [Blockly.Msg.MIXLY_CENTIMETER, "130"], + [Blockly.Msg.MIXLY_MILLIMETER, "131"], + [Blockly.Msg.MIXLY_LUMEN, "132"], + [Blockly.Msg.MIXLY_DECIBEL, "133"], + [Blockly.Msg.MIXLY_hectopascal, "134"], + [Blockly.Msg.MIXLY_PERCENT, "135"], + [Blockly.Msg.MIXLY_CELSIUS, "136"], + [Blockly.Msg.MIXLY_METER_PER_SEC, "137"], + [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display, "138"], + [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, "139"], + [Blockly.Msg.MIXLY_SUCCESS, "140"], + [Blockly.Msg.MIXLY_FAILED, "141"], + [Blockly.Msg.MIXLY_WRONG, "142"], + [Blockly.Msg.MIXLY_GOOD, "143"], + [Blockly.Msg.MIXLY_blockpy_set_add, "144"], + [Blockly.Msg.MIXLY_DECREASE, "145"], + [Blockly.Msg.COLOUR_RGB_RED, "146"], + [Blockly.Msg.COLOUR_RGB_ORANGE, "147"], + [Blockly.Msg.COLOUR_YELLOW, "148"], + [Blockly.Msg.COLOUR_RGB_GREEN, "149"], + [Blockly.Msg.COLOUR_CYAN, "150"], + [Blockly.Msg.COLOUR_RGB_BLUE, "151"], + [Blockly.Msg.COLOUR_RGB_PURPLE, "152"], + [Blockly.Msg.COLOUR_RGB_WHITE, "153"] + ]), "end"); this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); @@ -639,23 +639,23 @@ export const CI130X_BROADCAST = { } export const CI130X_SET_SYSTEM_CMD = { - init:function(){ - this.setColour(SENSOR_EXTERN_HUE); + init: function () { + this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+'CI130X') + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + 'CI130X') .setCheck("var"); this.appendDummyInput("") .appendField(Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MILXY_ENTER_WAKE_UP,"1"], - [Blockly.Msg.MIXLY_INCREASE_VOLUME,"202"], - [Blockly.Msg.MIXLY_REDUCE_VOLUME,"203"], - [Blockly.Msg.MIXLY_MAX_VOLUME,"204"], - [Blockly.Msg.MIXLY_MINIMUM,"205"], - [Blockly.Msg.MIXLY_OPEN_RESPONSE,"206"], - [Blockly.Msg.MIXLY_CLOSE_RESPONSE,"207"], - [Blockly.Msg.MIXLY_QUIT_WAKE_UP,"208"] - ]),"cmd") + [Blockly.Msg.MILXY_ENTER_WAKE_UP, "1"], + [Blockly.Msg.MIXLY_INCREASE_VOLUME, "202"], + [Blockly.Msg.MIXLY_REDUCE_VOLUME, "203"], + [Blockly.Msg.MIXLY_MAX_VOLUME, "204"], + [Blockly.Msg.MIXLY_MINIMUM, "205"], + [Blockly.Msg.MIXLY_OPEN_RESPONSE, "206"], + [Blockly.Msg.MIXLY_CLOSE_RESPONSE, "207"], + [Blockly.Msg.MIXLY_QUIT_WAKE_UP, "208"] + ]), "cmd") this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); @@ -742,10 +742,10 @@ export const sensor_ucs12071_extern = { .setCheck("var"); this.appendDummyInput("") .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_GET +'RGB'+ Blockly.Msg.HTML_COLOUR, "0"], + [Blockly.Msg.MIXLY_GET + 'RGB' + Blockly.Msg.HTML_COLOUR, "0"], [Blockly.Msg.MIXLY_GET + Blockly.Msg.MIXLY_RGB_RAW, "1"], [Blockly.Msg.MIXLY_GET_ENV_LIGHT + Blockly.Msg.MIXLY_BRIGHTNESS, "2"], - [Blockly.Msg.GET_IR_STRENGTH+Blockly.Msg.MIXLY_BRIGHTNESS,"3"] + [Blockly.Msg.GET_IR_STRENGTH + Blockly.Msg.MIXLY_BRIGHTNESS, "3"] ]), "key"); this.setOutput(true, Number); this.setInputsInline(true); @@ -923,7 +923,7 @@ export const sensor_mpu9250_get_acceleration = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") + .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250") .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_ACCELERATION) @@ -957,7 +957,7 @@ export const sensor_mpu9250_get_magnetic = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") + .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250") .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_GET + Blockly.Msg.MIXLY_MICROBIT_JS_FIELD_STRENGTH) @@ -990,7 +990,7 @@ export const sensor_mpu9250_get_gyro = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") + .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250") .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_SENOR_GYRO) @@ -1023,7 +1023,7 @@ export const sensor_mpu9250_calibrate_compass = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") + .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250") .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_CALIBRATE_COMPASS) @@ -1039,7 +1039,7 @@ export const sensor_mpu9250_temperature = { init: function () { this.setColour(SENSOR_EXTERN_HUE); this.appendValueInput('SUB') - .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR+" MPU9250") + .appendField(Blockly.Msg.MIXLY_NINE_AXIS_SENSOR + " MPU9250") .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_GETTEMPERATUE) @@ -2124,9 +2124,9 @@ export const sensor_read_humiture = { this.appendDummyInput("") .appendField(Blockly.Msg.blockpy_set_of) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_TEMPERATURE,"0"], - [Blockly.Msg.MIXLY_Humidity,"1"] - ]),"key"); + [Blockly.Msg.MIXLY_TEMPERATURE, "0"], + [Blockly.Msg.MIXLY_Humidity, "1"] + ]), "key"); this.setInputsInline(true); this.setOutput(true); } @@ -2149,7 +2149,7 @@ export const ultrasonic_sensor_read_distance = { .appendField(Blockly.Msg.MIXLY_GET) .setCheck("var"); this.appendDummyInput("") - .appendField(Blockly.Msg.blockpy_set_of+Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE); + .appendField(Blockly.Msg.blockpy_set_of + Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE); this.setInputsInline(true); this.setOutput(true); } @@ -2183,9 +2183,9 @@ export const camera_sensor_init = { this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_PROCCED) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_AipFace,"FACE_RECOGNIZE"], - [Blockly.Msg.MIXLY_FACE_CLASSIFIER,"FACE_DETECT"] - ]),"key"); + [Blockly.Msg.MIXLY_AipFace, "FACE_RECOGNIZE"], + [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FACE_DETECT"] + ]), "key"); this.setOutput(true); this.setInputsInline(true); } diff --git a/boards/default_src/micropython/blocks/sensor_onboard.js b/boards/default_src/micropython/blocks/sensor_onboard.js index 9de59773..625f25db 100644 --- a/boards/default_src/micropython/blocks/sensor_onboard.js +++ b/boards/default_src/micropython/blocks/sensor_onboard.js @@ -401,7 +401,7 @@ export const sensor_mixgo_pin_near = { this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput() .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_GET + Blockly.Msg.MIXLY_ESP32_NEAR); - // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, "l"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, "r"]]), "direction") + // .appendField(new Blockly.FieldDropdown([[Blockly.Msg.mixpy_PL_TEXT_TOP, "l"], [Blockly.Msg.mixpy_PL_TEXT_BOTTOM, "r"]]), "direction") this.setOutput(true, Number); this.setInputsInline(true); // var thisBlock = this; @@ -619,7 +619,7 @@ export const onboard_RTC_get_timetuple_to_str = { .appendField(Blockly.Msg.MIXLY_GPS_TIME + Blockly.Msg.MIXLY_MICROBIT_TYPE_TUPLE) .setCheck() this.appendDummyInput() - .appendField( Blockly.Msg.A_TO_B + Blockly.Msg.MIXLY_GPS_TIME + Blockly.Msg.LANG_MATH_STRING) + .appendField(Blockly.Msg.A_TO_B + Blockly.Msg.MIXLY_GPS_TIME + Blockly.Msg.LANG_MATH_STRING) this.setOutput(true, String); this.setInputsInline(true); } @@ -1517,16 +1517,16 @@ export const educore_rfid_sensor_scan_data = { this.appendDummyInput('') .appendField(Blockly.Msg.MIXLY_GET) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_SERIAL_NUMBER,"serial_number"] - ]),"key"); + [Blockly.Msg.MIXLY_SERIAL_NUMBER, "serial_number"] + ]), "key"); this.setOutput(true); this.setInputsInline(true); } }; export const CI130X_IDENTIFY_AND_SAVE_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); + init: function () { + this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_IDENTIFY_ONCE_AND_SAVE) this.setPreviousStatement(true); @@ -1536,93 +1536,93 @@ export const CI130X_IDENTIFY_AND_SAVE_SANT = { }; export const CI130X_GET_WHETHER_IDENTIFY_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); + init: function () { + this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_GET) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_HELLO_XIAOZHI,"1"], - [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI ,"2"], - [Blockly.Msg.MIXLY_THE_FIRST ,"3"], - [Blockly.Msg.MIXLY_THE_SECOND ,"4"], - [Blockly.Msg.MIXLY_THE_THIRD ,"5"], - [Blockly.Msg.MIXLY_THE_FOURTH ,"6"], - [Blockly.Msg.MIXLY_THE_FIFTH ,"7"], - [Blockly.Msg.MIXLY_THE_SIXTH ,"8"], - [Blockly.Msg.MIXLY_THE_SEVENTH ,"9"], - [Blockly.Msg.MIXLY_THE_EIGHTH ,"10"], - [Blockly.Msg.MIXLY_THE_NINTH ,"11"], - [Blockly.Msg.MIXLY_THE_TENTH ,"12"], - [Blockly.Msg.MIXLY_THE_ELEVENTH ,"13"], - [Blockly.Msg.MIXLY_THE_TWELFTH ,"14"], - [Blockly.Msg.MIXLY_THE_13TH ,"15"], - [Blockly.Msg.MIXLY_THE_14TH ,"16"], - [Blockly.Msg.MIXLY_THE_15TH ,"17"], - [Blockly.Msg.MIXLY_THE_16TH ,"18"], - [Blockly.Msg.MIXLY_THE_17TH ,"19"], - [Blockly.Msg.MIXLY_THE_18TH ,"20"], - [Blockly.Msg.MIXLY_THE_19TH ,"21"], - [Blockly.Msg.MIXLY_THE_20TH ,"22"], - [Blockly.Msg.MIXLY_Turn_on_the_lights ,"23"], - [Blockly.Msg.MIXLY_Turn_off_the_lights ,"24"], - [Blockly.Msg.MIXLY_Turn_up_the_brightness ,"25"], - [Blockly.Msg.MIXLY_Turn_down_the_brightness ,"26"], - [Blockly.Msg.MIXLY_Set_it_to_red ,"27"], - [Blockly.Msg.MIXLY_Set_it_to_orange ,"28"], - [Blockly.Msg.MIXLY_Set_it_to_yellow ,"29"], - [Blockly.Msg.MIXLY_Set_it_to_green ,"30"], - [Blockly.Msg.MIXLY_Set_it_to_cyan ,"31"], - [Blockly.Msg.MIXLY_Set_it_to_blue ,"32"], - [Blockly.Msg.MIXLY_Set_it_to_purple ,"33"], - [Blockly.Msg.MIXLY_Set_it_to_white ,"34"], - [Blockly.Msg.MIXLY_Turn_on_the_fan ,"35"], - [Blockly.Msg.MIXLY_Turn_off_the_fan ,"36"], - [Blockly.Msg.MIXLY_First_gear ,"37"], - [Blockly.Msg.MIXLY_Wind_speed_second ,"38"], - [Blockly.Msg.MIXLY_Third_gear ,"39"], - [Blockly.Msg.MIXLY_Previous ,"40"], - [Blockly.Msg.MIXLY_Next_page ,"41"], - [Blockly.Msg.MIXLY_Show_smiley_face ,"42"], - [Blockly.Msg.MIXLY_Show_crying_face ,"43"], - [Blockly.Msg.MIXLY_Show_love ,"44"], - [Blockly.Msg.MIXLY_Close_display ,"45"], - [Blockly.Msg.MIXLY_Start_execution ,"46"], - [Blockly.Msg.MIXLY_FORWARD ,"47"], - [Blockly.Msg.MIXLY_BACKWARD ,"48"], - [Blockly.Msg.MIXLY_TURNLEFT ,"49"], - [Blockly.Msg.MIXLY_TURNRIGHT ,"50"], - [Blockly.Msg.MIXLY_STOP ,"51"], - [Blockly.Msg.MIXLY_Accelerate ,"52"], - [Blockly.Msg.MIXLY_retard ,"53"], - [Blockly.Msg.ROTATION_FORWARD ,"54"], - [Blockly.Msg.ROTATION_BACKWARD ,"55"], - [Blockly.Msg.MIXLY_Query_temperature ,"56"], - [Blockly.Msg.MIXLY_Query_humidity ,"57"], - [Blockly.Msg.MIXLY_Query_brightness ,"58"], - [Blockly.Msg.MIXLY_Query_sound ,"59"], - [Blockly.Msg.MIXLY_Query_time ,"60"], - [Blockly.Msg.MIXLY_Query_distance ,"61"], - [Blockly.Msg.MIXLY_Query_pressure ,"62"], - [Blockly.Msg.MIXLY_Query_key ,"63"], - [Blockly.Msg.MIXLY_Query_touch ,"64"], - [Blockly.Msg.MIXLY_Query_color ,"65"] - ]),"cmd") - .appendField(Blockly.Msg.MIXLY_WHETHER+Blockly.Msg.MIXLY_BE_IDENTIFIED); + [Blockly.Msg.MIXLY_HELLO_XIAOZHI, "1"], + [Blockly.Msg.MIXLY_XIAOZHIXIAOZHI, "2"], + [Blockly.Msg.MIXLY_THE_FIRST, "3"], + [Blockly.Msg.MIXLY_THE_SECOND, "4"], + [Blockly.Msg.MIXLY_THE_THIRD, "5"], + [Blockly.Msg.MIXLY_THE_FOURTH, "6"], + [Blockly.Msg.MIXLY_THE_FIFTH, "7"], + [Blockly.Msg.MIXLY_THE_SIXTH, "8"], + [Blockly.Msg.MIXLY_THE_SEVENTH, "9"], + [Blockly.Msg.MIXLY_THE_EIGHTH, "10"], + [Blockly.Msg.MIXLY_THE_NINTH, "11"], + [Blockly.Msg.MIXLY_THE_TENTH, "12"], + [Blockly.Msg.MIXLY_THE_ELEVENTH, "13"], + [Blockly.Msg.MIXLY_THE_TWELFTH, "14"], + [Blockly.Msg.MIXLY_THE_13TH, "15"], + [Blockly.Msg.MIXLY_THE_14TH, "16"], + [Blockly.Msg.MIXLY_THE_15TH, "17"], + [Blockly.Msg.MIXLY_THE_16TH, "18"], + [Blockly.Msg.MIXLY_THE_17TH, "19"], + [Blockly.Msg.MIXLY_THE_18TH, "20"], + [Blockly.Msg.MIXLY_THE_19TH, "21"], + [Blockly.Msg.MIXLY_THE_20TH, "22"], + [Blockly.Msg.MIXLY_Turn_on_the_lights, "23"], + [Blockly.Msg.MIXLY_Turn_off_the_lights, "24"], + [Blockly.Msg.MIXLY_Turn_up_the_brightness, "25"], + [Blockly.Msg.MIXLY_Turn_down_the_brightness, "26"], + [Blockly.Msg.MIXLY_Set_it_to_red, "27"], + [Blockly.Msg.MIXLY_Set_it_to_orange, "28"], + [Blockly.Msg.MIXLY_Set_it_to_yellow, "29"], + [Blockly.Msg.MIXLY_Set_it_to_green, "30"], + [Blockly.Msg.MIXLY_Set_it_to_cyan, "31"], + [Blockly.Msg.MIXLY_Set_it_to_blue, "32"], + [Blockly.Msg.MIXLY_Set_it_to_purple, "33"], + [Blockly.Msg.MIXLY_Set_it_to_white, "34"], + [Blockly.Msg.MIXLY_Turn_on_the_fan, "35"], + [Blockly.Msg.MIXLY_Turn_off_the_fan, "36"], + [Blockly.Msg.MIXLY_First_gear, "37"], + [Blockly.Msg.MIXLY_Wind_speed_second, "38"], + [Blockly.Msg.MIXLY_Third_gear, "39"], + [Blockly.Msg.MIXLY_Previous, "40"], + [Blockly.Msg.MIXLY_Next_page, "41"], + [Blockly.Msg.MIXLY_Show_smiley_face, "42"], + [Blockly.Msg.MIXLY_Show_crying_face, "43"], + [Blockly.Msg.MIXLY_Show_love, "44"], + [Blockly.Msg.MIXLY_Close_display, "45"], + [Blockly.Msg.MIXLY_Start_execution, "46"], + [Blockly.Msg.MIXLY_FORWARD, "47"], + [Blockly.Msg.MIXLY_BACKWARD, "48"], + [Blockly.Msg.MIXLY_TURNLEFT, "49"], + [Blockly.Msg.MIXLY_TURNRIGHT, "50"], + [Blockly.Msg.MIXLY_STOP, "51"], + [Blockly.Msg.MIXLY_Accelerate, "52"], + [Blockly.Msg.MIXLY_retard, "53"], + [Blockly.Msg.ROTATION_FORWARD, "54"], + [Blockly.Msg.ROTATION_BACKWARD, "55"], + [Blockly.Msg.MIXLY_Query_temperature, "56"], + [Blockly.Msg.MIXLY_Query_humidity, "57"], + [Blockly.Msg.MIXLY_Query_brightness, "58"], + [Blockly.Msg.MIXLY_Query_sound, "59"], + [Blockly.Msg.MIXLY_Query_time, "60"], + [Blockly.Msg.MIXLY_Query_distance, "61"], + [Blockly.Msg.MIXLY_Query_pressure, "62"], + [Blockly.Msg.MIXLY_Query_key, "63"], + [Blockly.Msg.MIXLY_Query_touch, "64"], + [Blockly.Msg.MIXLY_Query_color, "65"] + ]), "cmd") + .appendField(Blockly.Msg.MIXLY_WHETHER + Blockly.Msg.MIXLY_BE_IDENTIFIED); this.setOutput(true); this.setInputsInline(true); } }; export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); + init: function () { + this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_GET) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_RECOGNIZED_STATE,"status1"], - [Blockly.Msg.MIXLY_WHETHER_BROADCAST,"status2"], - [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD,"result"] - ]),"key") + [Blockly.Msg.MIXLY_RECOGNIZED_STATE, "status1"], + [Blockly.Msg.MIXLY_WHETHER_BROADCAST, "status2"], + [Blockly.Msg.MIXLY_THE_RECOGNIZED_CMD, "result"] + ]), "key") this.setOutput(true); this.setInputsInline(true); this.setTooltip(Blockly.Msg.MIXLY_CI130X_GET_THE_RECOGNIZED_STATE_TOOLTIP); @@ -1630,88 +1630,88 @@ export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = { }; export const CI130X_BROADCAST_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); + init: function () { + this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.MIXLY_MP3_PLAY) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [Blockly.Msg.MIXLY_WIND_SPEED,"154"], - [Blockly.Msg.MIXLY_HYETAL,"155"], - [Blockly.Msg.MIXLY_TEMPERATURE,"156"], - [Blockly.Msg.MIXLY_Humidity,"157"], + [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"], + [Blockly.Msg.MIXLY_WIND_SPEED, "154"], + [Blockly.Msg.MIXLY_HYETAL, "155"], + [Blockly.Msg.MIXLY_TEMPERATURE, "156"], + [Blockly.Msg.MIXLY_Humidity, "157"], [Blockly.Msg.MIXLY_Altitude, "158"], [Blockly.Msg.MIXLY_SOUND, "159"], [Blockly.Msg.MIXLY_BRIGHTNESS, "160"], - [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE,"161"], - [Blockly.Msg.MIXLY_SERVO,"162"], - [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE,"163"], - [Blockly.Msg.MIXLY_BUTTON2,"164"], - [Blockly.Msg.MIXLY_ESP32_TOUCH,"165"], - [Blockly.Msg.MIXLY_PAY,"166"], - [Blockly.Msg.MIXLY_CARSH_CHANGE,"167"], - [Blockly.Msg.MIXLY_COUNTDOWN,"168"], - [Blockly.Msg.MIXLY_TIMING,"169"], - [Blockly.Msg.MIXLY_AT_THE_MOMENT,"170"], - [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE,"171"], - [Blockly.Msg.MIXLY_FORWARD ,"172"], - [Blockly.Msg.MIXLY_BACKWARD ,"173"], - [Blockly.Msg.MIXLY_TURNLEFT ,"174"], - [Blockly.Msg.MIXLY_TURNRIGHT ,"175"], - [Blockly.Msg.MIXLY_STOP ,"176"], - [Blockly.Msg.MIXLY_Accelerate ,"177"], - [Blockly.Msg.MIXLY_retard ,"178"], - [Blockly.Msg.ROTATION_FORWARD ,"179"], - [Blockly.Msg.ROTATION_BACKWARD ,"180"], - [Blockly.Msg.TUPLE_JOIN,"181"], - [Blockly.Msg.MIXLY_SHOW,"182"], - [Blockly.Msg.MIXLY_LAMPLIGHT,"183"], - [Blockly.Msg.MIXLY_ACCELERATION,"184"] - ]),"star"); + [Blockly.Msg.ME_GO_HALL_SENSOR_DISTANCE, "161"], + [Blockly.Msg.MIXLY_SERVO, "162"], + [Blockly.Msg.MIXLY_MICROBIT_JS_BY_ANGLE, "163"], + [Blockly.Msg.MIXLY_BUTTON2, "164"], + [Blockly.Msg.MIXLY_ESP32_TOUCH, "165"], + [Blockly.Msg.MIXLY_PAY, "166"], + [Blockly.Msg.MIXLY_CARSH_CHANGE, "167"], + [Blockly.Msg.MIXLY_COUNTDOWN, "168"], + [Blockly.Msg.MIXLY_TIMING, "169"], + [Blockly.Msg.MIXLY_AT_THE_MOMENT, "170"], + [Blockly.Msg.MIXLY_MICROBIT_JS_CURRENT_GESTURE, "171"], + [Blockly.Msg.MIXLY_FORWARD, "172"], + [Blockly.Msg.MIXLY_BACKWARD, "173"], + [Blockly.Msg.MIXLY_TURNLEFT, "174"], + [Blockly.Msg.MIXLY_TURNRIGHT, "175"], + [Blockly.Msg.MIXLY_STOP, "176"], + [Blockly.Msg.MIXLY_Accelerate, "177"], + [Blockly.Msg.MIXLY_retard, "178"], + [Blockly.Msg.ROTATION_FORWARD, "179"], + [Blockly.Msg.ROTATION_BACKWARD, "180"], + [Blockly.Msg.TUPLE_JOIN, "181"], + [Blockly.Msg.MIXLY_SHOW, "182"], + [Blockly.Msg.MIXLY_LAMPLIGHT, "183"], + [Blockly.Msg.MIXLY_ACCELERATION, "184"] + ]), "star"); this.appendValueInput('NUM') .appendField(Blockly.Msg.MIXLY_NUMBER); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_UNIT) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE,"None"], - [Blockly.Msg.MIXLY_YEAR,"117"], - [Blockly.Msg.MIXLY_MONTH,"118"], - [Blockly.Msg.MIXLY_DAY,"119"], - [Blockly.Msg.MIXLY_HOUR,"120"], - [Blockly.Msg.MIXLY_MINUTE,"121"], - [Blockly.Msg.MIXLY_SECOND,"122"], - [Blockly.Msg.MIXLY_WEEK2,"123"], - [Blockly.Msg.MIXLY_RMB_UNIT,"124"], - [Blockly.Msg.blockpy_setheading_degree,"125"], - [Blockly.Msg.MIXLY_GEAR,"126"], - [Blockly.Msg.MIXLY_LAYER,"127"], - [Blockly.Msg.MIXLY_GRAM,"128"], - [Blockly.Msg.MIXLY_METER,"129"], - [Blockly.Msg.MIXLY_CENTIMETER,"130"], - [Blockly.Msg.MIXLY_MILLIMETER,"131"], - [Blockly.Msg.MIXLY_LUMEN,"132"], - [Blockly.Msg.MIXLY_DECIBEL,"133"], - [Blockly.Msg.MIXLY_hectopascal,"134"], - [Blockly.Msg.MIXLY_PERCENT,"135"], - [Blockly.Msg.MIXLY_CELSIUS,"136"], - [Blockly.Msg.MIXLY_METER_PER_SEC,"137"], - [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display,"138"], - [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display,"139"], - [Blockly.Msg.MIXLY_SUCCESS,"140"], - [Blockly.Msg.MIXLY_FAILED,"141"], - [Blockly.Msg.MIXLY_WRONG,"142"], - [Blockly.Msg.MIXLY_GOOD,"143"], - [Blockly.Msg.MIXLY_blockpy_set_add,"144"], - [Blockly.Msg.MIXLY_DECREASE,"145"], - [Blockly.Msg.COLOUR_RGB_RED,"146"], - [Blockly.Msg.COLOUR_RGB_ORANGE,"147"], - [Blockly.Msg.COLOUR_YELLOW,"148"], - [Blockly.Msg.COLOUR_RGB_GREEN,"149"], - [Blockly.Msg.COLOUR_CYAN,"150"], - [Blockly.Msg.COLOUR_RGB_BLUE,"151"], - [Blockly.Msg.COLOUR_RGB_PURPLE,"152"], - [Blockly.Msg.COLOUR_RGB_WHITE,"153"] - ]),"end"); + [Blockly.Msg.MIXLY_MICROBIT_JS_INOUT_PULL_NONE, "None"], + [Blockly.Msg.MIXLY_YEAR, "117"], + [Blockly.Msg.MIXLY_MONTH, "118"], + [Blockly.Msg.MIXLY_DAY, "119"], + [Blockly.Msg.MIXLY_HOUR, "120"], + [Blockly.Msg.MIXLY_MINUTE, "121"], + [Blockly.Msg.MIXLY_SECOND, "122"], + [Blockly.Msg.MIXLY_WEEK2, "123"], + [Blockly.Msg.MIXLY_RMB_UNIT, "124"], + [Blockly.Msg.blockpy_setheading_degree, "125"], + [Blockly.Msg.MIXLY_GEAR, "126"], + [Blockly.Msg.MIXLY_LAYER, "127"], + [Blockly.Msg.MIXLY_GRAM, "128"], + [Blockly.Msg.MIXLY_METER, "129"], + [Blockly.Msg.MIXLY_CENTIMETER, "130"], + [Blockly.Msg.MIXLY_MILLIMETER, "131"], + [Blockly.Msg.MIXLY_LUMEN, "132"], + [Blockly.Msg.MIXLY_DECIBEL, "133"], + [Blockly.Msg.MIXLY_hectopascal, "134"], + [Blockly.Msg.MIXLY_PERCENT, "135"], + [Blockly.Msg.MIXLY_CELSIUS, "136"], + [Blockly.Msg.MIXLY_METER_PER_SEC, "137"], + [Blockly.Msg.MIXLY_MICROBIT_Turn_on_display, "138"], + [Blockly.Msg.MIXLY_MICROBIT_Turn_off_display, "139"], + [Blockly.Msg.MIXLY_SUCCESS, "140"], + [Blockly.Msg.MIXLY_FAILED, "141"], + [Blockly.Msg.MIXLY_WRONG, "142"], + [Blockly.Msg.MIXLY_GOOD, "143"], + [Blockly.Msg.MIXLY_blockpy_set_add, "144"], + [Blockly.Msg.MIXLY_DECREASE, "145"], + [Blockly.Msg.COLOUR_RGB_RED, "146"], + [Blockly.Msg.COLOUR_RGB_ORANGE, "147"], + [Blockly.Msg.COLOUR_YELLOW, "148"], + [Blockly.Msg.COLOUR_RGB_GREEN, "149"], + [Blockly.Msg.COLOUR_CYAN, "150"], + [Blockly.Msg.COLOUR_RGB_BLUE, "151"], + [Blockly.Msg.COLOUR_RGB_PURPLE, "152"], + [Blockly.Msg.COLOUR_RGB_WHITE, "153"] + ]), "end"); this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); @@ -1719,20 +1719,20 @@ export const CI130X_BROADCAST_SANT = { } export const CI130X_SET_SYSTEM_CMD_SANT = { - init:function(){ - this.setColour(SENSOR_ONBOARD_HUE); + init: function () { + this.setColour(SENSOR_ONBOARD_HUE); this.appendDummyInput("") - .appendField(Blockly.Msg.MIXLY_AipSpeech_asr+Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD) + .appendField(Blockly.Msg.MIXLY_AipSpeech_asr + Blockly.Msg.LISTS_SET_INDEX_SET + Blockly.Msg.MIXLY_SYSTEM + Blockly.Msg.MIXLY_CMD) .appendField(new Blockly.FieldDropdown([ - [Blockly.Msg.MILXY_ENTER_WAKE_UP,"1"], - [Blockly.Msg.MIXLY_INCREASE_VOLUME,"202"], - [Blockly.Msg.MIXLY_REDUCE_VOLUME,"203"], - [Blockly.Msg.MIXLY_MAX_VOLUME,"204"], - [Blockly.Msg.MIXLY_MINIMUM,"205"], - [Blockly.Msg.MIXLY_OPEN_RESPONSE,"206"], - [Blockly.Msg.MIXLY_CLOSE_RESPONSE,"207"], - [Blockly.Msg.MIXLY_QUIT_WAKE_UP,"208"] - ]),"cmd") + [Blockly.Msg.MILXY_ENTER_WAKE_UP, "1"], + [Blockly.Msg.MIXLY_INCREASE_VOLUME, "202"], + [Blockly.Msg.MIXLY_REDUCE_VOLUME, "203"], + [Blockly.Msg.MIXLY_MAX_VOLUME, "204"], + [Blockly.Msg.MIXLY_MINIMUM, "205"], + [Blockly.Msg.MIXLY_OPEN_RESPONSE, "206"], + [Blockly.Msg.MIXLY_CLOSE_RESPONSE, "207"], + [Blockly.Msg.MIXLY_QUIT_WAKE_UP, "208"] + ]), "cmd") this.setPreviousStatement(true); this.setNextStatement(true); this.setInputsInline(true); diff --git a/boards/default_src/micropython/generators/actuator_extern.js b/boards/default_src/micropython/generators/actuator_extern.js index 2e279758..afb4085c 100644 --- a/boards/default_src/micropython/generators/actuator_extern.js +++ b/boards/default_src/micropython/generators/actuator_extern.js @@ -220,51 +220,51 @@ export const actuator_use_uart_init = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); var key2 = this.getFieldValue('key2'); - if (key2=='SYN6288'){ + if (key2 == 'SYN6288') { generator.definitions_['import_syn6288'] = 'import syn6288'; var code = v + '=syn6288.SYN6288(' + key + ')\n'; return code; - }else if(key2=='NS9300'){ + } else if (key2 == 'NS9300') { generator.definitions_['import_ns9300'] = 'import ns9300'; var code = v + '=ns9300.NS9300(' + key + ')\n'; return code; } - + } -export const player_whether_stop = function(_,generator){ +export const player_whether_stop = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = v+'.status('+key+')'; - return [code,generator.ORDER_ATOMIC]; + var code = v + '.status(' + key + ')'; + return [code, generator.ORDER_ATOMIC]; } -export const player_set_play = function(_,generator){ +export const player_set_play = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = v+'.control('+key+')\n'; + var code = v + '.control(' + key + ')\n'; return code; } -export const player_set_volume = function(_,generator){ +export const player_set_volume = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var vol = generator.valueToCode(this, 'volume', generator.ORDER_ATOMIC); - var code = v+'.volume('+vol+')\n'; + var code = v + '.volume(' + vol + ')\n'; return code; } -export const player_set_mode = function(_,generator){ +export const player_set_mode = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = v +'.mode('+key+')\n'; + var code = v + '.mode(' + key + ')\n'; return code; } -export const player_play_music = function(_,generator){ +export const player_play_music = function (_, generator) { var v = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); var s = generator.valueToCode(this, 'song', generator.ORDER_ATOMIC); - var code = v +'.'+key+'('+s+')\n'; + var code = v + '.' + key + '(' + s + ')\n'; return code; } @@ -637,7 +637,7 @@ export const PIN_init = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin'; var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'pin('+ dropdown_pin +')'; + var code = 'pin(' + dropdown_pin + ')'; return [code, generator.ORDER_ATOMIC]; } @@ -646,7 +646,7 @@ export const pin_led_bright = function (_, generator) { var pin = generator.valueToCode(this, 'pin', generator.ORDER_ATOMIC); generator.definitions_['import_' + version + 'pin'] = 'from ' + version + ' import pin'; var bright = generator.valueToCode(this, 'bright', generator.ORDER_ATOMIC); - var code = pin+".write_digital(value=" + bright + ")\n"; + var code = pin + ".write_digital(value=" + bright + ")\n"; return code; } @@ -654,7 +654,7 @@ export const servo_PIN_init = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo'; var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'servo('+ dropdown_pin +')'; + var code = 'servo(' + dropdown_pin + ')'; return [code, generator.ORDER_ATOMIC]; } @@ -663,7 +663,7 @@ export const servo_move_angle = function (_, generator) { generator.definitions_['import_' + version + 'servo'] = 'from ' + version + ' import servo'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var a = generator.valueToCode(this, 'angle', generator.ORDER_ATOMIC); - var code = sub+'.angle('+ a +')\n'; + var code = sub + '.angle(' + a + ')\n'; return code; } @@ -671,7 +671,7 @@ export const parrot_PIN_init = function (_, generator) { var version = Boards.getSelectedBoardKey().split(':')[2] generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot'; var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code = 'parrot('+ dropdown_pin +')'; + var code = 'parrot(' + dropdown_pin + ')'; return [code, generator.ORDER_ATOMIC]; } @@ -680,6 +680,6 @@ export const parrot_move_speed = function (_, generator) { generator.definitions_['import_' + version + 'parrot'] = 'from ' + version + ' import parrot'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var speed = generator.valueToCode(this, 'speed', generator.ORDER_ATOMIC); - var code = sub+'.speed('+ speed +')\n'; + var code = sub + '.speed(' + speed + ')\n'; return code; } \ No newline at end of file diff --git a/boards/default_src/micropython/generators/sensor_extern.js b/boards/default_src/micropython/generators/sensor_extern.js index 0b9152d0..346ed4eb 100644 --- a/boards/default_src/micropython/generators/sensor_extern.js +++ b/boards/default_src/micropython/generators/sensor_extern.js @@ -179,16 +179,16 @@ export const sensor_use_i2c_init = function (_, generator) { } else if (key == 'LTR381RGB') { generator.definitions_['import_ltr381rgb'] = 'import ltr381rgb'; code = v + ' = ltr381rgb.LTR_381RGB(' + iv + ')\n'; - } else if(key == 'UCS12071'){ + } else if (key == 'UCS12071') { generator.definitions_['import_ucs12071'] = 'import ucs12071'; code = v + ' = ucs12071.UCS12071(' + iv + ')\n'; - } else if (key == 'LTR390UV'){ + } else if (key == 'LTR390UV') { generator.definitions_['import_ltr390uv'] = 'import ltr390uv'; - code = v + ' = ltr390uv.ALS_UVS(' + iv +')\n'; + code = v + ' = ltr390uv.ALS_UVS(' + iv + ')\n'; } else if (key == 'HP203X') { generator.definitions_['import_hp203x'] = 'import hp203x'; code = v + ' = hp203x.HP203X(' + iv + ')\n'; - } else if(key == "SPL06_001"){ + } else if (key == "SPL06_001") { generator.definitions_['import_spl06_001'] = 'import spl06_001'; code = v + ' = spl06_001.SPL06(' + iv + ')\n'; } else if (key == 'SHTC3') { @@ -212,10 +212,10 @@ export const sensor_use_i2c_init = function (_, generator) { } else if (key == 'RFID') { generator.definitions_['import_rc522'] = 'import rc522'; code = v + ' = rc522.RC522(' + iv + ')\n'; - }else if (key == 'CBR817') { + } else if (key == 'CBR817') { generator.definitions_['import_cbr817'] = 'import cbr817'; code = v + ' = cbr817.' + key + "(" + iv + ')\n'; - }else if (key == 'CI130X'){ + } else if (key == 'CI130X') { generator.definitions_['import_ci130x'] = 'import ci130x'; code = v + ' = ci130x.' + key + "(" + iv + ')\n'; } @@ -227,7 +227,7 @@ export const radar_set_DETECTION_THRESHOLD = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = sub + '.threshold(' + value +')\n'+sub + '.delay_ms(' + value2 +')\n'; + var code = sub + '.threshold(' + value + ')\n' + sub + '.delay_ms(' + value2 + ')\n'; return code; } @@ -235,67 +235,67 @@ export const radar_set_DETECTION_THRESHOLD_SANT = function (_, generator) { generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw'; var value = generator.valueToCode(this, 'VAR', generator.ORDER_ATOMIC); var value2 = generator.valueToCode(this, 'VAR2', generator.ORDER_ATOMIC); - var code = 'ext_mmw.threshold(' + value +')\n'+ 'ext_mmw.delay_ms(' + value2 +')\n'; + var code = 'ext_mmw.threshold(' + value + ')\n' + 'ext_mmw.delay_ms(' + value2 + ')\n'; return code; } -export const interaction_whether_to_interaction = function(_,generator){ +export const interaction_whether_to_interaction = function (_, generator) { generator.definitions_['import_cbr817'] = 'import cbr817'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.result()'; - return [code,generator.ORDER_ATOMIC]; + var code = sub + '.result()'; + return [code, generator.ORDER_ATOMIC]; } -export const interaction_whether_to_interaction_SANT = function(_,generator){ +export const interaction_whether_to_interaction_SANT = function (_, generator) { generator.definitions_['import_sant_g2_ext_mmw'] = 'from sant_g2 import ext_mmw'; var code = 'ext_mmw.result()'; - return [code,generator.ORDER_ATOMIC]; + return [code, generator.ORDER_ATOMIC]; } -export const CI130X_IDENTIFY_AND_SAVE = function(_,generator){ +export const CI130X_IDENTIFY_AND_SAVE = function (_, generator) { generator.definitions_['import_ci130x'] = 'import ci130x'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.cmd_id()\n'; + var code = sub + '.cmd_id()\n'; return code; } -export const CI130X_GET_WHETHER_IDENTIFY = function(_,generator){ +export const CI130X_GET_WHETHER_IDENTIFY = function (_, generator) { generator.definitions_['import_ci130x'] = 'import ci130x'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var cmd = this.getFieldValue('cmd'); - var code = sub+'.result('+cmd+')'; - return [code,generator.ORDER_ATOMIC]; + var code = sub + '.result(' + cmd + ')'; + return [code, generator.ORDER_ATOMIC]; } -export const CI130X_GET_THE_RECOGNIZED_CMD = function(_,generator){ +export const CI130X_GET_THE_RECOGNIZED_CMD = function (_, generator) { generator.definitions_['import_ci130x'] = 'import ci130x'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - if(key == 'status1'){ - var code = sub+'.status()[0]'; - }else if(key == 'status2'){ - var code = sub+'.status()[1]'; - }else{ - var code = sub+'.'+key +'()'; + if (key == 'status1') { + var code = sub + '.status()[0]'; + } else if (key == 'status2') { + var code = sub + '.status()[1]'; + } else { + var code = sub + '.' + key + '()'; } - return [code,generator.ORDER_ATOMIC]; + return [code, generator.ORDER_ATOMIC]; } -export const CI130X_BROADCAST = function(_,generator){ +export const CI130X_BROADCAST = function (_, generator) { generator.definitions_['import_ci130x'] = 'import ci130x'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); var star = this.getFieldValue('star'); var end = this.getFieldValue('end'); - var code = sub+'.play('+star+','+num+','+end+')\n'; + var code = sub + '.play(' + star + ',' + num + ',' + end + ')\n'; return code; } -export const CI130X_SET_SYSTEM_CMD = function(_,generator){ +export const CI130X_SET_SYSTEM_CMD = function (_, generator) { generator.definitions_['import_ci130x'] = 'import ci130x'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var cmd = this.getFieldValue('cmd'); - var code = sub+'.sys_cmd('+cmd+')\n'; + var code = sub + '.sys_cmd(' + cmd + ')\n'; return code; } @@ -350,16 +350,16 @@ export const sensor_ucs12071_extern = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); generator.definitions_['import_ucs12071'] = 'import ucs12071'; - if (key == '0'){ + if (key == '0') { var code = sub + '.color()'; } - else if(key == '1'){ + else if (key == '1') { var code = sub + '.color_raw()'; } - else if(key == '2'){ + else if (key == '2') { var code = sub + '.als()'; } - else{ + else { var code = sub + '.ir()'; } return [code, generator.ORDER_ATOMIC]; @@ -964,14 +964,14 @@ export const sensor_weather_solo_rain = function (_, generator) { } -export const sensor_DS18X20 = function(_, generator){ +export const sensor_DS18X20 = function (_, generator) { generator.definitions_['import_DS18X20'] = 'from ds18b20 import DS18X20'; var dropdown_pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); - var code ='DS18X20('+dropdown_pin+').temperature()'; + var code = 'DS18X20(' + dropdown_pin + ').temperature()'; return [code, generator.ORDER_ATOMIC]; }; -//educore sensor_extern +//educore sensor_extern export const educore_body_sensor = function (_, generator) { generator.definitions_['import_educore_tsd'] = 'from educore import tsd'; var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); @@ -1010,7 +1010,7 @@ export const educore_button_sensor_extern = function (_, generator) { export const sensor_read_humiture = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = sub+".read()["+key+"]"; + var code = sub + ".read()[" + key + "]"; return [code, generator.ORDER_ATOMIC]; } @@ -1024,7 +1024,7 @@ export const educore_ultrasonic_sensor = function (_, generator) { export const ultrasonic_sensor_read_distance = function (_, generator) { generator.definitions_['import_educore_ultrasonic'] = 'from educore import ultrasonic'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".diatance()"; + var code = sub + ".diatance()"; return [code, generator.ORDER_ATOMIC]; } @@ -1046,14 +1046,14 @@ export const camera_sensor_init = function (_, generator) { generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = sub+'.init(' + key + ')'; + var code = sub + '.init(' + key + ')'; return [code, generator.ORDER_ATOMIC]; } export const camera_sensor_result = function (_, generator) { generator.definitions_['import_educore_smartcamera'] = 'from educore import smartcamera'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.result()'; + var code = sub + '.result()'; return [code, generator.ORDER_ATOMIC]; } diff --git a/boards/default_src/micropython/generators/sensor_onboard.js b/boards/default_src/micropython/generators/sensor_onboard.js index 17b7672b..f7c9094f 100644 --- a/boards/default_src/micropython/generators/sensor_onboard.js +++ b/boards/default_src/micropython/generators/sensor_onboard.js @@ -116,14 +116,14 @@ export const number7 = function (_, generator) { } export const sensor_mixgo_pin_near_single = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_als'] = "from " + version + " import onboard_als"; var code = 'onboard_als.ps_nl()'; return [code, generator.ORDER_ATOMIC]; } export const sensor_mixgo_pin_near_double = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version] = 'import ' + version; var direction = this.getFieldValue('direction'); var code = version + '.' + 'infrared_' + direction + '()'; @@ -131,14 +131,14 @@ export const sensor_mixgo_pin_near_double = function (_, generator) { } export const sensor_mixgo_pin_near = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; var code = 'onboard_als.ps()'; return [code, generator.ORDER_ATOMIC]; } export const sensor_mixgo_nova_pin_near = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var direction = this.getFieldValue('direction'); generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction; var code = 'onboard_als_' + direction + '.ps_nl()'; @@ -146,20 +146,21 @@ export const sensor_mixgo_nova_pin_near = function (_, generator) { } export const sensor_mixgo_LTR308 = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; var code = 'onboard_als.als()'; return [code, generator.ORDER_ATOMIC]; } export const sensor_mixgo_sant_color = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_als'] = 'from ' + version + ' import onboard_als'; var code = 'onboard_als.color()'; return [code, generator.ORDER_ATOMIC]; } export const sensor_mixgo_nova_LTR308 = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; var direction = this.getFieldValue('direction'); generator.definitions_['import_' + version + '_' + direction] = 'from ' + version + ' import onboard_als_' + direction; var code = 'onboard_als_' + direction + '.als_vis()'; @@ -181,7 +182,7 @@ export const sensor_lm35 = function (_, generator) { } export const sensor_LTR308 = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == "mixgo") { generator.definitions_['import_mixgo'] = 'import mixgo'; return ['mixgo.get_brightness()', generator.ORDER_ATOMIC]; @@ -199,7 +200,7 @@ export const sensor_LTR308 = function (_, generator) { } export const sensor_sound = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'mixbot') { generator.definitions_['import_' + version + '_sound'] = 'from ' + version + ' import sound'; var code = 'sound.loudness()'; @@ -231,7 +232,7 @@ export const sensor_sound = function (_, generator) { // } export const sensor_hp203 = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var key = this.getFieldValue('key'); if (version == "mixgo_mini") { generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; @@ -245,7 +246,7 @@ export const sensor_hp203 = function (_, generator) { } export const sensor_aht11 = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var key = this.getFieldValue('key'); if (version == 'mixgo_nova' || version == 'mixgo_zero') { generator.definitions_['import_' + version + '_onboard_ths'] = "from " + version + " import onboard_ths"; @@ -266,14 +267,14 @@ export const sensor_get_temperature = function (_, generator) { } export const rfid_readid = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; var code = 'onboard_rfid.read_card(0, x="id")'; return [code, generator.ORDER_ATOMIC]; } export const rfid_readcontent = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; var code = 'onboard_rfid.read_card(' + sector + ', x="content")'; @@ -281,7 +282,7 @@ export const rfid_readcontent = function (_, generator) { } export const rfid_write = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; @@ -290,7 +291,7 @@ export const rfid_write = function (_, generator) { } export const rfid_write_return = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var sector = generator.valueToCode(this, 'SECTOR', generator.ORDER_ATOMIC); var cnt = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); generator.definitions_['import_' + version + '_onboard_rfid'] = "from " + version + " import onboard_rfid"; @@ -299,7 +300,7 @@ export const rfid_write_return = function (_, generator) { } export const sensor_get_acceleration = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var key = this.getFieldValue('key'); if (key == 'strength') { if (version == 'mixbot') { @@ -325,7 +326,7 @@ export const sensor_get_acceleration = function (_, generator) { } export const sensor_eulerangles = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_acc'] = "from " + version + " import onboard_acc"; var angle = this.getFieldValue('angle'); var code = 'onboard_acc.eulerangles()' + angle; @@ -356,12 +357,12 @@ export const sensor_mpu9250_get_acceleration = function (_, generator) { } export const sensor_mixgoce_pin_pressed = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); - if ( 'mixgo_mini'|| version == 'mixgo_sant') { + if (version === 'mixgo_mini' || version === 'mixgo_sant') { generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; var code = 'onboard_bot.touched(' + pin + ')'; - }else { + } else { generator.definitions_['import_' + version] = 'import ' + version; var code = version + '.touched(' + pin + ')'; } @@ -369,8 +370,8 @@ export const sensor_mixgoce_pin_pressed = function (_, generator) { } export const sensor_mixgo_touch_slide = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] - if (version == 'mixgo_mini'|| version == 'mixgo_sant') { + var version = Boards.getSelectedBoardKey().split(':')[2]; + if (version === 'mixgo_mini' || version === 'mixgo_sant') { generator.definitions_['import_' + version + '_onboard_bot'] = 'from ' + version + ' import onboard_bot'; var code = 'onboard_bot.touch_slide()'; } else { @@ -381,7 +382,7 @@ export const sensor_mixgo_touch_slide = function (_, generator) { } export const sensor_mixgo_pin_pressed = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version] = 'import ' + version; var pin = generator.valueToCode(this, 'button', generator.ORDER_ATOMIC); var code = version + '.' + pin + '.is_touched()'; @@ -578,16 +579,16 @@ export const onboard_RTC_timestamp_totuple = function (_, generator) { return [code, generator.ORDER_ATOMIC]; } -export const onboard_RTC_get_time_str = function(_,generator){ +export const onboard_RTC_get_time_str = function (_, generator) { generator.definitions_['import_rtctime'] = 'import rtctime'; var code = 'rtctime.strtime()'; return [code, generator.ORDER_ATOMIC]; } -export const onboard_RTC_get_timetuple_to_str = function(_,generator){ +export const onboard_RTC_get_timetuple_to_str = function (_, generator) { generator.definitions_['import_rtctime'] = 'import rtctime'; var ct = generator.valueToCode(this, 'CONTENT', generator.ORDER_ATOMIC); - var code = 'rtctime.strtime('+ ct +')'; + var code = 'rtctime.strtime(' + ct + ')'; return [code, generator.ORDER_ATOMIC]; } @@ -595,7 +596,7 @@ export const onboard_RTC_get_timetuple_to_str = function(_,generator){ export const sensor_mixgo_cc_mmc5603_get_magnetic = function (_, generator) { var key = this.getFieldValue('key'); - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'mpython') { generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic'; if (key == 'all') { @@ -624,7 +625,7 @@ export const sensor_mixgo_cc_mmc5603_get_magnetic = function (_, generator) { } export const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'mpython') { generator.definitions_['import_mpython_magnetic'] = 'from mpython import magnetic'; var code = 'magnetic.getangle()'; @@ -640,7 +641,7 @@ export const sensor_mixgo_cc_mmc5603_get_angle = function (_, generator) { } export const sensor_mixgo_cc_mmc5603_calibrate_compass = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'mixgo_mini') { generator.definitions_['import_mixgo_mini_onboard_i2c'] = 'from mixgo_mini import onboard_i2c'; generator.definitions_['import_mmc5603'] = 'import mmc5603'; @@ -655,7 +656,7 @@ export const sensor_mixgo_cc_mmc5603_calibrate_compass = function (_, generator) //mixgo_me onboard_sensor generators: export const sensor_mixgome_temperature = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'mixgo_mini') { generator.definitions_['import_mixgo_mini_onboard_temperature'] = 'from mixgo_mini import onboard_temperature'; var code = 'onboard_temperature()'; @@ -688,7 +689,7 @@ export const sensor_mpython_qmi8658_temperature = function (_, generator) { } export const sensor_rm_pin_near_double = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; var direction = this.getFieldValue('direction'); generator.definitions_['import_' + version + '_adc' + direction] = 'from ' + version + ' import adc' + direction; var code = 'adc' + direction + '.read()'; @@ -696,7 +697,7 @@ export const sensor_rm_pin_near_double = function (_, generator) { } export const sensor_rm_battery_left = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; if (version == 'feiyi') { generator.definitions_['import_feiyi_onboard_bot51'] = 'from feiyi import onboard_bot51'; var code = 'onboard_bot51.read_bat()'; @@ -746,7 +747,7 @@ export const sensor_mixgocar_battery_left = function (_, generator) { export const sensor_mixbot_patrol_calibrate = function (_, generator) { var key = this.getFieldValue('key'); - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol'; var code = 'patrol.correct(patrol.CORRECTING_' + key + ')\n'; return code; @@ -754,7 +755,7 @@ export const sensor_mixbot_patrol_calibrate = function (_, generator) { export const sensor_mixbot_patrol_value = function (_, generator) { var key = this.getFieldValue('key'); - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_patrol'] = 'from ' + version + ' import patrol'; var code = 'patrol.getdata()' + key + ''; return [code, generator.ORDER_ATOMIC]; @@ -803,7 +804,7 @@ export const educore_voice_sensor = function (_, generator) { export const sensor_read = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".read()"; + var code = sub + ".read()"; return [code, generator.ORDER_ATOMIC]; } @@ -814,39 +815,39 @@ export const educore_light_sensor = function (_, generator) { } export const educore_gyroscope_sensor = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; + var version = Boards.getSelectedBoardKey().split(':')[2]; + generator.definitions_['import_' + version + '_accelerometer'] = 'from ' + version + ' import accelerometer'; var code = "accelerometer()"; return [code, generator.ORDER_ATOMIC]; } export const educore_gyroscope_sensor_read = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; + var version = Boards.getSelectedBoardKey().split(':')[2]; + generator.definitions_['import_' + version + '_accelerometer'] = 'from ' + version + ' import accelerometer'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = sub+"."+key+"()"; + var code = sub + "." + key + "()"; return [code, generator.ORDER_ATOMIC]; } export const educore_gyroscope_sensor_shake = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] - generator.definitions_['import_'+version+'_accelerometer'] = 'from '+version+' import accelerometer'; + var version = Boards.getSelectedBoardKey().split(':')[2]; + generator.definitions_['import_' + version + '_accelerometer'] = 'from ' + version + ' import accelerometer'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+".shake()"; + var code = sub + ".shake()"; return [code, generator.ORDER_ATOMIC]; } export const educore_button_sensor = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button'; var btn = this.getFieldValue('btn'); - var code = 'button(button.'+btn+')'; + var code = 'button(button.' + btn + ')'; return [code, generator.ORDER_ATOMIC]; } export const educore_button_was_pressed = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_button'] = 'from ' + version + ' import button'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var code = sub + '.status()'; @@ -854,7 +855,7 @@ export const educore_button_was_pressed = function (_, generator) { } export const educore_rfid_sensor = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; var pin = generator.valueToCode(this, 'PIN', generator.ORDER_ATOMIC); var code = 'rfid(' + pin + ')'; @@ -862,65 +863,65 @@ export const educore_rfid_sensor = function (_, generator) { } export const educore_rfid_sensor_scan = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var code = sub+'.scanning()'; + var code = sub + '.scanning()'; return [code, generator.ORDER_ATOMIC]; } export const educore_rfid_sensor_scan_data = function (_, generator) { - var version = Boards.getSelectedBoardKey().split(':')[2] + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_rfid'] = 'from ' + version + ' import rfid'; var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var key = this.getFieldValue('key'); - var code = sub+'.'+key+'()'; + var code = sub + '.' + key + '()'; return [code, generator.ORDER_ATOMIC]; } -export const CI130X_IDENTIFY_AND_SAVE_SANT = function(_,generator){ - var version = Boards.getSelectedBoardKey().split(':')[2] +export const CI130X_IDENTIFY_AND_SAVE_SANT = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; var code = 'onboard_asr.cmd_id()\n'; return code; } -export const CI130X_GET_WHETHER_IDENTIFY_SANT = function(_,generator){ - var version = Boards.getSelectedBoardKey().split(':')[2] +export const CI130X_GET_WHETHER_IDENTIFY_SANT = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; var cmd = this.getFieldValue('cmd'); - var code = 'onboard_asr.result('+cmd+')'; - return [code,generator.ORDER_ATOMIC]; + var code = 'onboard_asr.result(' + cmd + ')'; + return [code, generator.ORDER_ATOMIC]; } -export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function(_,generator){ - var version = Boards.getSelectedBoardKey().split(':')[2] +export const CI130X_GET_THE_RECOGNIZED_CMD_SANT = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; var key = this.getFieldValue('key'); - if(key == 'status1'){ + if (key == 'status1') { var code = 'onboard_asr.status()[0]'; - }else if(key == 'status2'){ + } else if (key == 'status2') { var code = 'onboard_asr.status()[1]'; - }else{ - var code = 'onboard_asr.'+key +'()'; + } else { + var code = 'onboard_asr.' + key + '()'; } - return [code,generator.ORDER_ATOMIC]; + return [code, generator.ORDER_ATOMIC]; } -export const CI130X_BROADCAST_SANT = function(_,generator){ - var version = Boards.getSelectedBoardKey().split(':')[2] +export const CI130X_BROADCAST_SANT = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; var num = generator.valueToCode(this, 'NUM', generator.ORDER_ATOMIC); var star = this.getFieldValue('star'); var end = this.getFieldValue('end'); - var code = 'onboard_asr.play('+star+','+num+','+end+')\n'; + var code = 'onboard_asr.play(' + star + ',' + num + ',' + end + ')\n'; return code; } -export const CI130X_SET_SYSTEM_CMD_SANT = function(_,generator){ - var version = Boards.getSelectedBoardKey().split(':')[2] +export const CI130X_SET_SYSTEM_CMD_SANT = function (_, generator) { + var version = Boards.getSelectedBoardKey().split(':')[2]; generator.definitions_['import_' + version + '_onboard_asr'] = 'from ' + version + ' import onboard_asr'; var cmd = this.getFieldValue('cmd'); - var code = 'onboard_asr.sys_cmd('+cmd+')\n'; + var code = 'onboard_asr.sys_cmd(' + cmd + ')\n'; return code; } \ No newline at end of file